Pixhawk之通过XML文件生成自定义MAVLink消息结构

官方介绍:http://qgroundcontrol.org/mavlink/create_new_mavlink_message
一.基于python的MAVLINK GENERATOR(mavlink生成器) 下载:

下载地址:https://github.com/mavlink/mavlink

  1. 安装好git
  2. 选择一个文件夹,在文件夹上右击,在弹出菜单上选git bash,打开命令行,输入git init,初始化库,然后输入git remote add origin 地址
    这里的地址是https://github.com/mavlink/mavlink.git
  3. 执行指令git clone –recursive https://github.com/mavlink/mavlink.git
    到这里,mavlink生成器就现在完成了,下面运行mavlink生成器

二.运行mavlink生成器

  1. 按照上一篇文章的方法将mavlink生成器所在的文件夹路径加入到module_zidingyi.pth中
  2. 在windows的cmd中执行python -m mavgenerate,会出现一个GUI界面。
    官方解释:
    From a GUI (recommended)
    mavgenerate.py is a header generation tool GUI written in Python. It requires Tkinter, which is only included with Python on Windows, so it will need to be installed separately on non-Windows platforms. It can be run from anywhere using Python’s -m argument:
$ python -m mavgenerate

(在执行python -m mavgenerate的时候可能会出现一些问题,例如我的会提示没有future模块,在cmd中pip install future,安装这个模块即可)
Pixhawk之通过XML文件生成自定义MAVLink消息结构_第1张图片
图1 GUI界面

  1. 将编写的XML文件放到mavlink生成器所在文件夹中的message_definiations\v1.0文件夹中,在gui的XML栏选中XML文件,Out栏选择要输出到的目录,点击Generate即可,ok~(自己写的xml文件要包含common.xml,如果不包含common.xml,生成的文件中没有可用的数据结构)
  2. xml文件的一般格式:

<mavlink>
    <include>common.xmlinclude>
    
    
    <enums>
    enums>
    <messages>
        <message id="166" name="CA_TRAJECTORY">
            <description>This message encodes all of the raw rudder sensor data from the USV.description>
            <field type="uint64_t" name="timestamp">Timestamp in milliseconds since system bootfield>
            <field type="uint64_t" name="time_start_usec">start time, unit usec.field>
            <field type="uint64_t" name="time_stop_usec">stop time, unit usec.field>
            <field type="uint32_t" name="coefficients">as it says.field>
            <field type="uint16_t" name="seq_id">can not cheat any more.field>
        message>
    messages>
mavlink>

你可能感兴趣的:(pixhawk-编译)