px4自定义uORB消息,并实现收发
如题,实现以上需求。主要有三个步骤:
一、添加一个新的topic(话题)(以uORB_test.msg为例)
1.在根目录中msg文件下添加uORB_test.msg,并在该文件中加入所需的数据。(在新版本中必须要添加时间戳,否则编译不过)
2.在msg文件下的CMakeLists.txt文件中添加uORB_test.msg。
3.编译。
注:要编译过后在build/xxx/uORB/topic文件中才有相应的topic,这时候添加才有效。xxx依据自身板子和编译的代码版本有关。
二、uORB消息发布。
1.在需要用到该topic的文件中包含头文件
2. 声明并定义一个该topic类型的结构体,清零用以装新的uORB数据。
3.广播一下该topic,获得消息句柄。告诉系统当下我该用什么结构体
4.给该结构体赋值。使用该topic ID,消息句柄,数据结构体发布该消息。
三、uorb消息订阅
1.声明并定义一个该topic类型的结构体,清零,用以装新的uorb数据。
2. 订阅该topic的消息,获得句柄。
3.可以用阻塞等待,也可以用检查更新,也可以不用,依具体情况而定。
4.使用消息ID,订阅句柄,topic类型结构体取出数据
完成以上步骤,可以编译并烧录代码,运行相关进程,打印test1,2,3数据,检查是否传输成功。