DLT - Automotive Diagnostic Log and Trace Version: 2.6.1 This component provides a standardised log and trace interface, based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. This component can be used by GENIVI components and other applications as logging facility providing - the DLT shared library - the DLT daemon - the DLT daemon adaptors - the DLT client console utilities - the DLT test applications The DLT daemon is the central component in GENIVI, which gathers all logs and traces from the DLT user applications. The logs and traces are stored optionally directly in a file in the ECU. The DLT daemon forwards all logs and traces to a connected DLT client. The DLT client can send control messages to the daemon, e.g. to set individual log levels of applications and contexts or get the list of applications and contexts registered in the DLT daemon. Homepage -------- https://collab.genivi.org/wiki/display/geniviproj/Automotive+DLT+%28Diagnostic+Log+and+Trace%29 License ------- Full information on the license for this software is available in the "LICENSE.txt" file. The full MPL license is in "MPL.txt." Contact ------- Alexander Wenzel (Alexander.AW.Wenzel@bmw.de) Christian Muck (christian.muck@bmw.de) Changes in this release ----------------------- 2.6.1 * Commented the dlt_log info of buffer size information out * Corrected the default values of dlt.conf * Added define statement for initial value of file descriptor (-1). Updated the user_handle of the daemon and user * [GDLT-86] Fixed dlt_free uses absolute file path /tmp and not DLT_USER_DIR define * [D4099] Check for duplicate file handles, and clean them up if found * [GDLT-85] Pipes opened multiple times for the same application pid fixed. * [GDLT-82] Child process inherits file descriptors openend by their parent fixed * [GDLT-84] Fixed calling of DLT_LOG injection callback * [GDLT-70] Check for malloc failures and return errors where applicable. * [GDLT-47] Avoid discarding old contexts if no new memory can be allocated when resizing contexts array. * [GDLT-69] Fixed bug in dlt-test-multi-process shares context between threads * [GDLT-3] Fixed missing semaphore around dlt_buffer_push3 2.6.0 * [GDLT-75] Use old style directory check on startup * [GENDLT-21] Move mcnt from DltContextData to DltContext * [GENDLT-15] Fixes to previous integrations from review * [GENDLT-15] Safe re-allocations for databuffer * [GENDLT-15] use the correct TEXTBUFSIZE * [GENDLT-15] Optimize usege of strlen. Improved log level handling * [GENDLT-15] Avoid buffer overrun with snprintf() * [GENDLT-15] Check return value of dlt_user_log_write_start(_id) correctly * [GENDLT-15] Reduce the number of applications if allocation fails * [GENDLT-15] Make dlt_user_log_write_start inline * [GENDLT-15] Improve errore checking in dlt_user_log_write_start_id * [GENDLT-15] Use databussersize to avoid reallocations * [GENDLT-15] Rename buffer size constant to avoid confusion * [GENDLT-15] Better error handling when writing to FIFO * [GENDLT-15] Remove duplicate msg initialization. * [GENDLT-15] Optimize away multiple uses of strlen for one check * [GDLT-4] Improve queue handling, allow for other messages while transferring a large file * [GDLT-4] Limit maximum file queue to 256 files * [GDLT-4] First working version of inotify for file transfer * [GDLT-2] First test for filetransfer change * [GDLT-2] Change to gzip wrapper format. Change file signature creation to account for file size, as inode number maybe duplicate when deleting and creating new files * [GDLT-2] Fix bug while reading the options * [GDLT-2] Allow for enabling/disabling compression for the separate directories * [GDLT-2] Check if the file is already compressed * [GDLT-2] Link with libz, fix a typo * [GDLT-2] zlib based compression for dlt-system * Cleaned some warnings generated from removing stale old code 2.5.2 * Change to Mozilla Public License Version 2.0 2.5.1 * Fixed bug with comparinson between signed and unsigned integer and protection for a buffer overflow. * Modified library for new test cases to corrupt data - related to the bug fix for testing signed and unsigned integer * [GENDLT-20] Fixed bug to use old cmake version for copy file * Replaced dlt-test-filetransfer-image.png with an own created image * [GENDLT-21] Fixed bug: Message Counter (MCNT) should be increased but is always 0 2.5.0 Improvements * [GDLT-53] Man pages installation included * .cproject and .project file for Eclipse included * Update of doxygen documentation and generation * Rework of root CMake project file, e.g. structure and compile options * [GENDLT-16] Create variable in dlt-system.conf to configure the timeout of the filetransfer * [GDLT-37] Extend automated test tools for parallel process/threads tests * [GSW-138] API Extension to resend the log messages in the user buffer Bugfixes * [GDLT-36] Prefixing of dlt_version.h fixed * [GDLT-31] Tracefile content stored different under Ubuntu 64 bit version compared to Ubuntu/Win 32 Bit version fixed * [GDLT-35] Compile warnings fixed * [GSW-137] Wrong include gives error on compailing against dlt fixed 2.4.2 Improvements * Added dynamic increasable ringbuffers to user lib and daemon. * dlt-system filetransfer now recovers when file is deleted during filetransfer. * Added check of file size when starting and deleting files during filetransfer * Added chekc of shm buffer availability when push to shm * Create abstraction of shm buffer management. Bugfixes * Fixed buffer overflow problem in buffer library. * Disabled share memory by default - disabled completely shared memory if not enabled. 2.4.1 Improvements * Added dynamic increasable ringbuffers to user lib and dlt-daemon. Bugfixes * Created abstraction of shm buffer management. * dlt-system filetransfer now recovers when file is deleted during filetransfer. * Added check of file size when starting and deleting files during filetransfer. * Added check of shm buffer availability when push to shm. 2.4.1 Improvements * Added internal logging facility to stdout, syslog or local file, configurable in configuration file. * Added deamonise and signal handlers to dlt-system. * Added manual pages. * Added new API dlt_check_library_version() function. Bugfixes * Fifo or SHM mode can be changed by compiler switch. * Replaced SHM implementation. * Fixed shared memory problem in DLT library during startup, if application is started before daemon. * Fixed syslog adapter in dlt-system. * Reverted API changes in dlt_register_app() function. * DLT user library does not set the stack size of the receiver thread anymore. 2.4.0 Improvements * New config files /etc/dlt.conf and /etc/dlt-system.conf must be adapted to the needs * New DLT user lib API dlt_get_log_state() to get DLT client state * New DLT user lib API to manage flow control (needed for bulk data logging) * New DLT user lib API dlt_set_log_mode() to enable/disable internal/external trace * New application dlt-system (filtransfer, proc file system logger,syslog udp adapter included) * [GSW-66] File transfer over DLT. * [GSW-43] Performance improvement for bulk data over DLT. * [GSW-61] Replace command line parameter by configuration file * [GSW-13] Support for keep-alive messages as configuration parameter * [GSW-60] Extended offline DLT Trace memory handling. * Removed filter implementation 2.3.0 Improvements * [GSW-16] Systemd configuration for syslog to DLT dapater * [GSW-62] DLT Library version check * [GSW-28] Directory where persistent data is stored is not configurable * [GSW-59] Statically allocated large array * Added init script for Ubuntu * Optional adding of gprof compile flags Bugfixes * sprintf with float64 fails on ARM platform; disabled this function on QRM platform. 2.2.0: Improvements * Moved build process completely to cmake * Added commandline parameter -u to set ring buffer size Bugfixes * Reduced cpu consumption needed by applications using DLT library * Increased default ringbuffer size to 10024 bytes * Changed delay in receiver routine to 100ms 2.1.0: Improvements * DLT Viewer (QT) * New dlt viewer (QT-based) implementated * Moved to seperate project, see extra Release Notes for DLT Viewer (QT) * DLT Viewer (WX) - Deprecated * Old dlt viewer (WX) is removed now from package generation * Moved to seperate project * Removed filtering of messages during writing to a file * DLT library: * Functions dlt_file_read_raw() and dlt_file_read_header_raw() added * Added support for raw messages in nonverbose mode * Injection tables are now dynamically allocated * Contexts are now dynamically allocated * Added seperate file for platform float types (dlt_float_types.h) and used this types. Attention: This file must be adapted to each target platform. * Removed signal handlers from dlt_user.c; SIGPIPE signal is ignored; atexit() handler still exists * Function dlt_forward_msg() added * DLT daemon: * Small optimization in get_log_info() for one searched application with one searched context, which is existing in the context table of the dlt daemon * Optional syncing to serial header added * Support for keep-alive messages, realized as seperate thread * General: * Combined dlt-test-user-multi and dlt-test-many to dlt-test-stress * Extended dlt-test-client * Added stress test3 to dlt-test-stress * Added help to dlt-test-stress, printed if no test was selected * Added dlt-test-internal * Removed plugin support from dlt_receive and dlt_convert * Extended documentation Bugfixes: * dlt viewer (wx): Fixed minor bug, it's possible now to compile the dlt viewer (wx) again under mingw under Windows * DLT test programs: Fixed minor bug in dlt-test-user, test3f: Wrong counter was used * Removed DLT_LOG calls in injection functions due to problems (application hangs) 2.0.5: Improvements * DLT viewer: * The default log level is now shown, if already known * Renamed Filter->New.. to Filter->Delete all filter * Enhanced performance * DLT library: * On crash or termination of application using the DLT library, the registered context and application IDs are removed properly (and are deregistered from DLT daemon) * dlt_register_context_ll_ts() and Macro therefore added * dlt_message_payload() has now additional type DLT_OUTPUT_ASCII_LIMITED * dlt_message_header_flags() added * DLT daemon: * Support for dlt_register_context_ll_ts() added * Enhanced support for get_log_info (all modes, 1 app all contexts, 1 app 1 context, all apps all contexts) * Added -r option, for automatic sending context information to dlt client; if no client connection is available, this information is stored in history buffer in dlt daemon * Several internal performance optimizations: * dlt_daemon_context_find(), dlt_daemon_application_find(): Now O(log n) instead O(n) * Several functions optimized * Unnecessary functions removed * General: * Moved definition of struct DltUser from dlt_user_private.h to dlt_user.h * dlt.h includes now dlt_common.h * Extended dlt-test-user and dlt-test-client applications Bugfixes: * DLT daemon/DLT library: Fixed bug in Filter Delete * DLT daemon: Fixed bug in dlt daemon which leads to a crash, when starting/stoping application, then sending new log level to context of this (now not running) application. * DLT daemon: Fixed bug in unregister application * DLT daemon: Fixed bug in reattach to daemon * DLT library: Fixed bug in send function * DLT viewer: Fixed bug in set default log level 2.0.4: Attention: * License has changed from ADRLPD to ADRLRM Improvements * DLT viewer: * Support for non-verbose mode (as FIBEX plugin) * DLT library: * Support for non-verbose mode (as FIBEX plugin) * dlt_message_print_* functions added * Semaphore calls added to enable multi-threading * Changed injection interface from direct usage to callback * Requested log level and trace status is set immediately in dlt_set_application_ll_ts_limit() * Implemented receiver thread in DLT library (used for setting of log level/trace status and for injection handling) * Added signal-handler and atexit-handler for cleanup (calls dlt_free()) * General: * Added implementation of clientlib and testclient for Windows * Both adaptors sends now log messages with log level DLT_LOG_INFO * Multi-threading example in src/tests/dlt-test-user-multi added Bugfixes: * DLT viewer: Right mouse button for loading plugin descriptions (MOST-/Fibex-XML File) is now working (also in Windows) * DLT library: Fixed bug in dlt_print_mixed_string() * DLT library: Fixed bug in dlt_daemon_contexts_get_next_con_id() * DLT daemon: dlt_daemon_process_user_message_unregister_application() also removes now all corresponding contexts * DLT daemon: Added security check to dlt_daemon_control_get_log_info() in order to avoid crash which occured under special circumstances * DLT daemon: Register app now opens the connection to the DLT library, unregister app closes the connection (was before in register context) * Added -lrt to package config file * Resolved dependency from dlt_client.h to dlt_common.h -> dlt_common.h is now public 2.0.3: Improvements * DLT viewer: * Reduced load if idle * Modified behaviour of settings in dlt-viewer * Always open tmpfile in dlt-viewer if nothing other is specified * File->Clear added * DLT daemon: * Added several checks within code * DLT library: * Added several checks within code * Enhanced local print modes: a environment variable now can be used to control local print mode: Variable: DLT_LOCAL_PRINT_MODE Values : "AUTOMATIC" (local print only, if dlt-daemon connection is not available at startup of program using DLT library) "FORCE_ON" (always do local print) "FORCE_OFF" (never do local print) * A client library for writing console client applications (Linux) is now available. dlt-receiver and dlt-test-client uses this new library code * General: * Added seperate file for DltMostMessageHeader type * Added seperate file for DLT protocol values * Relaxed checks for passing trace messages to plugin handler * Tested and improved MOST plugin * Support for float (32 Bit) and double (64 Bit) values * Code fragments for winclientlib and wintestclient added Bugfixes * DLT library: Fixed bug in DLT_IMPORT_CONTEXT * DLT library: Fixed bug in dlt_plugin_print() and dlt_most_payload() * DLT daemon and library: Fixed bug in handling of description strings * DLT viewer: Fixed bug in RMB Click for loading plugin description * General: Fixed parsing and printing of MOST messages * Several small bugs fixed 2.0.2: Improvements * DLT viewer: * Showing timestamp * Compiles now with MS Visual C++ * Support for loading multiple descriptions of plugins is now possible (*) * Plugin description can be loaded individually by Right-mouse-button (*) * DLT daemon: * Overflow message is now stored in history buffer, if necessary * DLT library: * Ring-buffer for injection messages implemented * History Buffer for Startup + Overflow implemented * Setting of maximum logged log level/trace status for application triggered by application is now possible * Optional local output of Log message is now possible * General: * Support for ARTIS Box implemented (all, without GUI) * Support for timestamp in standardheader extras added * Support for ECU ID in standardheader extras added; this value can be overwritten by the DLT daemon (*) = feature not enabled in binary build Bugfixes * DLT viewer: * Store and load application and context description fixed * Fixed crash on termination of Windows version * DLT console utilities: * Fixed printing of filter ids * General: * Big Endian/Little Endian support tested and fixed * Fixed writing and reading of locally created dlt files * Several smaller bugs fixed 2.0.1: Improvements * Full support for serial connection between DLT daemon and DLT Viewer Bugfixes * Several small bugs fixed in DLT Viewer 2.0.0: Improvments * Initial Release of new DLT daemon Version 2 including the new DLT Client DLT Viewer Bug fixes * Initial Release Known issues in this release ---------------------------- * DLT library: Usage of dlt_user_log_write_float64() and DLT_FLOAT64() leads to "Illegal instruction (core dumped)" on ARM target. * DLT library: Nested calls to DLT_LOG_ ... are not supported, and will lead to a deadlock. API Documentation: ------------------ * GENIVI_UserManual_DLT_Daemon.odt API Documentaion and Programming HowTo * Doxygen documentation, can be created with "make doxygen", will then be located at doc/html/index.htm, or doc/rtf/refman.rtf Other Documents ---------------- * GENIVI_UserManual_DLT_Client.odt User Manual for DLT programs * GENIVI_Specification_DLT_Daemon.odt Internals of DLT daemon and DLT library Notes ----- * Moved to cmake build process Software/Hardware ----------------- * Developped with: * Ubuntu Linux 9.10 32-bit / Intel PC