Debugging/Logging - 发送调试的值
优质
小牛编辑
169浏览
2023-12-01
在软件开发期间通常需要输出单个重要的数字。
这时候就要用到MAVLink的NAMED_VALUE
包。
Files
这个教程的代码可以从这里获取:
配置一个调试发布(debug publication)只需要这个代码片段,先加入头文件:
#include <uORB/uORB.h>
#include <uORB/topics/debug_key_value.h>
然后公告(advertise)调试值主题 (不同发布名称(published names)一个公告就足够了).把这个放到主循环的前面:
/* advertise debug value */
struct debug_key_value_s dbg = { .key = "velx", .value = 0.0f };
orb_advert_t pub_dbg = orb_advertise(ORB_ID(debug_key_value), &dbg);
在主循环里的发送甚至更简单:
dbg.value = position[0];
orb_publish(ORB_ID(debug_key_value), pub_dbg, &dbg);
注意: 多个调试消息必须在它们各自的发布之间有足够的时间以供Mavlink处理它们。这意味着代码必须在发布多个调试消息之间等待,或者在每个函数调用迭代上交替消息。
在QGroundControl中的结果实时绘图: