我是Mavlink的新手,我想在Mavlink协议中添加一条新消息,并定期每秒发送它。我该怎么做呢?
发布于 2018-02-02 07:44:23
在这里你可以找到关于如何向mavlink协议添加新消息以及如何处理它的detailed steps。
< code >G214
发布于 2016-12-06 15:36:41
这取决于您使用的是哪种自动驾驶。如果使用ardupilot,则需要在ardupilot/modules/mavlink/message_definitions/v1.0/ardupilotmega.xml.中添加新的xml消息定义
您可以查看其他消息,以了解它应该如何格式化。只要确保你选择了一个未使用的id即可。
接下来,您需要决定如何将其放入代码中。您可以将消息id添加到STREAM_EXTRA3中,将其放入data_stream_send任务中。这将像发送其他数据一样频繁地发送您的消息。作为其中的一部分,您需要使用pymavgen生成的函数、消息id和枚举来定义实际打包数据结构的函数。这就是我在我自己的ASH_DATA项目中所做的。您可以查看我对in my repository所做的更改,以供参考。请注意,其中一些更改包括在pixhawk上接收ash数据并将数据添加到日志文件中。
假设您想每秒运行一次,那么您可能想要添加到one_second_loop任务中,或者创建您自己的任务,使用新的消息id调用try_send_message函数。
当然,您需要将新消息合并到您的gcs中,这样您才能实际接收它,但这是另一回事。
希望这能推动其他正在尝试做同样事情的人朝着正确的方向前进。
https://stackoverflow.com/questions/36698870
复制相似问题