summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-10-12 13:51:03 +0200
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-10-12 13:51:03 +0200
commit3272e8e16749b58d13e72e9a3fcadab16550ea71 (patch)
tree402caed8cabaffb667d8b51f6c145fca21c3c23d /src/lib
parent98280f75c07d574a2776558c4fec2797c2b21450 (diff)
downloadDLT-daemon-3272e8e16749b58d13e72e9a3fcadab16550ea71.tar.gz
Implemented new DLT user library function dlt_get_log_state.
Diffstat (limited to 'src/lib')
-rwxr-xr-xsrc/lib/dlt_user.c29
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");