一、具体操作
在 /src/drivers/uavcan/libuavcan/dsdl/uavcan/protocol/4.GlobalTimeSync.uavcan文件中添加自定义变量,即可编译到msg消息体中。
如图(1)所示,transmission_type即为添加的自定义字段。数据类型可以为uint56,也可以为uint16。
(1)
在以上文件中添加的字段,会通过dsdl编译器,自动生成src/drivers/uavcan/libuavcan/libuavcan/include/dsdlc_generated/uavcan/protocol/GlobalTimeSync.hpp文件中的内容。如图(2)所示。
(2)
二、实验步骤
生成以上文件即可通过msg发送自定义字段了。如图(3)为例,在src/drivers/uavcan/libuavcan/libuavcan/include/uavcan/protocol/global_time_sync_master.hpp文件中,发送666数据做测试。
(3)
在src/drivers/uavcan/libuavcan/libuavcan/include/uavcan/protocol/global_time_sync_slave.hpp文件中接收数据。如图(4)所示。
(4)
在src/drivers/uavcan/uavcan_main.cpp文件中,以orb消息的形式将数据发送出去。如图(5)所示。
(5)
通过运行src/examples/px4_simple_app/px4_simple_app.c程序,将接收到的orb消息打印出来。
(6)
三、实验结果
两个飞控通过can总线连接,下载一样的代码,都接收到666的消息。如图(7)所示。