QGC二次开发---自定义MAVLink消息

MAVLink库下载

下载网站https://github.com/mavlink/mavlink

可以通过git工具,在存放文件夹下打开git工具,输入命令:git clone https://github.com/mavlink/mavlink

python环境安装

下载网址:https://www.python.org/downloads/release/python-374/

然后根据图片提升操作即可

自定义消息的修改

查找QGC源码下的MAVLink common.xml文件,文件存在于:git路径\qgroundcontrol\libs\mavlink\include\mavlink\v2.0\message_definitions文件夹下。

修改自定义消息,以xml格式进行编写,具体语法如下:

 首先定义一个<message></message>标签,其中id=xx为mavlink的message_id,不能与Common.xml已有的消息ID相重合。name为消息名称。

在消息内添加<description></description>标签,此为消息的描述,将写入注释中。

在消息内添加<field></field>标签,此外消息的参数,type=xx为参数的类型,name=xx为参数名称。

修改完保存即可。

代码打包

首先打开CMD命令行工具,输入命令:pip install pymavlink,安装第三方库。

在下载MAVLink库的文件夹下打开CMD命令行,输入命令python mavgenerate.py,将弹出如下窗口。

在XML框选择所修改的common.xml文件,在out框选择代码输出文件夹,然后按照上图配置,最后点击Generate即可生成源码。

兼容APM

如果自定义消息是从飞控端发送,并希望在如下图地方显示数据,并存入日志,需要对源码的ardupilotmega.h进行修改。

首先打开源码生成文件夹下的common.h文件,在打开QGC源码下libs\mavlink\include\mavlink\v2.0\ardupilotmega文件夹下的ardupilotmega.h文件

修改ardupilotmega.h中的三处地方:

  1. MAVLINK_MESSAGE_CRCS,找到common.h文件夹下此数组中自定义消息ID的数组,拷贝后加入ardupilotmega.h相应的数组中。
  2. MAVLINK_MESSAGE_INFO,将如下图所示数组添加到ardupilotmega.h相应的数组中。
  3. MAVLINK_MESSAGE_NAMES,将如下图所示数组添加到ardupilotmega.h相应的数组中。

替换自定义消息的源码

将源码输出文件夹下的.h文件以及common文件夹一起复制,替换QGC源码下lbs\mavlink\include\mavlink\v2.0文件夹下的文件。

编译

最后,在QT5.12.6里打开QGC项目,进行编译即可。

猜你喜欢

转载自blog.csdn.net/hellocode_7812/article/details/119729987
今日推荐