1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
|
DLT - Automotive Diagnostic Log and Trace
Version: 2.6.0
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.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
|