【ardupilot新增加自定义的LOG日志】

ardupilot新增加自定义的LOG日志

环境描述

1.ardupilot软件版本:copter-4.2.2
2.编辑软件:VS code
3.编译软件:Cygwin64
4.地面站:Missionplanner

添加步骤

这里我们以日志中的是DU32为参考进行自定义日志的写入和查看。
DU321.打开LOG.cpp文件,DU32在Log.cpp中的数据结构体为log_Data_UInt32t,所以我们在搜索框输入log_Data_UInt32t点搜索:
log.cpp
在三个cpp文件中有调用,本人用的是copter,所以打开对应的log.cpp文件,然后仿照结构体log_Data_UInt32t,添加自己的数据结构体log_Data_test,结构体如下:

struct PACKED log_Data_test {
    LOG_PACKET_HEADER;
    uint64_t time_us;
    float data1;
    float data2;
};

然后仿照Log_Write_Data()新建一个函数给结构体赋值

void Copter::Log_Write_Log_test()
{
    if (should_log(MASK_LOG_ANY)) {
        struct log_Data_test pkt = {
            LOG_PACKET_HEADER_INIT(LOG_DATA_TEST_MSG),
            time_us     : AP_HAL::micros64(),
            data1       : 1,
            data2       : 15
        };
        logger.WriteCriticalBlock(&pkt, sizeof(pkt));
    }
}

添加LOG_DATA_TEST_MSG在define.h中定义
在这里插入图片描述
Log_Write_Log_test函数在copter.h中声明:
在这里插入图片描述
在const struct LogStructure Copter::log_structure[]数组中添加在日志中显示的名字、类型及单位,如下:

 { LOG_DATA_TEST_MSG, sizeof(log_Data_test),         
      "TEST",  "Qff",         "TimeUS,Data1,Data2", "s--", "F--" },

在这里插入图片描述具体参数描述在LogStructure.h中有定义:
Logstructure结构体
然后找到Log_Write_Data()函数调用的地方,在coper.cpp线程one_hz_loop()中,将我们新建的函数Log_Write_Log_test();,放在里面调用。
在这里插入图片描述
编译,这里我用的飞控板是自制的,具体编译流程,自行百度
编译
下载
下载固件
打开日志记录,运行一段时间,下载日志,打开查看就可以看到我们的测试数据在里面已经显示。
日志

如有问题,请留言谈论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值