用于添加自己新建的话题并保存需要的数据至日志方便后续调试分析。
目录
一、新建.msg文件
在工程文件目录下的msg文件夹中新建.msg文件,文件名为你所想要的话题名,内容仿照其余.msg文件输入需要保存的信息,
第一行默认为时间戳,后面定义自己需要的数据(亲测无法定义整型数组和int,可以使用float\bool\uint),编写后保存。
二、添加.msg文件路径至CMakeLists.txt
在set(msg_files 后插入新建的.msg文件
三、添加该话题至日志中
在logger模块中找到logged_topics.cpp文件,在add_default_topics函数中添加添加话题,常用add_topic_multi("yjh_data", 100, 1)或add_topic("yjh_data", 100)函数,其中第一个参数为话题名称、第二个参数为间隔时间(ms)、第三个参数为添加话题的个数(可选)。
四、编译与使用
在根目录下正常编译,编译成功后会生成对应的.h文件在build/固件版本/uORB/topics文件夹中。后续需要用到该话题时,include该.h文件即可。
例:
.hpp文件中
#include <uORB/topics/yjh_data.h>
uORB::Subscription _yjh_data_sub{ORB_ID(yjh_data)};//订阅申明
uORB::Publication<yjh_data_s> _yjh_data_pub {ORB_ID(yjh_data)};//发布申明
.cpp文件中
yjh_data_s yjh_data1;//定义
yjh_data1.timestamp = hrt_absolute_time();//取时间戳,尽量定义后就赋值
...//其余信息定义
_yjh_data_pub.publish(yjh_data1);//信息发布