From 83516bb6bd95d1a865c44bc7f33f70426e1143dc Mon Sep 17 00:00:00 2001 From: ManikandanC Date: Fri, 16 Jun 2017 16:39:55 +0530 Subject: Injection: New callback with private data Added new injection callback with private data as argument Signed-off-by: ManikandanC --- src/examples/dlt-example-user.c | 72 +++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 21 deletions(-) (limited to 'src/examples') diff --git a/src/examples/dlt-example-user.c b/src/examples/dlt-example-user.c index 12d9c37..4083d4d 100644 --- a/src/examples/dlt-example-user.c +++ b/src/examples/dlt-example-user.c @@ -77,9 +77,13 @@ #include "dlt_common.h" /* for dlt_get_version() */ int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length); +int dlt_user_injection_callback_with_specific_data(uint32_t service_id, void *data, uint32_t length, void *priv_data); + void dlt_user_log_level_changed_callback(char context_id[DLT_ID_SIZE],uint8_t log_level,uint8_t trace_status); -DLT_DECLARE_CONTEXT(mycontext) +DLT_DECLARE_CONTEXT(mycontext1) +DLT_DECLARE_CONTEXT(mycontext2) +DLT_DECLARE_CONTEXT(mycontext3) /** * Print usage information of tool. @@ -132,7 +136,7 @@ int main(int argc, char* argv[]) int lvalue = DLT_LOG_WARN; char *tvalue = 0; int rvalue = -1; - + int ret = 0; int index; int c; @@ -281,10 +285,17 @@ int main(int argc, char* argv[]) dlt_verbose_mode(); DLT_REGISTER_APP("LOG","Test Application for Logging"); - DLT_REGISTER_CONTEXT(mycontext,"TEST","Test Context for Logging"); + DLT_REGISTER_CONTEXT(mycontext1,"TEST","Test Context for Logging"); + DLT_REGISTER_CONTEXT(mycontext2, "TS1", "Test Context1 for injection"); + DLT_REGISTER_CONTEXT(mycontext3, "TS2", "Test Context2 for injection"); - DLT_REGISTER_INJECTION_CALLBACK(mycontext, 0x1000, dlt_user_injection_callback); - DLT_REGISTER_LOG_LEVEL_CHANGED_CALLBACK(mycontext, dlt_user_log_level_changed_callback); + DLT_REGISTER_INJECTION_CALLBACK(mycontext1, 0x1000, dlt_user_injection_callback); + DLT_REGISTER_INJECTION_CALLBACK_WITH_ID(mycontext2, 0x1000, dlt_user_injection_callback_with_specific_data, (void*)"TS1 context"); + DLT_REGISTER_INJECTION_CALLBACK(mycontext2, 0x1001, dlt_user_injection_callback); + DLT_REGISTER_INJECTION_CALLBACK_WITH_ID(mycontext3, 0x1000, dlt_user_injection_callback_with_specific_data, (void*)"TS2 context"); + DLT_REGISTER_INJECTION_CALLBACK(mycontext3, 0x1001, dlt_user_injection_callback); + + DLT_REGISTER_LOG_LEVEL_CHANGED_CALLBACK(mycontext1, dlt_user_log_level_changed_callback); text = message; @@ -336,11 +347,11 @@ int main(int argc, char* argv[]) if (gflag) { /* DLT messages to test Fibex non-verbose description: dlt-example-non-verbose.xml */ - DLT_LOG_ID(mycontext,DLT_LOG_INFO,10); - DLT_LOG_ID(mycontext,DLT_LOG_INFO,11,DLT_UINT16(1011)); - DLT_LOG_ID(mycontext,DLT_LOG_INFO,12,DLT_UINT32(1012),DLT_UINT32(1013)); - DLT_LOG_ID(mycontext,DLT_LOG_INFO,13,DLT_UINT8(123),DLT_FLOAT32(1.12)); - DLT_LOG_ID(mycontext,DLT_LOG_INFO,14,DLT_STRING("DEAD BEEF")); + DLT_LOG_ID(mycontext1, DLT_LOG_INFO, 10); + DLT_LOG_ID(mycontext1, DLT_LOG_INFO, 11, DLT_UINT16(1011)); + DLT_LOG_ID(mycontext1, DLT_LOG_INFO, 12, DLT_UINT32(1012), DLT_UINT32(1013)); + DLT_LOG_ID(mycontext1, DLT_LOG_INFO, 13, DLT_UINT8(123), DLT_FLOAT32(1.12)); + DLT_LOG_ID(mycontext1, DLT_LOG_INFO, 14, DLT_STRING("DEAD BEEF")); } #ifdef DLT_TEST_ENABLE @@ -361,14 +372,14 @@ int main(int argc, char* argv[]) fprintf(stderr,"Cannot allocate buffer memory!\n"); return -1; } - DLT_LOG(mycontext,DLT_LOG_WARN,DLT_STRING(text),DLT_RAW(buffer,atoi(zvalue))); + DLT_LOG(mycontext1, DLT_LOG_WARN, DLT_STRING(text), DLT_RAW(buffer, atoi(zvalue))); free(buffer); } #endif /* DLT_TEST_ENABLE */ for (num=0;num0) + + DLT_LOG(mycontext1, DLT_LOG_INFO, DLT_STRING("Injection: "), DLT_UINT32(service_id)); + printf("Injection %d, Length=%d \n", service_id, length); + + if (length > 0) + { + dlt_print_mixed_string(text, 1024, data, length, 0); + DLT_LOG(mycontext1, DLT_LOG_INFO, DLT_STRING("Data: "), DLT_STRING(text)); + printf("%s \n", text); + } + + return 0; +} + +int dlt_user_injection_callback_with_specific_data(uint32_t service_id, void *data, uint32_t length, void *priv_data) +{ + char text[1024]; + + DLT_LOG(mycontext1, DLT_LOG_INFO, DLT_STRING("Injection: "), DLT_UINT32(service_id)); + printf("Injection %d, Length=%d \n", service_id, length); + + if (length > 0) { - dlt_print_mixed_string(text,1024,data,length,0); - DLT_LOG(mycontext, DLT_LOG_INFO, DLT_STRING("Data: "), DLT_STRING(text)); + dlt_print_mixed_string(text, 1024, data, length, 0); + DLT_LOG(mycontext1, DLT_LOG_INFO, DLT_STRING("Data: "), DLT_STRING(text), DLT_STRING(priv_data)); printf("%s \n", text); } -- cgit v1.2.1