APM飞控LOG中添加一个自定义消息块

22 篇文章 1 订阅
10 篇文章 0 订阅
本文详细介绍了如何在传感器内部添加记录滤波前后数据的日志,包括消息类型声明、结构定义、函数调用和实验结果。通过实例展示了如何创建和使用AP_Logger来记录'(TEST)QBffffffB'格式的数据,便于后续分析和调试。
摘要由CSDN通过智能技术生成

        以在内部传感器中添加记录滤波前后数据的消息块为例。在其他地方加入日志也是类似的,根据具体需求变化。

一、声明定义消息体(AP_InertialSensor/LogStructure.h)

             

其中,

        LOG_TEST_MSG是消息类型,需要在AP_Logger/LogStructure.h中的LogMessages结构体中定义。(该枚举类型最大值不能超过255,即消息类型不能超过255种)

        

log_TEST是承载数据的消息结构体。根据具体情况定义。

                

 "TEST"是最终显示在LOG中的消息名。

"QBffffffB"是数据类型,具体含义可见AP_Logger/LogStructure.h

"TimeUS,N,x,y,z,x_flt,y_flt,z_flt" 是消息体中每一个变量显示的名字。

"s#EEEooo-" 是每一个变量的单位 

"F-000000-"是当量,每个变量对应乘以某一个倍数。

 

 注意:

        1."TEST"这个字段的字符不能超过四个,否则在日志中显示不出来这个消息块。

        2.双引号"Time,I ... "中的内容不能太长,否则在日志中无法显示

 二、定义一个调用的函数

        我在AP_InertialSensor/AP_InertialSensor.h中声明了一个函数Write_TEST_Raw_Filtered,用来调用AP::logger().WriteBlock();

        在AP_InertialSensor/AP_InertialSensor_Logging.cpp中定义了该函数。        

注意:pkt{}中的gyro_x等变量是在log_TEST结构体中定义的,命名要一致

     

 三、在合适的位置调用

        我在AP_InertialSensor/AP_InertialSensor_Backend.cpp中的_notify_new_gyro_raw_sample()函数中调用        

 四、实验结果

        编译下载运行,查看日志。 

 发现右下角多了一个TEST消息体,里边记录的便是陀螺仪滤波前后的数据啦

        

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值