ArduPilot 添加日志文件

ArduPilot 添加日志文件。在程序的调试或者科研过程中,经常要记录所需要的变量值,一方面, 我们可以将其打印在地面站上进行查看,但是这种方式的速度比较慢(毕竟是串口传输数据,且发送太快,怕印象程序的稳定性),那么另一方式就是将所需的变量以log的方式存储起来了。

注: 其实添加过程没有太复杂,完全可以参照现有程序一步一步依葫芦画瓢做出来。

  1. 首先进入到主程序 Copter.cpp 中,对应找到记录log的地方,一般以 Log_Write_XXX();
    在这里插入图片描述

  2. 跳转过去在 Copter.h 中定义的 私有函数, 在私有函数中调用 logger 对象的 logger.write_XXX(), 该函数为公有函数。
    在这里插入图片描述

  3. 此时函数会跳转到 LogFile.cpp 中,对应上下代码,可以很容易的找到如何Coding。
    在这里插入图片描述

  4. 需要注意的是上图中对应的 log_Attitude 结构体需要进行定义,对应对方可以跳转过去看到,如下如所示
    在这里插入图片描述

  5. 对应的MSG 名字也要对应添加在这里插入图片描述

  6. 需要注意的是,在 LogStructure.h 中还有一处需要对应添加,见下图,表示对应的地面站显示格式。 "ATT", "QccccCCCC", "TimeUS,DesRoll,Roll,DesPitch,Pitch,DesYaw,Yaw,ErrRP,ErrYaw", "sddddhhdh", "FBBBBBBBB" }, \ 其中的ATT表示在地面站日志回顾中看到的字样,越精简越好,‘’QccccCCCC"表示后面的数据类型,Q表示时间,后面整形,浮点型对应查找就行,在后面就是在地面站中看到的数据名称,最后的"sddddhhdh", "FBBBBBBBB" 表示单位。 如果没有单位,或者图省事,可以直接用 --表示,从下图中也可以看到所说的表示方法。
    在这里插入图片描述

  7. 修改这些应该就可以了,在这次试验中,采用的是定义全局变量的方式在传递所需要记录的方式。本来是想把变量放在Copter中,无奈数据是存进去了,但是在其他地方打印就没有,感觉像又有一个copter对象一样,原因未知。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值