当前位置: 首页 > news >正文

APM日志添加自定义数据

前言

最近在用开源飞控移植算法时,遇到一个问题,中间的过程量无法通过日志看到,最开始用地面站打印的方式,但是很不方便,如果可以导出日志,用MP地面站分析数据就方便多了。

具体步骤

1.定义日志中的数据结构体

文件路径:/ardupilot/libraries/AP_Logger/LogStructure.h

我这里定义是加入了我需要查看的三种数据。

struct PACKED log_BTT { LOG_PACKET_HEADER; uint64_t time_us; float acc_z; float acc_y; float los_distance; };

2.添加日志数据格式

声明该消息结构体,这里的BTT就是最后在日志中显示的消息,这里参照其他消息的格式仿写。

我是在LOG_COMMON_STRUCTURES中添加日志数据格式。

{ LOG_BTT_MSG, sizeof(log_BTT), \ "BTT", "Qfff", "TimeUS,acc_z,acc_y,los_distance", "s---", "F---" , true }, \

其中,“BTT”就是最终日志中消息名;“Qfff”是每项数据的数据类型;“TimeUS,acc_z~”这些是包含了哪些数据;“s---”是各个子项的单位;“F---”是各个子项的比例系数;

数据类型的定义:

各个子项单位的定义:

比例系数定义:

3.添加日志枚举类型

4.添加日志记录入口函数

文件路径:libraries/AP_Logger/LogFile.cpp

在AP_Logger类中添加成员。

AP_Logger.h中添加:

5.测试

修改代码后进行编译,导出飞行日志后用MP打开,测试成功啦!

http://www.jsqmd.com/news/468582/

相关文章:

  • 哈哈哈哈哈哈哈哈哈哈哈哈
  • openclaw平替之nanobot 源码解析(三):Markdown 驱动的系统提示词
  • 从零学网安第3期——Windows漏洞
  • VS Code+Claude Code+Deepseek
  • AI元人文理论体系深度解析:从存在论根基到文明治理的完整架构
  • 高并发直接拉满!Qwen3-ASR 搭配 vLLM 实现高性能语音识别
  • 华为ensp:三种配置防火墙的方式
  • Spring Web MVC的异步请求解读
  • 2026年常见网页爬取住宅代理服务商整理与选择参考
  • 通信中继无人机市场前景明朗:未来六年复合年增长率锁定7.9%
  • 深入理解 RLHF/PPO/DPO/GRPO
  • Day 2:信号槽连接方式对比 - 实战练习题
  • OpenClaw:完全零成本在Windows本机部署OpenClaw免费大模型指南
  • 装好就能住的装修哪家精选
  • LangGraph vs Semantic Kernel:状态图与内核插件的两条技术路线对比
  • CSMS VS ISMS管理体系
  • iOS 审核 4.3a 被拒 【三大禁忌】
  • spring boot 打包教程
  • Spring Boot博客系统集成AI智能摘要功能实战
  • 基于SpringBoot+Vue的智慧校园升学就业系统毕设项目(完整源码+论文+部署)
  • OpenClaw(龙虾)本地部署
  • Windows经典漏洞-MS17-010(学习分享)
  • 苹果Watch心率监测技术详解及优化建议
  • 【超全】基于微信小程序的生鲜销售系统【包括源码+文档+调试】
  • 基于YOLO26的智慧教育场景的学生课堂行为实时分析系统|完整源码+PyQt5界面+训练与部署全流程
  • 手机号中间四位隐藏,SQL函数来实现。
  • 把做网站这事交给纯AI建站+小龙虾,会是怎样的一个惊喜呢?
  • 2026年上海注册公司代理记账口碑TOP10,哪家服务更胜一筹?? - 企业推荐官【官方】
  • 【领】系统集成小计算题练习册47页PDF(有/无答案版)
  • 基于SpringBoot+Vue的美剧观影网站毕设项目(完整源码+论文+部署)