diff options
author | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-10-12 13:51:03 +0200 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-10-12 13:51:03 +0200 |
commit | 3272e8e16749b58d13e72e9a3fcadab16550ea71 (patch) | |
tree | 402caed8cabaffb667d8b51f6c145fca21c3c23d /src/lib | |
parent | 98280f75c07d574a2776558c4fec2797c2b21450 (diff) | |
download | DLT-daemon-3272e8e16749b58d13e72e9a3fcadab16550ea71.tar.gz |
Implemented new DLT user library function dlt_get_log_state.
Diffstat (limited to 'src/lib')
-rwxr-xr-x | src/lib/dlt_user.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index da4f9e4..459a5d1 100755 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -279,6 +279,9 @@ int dlt_init_common(void) return -1; } + /* set to unknown state of connected client */ + dlt_user.log_state = -1; + dlt_user.dlt_log_handle=-1; dlt_user.dlt_user_handle=-1; @@ -812,6 +815,11 @@ int dlt_set_application_ll_ts_limit(DltLogLevelType loglevel, DltTraceStatusType return ret; } +int dlt_get_log_state() +{ + return dlt_user.log_state; +} + int dlt_set_log_mode(DltUserLogMode mode) { if (dlt_user_initialised==0) @@ -2512,8 +2520,8 @@ int dlt_user_log_check_user_message(void) DltReceiver *receiver = &(dlt_user.receiver); DltUserControlMsgLogLevel *usercontextll; - DltUserControlMsgInjection *usercontextinj; + DltUserControlMsgLogState *userlogstate; unsigned char *userbuffer; unsigned char *inject_buffer; @@ -2670,6 +2678,25 @@ int dlt_user_log_check_user_message(void) } } break; + case DLT_USER_MESSAGE_LOG_STATE: + { + /* At least, user header, user context, and service id and data_length of injected message is available */ + if (receiver->bytesRcvd < (sizeof(DltUserHeader)+sizeof(DltUserControlMsgLogState))) + { + leave_while = 1; + break; + } + + userlogstate = (DltUserControlMsgLogState*) (receiver->buf+sizeof(DltUserHeader)); + dlt_user.log_state = userlogstate->log_state; + + /* keep not read data in buffer */ + if (dlt_receiver_remove(receiver,(sizeof(DltUserHeader)+sizeof(DltUserControlMsgLogState)))==-1) + { + return -1; + } + } + break; default: { dlt_log(LOG_ERR,"Invalid user message type received!\n"); |