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中的三处地方:
- MAVLINK_MESSAGE_CRCS,找到common.h文件夹下此数组中自定义消息ID的数组,拷贝后加入ardupilotmega.h相应的数组中。
- MAVLINK_MESSAGE_INFO,将如下图所示数组添加到ardupilotmega.h相应的数组中。
- MAVLINK_MESSAGE_NAMES,将如下图所示数组添加到ardupilotmega.h相应的数组中。
替换自定义消息的源码
将源码输出文件夹下的.h文件以及common文件夹一起复制,替换QGC源码下lbs\mavlink\include\mavlink\v2.0文件夹下的文件。
编译
最后,在QT5.12.6里打开QGC项目,进行编译即可。