dlt-daemon安装教程

获取dlt-daemon源码

git clone https://github.com/GENIVI/dlt-daemon.git
cd dlt-daemon
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

dlt-daemon 编译安装就完成了。

批注: linux下使用sudo apt install dlt-daemon是不是也可以??

dlt-viewer

现装依赖包 sudo apt-get install libqt5serialport5-dev libqt5serialport5
批注:也可以使用 sudo apt install dlt-viewer 完成安装。

git clone https://github.com/GENIVI/dlt-viewer.git
mkdir build
cd build
cmake ..
make

这时,build/bin目录下就生成了可执行文件dlt-viewer

生成测试程序

cd dlt-daemon/examples/example1/
mkdir build
cd build
cmake ..
make

dlt-example1的测试程序就生成好了。具体如何添加dlt_log就餐控example下的几个例子。

启动dlt-daemon

首先复制dlt.conf文件

cd dlt-daemon/src/daemon/
sudo cp dlt.conf /etc/
sudo gedit /etc/dlt.conf

修改dlt.conf:

LoggingMode = 2
OfflineTraceDirectory = /tmp
OfflineTraceFileSize = 1000000
OfflineTraceMaxSize = 4000000

OfflineTraceFileNameTimestampBased = 1
OfflineLogstorageDirPath = /opt

链接配置文件:

dlt-daemon -c /etc/dlt.conf

启动log接收端:

dlt-receive -o /tmp/log.dlt localhost

启动example1:

dlt-daemon/examples/example1/build$ sudo ./dlt-example1 

这时,/tmp/log.dlt 文件就可以用dlt-viewer查看啦。

自定义样例

在home建立test文件夹,然后写入
example.c

#include <stdio.h>
#include <dlt.h>

DLT_DECLARE_CONTEXT(myContext1);
DLT_DECLARE_CONTEXT(myContext2);
DLT_DECLARE_CONTEXT(myContext3);

int main()
{
/* register application */
DLT_REGISTER_APP("MAPP","Test Application for Logging");

/* register all contexts */
DLT_REGISTER_CONTEXT(myContext1,"TES1","Test Context 1 for Logging");
DLT_REGISTER_CONTEXT(myContext2,"TES2","Test Context 2 for Logging");
DLT_REGISTER_CONTEXT(myContext3,"TES3","Test Context 3 for Logging");

/* Write your logs */
DLT_LOG(myContext1,DLT_LOG_ERROR,DLT_INT(5),DLT_STRING("This is a error"));
DLT_LOG(myContext2,DLT_LOG_INFO,DLT_INT(5),DLT_STRING("But this only information"));
DLT_LOG(myContext3,DLT_LOG_DEBUG,DLT_INT(5),DLT_STRING("But this only information"));

/* Sleep some time to avoid a flaw in dlt-daemon that would eat your messages
 if you deregister while it still processes your registration */
sleep(3);

/* unregister your contexts */
DLT_UNREGISTER_CONTEXT(myContext1);
DLT_UNREGISTER_CONTEXT(myContext2);
DLT_UNREGISTER_CONTEXT(myContext3);

/* unregister your application */
DLT_UNREGISTER_APP();

return 0;

}

CMakeLists.txt

#######
# SPDX license identifier: MPL-2.0
#
# Copyright (C) 2011-2015, BMW AG
#
# This file is part of GENIVI Project DLT - Diagnostic Log and Trace.
#
# This Source Code Form is subject to the terms of the
# Mozilla Public License (MPL), v. 2.0.
# If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.
#
# For further information see http://www.genivi.org/.
#######

#
# DLT example implementation
#

cmake_minimum_required( VERSION 2.6 )
project( automotive-dlt-example1 )

#
# find dependency packages
#

find_package(PkgConfig)
pkg_check_modules(DLT REQUIRED automotive-dlt)

#
# include directories
#

include_directories(
    ${DLT_INCLUDE_DIRS}
)

#
# build project,这里需要修改
#

set(dlt_example1_SRCS example.c)
add_executable(dlt-example1 ${dlt_example1_SRCS})
target_link_libraries(dlt-example1 ${DLT_LIBRARIES})
set_target_properties(dlt-example1 PROPERTIES LINKER_LANGUAGE C)

install(TARGETS dlt-example1
	RUNTIME DESTINATION bin
	COMPONENT base)

构建工程

cd test
mkdir build
cd build
cmake ..
make
dlt-receive -o /tmp/log.dlt localhost
sudo ./dlt-example1

此时就可以使用dltViewer查看 /tmp/log.dlt

原文地址:https://www.cnblogs.com/chendeqiang/p/13033234.html