TODO/Features: ============== (19.1.2011) Tasks: - dlt-daemon should support only output of --version - dlt-receive serial does not set all serial port parameters, fails on nbtserver2 Old: - File transfer of Screenshots and other files over DLT - Optimization of sizes: Pipes, TCP connection buffers - UTF support - Support for enabling and disabling optional header fields - Support for pre-defined factory default settings in DLT daemon - Store overflow messages in ring-buffer (and signaling for discarded messages stored in ring-buffer) - Doc of function groups in dlt_common.h - Return values for Macros - Traffic shaping within DLT daemon - Verbose information of parameters including variable names and units - DLT_LOG_PRINTF interface - Remove buffer from DltContext, pass it as parameter to function calls.... - Review and rework from review DECLINED: ========= - Individual Macros for specific log level: DLT_LOG_WARN - DLT_LOG without mycontext - Interface like printf(type, value, type, value, ...) DONE: ===== 2.2.0: - Changed contents of DltContext, added DltContextData, several changes in low level API functions - Locking scheme changed, minimized usage of locks 2.0.0: - dlt-convert, -o option - verbose mode, if applicable - Ctrl-C Handler, delete pipes and close handles - Log-output (as function) - Handling of high data rates - Send message buffer overflow marker - Definition of paket format between user lib and daemon - Set correct ecu id in storage header - console tools, same options as in daemon - Documentation - Doxygen (lib, daemon) - Compiling under Windows with mingw - Console tools: - dlt-receive: -m option missing - Support for generic network traces - Adaptor for forwarding input from UDP port to DLT daemon - Adaptor for forwarding input from stdin to DLT daemon - Documentation - Doxygen - Word/OpenOffice file - Include last changes (removal of DltUser in all calls) - Communication between User - Daemon - Internal structure of DLT daemon - Internal structure of DLT library - Not MT safe - History buffer in Daemon - Review functional interface, remove DltUser* from each call. - Viewer: New connection: Insert last used connection address/name - Sparse ring buffer - make dist works again - Examination of transfer of dlt messages over serial link - Support for serial link in dlt-receive (choosable, either TCP or serial connection) - Support for serial link in dlt-daemon (optional, serial connection can be added) - Information incl. package version, package version state and overall svn version added to all programs - TCP Frameing header - Synchronisation header between daemon and client - Support for TCP/serial connection frameing header (auto-sense) - Support for building packackge without development files: sudo make nodev_rpm bzw. sudo make nodev_deb - Changed interface to latest common understanding - Changed documentation to latest common understanding - One spec file with multiple sub-packets - MOST code to be removed due to license issues -> Plugins, can be enabled by configure --enable-most-plugin - Revision number for make dist - Control message: reset to factory default, set default log level and default trace status - DLT library: Description handling (Save and transmit AppId, ContextId) - Viewer: Filter in context-sensitive menu, when to show when to hide - DLT library: dlt_filter_add(): Allow each apid/ctid combination only once. - Viewer: If no plugin is loaded, hide menu and register tab - Description handling (Store description) - Control Message Get Log Info, Mode 7 response - Viewer: Disable loading of default description / dialog if no plugins available - Daemon: Support for Big-/Little endian, -> Flag DLT_HTYP_MSBF and access functions - Test-Framework - Viewer: Support for Big Endian (also in dlt-convert) - Viewer: DATE, TIME in version info string (evtl. Architecture BE, LE) - get_serial_speed->convert_serial_speed - #include ..., without dlt/, set in configure environment - Support for Non-Verbose Mode 2.0.1: - Support for serial interface 2.0.2: - Store and Load applications including descriptions - DLT library: Queue (Ring-buffer) for injection messages - Fixed 32 bit swap - BE/LE support tested - Implemented, but not tested: Support for 64 Bit plattforms - Compiles now for Artis Box (all, without GUI) - Compiles now with Visual C++ under Windows (GUI only) - Sending optional timestamp (tmsp) in standardheader extras, implemented in user library/daemon/viewer - Showing optional timestamp (tmsp) from standardheader extras - User library: History Buffer for Startup + Overflow - Support for ECU ID settings - Set maximum logged log level/trace status for application triggered by application - DLT Library: If DLT daemon is not running, print dlt message as ASCII to stdout - Support for more than one plugin description file - GUI: Show, if plugin description is currently loaded - GUI: RMB on plugin allows loading of plugin description - Daemon: Store overflow message in history buffer - Daemon: Open TODOs in source code - dlt-convert: Fixed printing of filter ids (apid, ctid) - Fixed: Writing local dlt files and reading them in is broken - Write ECU ID only in DLT daemon; not in DLT lib/user 2.0.3: - Fixed bug in DLT_IMPORT_CONTEXT - Fixed bug in handling of description strings - Added several checks within dlt_user.c - Moved declaration of DltMostMessageHeader type to seperate file - Added several checks within dlt-daemon.c and dlt_daemon_common.c - Reduced load in dlt-viewer if idle - Fixed bug in RMB Click for loading plugin description - Relaxed checks for passing messages to the plugin handler - Tested MOST Plugin - modified behaviour of settings in dlt-viewer - always open tmpfile in dlt-viewer if nothing other is specified - moved dlt protocol specificas to own header file - 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 dlt-user program) "FORCE_ON" (always do local print) "FORCE_OFF" (never do local print) E.g. set in bash with 'export DLT_LOCAL_PRINT_MODE="FORCE_ON"' - Support for float and double values - Added client library code for linux - Rewrote dlt-receiver and dlt-test-client to use the client library code - Fixed bug in dlt_plugin_print() and dlt_most_payload() - Added OnFileClear() in dlt-viewer - Client Library: Test function to send an injection message - fixed "make dist" - First code fragments for winclientlib added - Fixed parsing and printing of MOST messages 2.0.4-Pre1 - Fixed winclientlib and wintestclient - Added dlt_message_print-* functions and used them in several files - Initial support for FIBEX Parser for non-verbose mode (payload and header) - Known Issue: Filtering of decoded non-verbose messages is not possible - added event handler for windows version - set default log level for adaptors to DLT_LOG_INFO - print out number of arguments in non-verbose mode 2.0.4: - Plausibility check (byteLength) of parsed FIBEX file - Check length of message against ĺength of FIBEX frame, if IDs matches - Fixed bug in dlt_print_mixed_string() - Changed license from ADRLPD to ADRLRM - Added semaphore macros for locking to enable multi-threading - Added multi-threading example in src/tests/dlt-test-user-multi - Changed injection interface from direct usage to callback - Set request log level and trace status immediately in dlt_set_application_ll_ts_limit() - Implemented receiver thread in DLT user library - Fixed bug in dlt_daemon_contexts_get_next_con_id() - dlt_daemon_process_user_message_unregister_application() also removes now all corresponding contexts - Added security check to dlt_daemon_control_get_log_info() - Fixed output of variable length strings in non-verbose mode - Fix in daemon: Register app now open the connection to the user-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 - Added signal-handler and atexit-handler for cleanup in DLT user library (calls dlt_free();) 2.0.5: - Fixed bug in dlt_filter_delete() - Fixed bug in viewerFrame::FilterDelete() - 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. Fix: Ignore PIPE signals in daemon - Fixed bug in dlt_user_log_out2() and dlt_user_log_out3() - Fixed bug in void viewerFrame::OnSetDefaultLogLevel() - Enhanced dlt-viewer: Show default log level - Optimized dlt_daemon_contexts_get_next_con_id() - Fixed bug in dlt_daemon_process_user_message_unregister_application() - Application/Context removal in dlt-daemon on crash/termination of application - Renamed Filter->New.. to Filter->Delete all filter - dlt_register_context_ll_ts() and Macro therefore added - Changed daemon to support dlt_register_context_ll_ts() - Moved DltUser from dlt_user_private.h to dlt_user.h - Added dlt_common.h to dlt.h - Enhanced performance of dlt-viewer - dlt_message_payload() has now additional type DLT_OUTPUT_ASCII_LIMITED - print warning, if context was already registered - dlt daemon: Enhanced support for get_log_info (all modes, 1 app all contexts, 1 app 1 context, all apps all contexts) - reattach to daemon fixed in DLT user library - dlt daemon: 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 - optimized dlt_daemon_context_find(), dlt_daemon_application_find(): Now O(log n) instead O(n) - dlt_message_header_flags() and flags implemented - removed dlt_daemon_contexts_count_app_ids(), dlt_daemon_contexts_get_next_app_id() - optimized dlt_daemon_control_get_log_info() - optimized dlt_daemon_process_user_message_unregister_application() - optimized dlt_daemon_process_user_message_set_app_ll_ts() - removed dlt_daemon_contexts_count_con_ids(), dlt_daemon_contexts_get_next_con_id() - optimized dlt_daemon_application_del() - removed dlt_daemon_application_find_index(), dlt_daemon_context_find_index() - optimized dlt_daemon_application_add(), dlt_daemon_context_add() - removed dlt_daemon_application_find_insertpos(), dlt_daemon_context_find_insertpos() - Extended dlt-test-user and dlt-test-client 2.1.0-Pre1: - Combined dlt-test-user-multi and dlt-test-many to dlt-test-stress - Extended dlt-test-client - Fixed minor bug, it's possible now to compile the dlt_viewer again under mingw under Windows - Fixed minor bug in dlt-test-user, test3f: Wrong counter was used - dlt_common.c: Functions dlt_file_read_raw() and dlt_file_read_header_raw() added - Fixed minor bug in non-verbose parser - Added support for raw messages in nonverbose mode - Removed filtering of messages during writing to a file in dlt_viewer (wx version) - Moved dlt_viewer (wx version) to seperate project - Removed plugin support from dlt_receive and dlt_convert - DLT library: Injection tables are now dynamically allocated - DLT library: Contexts are now dynamically allocated - Removed DLT_LOG calls in injection functions due to problems (application hangs) - Added stress test3 to dlt-test-stress - Added help to dlt-test-stress, printed if no test was selected - Added dlt-test-internal - 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 2.1.0-Pre2: - Added dlt_float_types.h, and used them in dlt_user.c and dlt_common.c - Added security checks to functions using float32_t and float64_t - Extended documentation 2.1.0-Pre3: - Added optional syncing to serial header in DLT daemon - Removed signal handlers from dlt_user.c; ignore SIGPIPE signal; atexit() handler still exists 2.1.0: - Support for keep-alive messages, realized as thread, locking added to send functions - Raw interface for DLT Embedded in DLT User Lib (function: int dlt_forward_msg())