返回介绍

Debugging/Logging - 发送调试的值

发布于 2020-07-27 14:09:24 字数 1725 浏览 978 评论 0 收藏 0

在软件开发期间通常需要输出单个重要的数字。
这时候就要用到MAVLink的NAMED_VALUE包。

Files

这个教程的代码可以从这里获取:

配置一个调试发布(debug publication)只需要这个代码片段,先加入头文件:

  1. #include <uORB/uORB.h>
  2. #include <uORB/topics/debug_key_value.h>

然后公告(advertise)调试值主题 (不同发布名称(published names)一个公告就足够了).把这个放到主循环的前面:

  1. /* advertise debug value */
  2. struct debug_key_value_s dbg = { .key = "velx", .value = 0.0f };
  3. orb_advert_t pub_dbg = orb_advertise(ORB_ID(debug_key_value), &dbg);

在主循环里的发送甚至更简单:

  1. dbg.value = position[0];
  2. orb_publish(ORB_ID(debug_key_value), pub_dbg, &dbg);

注意: 多个调试消息必须在它们各自的发布之间有足够的时间以供Mavlink处理它们。这意味着代码必须在发布多个调试消息之间等待,或者在每个函数调用迭代上交替消息。

在QGroundControl中的结果实时绘图:

发送调试的值 - 图1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文