summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2014-01-10 07:06:19 +0100
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2014-01-10 07:16:16 +0100
commit912c8f6887b6007c474ca6c1c3134c25936ab982 (patch)
tree83473781e788311d0b7ac7b119f1f82b91c62135
parent9b74a8457aaa9b282cf79427a713b907635d82a2 (diff)
downloadDLT-daemon-912c8f6887b6007c474ca6c1c3134c25936ab982.tar.gz
Defined return value for dlt_message_read().
Signed-off-by: Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>
-rwxr-xr-xinclude/dlt/dlt_common.h5
-rw-r--r--src/daemon/dlt-daemon.c194
-rwxr-xr-xsrc/lib/dlt_client.c2
-rwxr-xr-xsrc/shared/dlt_common.c16
4 files changed, 112 insertions, 105 deletions
diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h
index 22710c7..be04e68 100755
--- a/include/dlt/dlt_common.h
+++ b/include/dlt/dlt_common.h
@@ -614,6 +614,11 @@ typedef struct
int size;
} DltBufferBlockHead;
+#define DLT_MESSAGE_ERROR_OK 0
+#define DLT_MESSAGE_ERROR_UNKNOWN -1
+#define DLT_MESSAGE_ERROR_SIZE -2
+#define DLT_MESSAGE_ERROR_CONTENT -3
+
#ifdef __cplusplus
extern "C"
{
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
index b10237c..c862ba8 100644
--- a/src/daemon/dlt-daemon.c
+++ b/src/daemon/dlt-daemon.c
@@ -1242,7 +1242,7 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon
}
/* Process all received messages */
- while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSock.buf,daemon_local->receiverSock.bytesRcvd,daemon_local->flags.nflag,daemon_local->flags.vflag)==0)
+ while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSock.buf,daemon_local->receiverSock.bytesRcvd,daemon_local->flags.nflag,daemon_local->flags.vflag)==DLT_MESSAGE_ERROR_OK)
{
/* Check for control message */
if ( 0 < daemon_local->receiverSock.fd && DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)) )
@@ -1297,7 +1297,7 @@ int dlt_daemon_process_client_messages_serial(DltDaemon *daemon, DltDaemonLocal
}
/* Process all received messages */
- while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSerial.buf,daemon_local->receiverSerial.bytesRcvd,daemon_local->flags.mflag,daemon_local->flags.vflag)==0)
+ while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSerial.buf,daemon_local->receiverSerial.bytesRcvd,daemon_local->flags.mflag,daemon_local->flags.vflag)==DLT_MESSAGE_ERROR_OK)
{
/* Check for control message */
if (DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)))
@@ -1910,112 +1910,114 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemo
return DLT_DAEMON_ERROR_UNKNOWN;
}
- if (dlt_message_read(&(daemon_local->msg),(unsigned char*)daemon_local->receiver.buf+sizeof(DltUserHeader),daemon_local->receiver.bytesRcvd-sizeof(DltUserHeader),0,verbose)==0)
+ ret=dlt_message_read(&(daemon_local->msg),(unsigned char*)daemon_local->receiver.buf+sizeof(DltUserHeader),daemon_local->receiver.bytesRcvd-sizeof(DltUserHeader),0,verbose);
+ if(ret!=DLT_MESSAGE_ERROR_OK)
{
- /* set overwrite ecu id */
- if (daemon_local->flags.evalue!=0)
- {
- /* Set header extra parameters */
- dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid );
- //msg.headerextra.seid = 0;
- if (dlt_message_set_extraparameters(&(daemon_local->msg),0)==-1)
- {
- dlt_log(LOG_ERR,"Can't set message extra parameters in process user message log\n");
- return DLT_DAEMON_ERROR_UNKNOWN;
- }
+ if(ret!=DLT_MESSAGE_ERROR_SIZE)
+ {
+ dlt_log(LOG_ERR,"Can't read messages from receiver\n");
+ }
+ return DLT_DAEMON_ERROR_UNKNOWN;
+ }
- /* Correct value of timestamp, this was changed by dlt_message_set_extraparameters() */
- daemon_local->msg.headerextra.tmsp = DLT_BETOH_32(daemon_local->msg.headerextra.tmsp);
- }
+ /* set overwrite ecu id */
+ if (daemon_local->flags.evalue!=0)
+ {
+ /* Set header extra parameters */
+ dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid );
+ //msg.headerextra.seid = 0;
+ if (dlt_message_set_extraparameters(&(daemon_local->msg),0)==-1)
+ {
+ dlt_log(LOG_ERR,"Can't set message extra parameters in process user message log\n");
+ return DLT_DAEMON_ERROR_UNKNOWN;
+ }
- /* prepare storage header */
- if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp))
- {
- if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon_local->msg.headerextra.ecu)==-1)
- {
- dlt_log(LOG_ERR,"Can't set storage header in process user message log\n");
- return DLT_DAEMON_ERROR_UNKNOWN;
- }
- }
- else
- {
- if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon->ecuid)==-1)
- {
- dlt_log(LOG_ERR,"Can't set storage header in process user message log\n");
- return DLT_DAEMON_ERROR_UNKNOWN;
- }
- }
+ /* Correct value of timestamp, this was changed by dlt_message_set_extraparameters() */
+ daemon_local->msg.headerextra.tmsp = DLT_BETOH_32(daemon_local->msg.headerextra.tmsp);
+ }
- {
- /* if no filter set or filter is matching display message */
- if (daemon_local->flags.xflag)
- {
- if (dlt_message_print_hex(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
- {
- dlt_log(LOG_ERR,"dlt_message_print_hex() failed!\n");
- }
- } /* if */
- else if (daemon_local->flags.aflag)
- {
- if (dlt_message_print_ascii(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
- {
- dlt_log(LOG_ERR,"dlt_message_print_ascii() failed!\n");
- }
- } /* if */
- else if (daemon_local->flags.sflag)
- {
- if (dlt_message_print_header(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
- {
- dlt_log(LOG_ERR,"dlt_message_print_header() failed!\n");
- }
- /* print message header only */
- } /* if */
+ /* prepare storage header */
+ if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp))
+ {
+ if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon_local->msg.headerextra.ecu)==-1)
+ {
+ dlt_log(LOG_ERR,"Can't set storage header in process user message log\n");
+ return DLT_DAEMON_ERROR_UNKNOWN;
+ }
+ }
+ else
+ {
+ if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon->ecuid)==-1)
+ {
+ dlt_log(LOG_ERR,"Can't set storage header in process user message log\n");
+ return DLT_DAEMON_ERROR_UNKNOWN;
+ }
+ }
+
+ {
+ /* if no filter set or filter is matching display message */
+ if (daemon_local->flags.xflag)
+ {
+ if (dlt_message_print_hex(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
+ {
+ dlt_log(LOG_ERR,"dlt_message_print_hex() failed!\n");
+ }
+ } /* if */
+ else if (daemon_local->flags.aflag)
+ {
+ if (dlt_message_print_ascii(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
+ {
+ dlt_log(LOG_ERR,"dlt_message_print_ascii() failed!\n");
+ }
+ } /* if */
+ else if (daemon_local->flags.sflag)
+ {
+ if (dlt_message_print_header(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
+ {
+ dlt_log(LOG_ERR,"dlt_message_print_header() failed!\n");
+ }
+ /* print message header only */
+ } /* if */
- /* check if overflow occurred */
- if(daemon->overflow_counter)
+ /* check if overflow occurred */
+ if(daemon->overflow_counter)
+ {
+ if(dlt_daemon_send_message_overflow(daemon,daemon_local,verbose)==0)
{
- if(dlt_daemon_send_message_overflow(daemon,daemon_local,verbose)==0)
- {
- sprintf(str,"%u messages discarded!\n",daemon->overflow_counter);
- dlt_log(LOG_ERR, str);
- daemon->overflow_counter=0;
- }
+ sprintf(str,"%u messages discarded!\n",daemon->overflow_counter);
+ dlt_log(LOG_ERR, str);
+ daemon->overflow_counter=0;
}
+ }
- /* look if TCP connection to client is available */
- if((daemon->mode == DLT_USER_MODE_EXTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH))
- {
+ /* look if TCP connection to client is available */
+ if((daemon->mode == DLT_USER_MODE_EXTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH))
+ {
- if((ret = dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,daemon_local->msg.headerbuffer+sizeof(DltStorageHeader),daemon_local->msg.headersize-sizeof(DltStorageHeader),
- daemon_local->msg.databuffer,daemon_local->msg.datasize,verbose)))
- {
- if(ret == DLT_DAEMON_ERROR_BUFFER_FULL)
- {
- daemon->overflow_counter++;
- }
- }
- }
+ if((ret = dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,daemon_local->msg.headerbuffer+sizeof(DltStorageHeader),daemon_local->msg.headersize-sizeof(DltStorageHeader),
+ daemon_local->msg.databuffer,daemon_local->msg.datasize,verbose)))
+ {
+ if(ret == DLT_DAEMON_ERROR_BUFFER_FULL)
+ {
+ daemon->overflow_counter++;
+ }
+ }
+ }
- }
- /* keep not read data in buffer */
- bytes_to_be_removed = daemon_local->msg.headersize+daemon_local->msg.datasize-sizeof(DltStorageHeader)+sizeof(DltUserHeader);
- if (daemon_local->msg.found_serialheader)
- {
- bytes_to_be_removed += sizeof(dltSerialHeader);
- }
+ }
+ /* keep not read data in buffer */
+ bytes_to_be_removed = daemon_local->msg.headersize+daemon_local->msg.datasize-sizeof(DltStorageHeader)+sizeof(DltUserHeader);
+ if (daemon_local->msg.found_serialheader)
+ {
+ bytes_to_be_removed += sizeof(dltSerialHeader);
+ }
- if (dlt_receiver_remove(&(daemon_local->receiver),bytes_to_be_removed)==-1)
- {
- dlt_log(LOG_ERR,"Can't remove bytes from receiver\n");
- return DLT_DAEMON_ERROR_UNKNOWN;
- }
- }
- else
- {
- dlt_log(LOG_ERR,"Can't read messages from receiver\n");
- return DLT_DAEMON_ERROR_UNKNOWN;
- }
+ if (dlt_receiver_remove(&(daemon_local->receiver),bytes_to_be_removed)==-1)
+ {
+ dlt_log(LOG_ERR,"Can't remove bytes from receiver\n");
+ return DLT_DAEMON_ERROR_UNKNOWN;
+ }
return DLT_DAEMON_ERROR_OK;
}
diff --git a/src/lib/dlt_client.c b/src/lib/dlt_client.c
index 8c1e9ca..b8872ad 100755
--- a/src/lib/dlt_client.c
+++ b/src/lib/dlt_client.c
@@ -271,7 +271,7 @@ int dlt_client_main_loop(DltClient *client, void *data, int verbose)
return 1;
}
- while (dlt_message_read(&msg,(unsigned char*)(client->receiver.buf),client->receiver.bytesRcvd,0,verbose)==0)
+ while (dlt_message_read(&msg,(unsigned char*)(client->receiver.buf),client->receiver.bytesRcvd,0,verbose)==DLT_MESSAGE_ERROR_OK)
{
/* Call callback function */
if (message_callback_function)
diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c
index 2544446..a12d137 100755
--- a/src/shared/dlt_common.c
+++ b/src/shared/dlt_common.c
@@ -1118,7 +1118,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res
if ((msg==0) || (buffer==0) || (length<=0))
{
- return -1;
+ return DLT_MESSAGE_ERROR_UNKNOWN;
}
/* initialize resync_offset */
@@ -1128,7 +1128,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res
if (length<sizeof(dltSerialHeader))
{
/* dlt_log(LOG_ERR, "Length smaller than serial header!\n"); */
- return -1;
+ return DLT_MESSAGE_ERROR_SIZE;
}
if (memcmp(buffer,dltSerialHeader,sizeof(dltSerialHeader)) == 0)
@@ -1176,7 +1176,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res
if (length<sizeof(DltStandardHeader))
{
/* dlt_log(LOG_ERR, "Length smaller than standard header!\n"); */
- return -1;
+ return DLT_MESSAGE_ERROR_SIZE;
}
memcpy(msg->headerbuffer+sizeof(DltStorageHeader),buffer,sizeof(DltStandardHeader));
@@ -1210,7 +1210,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res
{
sprintf(str,"Plausibility check failed. Complete message size too short (%d)!\n",msg->datasize);
dlt_log(LOG_ERR, str);
- return -1;
+ return DLT_MESSAGE_ERROR_CONTENT;
}
/* load standard header extra parameters and Extended header if used */
@@ -1218,7 +1218,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res
{
if (length < (msg->headersize - sizeof(DltStorageHeader)))
{
- return -1;
+ return DLT_MESSAGE_ERROR_SIZE;
}
memcpy(msg->headerbuffer+sizeof(DltStorageHeader)+sizeof(DltStandardHeader),buffer+sizeof(DltStandardHeader),extra_size);
@@ -1241,7 +1241,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res
if (length < (msg->headersize - sizeof(DltStorageHeader) + msg->datasize))
{
/* dlt_log(LOG_ERR,"length does not fit!\n"); */
- return -1;
+ return DLT_MESSAGE_ERROR_SIZE;
}
/* free last used memory for buffer */
@@ -1261,13 +1261,13 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res
{
sprintf(str,"Cannot allocate memory for payload buffer of size %d!\n",msg->datasize);
dlt_log(LOG_ERR, str);
- return -1;
+ return DLT_MESSAGE_ERROR_UNKNOWN;
}
/* load payload data from buffer */
memcpy(msg->databuffer,buffer+(msg->headersize-sizeof(DltStorageHeader)),msg->datasize);
- return 0;
+ return DLT_MESSAGE_ERROR_OK;
}
int dlt_message_get_extraparameters(DltMessage *msg,int verbose)