From 760fb8a4daba3e403376099ce38aca8f88d695d3 Mon Sep 17 00:00:00 2001 From: Christian Muck Date: Mon, 11 Apr 2011 15:41:05 +0200 Subject: Init of dlt daemon --- src/examples/CMakeLists.txt | 51 +++ src/examples/dlt-example-non-verbose-1.xml | 499 ++++++++++++++++++++++++ src/examples/dlt-example-non-verbose.xml | 425 ++++++++++++++++++++ src/examples/dlt-example-user-func.c | 339 ++++++++++++++++ src/examples/dlt-example-user.c | 312 +++++++++++++++ src/examples/wintestclient/ReadMe.txt | 36 ++ src/examples/wintestclient/stdafx.cpp | 8 + src/examples/wintestclient/stdafx.h | 15 + src/examples/wintestclient/targetver.h | 13 + src/examples/wintestclient/wintestclient.cpp | 65 +++ src/examples/wintestclient/wintestclient.sln | 29 ++ src/examples/wintestclient/wintestclient.vcproj | 213 ++++++++++ 12 files changed, 2005 insertions(+) create mode 100755 src/examples/CMakeLists.txt create mode 100755 src/examples/dlt-example-non-verbose-1.xml create mode 100755 src/examples/dlt-example-non-verbose.xml create mode 100755 src/examples/dlt-example-user-func.c create mode 100755 src/examples/dlt-example-user.c create mode 100755 src/examples/wintestclient/ReadMe.txt create mode 100755 src/examples/wintestclient/stdafx.cpp create mode 100755 src/examples/wintestclient/stdafx.h create mode 100755 src/examples/wintestclient/targetver.h create mode 100755 src/examples/wintestclient/wintestclient.cpp create mode 100755 src/examples/wintestclient/wintestclient.sln create mode 100755 src/examples/wintestclient/wintestclient.vcproj (limited to 'src/examples') diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt new file mode 100755 index 0000000..cb6fbb2 --- /dev/null +++ b/src/examples/CMakeLists.txt @@ -0,0 +1,51 @@ +####### +# Dlt - Diagnostic Log and Trace +# @licence make begin@ + # + # Copyright (C) 2011, BMW AG - Alexander Wenzel + # + # This program is free software; you can redistribute it and/or modify it under the terms of the + # GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation. + # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + # Public License, version 2.1, for more details. + # + # You should have received a copy of the GNU Lesser General Public License, version 2.1, along + # with this program; if not, see . + # + # Note that the copyright holders assume that the GNU Lesser General Public License, version 2.1, may + # also be applicable to programs even in cases in which the program is not a library in the technical sense. + # + # Linking DLT statically or dynamically with other modules is making a combined work based on DLT. You may + # license such other modules under the GNU Lesser General Public License, version 2.1. If you do not want to + # license your linked modules under the GNU Lesser General Public License, version 2.1, you + # may use the program under the following exception. + # + # As a special exception, the copyright holders of DLT give you permission to combine DLT + # with software programs or libraries that are released under any license unless such a combination is not + # permitted by the license of such a software program or library. You may copy and distribute such a + # system following the terms of the GNU Lesser General Public License, version 2.1, including this + # special exception, for DLT and the licenses of the other code concerned. + # + # Note that people who make modified versions of DLT are not obligated to grant this special exception + # for their modified versions; it is their choice whether to do so. The GNU Lesser General Public License, + # version 2.1, gives permission to release a modified version without this exception; this exception + # also makes it possible to release a modified version which carries forward this exception. + # + # @licence end@ +######## + +set(dlt_example_user_SRCS dlt-example-user) +add_executable(dlt-example-user ${dlt_example_user_SRCS}) +target_link_libraries(dlt-example-user dlt) +set_target_properties(dlt-example-user PROPERTIES LINKER_LANGUAGE C) + +set(dlt_example_user_func_SRCS dlt-example-user-func) +add_executable(dlt-example-user-func ${dlt_example_user_func_SRCS}) +target_link_libraries(dlt-example-user-func dlt) +set_target_properties(dlt-example-user-func PROPERTIES LINKER_LANGUAGE C) + +install(TARGETS dlt-example-user dlt-example-user-func + RUNTIME DESTINATION bin + COMPONENT base) + diff --git a/src/examples/dlt-example-non-verbose-1.xml b/src/examples/dlt-example-non-verbose-1.xml new file mode 100755 index 0000000..7baae8c --- /dev/null +++ b/src/examples/dlt-example-non-verbose-1.xml @@ -0,0 +1,499 @@ + + + + + + + + + + + projectTCB + + + + + + TCB + + 001.004.062 + + + APP1 + Application 1 + + + CON1 + Context 1 + + + + + TEST + Test Application + + + CON1 + Context 1 + + + + + LAT + Log And Trace + + + NV + NV test + + + + + + + + + + + + + PDU_10_0 + DLT non verbose test message. + 0 + OTHER + + + + + PDU_11_0 + Buffer near limit. Free size: + 0 + OTHER + + + + PDU_11_1 + 2 + OTHER + + + 0 + + + + + + + + PDU_12_0 + Buffer size exceeded. + 0 + OTHER + + + + PDU_12_1 + 4 + OTHER + + + 0 + + + + + + + PDU_12_2 + 4 + OTHER + + + 0 + + + + + + + PDU_12_3 + Process terminated. + 0 + OTHER + + + + + PDU_13_0 + Temperature measurement + 0 + OTHER + + + + PDU_13_1 + 1 + OTHER + + + 0 + + + measurement_point + + + + + + + + PDU_13_2 + 4 + OTHER + + + 0 + + + reading + Kelvin + + + + + + + + PDU_14_0 + Build ID: + 0 + OTHER + + + + PDU_14_1 + 0 + OTHER + + + 0 + + + + + + + + + + ID_10 + 0 + OTHER + + + + 0 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + TEST + CON1 + dlt_test.c + 411 + + + + + ID_1001 + 2 + OTHER + + + + 0 + + + + 1 + + + + DLT_TYPE_LOG + DLT_LOG_WARN + APP1 + CON1 + application_file.c + 955 + + + + + ID_1002 + 2 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + 3 + + + + DLT_TYPE_LOG + DLT_LOG_ERROR + APP1 + CON1 + application_file.c + 1058 + + + + + ID_1003 + 5 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + APP1 + CON1 + temp_meas.c + 42 + + + + + ID_14 + 0 + OTHER + + + + 0 + + + + 1 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + LAT + NV + latsTask.c + 421 + + + + + + + + + S_BOOL + + + + + S_SINT8 + + + + + S_UINT8 + + + + + S_SINT16 + + + + + S_UINT16 + + + + + S_SINT32 + + + + + S_UINT32 + + + + + S_SINT64 + + + + + S_UINT64 + + + + + S_FLOA16 + + + + + S_FLOA32 + + + + + S_FLOA64 + + + + + S_STRG_ASCII + + + + + S_STRG_UTF8 + + + + + + + + + + + + BOOL + Coding for boolean values. + + 8 + + + + SINT8 + Coding for signel 8bit values. + + 8 + + + + UINT8 + Coding for unsignel 8bit values. + + 8 + + + + SINT16 + Coding for signel 16bit values. + + 16 + + + + UINT16 + Coding for unsignel 16bit values. + + 16 + + + + SINT32 + Coding for signel 32bit values. + + 32 + + + + UINT32 + Coding for unsignel 32bit values. + + 32 + + + + SINT64 + Coding for signel 64bit values. + + 64 + + + + UINT64 + Coding for unsignel 64bit values. + + 64 + + + + FLOA16 + Coding for float 16bit values. + + 16 + + + + FLOA32 + Coding for float 32bit values. + + 32 + + + + FLOA64 + Coding for float 64bit values. + + 64 + + + + STRG_ASCII + Coding for ASCII string. + + 0 + 255 + + + + STRG_UTF8 + Coding for UTF8 string. + + 0 + 255 + + + + + diff --git a/src/examples/dlt-example-non-verbose.xml b/src/examples/dlt-example-non-verbose.xml new file mode 100755 index 0000000..3b31ed3 --- /dev/null +++ b/src/examples/dlt-example-non-verbose.xml @@ -0,0 +1,425 @@ + + + + + + + + + + + projectTCB + + + + + + TCB + + 001.004.062 + + + + + + + + + PDU_10_0 + DLT non verbose test message. + 0 + OTHER + + + + + PDU_11_0 + Buffer near limit. Free size: + 0 + OTHER + + + + PDU_11_1 + 2 + OTHER + + + 0 + + + + + + + + PDU_12_0 + Buffer size exceeded. + 0 + OTHER + + + + PDU_12_1 + Requested size: + 4 + OTHER + + + 0 + + + + + + + PDU_12_2 + Free size: + 4 + OTHER + + + 0 + + + + + + + PDU_12_3 + Process terminated. + 0 + OTHER + + + + + PDU_13_0 + Temperature measurement + 0 + OTHER + + + + PDU_13_1 + 1 + OTHER + + + 0 + + + measurement_point + + + + + + + + PDU_13_2 + 4 + OTHER + + + 0 + + + reading + Kelvin + + + + + + + + + + ID_10 + 0 + OTHER + + + + 0 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + TEST + CON1 + dlt_test.c + 411 + + + + + ID_11 + 2 + OTHER + + + + 0 + + + + 1 + + + + DLT_TYPE_LOG + DLT_LOG_WARN + APP1 + CON1 + application_file.c + 955 + + + + + ID_12 + 8 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + 3 + + + + DLT_TYPE_LOG + DLT_LOG_ERROR + APP1 + CON1 + application_file.c + 1058 + + + + + ID_13 + 5 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + APP1 + CON1 + temp_meas.c + 42 + + + + + + + + + S_BOOL + + + + + S_SINT8 + + + + + S_UINT8 + + + + + S_SINT16 + + + + + S_UINT16 + + + + + S_SINT32 + + + + + S_UINT32 + + + + + S_SINT64 + + + + + S_UINT64 + + + + + S_FLOA16 + + + + + S_FLOA32 + + + + + S_FLOA64 + + + + + S_STRG_ASCII + + + + + S_STRG_UTF8 + + + + + + + + + + + + BOOL + Coding for boolean values. + + 8 + + + + SINT8 + Coding for signel 8bit values. + + 8 + + + + UINT8 + Coding for unsignel 8bit values. + + 8 + + + + SINT16 + Coding for signel 16bit values. + + 16 + + + + UINT16 + Coding for unsignel 16bit values. + + 16 + + + + SINT32 + Coding for signel 32bit values. + + 32 + + + + UINT32 + Coding for unsignel 32bit values. + + 32 + + + + SINT64 + Coding for signel 64bit values. + + 64 + + + + UINT64 + Coding for unsignel 64bit values. + + 64 + + + + FLOA16 + Coding for float 16bit values. + + 16 + + + + FLOA32 + Coding for float 32bit values. + + 32 + + + + FLOA64 + Coding for float 64bit values. + + 64 + + + + STRG_ASCII + Coding for ASCII string. + + 0 + 255 + + + + STRG_UTF8 + Coding for UTF8 string. + + 0 + 255 + + + + + diff --git a/src/examples/dlt-example-user-func.c b/src/examples/dlt-example-user-func.c new file mode 100755 index 0000000..2180a6b --- /dev/null +++ b/src/examples/dlt-example-user-func.c @@ -0,0 +1,339 @@ +/* + * Dlt Client console utilities - Diagnostic Log and Trace + * @licence app begin@ + * + * Copyright (C) 2011, BMW AG - Alexander Wenzel + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation. + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + * Public License, version 2.1, for more details. + * + * You should have received a copy of the GNU Lesser General Public License, version 2.1, along + * with this program; if not, see . + * + * Note that the copyright holders assume that the GNU Lesser General Public License, version 2.1, may + * also be applicable to programs even in cases in which the program is not a library in the technical sense. + * + * Linking DLT statically or dynamically with other modules is making a combined work based on DLT. You may + * license such other modules under the GNU Lesser General Public License, version 2.1. If you do not want to + * license your linked modules under the GNU Lesser General Public License, version 2.1, you + * may use the program under the following exception. + * + * As a special exception, the copyright holders of DLT give you permission to combine DLT + * with software programs or libraries that are released under any license unless such a combination is not + * permitted by the license of such a software program or library. You may copy and distribute such a + * system following the terms of the GNU Lesser General Public License, version 2.1, including this + * special exception, for DLT and the licenses of the other code concerned. + * + * Note that people who make modified versions of DLT are not obligated to grant this special exception + * for their modified versions; it is their choice whether to do so. The GNU Lesser General Public License, + * version 2.1, gives permission to release a modified version without this exception; this exception + * also makes it possible to release a modified version which carries forward this exception. + * + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-example-user-func.cpp ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Revision Control History ** +*******************************************************************************/ + +/* + * $LastChangedRevision: 1670 $ + * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $ + * $LastChangedBy$ + Initials Date Comment + aw 13.01.2010 initial + */ +#include +#include +#include /* for printf() and fprintf() */ +#include /* for atoi() and exit() */ +#include /* for memset() */ +#include /* for close() */ + +#include "dlt.h" +#include "dlt_common.h" /* for dlt_get_version() */ + +int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length); + +DltContext mycontext; +DltContextData mycontextdata; + +/** + * Print usage information of tool. + */ +void usage() +{ + char version[255]; + + dlt_get_version(version); + + printf("Usage: dlt-example-user-func [options] message\n"); + printf("Generate DLT messages and store them to file or send them to daemon.\n"); + printf("%s \n", version); + printf("Options:\n"); + printf(" -v Verbose mode\n"); + printf(" -d delay Milliseconds to wait between sending messages (Default: 500)\n"); + printf(" -f filename Use local log file instead of sending to daemon\n"); + printf(" -n count Number of messages to be generated (Default: 10)\n"); + printf(" -g Switch to non-verbose mode (Default: verbose mode)\n"); + printf(" -a Enable local printing of DLT messages (Default: disabled)\n"); +} + +/** + * Main function of tool. + */ +int main(int argc, char* argv[]) +{ + int vflag = 0; + int gflag = 0; + int aflag = 0; + char *dvalue = 0; + char *fvalue = 0; + char *nvalue = 0; + char *message = 0; + + int index; + int c; + char *text; + int num,maxnum; + int delay; + + opterr = 0; + + while ((c = getopt (argc, argv, "vgad:f:n:")) != -1) + { + switch (c) + { + case 'v': + { + vflag = 1; + break; + } + case 'g': + { + gflag = 1; + break; + } + case 'a': + { + aflag = 1; + break; + } + case 'd': + { + dvalue = optarg; + break; + } + case 'f': + { + fvalue = optarg; + break; + } + case 'n': + { + nvalue = optarg; + break; + } + case '?': + { + if (optopt == 'd' || optopt == 'f' || optopt == 'n') + { + fprintf (stderr, "Option -%c requires an argument.\n", optopt); + } + else if (isprint (optopt)) + { + fprintf (stderr, "Unknown option `-%c'.\n", optopt); + } + else + { + fprintf (stderr, "Unknown option character `\\x%x'.\n",optopt); + } + + /* unknown or wrong option used, show usage information and terminate */ + usage(); + return -1; + } + default: + { + abort (); + } + } + } + + for (index = optind; index < argc; index++) + { + message = argv[index]; + } + + if (message == 0) + { + /* no message, show usage and terminate */ + fprintf(stderr,"ERROR: No message selected\n"); + usage(); + return -1; + } + + if (fvalue) + { + /* DLT is intialised automatically, except another output target will be used */ + if (dlt_init_file(fvalue)<0) /* log to file */ + { + return -1; + } + } + + dlt_register_app("LOG","Test Application for Logging"); + + dlt_register_context(&mycontext,"TEST","Test Context for Logging"); + + dlt_register_injection_callback(&mycontext, 0xFFF, dlt_user_injection_callback); + + text = message; + + if (gflag) + { + dlt_nonverbose_mode(); + } + + if (aflag) + { + dlt_enable_local_print(); + } + + if (nvalue) + { + maxnum = atoi(nvalue); + } + else + { + maxnum = 10; + } + + if (dvalue) + { + delay = atoi(dvalue) * 1000; + } + else + { + delay = 500 * 1000; + } + + if (gflag) + { + /* DLT messages to test Fibex non-verbose description: dlt-example-non-verbose.xml */ + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,10)) + { + dlt_user_log_write_finish(&mycontextdata); + } + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,11)) + { + dlt_user_log_write_uint16(&mycontextdata,1011); + dlt_user_log_write_finish(&mycontextdata); + } + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,12)) + { + dlt_user_log_write_uint32(&mycontextdata,1012); + dlt_user_log_write_uint32(&mycontextdata,1013); + dlt_user_log_write_finish(&mycontextdata); + } + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,13)) + { + dlt_user_log_write_uint8(&mycontextdata,123); + dlt_user_log_write_float32(&mycontextdata,1.12); + dlt_user_log_write_finish(&mycontextdata); + } + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,14)) + { + dlt_user_log_write_string(&mycontextdata,"DEAD BEEF"); + dlt_user_log_write_finish(&mycontextdata); + } + } + + for (num=0;num0) + { + usleep(delay); + } + } + + dlt_unregister_context(&mycontext); + + dlt_unregister_app(); + + dlt_free(); + + return 0; +} + +int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length) +{ + char text[1024]; + + printf("Injection %d, Length=%d \n",service_id,length); + if (length>0) + { + dlt_print_mixed_string(text,1024,data,length,0); + printf("%s \n", text); + } + + return 0; +} diff --git a/src/examples/dlt-example-user.c b/src/examples/dlt-example-user.c new file mode 100755 index 0000000..98d4e3a --- /dev/null +++ b/src/examples/dlt-example-user.c @@ -0,0 +1,312 @@ +/* + * Dlt Client console utilities - Diagnostic Log and Trace + * @licence app begin@ + * + * Copyright (C) 2011, BMW AG - Alexander Wenzel + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation. + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + * Public License, version 2.1, for more details. + * + * You should have received a copy of the GNU Lesser General Public License, version 2.1, along + * with this program; if not, see . + * + * Note that the copyright holders assume that the GNU Lesser General Public License, version 2.1, may + * also be applicable to programs even in cases in which the program is not a library in the technical sense. + * + * Linking DLT statically or dynamically with other modules is making a combined work based on DLT. You may + * license such other modules under the GNU Lesser General Public License, version 2.1. If you do not want to + * license your linked modules under the GNU Lesser General Public License, version 2.1, you + * may use the program under the following exception. + * + * As a special exception, the copyright holders of DLT give you permission to combine DLT + * with software programs or libraries that are released under any license unless such a combination is not + * permitted by the license of such a software program or library. You may copy and distribute such a + * system following the terms of the GNU Lesser General Public License, version 2.1, including this + * special exception, for DLT and the licenses of the other code concerned. + * + * Note that people who make modified versions of DLT are not obligated to grant this special exception + * for their modified versions; it is their choice whether to do so. The GNU Lesser General Public License, + * version 2.1, gives permission to release a modified version without this exception; this exception + * also makes it possible to release a modified version which carries forward this exception. + * + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-example-user.c ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Revision Control History ** +*******************************************************************************/ + +/* + * $LastChangedRevision: 1670 $ + * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $ + * $LastChangedBy$ + Initials Date Comment + aw 13.01.2010 initial + */ +#include +#include +#include /* for printf() and fprintf() */ +#include /* for atoi() and exit() */ +#include /* for memset() */ +#include /* for close() */ + +#include "dlt.h" +#include "dlt_common.h" /* for dlt_get_version() */ + +int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length); + +DLT_DECLARE_CONTEXT(mycontext); + +/** + * Print usage information of tool. + */ +void usage() +{ + char version[255]; + + dlt_get_version(version); + + printf("Usage: dlt-example-user [options] message\n"); + printf("Generate DLT messages and store them to file or send them to daemon.\n"); + printf("%s \n", version); + printf("Options:\n"); + printf(" -v Verbose mode\n"); + printf(" -d delay Milliseconds to wait between sending messages (Default: 500)\n"); + printf(" -f filename Use local log file instead of sending to daemon\n"); + printf(" -n count Number of messages to be generated (Default: 10)\n"); + printf(" -g Switch to non-verbose mode (Default: verbose mode)\n"); + printf(" -a Enable local printing of DLT messages (Default: disabled)\n"); +} + +/** + * Main function of tool. + */ +int main(int argc, char* argv[]) +{ + int vflag = 0; + int gflag = 0; + int aflag = 0; + char *dvalue = 0; + char *fvalue = 0; + char *nvalue = 0; + char *message = 0; + + int index; + int c; + + char *text; + int num,maxnum; + int delay; + + opterr = 0; + + while ((c = getopt (argc, argv, "vgad:f:n:")) != -1) + { + switch (c) + { + case 'v': + { + vflag = 1; + break; + } + case 'g': + { + gflag = 1; + break; + } + case 'a': + { + aflag = 1; + break; + } + case 'd': + { + dvalue = optarg; + break; + } + case 'f': + { + fvalue = optarg; + break; + } + case 'n': + { + nvalue = optarg; + break; + } + case '?': + { + if (optopt == 'd' || optopt == 'f' || optopt == 'n') + { + fprintf (stderr, "Option -%c requires an argument.\n", optopt); + } + else if (isprint (optopt)) + { + fprintf (stderr, "Unknown option `-%c'.\n", optopt); + } + else + { + fprintf (stderr, "Unknown option character `\\x%x'.\n",optopt); + } + + /* unknown or wrong option used, show usage information and terminate */ + usage(); + return -1; + } + default: + { + abort (); + } + } + } + + for (index = optind; index < argc; index++) + { + message = argv[index]; + } + + if (message == 0) + { + /* no message, show usage and terminate */ + fprintf(stderr,"ERROR: No message selected\n"); + usage(); + return -1; + } + + if (fvalue) + { + /* DLT is intialised automatically, except another output target will be used */ + if (dlt_init_file(fvalue)<0) /* log to file */ + { + return -1; + } + } + + DLT_REGISTER_APP("LOG","Test Application for Logging"); + DLT_REGISTER_CONTEXT(mycontext,"TEST","Test Context for Logging"); + + DLT_REGISTER_INJECTION_CALLBACK(mycontext, 0xFFF, dlt_user_injection_callback); + + text = message; + + if (gflag) + { + DLT_NONVERBOSE_MODE(); + } + + if (aflag) + { + DLT_ENABLE_LOCAL_PRINT(); + } + + if (nvalue) + { + maxnum = atoi(nvalue); + } + else + { + maxnum = 10; + } + + if (dvalue) + { + delay = atoi(dvalue) * 1000; + } + else + { + delay = 500 * 1000; + } + + 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")); + } + + for (num=0;num0) + { + usleep(delay); + } + } + + sleep(1); + + DLT_UNREGISTER_CONTEXT(mycontext); + + DLT_UNREGISTER_APP(); + + dlt_free(); + + return 0; + +} + +int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length) +{ + char text[1024]; + + printf("Injection %d, Length=%d \n",service_id,length); + if (length>0) + { + dlt_print_mixed_string(text,1024,data,length,0); + printf("%s \n", text); + } + + return 0; +} + diff --git a/src/examples/wintestclient/ReadMe.txt b/src/examples/wintestclient/ReadMe.txt new file mode 100755 index 0000000..07566bd --- /dev/null +++ b/src/examples/wintestclient/ReadMe.txt @@ -0,0 +1,36 @@ +======================================================================== + KONSOLENANWENDUNG: wintestclient-Projektübersicht +======================================================================== + +Diese wintestclient-Anwendung wurde vom Anwendungs-Assistenten +für Sie erstellt. + +Die Datei enthält eine Zusammenfassung des Inhalts der Dateien, +aus denen die wintestclient-Anwendung besteht. + + +wintestclient.vcproj + Dies ist die Hauptprojektdatei für VC++-Projekte, die mit dem Anwendungs- + Assistenten generiert werden. + Sie enthält Informationen zu der Version von Visual C++, mit der die Datei + generiert wurde, sowie Informationen zu Plattformen, Konfigurationen und + Projektfeatures, die mit dem dem Anwendungs-Assistenten generiert werden. + +wintestclient.cpp + Dies ist die Hauptquelldatei der Anwendung. + +///////////////////////////////////////////////////////////////////////////// +Andere Standarddateien: + +StdAfx.h, StdAfx.cpp + Mit diesen Dateien werden eine vorkompilierte Headerdatei (PCH) + mit dem Namen wintestclient.pch sowie eine vorkompilierte + Typendatei mit dem Namen StdAfx.obj erstellt. + +///////////////////////////////////////////////////////////////////////////// +Weitere Hinweise: + +Der Anwendungs-Assistent verwendet "TODO:"-Kommentare, um die Teile des +Quellcodes anzugeben, die hinzugefügt oder bearbeitet werden müssen. + +///////////////////////////////////////////////////////////////////////////// diff --git a/src/examples/wintestclient/stdafx.cpp b/src/examples/wintestclient/stdafx.cpp new file mode 100755 index 0000000..859a62f --- /dev/null +++ b/src/examples/wintestclient/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : Quelldatei, die nur die Standard-Includes einbindet. +// wintestclient.pch ist der vorkompilierte Header. +// stdafx.obj enthält die vorkompilierten Typinformationen. + +#include "stdafx.h" + +// TODO: Auf zusätzliche Header verweisen, die in STDAFX.H +// und nicht in dieser Datei erforderlich sind. diff --git a/src/examples/wintestclient/stdafx.h b/src/examples/wintestclient/stdafx.h new file mode 100755 index 0000000..c2580d9 --- /dev/null +++ b/src/examples/wintestclient/stdafx.h @@ -0,0 +1,15 @@ +// stdafx.h : Includedatei für Standardsystem-Includedateien +// oder häufig verwendete projektspezifische Includedateien, +// die nur in unregelmäßigen Abständen geändert werden. +// + +#pragma once + +#include "targetver.h" + +#include +#include + + + +// TODO: Hier auf zusätzliche Header, die das Programm erfordert, verweisen. diff --git a/src/examples/wintestclient/targetver.h b/src/examples/wintestclient/targetver.h new file mode 100755 index 0000000..abf0fc6 --- /dev/null +++ b/src/examples/wintestclient/targetver.h @@ -0,0 +1,13 @@ +#pragma once + +// Die folgenden Makros definieren die mindestens erforderliche Plattform. Die mindestens erforderliche Plattform +// ist die früheste Windows-, Internet Explorer-Version usw., die über die erforderlichen Features zur Ausführung +// Ihrer Anwendung verfügt. Die Makros aktivieren alle Funktionen, die auf den Plattformversionen bis +// einschließlich der angegebenen Version verfügbar sind. + +// Ändern Sie folgende Definitionen für Plattformen, die älter als die unten angegebenen sind. +// Unter MSDN finden Sie die neuesten Informationen über die entsprechenden Werte für die unterschiedlichen Plattformen. +#ifndef _WIN32_WINNT // Gibt an, dass Windows Vista die mindestens erforderliche Plattform ist. +#define _WIN32_WINNT 0x0600 // Ändern Sie den entsprechenden Wert, um auf andere Versionen von Windows abzuzielen. +#endif + diff --git a/src/examples/wintestclient/wintestclient.cpp b/src/examples/wintestclient/wintestclient.cpp new file mode 100755 index 0000000..78225b2 --- /dev/null +++ b/src/examples/wintestclient/wintestclient.cpp @@ -0,0 +1,65 @@ +/******************************************************************************* +** ** +** SRC-MODULE: wintestclient.cpp ** +** ** +** TARGET : Windows ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#include "stdafx.h" +#include "winclientlib.h" + +#include + +static int counter=0; + +int My_message_Callback(DltMessage *message, void *data) +{ + counter++; + + printf("Message received, %d\n", counter); + return 0; +} + +int _tmain(int argc, _TCHAR* argv[]) +{ + char text[] = "Hello from WinTestClient"; + + printf("WinTestClient\n"); + + Dlt_RegisterMessageCallback(My_message_Callback); + + Dlt_StartClient("192.168.56.101"); + + Dlt_InjectCall("LOG","TEST",0xFFF,(uint8_t*)text,strlen(text)+1); + + getchar(); + + Dlt_ExitClient(); + + return 0; +} + diff --git a/src/examples/wintestclient/wintestclient.sln b/src/examples/wintestclient/wintestclient.sln new file mode 100755 index 0000000..a086994 --- /dev/null +++ b/src/examples/wintestclient/wintestclient.sln @@ -0,0 +1,29 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wintestclient", "wintestclient.vcproj", "{C9C90C2B-DD7F-4EAD-B240-E35860756736}" + ProjectSection(ProjectDependencies) = postProject + {F3674DAE-F85A-428C-85FE-3529671DF6ED} = {F3674DAE-F85A-428C-85FE-3529671DF6ED} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winclientlib", "..\..\winclientlib\winclientlib.vcproj", "{F3674DAE-F85A-428C-85FE-3529671DF6ED}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C9C90C2B-DD7F-4EAD-B240-E35860756736}.Debug|Win32.ActiveCfg = Debug|Win32 + {C9C90C2B-DD7F-4EAD-B240-E35860756736}.Debug|Win32.Build.0 = Debug|Win32 + {C9C90C2B-DD7F-4EAD-B240-E35860756736}.Release|Win32.ActiveCfg = Release|Win32 + {C9C90C2B-DD7F-4EAD-B240-E35860756736}.Release|Win32.Build.0 = Release|Win32 + {F3674DAE-F85A-428C-85FE-3529671DF6ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {F3674DAE-F85A-428C-85FE-3529671DF6ED}.Debug|Win32.Build.0 = Debug|Win32 + {F3674DAE-F85A-428C-85FE-3529671DF6ED}.Release|Win32.ActiveCfg = Release|Win32 + {F3674DAE-F85A-428C-85FE-3529671DF6ED}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/examples/wintestclient/wintestclient.vcproj b/src/examples/wintestclient/wintestclient.vcproj new file mode 100755 index 0000000..c1f3f17 --- /dev/null +++ b/src/examples/wintestclient/wintestclient.vcproj @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.1