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

QGC地面站Mavlink协议自定义

文章目录

前言

一、开发环境

1.mavlink生成器环境

2.QGC运行环境

二、版本区别

三、操作步骤

1、创建自定义协议文件

2、创建自定义 XML 文件

3、编辑 custom_messages.xml文件内容

4、运行mavlink生成器

5、生成结果

6、配置QGC中mavlink库

四、总结


前言

之前已经出了一版本的QGC自定义协议开发,在之后更新地卖弄站时,开发其它地面站版本时发现mavlink调用形式有做改变,再用之前的方式无法通过CRC验证,有做改变改动不大。


一、开发环境

1.mavlink生成器环境

PyCharm 2025.3.3;

python-3.13.12-embed-amd64;

2.QGC运行环境

QT 5.15.2;

Visual Studio 2019;

QGC V4.3;

二、版本区别

QGC v4.1至部分QGC v4.2的版本中mavlink库目录为;

QGC v4.3版本之后中mavlink库目录为;

最大的区别在多了一个all文件;决定了整体的调用略作了区别。

在message_definitions文件中多了一个all.xml文件用于连接所有的XML文件;

三、操作步骤

1、创建自定义协议文件

进入 QGC 4.3 源码中的 MAVLink 消息定义目录,并确认该目录下已存在common.xml文件。

qgroundcontrol-Stable_V4.3\libs\mavlink\include\mavlink\v2.0\message_definitions

2、创建自定义 XML 文件

将你的custom_messages.xml文件复制到上述目录中,与common.xml放在同一层级。

3、编辑custom_messages.xml文件内容

你的custom_messages.xml应该遵循以下基本结构:

<?xml version="1.0"?> <mavlink> <!-- 关键:引入标准消息定义 --> <include>common.xml</include> <!-- 可选:版本号,如果 common.xml 已包含则注释掉 --> <!-- <version>6</version> --> <!-- 方言号(可选)--> <dialect>8</dialect> <enums> <!-- 自定义枚举(可选)--> </enums> <messages> <!-- 你的两个自定义消息 --> <message id="19001" name="CUSTOM_DATA_1"> <description>自定义数据1</description> <field type="uint8_t" name="data">数据字段</field> </message> <message id="19002" name="CUSTOM_DATA_2"> <description>自定义数据2</description> <field type="float" name="value">数值字段</field> </message> </messages> </mavlink>

4、运行mavlink生成器

使用PyCharm运行生成器;

在 GUI 中: XML: 直接输入 custom_messages.xml Out: 设置输出目录,建议放在 一个新文件夹如: newMavlink Language: 选择 C Protocol: 选择 2.0 点击 Generate,工具会自动找到同目录下的 common.xml 并成功生成。

5、生成结果

newMavlink中生成的内容;

6、配置QGC中mavlink库

配置QGC中的mavlink库使得可以调用;

newMavlink文件夹中custom_messages是自定义协议包;

将custom_messages拷贝到“qgroundcontrol-Stable_V4.3\libs\mavlink\include\mavlink\v2.0”文件下与“all”文件夹同目录;

将newMavlink\common\common.h中部分内容拷贝到qgroundcontrol-Stable_V4.3\libs\mavlink\include\mavlink\v2.0\all.h中;

1、# define MAVLINK_MESSAGE_CRCS中找到新增的CRC_EXTRA 值如“{12, 107, 12, 12, 0, 0, 0}, {13, 219, 25, 25, 0, 0, 0}”;第一位为新协议设置的ID; 2、在all.xml中 添加 #include "../custom_messages/custom_messages.h" 3、# define MAVLINK_MESSAGE_INFO中添加新的协议名称 4、# define MAVLINK_MESSAGE_NAMES中添加新的协议名称和ID 注:1、3、4、都可在newMavlink/common/common.h中找到

四、总结

使用时请区分版本与实际情况。

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

相关文章:

  • C语言教程别乱选!90%的人踩坑,实测7本帮你避坑
  • 创新方法深度解析:抖音内容批量下载工具的技术实现与实战应用
  • FLUX.1海景美女图GPU优化:梯度检查点+Flash Attention提速实测
  • 突破硬件限制:虚拟控制器技术全解析
  • 2026年工业升级浪潮下,如何甄选可靠的异型平台钢格栅板供应商? - 2026年企业推荐榜
  • Pixel Couplet Gen部署教程:阿里云函数计算FC无服务器部署方案
  • Avantage下载教程Avantage 6.9 保姆级安装步骤(附安装包)
  • 机器学习ROC曲线中的阈值优化策略
  • 抢占AI流量入口!北京GEO优化首选彼雪戈
  • 造相-Z-Image-Turbo LoRA Web服务入门必看:从零搭建亚洲风格图片生成平台
  • Wan2.2-I2V-A14B动态效果展示:从静态描述到流畅视频的完整生成链路
  • Kandinsky-5.0-I2V-Lite-5s开源大模型价值:降低AI视频创作技术门槛与成本
  • Ostrakon-VL C++高性能集成:工业级视觉系统的核心引擎
  • Applite:macOS上最简单免费的Homebrew Cask图形化管理工具完整指南
  • 基于最小支持向量机LSSVM的单输入单输出时间序列预测模型构建及可替换数据应用的带注释代码实现
  • VideoAgentTrek-ScreenFilter在CAD图纸审查中的应用:自动识别并遮盖敏感设计区域
  • 使用vue3+ts构建企业级文件传输管理系统:状态管理、性能优化与用户体验的深度实践
  • 3步构建企业级实时日志分析系统:从数据采集到智能告警
  • 融资 1220 亿,却亲手关掉 Sora:OpenAI 在想什么?
  • Qwen3-VL-4B Pro应用场景:新媒体运营自动生成社交配图+文案组合
  • Office Custom UI Editor终极指南:零代码打造专属Office功能区界面
  • 2026年知名的烤漆房活性炭/活性炭吸附脱附/废气柱状活性炭/防水型蜂窝活性炭实力工厂怎么选 - 行业平台推荐
  • 2026苏州工业大风扇生产厂家+苏州负压风机生产厂家盘点,高效通风解决方案 - 栗子测评
  • Claude Code 源码泄漏:从源码看Claude Code到底在干什么
  • 动态链接按钮的JavaScript实现
  • 打造TranslucentTB绿色便携版:免安装Windows任务栏透明工具完全指南
  • 亚马逊数据决策框架:用 Scrape API 打通 BSR + 广告位 + ABA 的数据孤岛
  • 2026年质量好的废气处理活性炭/椰壳活性炭/石油化工活性炭/果壳活性炭采购指南厂家怎么选 - 行业平台推荐
  • 5秒破解百度网盘提取码:baidupankey智能工具如何重塑你的资源获取体验
  • 3步解锁老旧Mac潜力:OpenCore Legacy Patcher焕新教程