一、整体架构
DLT Daemon是一个后台服务程序;DLT Library是用户使用DLT时需要连接的动态库;DLT Client是上位机程序,用于展示日志,比如DLT viewer程序。这三个组件之间的连接方式如下图
二、优缺点
优点:
1、本地存储可以指定缓存多少字节后写磁盘
2、可以动态修改保存的日志等级
3、可以修改dlt.conf来控制是否打印到console
4、可以电脑端用dl-viewer来实时抓取日志并保存
5、性能比较稳定
缺点:
暂时未发现
三、使用说明(ubuntu中调试)
3.1 代码下载与编译过程
获取dlt-daemon源码
git clone https://github.com/GENIVI/dlt-daemon.git
cd dlt-daemon
mkdir build
cd build
apt-get update
apt-get install –y build-essential
cmake ..
make
make install
ldconfig
dlt-daemon编译安装就完成了
注释:在/dlt-daemon/build/src/lib下生成libdlt.so.2.18.8,libdlt.so.2和libdlt.so是软链接文件,如果要适应其他平台,只要交叉编译就好。生成的dlt-daemon在/dlt-daemon/build/src/daemon下
获取dlt-viewer工具
git clone https://github.com/GENIVI/dlt-viewer.git
mkdir build
cd build
apt-get install ros-melodic-qt-create
apt-get install ros-melodic-qt-build
apt-get install libqt5serialport5-dev libudev-dev
cmake ..
make
这时,build/bin目录下就生成了可执行文件dlt-viewer
3.2 构造测试进程
日志等级如下:
example.c内容如下:
#include <stdio.h>
#include <dlt.h>
DLT_DECLARE_CONTEXT(myContext1);
DLT_DECLARE_CONTEXT(myContext2);
DLT_DECLARE_CONTEXT(myContext3);
int main()
{
DLT_REGISTER_APP(“MAPP”,”Application for Logging”);
DLT_REGISTER_CONTEXT(myContext1,”ai”,”Test1 1 for log”);
DLT_REGISTER_CONTEXT(myContext2,”chen”,”Test2 2 for log”);
D