30 Commits 84858b0e0b ... 3f2b4607eb

Autor SHA1 Mensagem Data
  jujihjuji 3f2b4607eb 增加RP角速度微分滤波带宽参数 há 3 meses atrás
  karo lee 34ca72a9d5 拒绝解锁原因添加远程锁定-头文件生成 há 5 meses atrás
  karo lee 789a3d02bc update:拒绝解锁原因添加远程锁定 há 5 meses atrás
  LiuYang b00a97982a 增加 vkvins 相关命令, 生成头文件 há 5 meses atrás
  LiuYang 3402c9d530 增加 vkvins 相关命令 há 5 meses atrás
  LiuYang ee48624638 update: 编队消息增加加速度字段-头文件生成 há 5 meses atrás
  LiuYang e9e3a8e775 update: 编队消息增加加速度字段 há 5 meses atrás
  LiuYang 6b2f4907be 增加一些参数说明 há 5 meses atrás
  karo lee 5a8d038925 绳长单位改为米/绳速单位改为米每秒 há 6 meses atrás
  LiuYang dcdcfdb798 增加 COM2_PROT_TYPE 参数描述 há 6 meses atrás
  karo lee bbc41c53a1 生成头文件 há 6 meses atrás
  karo lee 47f30ad0fc VK_WEIGHER_STATE消息拓展绳长和绳速字段 há 6 meses atrás
  jujihjuji bea5757509 增加VKFLY_ARM_DENIED_REASON动力自检故障 há 6 meses atrás
  Liu Yang 21dd03bf1a 修改 VK_BMS_STATUS 消息电流为 int32 类型 há 7 meses atrás
  Liu Yang 44d317894c ECU_STATUS 增加进气温度 há 7 meses atrás
  Liu Yang 94b874cce2 修改 VK_ENGINE_ECU_STAUS 消息 há 7 meses atrás
  Liu Yang 3e61f10766 生成头文件 há 7 meses atrás
  Liu Yang 554d4dc5fa 增加 error1 避障锁定报警 há 7 meses atrás
  Liu Yang 1223df3bd0 增加一些参数说明 há 7 meses atrás
  Liu Yang e3dd4cbc72 增加 RTK ANT2 天线安装位置 há 7 meses atrás
  karo lee 46bb0b1afd 抛投持续时间参数说明 há 8 meses atrás
  karo lee 17d258cc4a 抛投增加状态展示字段及相关状态清除指令 há 8 meses atrás
  Liu Yang 9eec755e36 增加一些参数说明 há 8 meses atrás
  karo lee ff85f732f4 update:吊运器安装方向设置角度说明 há 9 meses atrás
  karo lee 354e35bbe0 增加吊运器姿态四元数发送、增加吊运器安装方向设置、增加吊运器工作状态字段说明 há 9 meses atrás
  Liu Yang 5a10c562c5 增加一些参数说明 há 9 meses atrás
  Liu Yang f3395a54c8 增加雷达配置命令 há 10 meses atrás
  Liu Yang 799ca02b7d 修正一些描述 há 10 meses atrás
  Liu Yang c0dbb40265 增加指点开伞 há 10 meses atrás
  Liu Yang d14cc15ef3 增加 VKFLY_CUSTOM_MODE 开伞模式 há 10 meses atrás

+ 95 - 14
msg_definitions/VKFly.xml

@@ -183,6 +183,8 @@
       <entry value="21" name="VKFLY_ARM_DENIED_FUEL_LOW"></entry>
       <entry value="22" name="VKFLY_ARM_DENIED_H2P_LOW"></entry>
       <entry value="23" name="VKFLY_ARM_DENIED_EXT_NAV_ERR"></entry>
+      <entry value="24" name="VKFLY_ARM_DENIED_ESC_CHECK_ERR"></entry>
+      <entry value="25" name="VKFLY_ARM_DENIED_REMOTE_LOCK"></entry>
     </enum>
 
     <enum name="VKFLY_MAGCALIB_STAGE">
@@ -247,16 +249,19 @@
         <description>Battery bms link lost.</description>
       </entry>
       <entry value="512" name="VKFLY_SYS_ERROR1_ECU_FUEL_LOW">
-        <description>Battery bms link lost.</description>
+        <description>ECU fuel percentage low.</description>
       </entry>
       <entry value="1024" name="VKFLY_SYS_ERROR1_ECU_LINK_LOST">
-        <description>Battery bms link lost.</description>
+        <description>ECU linklost.</description>
       </entry>
       <entry value="2048" name="VKFLY_SYS_ERROR1_H2P_LOW">
-        <description>Battery bms link lost.</description>
+        <description>H2 pressure low.</description>
       </entry>
       <entry value="4096" name="VKFLY_SYS_ERROR1_OVER_WEIGHT">
-        <description>Battery bms link lost.</description>
+        <description>Over weight.</description>
+      </entry>
+      <entry value="8192" name="VKFLY_SYS_ERROR1_OBSTACLE_AVOID">
+        <description>Obstacle avoid.</description>
       </entry>
     </enum>
 
@@ -377,6 +382,9 @@
       <entry value="59" name="VKFLY_CUSTOM_MODE_FW_GPS_FS">
         <description>Fixedwing GPS fail safe mode</description>
       </entry>
+      <entry value="60" name="VKFLY_CUSTOM_MODE_PARACHUTE">
+        <description>Open parachute mode</description>
+      </entry>
     </enum>
 
     <enum name="VKFLY_VKINS_NAV_STATUS" bitmask="true">
@@ -632,6 +640,7 @@
       <entry value="4" name="VKFLY_MISSION_DONE_RETURN_TO_LAUNCH_AB_WP"></entry>
       <entry value="5" name="VKFLY_MISSION_DONE_RETURN_TO_LAUNCH_BA_WP"></entry>
       <entry value="6" name="VKFLY_MISSION_DONE_THEN_REDO"></entry>
+      <entry value="7" name="VKFLY_MISSION_DONE_THEN_DEPLOY_PARACHUTE"></entry>
     </enum>
 
     <enum name="VKFLY_RTL_EXEC_MODE">
@@ -649,6 +658,11 @@
       <entry value="5" name="VKFLY_FORMATION_VERTICLE_LINE"></entry>
     </enum>
 
+    <enum name="VKFLY_VINS_CONFIG_ACT">
+      <entry value="0" name="VKFLY_VINS_CONFIG_ACT_NONE">Do nothing</entry>
+      <entry value="1" name="VKFLY_VINS_CONFIG_DO_RESET">Rest vins algorithm</entry>
+    </enum>
+
     <enum name="MAV_CMD">
       <description> VKFLY custom CMD </description>
       <entry value="44010" name="VKFLY_CMD_NAV_WP" hasLocation="true" isDestination="true">
@@ -723,7 +737,7 @@
       <entry value="44050" name="VKFLY_CMD_ESC_CONFIG" hasLocation="false"
         isDestination="false">
         <description>can esc id configuration</description>
-        <param index="1" label="Set ID"> Set Esc id, min=1, max=16 </param>
+        <param index="1" label="Set ID"> Set Esc id, minValue=1, maxValue=16 </param>
         <param index="2" label=""> </param>
         <param index="3" label=""> </param>
         <param index="4" label=""> </param>
@@ -732,6 +746,29 @@
         <param index="7" label=""> </param>
       </entry>
 
+      <entry value="44051" name="VKFLY_CMD_RFD_CONFIG" hasLocation="false"
+        isDestination="false">
+        <description>can esc id configuration</description>
+        <param index="1" label="Target component"> target component id </param>
+        <param index="2" label="Set blind zone" units="m"> set blind zone, NAN means ignore </param>
+        <param index="3" label="Set max range" units="m"> set max range, NAN means ignore </param>
+        <param index="4" label=""> </param>
+        <param index="5" label=""> </param>
+        <param index="6" label=""> </param>
+        <param index="7" label=""> </param>
+      </entry>
+
+      <entry value="44052" name="VKFLY_CMD_VINS_CONFIG" hasLocation="false"
+        isDestination="false">
+        <description>VK vins module configuration</description>
+        <param index="1" label="VK vins config action">Refer to VKFLY_VINS_CONFIG_ACT</param>
+        <param index="2" label=""> </param>
+        <param index="3" label=""> </param>
+        <param index="4" label=""> </param>
+        <param index="5" label=""> </param>
+        <param index="6" label=""> </param>
+      </entry>
+
       <entry value="44060" name="VKFLY_CMD_DO_REPOSITION_THAN_THROW" hasLocation="true"
         isDestination="true">
         <description>Do reposition and throwing</description>
@@ -786,9 +823,11 @@
         <param index="1" label="Weight Calibrate">NAN means invalid. Other positive value means the
           actual weight</param>
         <param index="2" label="Factory Reset">NAN means invalid. 1 means do factory reset.</param>
-        <param index="3" label=""> </param>
-        <param index="4" label=""> </param>
-        <param index="5" label=""> </param>
+        <param index="3" label="Fuse Break">NAN means invalid. 1 means do eft fuse break.</param>
+        <param index="4" label="Release Hook">NAN mean invalid.
+          1 means do release hook, 2 means restart hook, 3 means stop </param>
+        <param index="5" label="Weigher Orientation" units="deg" minValue="-180" maxValue="180">NAN
+          mean invalid. </param>
         <param index="6" label=""> </param>
         <param index="7" label=""> </param>
       </entry>
@@ -876,8 +915,9 @@
       <entry value="44071" name="VKFLY_CMD_DYNAMIC_ACT" hasLocation="true"
         isDestination="true">
         <description>Vehicle act</description>
-        <param index="1" label="action" minValue="0" maxValue="2">NAN means ignore.0 do dynamic_takeoff, 
-        1 do dynamic_land, 2 do dynamic_follow</param>
+        <param index="1" label="action" minValue="0" maxValue="2">NAN means ignore.0 do
+          dynamic_takeoff,
+          1 do dynamic_land, 2 do dynamic_follow</param>
         <param index="2" label=""></param>
         <param index="3" label=""></param>
         <param index="4" label=""></param>
@@ -886,6 +926,30 @@
         <param index="7" label=""></param>
       </entry>
 
+      <entry value="44072" name="VKFLY_CMD_DO_REPOSITION_THAN_DO_PARACHUTE" hasLocation="true"
+        isDestination="true">
+        <description>Do reposition then deploy parachute</description>
+        <param index="1" label="">Deploy distance</param>
+        <param index="2" label=""> </param>
+        <param index="3" label="Speed"> </param>
+        <param index="4" label=""> </param>
+        <param index="5" label="Latitude"> </param>
+        <param index="6" label="Longitude"> </param>
+        <param index="7" label="Altitude" units="m"> </param>
+      </entry>
+
+      <entry value="44073" name="VKFLY_CMD_CLEAR_SERVO_DISPALY" hasLocation="false"
+        isDestination="false">
+        <description>Vehicle act</description>
+        <param index="1" label="clear dispaly" minValue="0" maxValue="1">NAN means ignore. 1 means
+          clear servo status dispaly</param>
+        <param index="2" label=""></param>
+        <param index="3" label=""></param>
+        <param index="4" label=""></param>
+        <param index="5" label=""></param>
+        <param index="6" label=""></param>
+        <param index="7" label=""></param>
+      </entry>
     </enum>
   </enums>
 
@@ -927,6 +991,8 @@
       <field type="uint32_t" name="dist_to_tar" units="cm">distance to target position in cm</field>
       <field type="uint16_t" name="servo_state">bitmap for servo state</field>
       <field type="float" name="flight_dist" units="m">flight distance since this power up</field>
+      <extensions />
+      <field type="uint16_t" name="servo_display">bitmap for servo state display</field>
     </message>
 
     <message id="53002" name="VK_ROI_TARGET">
@@ -942,7 +1008,7 @@
       <description> battery bms status message </description>
       <field type="uint32_t" name="time_boot_ms" units="ms">Timestamp in ms from system boot.</field>
       <field type="uint32_t" name="voltage" units="mV">BMS voltage in mV</field>
-      <field type="int16_t" name="current" units="cA">BMS current in cA, negative value means in
+      <field type="int32_t" name="current" units="cA">BMS current in cA, negative value means in
         charging</field>
       <field type="int16_t" name="temperature" units="degC">BMS temperature in degC</field>
       <field type="int8_t" name="cap_percent" units="%">BMS remaining power in percentage</field>
@@ -976,6 +1042,9 @@
       <extensions />
       <field type="float" name="formation_heading" units="deg">if nan, use yaw as formation heading</field>
       <field type="float" name="form_head_lock">0 unlock, 1 lock</field>
+      <field type="float" name="ae" units="m/s/s">formation leader east acceleration</field>
+      <field type="float" name="an" units="m/s/s">formation leader east acceleration</field>
+      <field type="float" name="au" units="m/s/s">formation leader east acceleration</field>
     </message>
 
     <message id="53005" name="VK_ENGINE_ECU_STAUS">
@@ -1000,6 +1069,12 @@
       <field type="uint8_t" name="engine_state">engine state</field>
       <field type="uint8_t" name="index" minValue="0" maxValue="128" increment="1">engine index</field>
       <field type="uint8_t[4]" name="reserve">engine state</field>
+      <extensions />
+      <field type="uint16_t" name="inlet_pressure" units="hPa">inlet air pressure</field>
+      <field type="int16_t" name="ge_temp" units="degC">Ge temperature</field>
+      <field type="int16_t" name="air_temp" units="degC">air temperature</field>
+      <field type="int16_t" name="temp_1" units="degC">temperature 1</field>
+      <field type="int16_t" name="volt_2" units="dV">volt 2</field>
     </message>
 
     <message id="53006" name="VK_COMP_VERSION">
@@ -1110,6 +1185,10 @@
       <field type="uint16_t" name="weight_d">weight variant rate</field>
       <field type="uint8_t" name="work_state"></field>
       <field type="uint8_t" name="err_code"></field>
+      <extensions />
+      <field type="float[4]" name="attitude_Q"></field>
+      <field type="float" name="rope_length">length in m, NAN means ignore</field>
+      <field type="float" name="rope_vel">velocity in m/s, NAN means ignore</field>
     </message>
 
     <message id="53022" name="VK_PAYLOAD_DATA_RELAY">
@@ -1259,9 +1338,11 @@
       <field type="float" name="amsl" units="m">altitude above mean sea level.</field>
       <field type="int32_t" name="ins_status"></field>
       <field type="int32_t" name="ins_flag"></field>
-      <field type="uint16_t" name="throttle" min="0" max="100" increment="1">throttle output.</field>
+      <field type="uint16_t" name="throttle" minValue="0" maxValue="100" increment="1">throttle
+        output.</field>
       <field type="uint8_t" name="flight_mode">flight mode.</field>
-      <field type="uint8_t" name="btake_status" min="0" max="1" increment="1">backup takeover
+      <field type="uint8_t" name="btake_status" minValue="0" maxValue="1" increment="1">backup
+        takeover
         status.</field>
     </message>
 
@@ -1297,4 +1378,4 @@
 
   </messages>
 
-</mavlink>
+</mavlink>

+ 383 - 311
readme.md

@@ -121,6 +121,7 @@ typedef enum VKFLY_ARM_DENIED_REASON
     VKFLY_ARM_DENIED_FUEL_LOW=21, /* 发动机油量低 | */
     VKFLY_ARM_DENIED_H2P_LOW=22,  /* 氢能气压低 | */
     VKFLY_ARM_DENIED_EXT_NAV_ERR=23, /* 外部导航错误 | */
+    VKFLY_ARM_DENIED_ESC_CHECK_ERR=24, /*动力自检故障*/
 } VKFLY_ARM_DENIED_REASON;
 ```
 
@@ -173,6 +174,7 @@ typedef enum VKFLY_SYS_ERROR1
     VKFLY_SYS_ERROR1_ECU_LINK_LOST=1024, /* 发动机数据断开 |*/
     VKFLY_SYS_ERROR1_H2P_LOW=2048, /* 氢气压低 | */
     VKFLY_SYS_ERROR1_OVER_WEIGHT=4096, /* 负载超重 |*/
+    VKFLY_SYS_ERROR1_OBSTACLE_AVOID=8192, /* 避障锁定 | */
 } VKFLY_SYS_ERROR1;
 ```
 
@@ -245,6 +247,7 @@ typedef enum VKFLY_CUSTOM_MODE
     VKFLY_CUSTOM_MODE_FW_LAND=57, /* Fixedwing Land 固定翼降落 | */
     VKFLY_CUSTOM_MODE_FW_RTL=58, /* Fixedwing Rtl 固定翼返航 | */
     VKFLY_CUSTOM_MODE_FW_GPS_FS=59, /* Fixedwing GpsFs 固定翼丢星盘旋 | */
+    VKFLY_CUSTOM_MODE_PARACHUTE=60, /* 开伞 | */
     VKFLY_CUSTOM_MODE_ENUM_END=60, /*  | */
 } VKFLY_CUSTOM_MODE;
 ```
@@ -761,6 +764,10 @@ M5~M8\M13~M16为固定翼舵面舵机.
 | output_curr    | 输出电流 0.1A                     |
 | fault          | 故障字, 参考 VK发动机CAN协议      |
 | engine_state   | 工作状态 0-未启动 1\2-运行 3-锁机 |
+| inlet_pressure | 进气压力 0.1Kpa                   |
+| ge_temp        | 发电机温度 degC                   |
+| temp_1         | 温度1 degC (控制器温度)           |
+| volt_2         | 电压2 0.1V (ECU电压)              |
 | index          | 发动机编号 0-3                    |
 
 转速 RAW_RPM 为飞控自己采集的 HOLL 高低电平转速
@@ -850,13 +857,24 @@ comp_id 为 0 时, 飞控将回复多个消息逐个返回所有可获取设备
 
 当有称重器设备数据接入后, 飞控自动周期向地面站发送此消息
 
-| 字段       | 说明                 |
-| ---------- | -------------------- |
-| timestamp  | 毫秒时间戳           |
-| weight     | 称重器重量 g         |
-| weight_d   | 称重器重量变化率 g/s |
-| work_state | 工作状态             |
-| err_code   | 称重器故障码         |
+| 字段        | 说明                        |
+| ----------- | --------------------------- |
+| timestamp   | 毫秒时间戳                  |
+| weight      | 称重器重量 g                |
+| weight_d    | 称重器重量变化率 g/s        |
+| work_state  | 工作状态 参考work_state说明 |
+| err_code    | 称重器故障码                |
+| attitude_Q  | 称重器IMU姿态四元数         |
+| rope_length | 索降器下放绳长  m           |
+| rope_vel    | 索降器绳子收放速度   m/s    |
+
+work_state状态字段位掩码说明:
+
+bit 0-3:吊运器安装方向
+0 - 前向安装 - IMUYOFF 90度
+1 - 右向安装 - IMUYOFF 180度
+2 - 后向安装 - IMUYOFF -90度
+3 - 左向安装 - IMUYOFF 0度
 
 ### 2.25 电调状态数据 VK_DIGI_ESC_STATUS
 
@@ -1062,7 +1080,7 @@ xyz的坐标系需按定义对齐. 坐标定义支持两种, 由 frame_id 指定
 
 ### 2.34 CACC 管理信息 VK_CACC_MANAGER_VERIFY
 
-CACC 管理信息 json 表, 地面站向飞控传输后飞控记录在内部存储. 
+CACC 管理信息 json 表, 地面站向飞控传输后飞控记录在内部存储.
 地面站可通过 MAV_CMD_REQUEST_MESSAGE 从飞控进行读取.
 
 | 字段      | 说明             |
@@ -1076,7 +1094,6 @@ CACC 管理信息 json 表, 地面站向飞控传输后飞控记录在内部存
 
 **机载摇杆或地面摇杆只能二选一, 不可同时都接入**
 
-
 | 字段    | 说明                                                      |
 | ------- | --------------------------------------------------------- |
 | x       | [-1000,1000], 俯仰, 负数低头, 正数抬头, INT16_MAX无效     |
@@ -1093,7 +1110,6 @@ CACC 管理信息 json 表, 地面站向飞控传输后飞控记录在内部存
 * 手动降落上锁, 飞机触地后 z < -900
 * 手动强制上锁, b0 = b1 = b2 = 1, 持续1s 强制上锁
 
-
 ### 2.36 空速传感器数据 VK_AIRSPEED
 
 | 字段        | 说明          |
@@ -1104,7 +1120,6 @@ CACC 管理信息 json 表, 地面站向飞控传输后飞控记录在内部存
 | raw_press   | 压力 hPa 百帕 |
 | flags       | 标志位 1-异常 |
 
-
 ## 3 参数设置
 
 飞控的参数修改、读取方法参考 [mavlink services parameter](https://mavlink.io/en/services/parameter.html). 使用16字节的 paramid 作为每各参数的唯一表示码.
@@ -1579,7 +1594,7 @@ param1~param5中,
 | param1 | 设置电调编号, 1-16, NAN表示忽略该指令                       |
 | param2 | 设置电调led, 0-关, 1-蓝, 2-绿, 3-青, 4-红, 5-紫, 6-黄, 7-白 |
 
-设置电调led 
+设置电调led
 
 ```
 param2 = (float)(颜色 + (闪烁 << 4) +(电调编号<<8))
@@ -1602,7 +1617,6 @@ param2 = (float)(颜色 + (闪烁 << 4) +(电调编号<<8))
 1号电调绿闪 = 0x2 + (0x1 << 4) + (0x1 << 8)
 4号电调关灯 = 0x0 + (0x0 << 4) + (0x4 << 8)
 
-
 ### 5.32 指点后抛投 VKFLY_CMD_DO_REPOSITION_THAN_THROW
 
 指点后抛投, 本指令仅支持 COMMAND_INT
@@ -1670,11 +1684,14 @@ param2 = (float)(颜色 + (闪烁 << 4) +(电调编号<<8))
 
 ### 5.36 称重器配置 VKFLY_CMD_WEIGHER_CONFIG
 
-| 参数   | 说明                                      |
-| ------ | ----------------------------------------- |
-| param1 | 重量校准, 填写实际载重单位克. NAN表示忽略 |
-| param2 | 1-恢复出厂配置.  NAN表示忽略              |
-| param3 | 熔断指令,1-进行熔断.  NAN表示忽略        |
+| 参数   | 说明                                                        |
+| ------ | ----------------------------------------------------------- |
+| param1 | 重量校准, 填写实际载重单位克. NAN表示忽略                   |
+| param2 | 1-恢复出厂配置.  NAN表示忽略                                |
+| param3 | 熔断指令,1-进行熔断.  NAN表示忽略                          |
+| param4 | 脱钩指令,1-进行脱钩, 2-脱钩重置, 3-停止动作. NAN表示忽略 |
+| param5 | 安装方向,-180~180度, NAN表示无效                          |
+
 ### 5.37 队形飞行 VKFLY_CMD_FORMATION_FLY
 
 编队指令. 编队集结或解散指令发送给队形从机, 设置队形指令发送给队形主机.
@@ -1746,13 +1763,30 @@ param2 = (float)(颜色 + (闪烁 << 4) +(电调编号<<8))
 * param1
 0停止跟随, 1跟随吊舱目标
 
+### 5.44 指点开伞指令 VKFLY_CMD_DO_REPOSITION_THAN_DO_PARACHUTE
+
+| 参数   | 说明                               |
+| ------ | ---------------------------------- |
+| param1 | 开伞距离 m                         |
+| param3 | 速度, NAN 0 或负数表示默认巡航速度 |
+| x      | 纬度                               |
+| y      | 经度                               |
+| z      | 高度                               |
+
+### 5.45 清除抛投状态显示 VKFLY_CMD_CLEAR_SERVO_DISPALY
+
+* param1
+1-重置全部抛投状态显示为关闭
+
 ## 6 飞控数据 LOG 读取
 
 ### 6.1 获取日志列表
+
 地面站向飞控发送 LOG_REQUEST_LIST 消息获取所有日志列表, 飞控回复 LOG_ENTRY 信息. 每个日志文件一条 LOG_ENTRY 信息.
 飞控默认以解锁-上锁存一个数据文件, 最多50个.
 
 * LOG_REQUEST_LIST
+
   | 字段             | 说明              |
   | ---------------- | ----------------- |
   | start            | 0~49              |
@@ -1761,6 +1795,7 @@ param2 = (float)(颜色 + (闪烁 << 4) +(电调编号<<8))
   | target_component | 目标飞控的 compid |
 
 * LOG_ENTRY
+
   | 字段         | 说明                  |
   | ------------ | --------------------- |
   | time_utc     | LOG utc时间           |
@@ -1897,221 +1932,242 @@ VKins 系统的状态数据自定义消息, 主要用于一些自定状态的传
 | dist_t_tar    | 目标距离, cm                                                          |
 | servo_state   | 舵机状态, 每位对应一个舵机, 1-开 0-关                                 |
 | flight_dist   | 飞行距离, m, 本次上电开始飞行的总距离                                 |
+| servo_display | 舵机状态展示, 每位对应一个舵机, 1-开 0-关,仅用作展示                 |
+
 ## 9 飞控参数说明
 
 飞控参数名作为确认飞控参数用途的唯一识别码, 不可随意修改. 在新增参数时应注意不要与已有参数重名, 保持向前兼容性.
 
 ### 9.1 旋翼版本参数
 
-| 参数名          | 参数                                 | 类型   | 说明                                                                                               |
-| --------------- | ------------------------------------ | ------ | -------------------------------------------------------------------------------------------------- |
-| MAV_SYS_ID      | 系统ID                               | UINT8  | 范围1~255, 作为MAVLINK通信使用的 SYSTEM ID                                                         |
-| MAV_COMP_ID     | 组件ID                               | UINT8  | 范围1~255, 作为MAVLINK通信使用的COMPONENT ID                                                       |
-| MLOG_MODE       | 数据记录模式                         | UINT32 | 范围0~3 <br>0-不记录 <br>1-解锁到上锁 <br>2-上电到落锁 3-上电到下电                                |
-| BOOT_MODE       | 系统启动模式                         | UINT8  | 范围0~1, 0正常启动, 1U盘模式(用于导入导出数据文件)                                                 |
-| HW_SN_NUM       | 硬件SN号                             | UINT32 | 范围0~UINT32_MAX                                                                                   |
-| AIRFRAME        | 飞机布局类型                         | UINT16 | 范围0~UINT16_MAX, 区分不同的飞机布局类型, 参考 enum AP_TYPE                                        |
-| GCS_DISCONT_DT  | 地面站失联时间                       | UINT16 | 范围0~UINT16_MAX, 单位s. 持续未收到地面站心跳的时间, 0-表示不检测地面站失联                        |
-| RCFAIL_LOT_T    | RC失控悬停时间                       | UINT16 | 范围0~UINT16_MAX, 单位s. 遥控器失控后悬停等待时间                                                  |
-| RC_ATT_EN       | 遥控器姿态模式启用                   | UINT16 | 范围0~1, 0不启用, 1启用                                                                            |
-| VOLT1_LOW_VAL   | 一级电压低阈值                       | FLOAT  | 范围0~1000, 单位V                                                                                  |
-| VOLT2_LOW_VAL   | 二级电压低阈值                       | FLOAT  | 范围0~1000, 单位V                                                                                  |
-| VCAP1_LOW_VAL   | 一级电量低阈值                       | UINT8  | 范围0~100, 单位1%, 当具有多个智能电池时, 飞控按他们中最低电量进行触发保护判定                      |
-| VCAP2_LOW_VAL   | 二级电量低阈值                       | UINT8  | 范围0~100, 单位1%                                                                                  |
-| H2P_LOW1_VAL    | 一级氢气压低阈值                     | FLOAT  | 范围0~10000, 单位MPa                                                                               |
-| H2P_LOW1_VAL    | 二级氢气压低阈值                     | FLOAT  | 范围0~10000, 单位MPa                                                                               |
-| FUEL_LOW1_VAL   | 一级ecu油量低阈值                    | FLOAT  | 范围 1~100, 单位%                                                                                  |
-| FUEL_LOW2_VAL   | 二级ecu油量低阈值                    | FLOAT  | 范围 1~100, 单位%                                                                                  |
-| VOLT_PROT_CH    | 电压保护通道                         | UINT16 | 范围0~10, 触发电压保护的通道, 默认0飞控供电                                                        |
-| OBAVOID_DIST    | 障碍悬停距离                         | FLOAT  | 范围2~8, 单位m                                                                                     |
-| OBAVOID_ACT     | 避障动作                             | UINT8  | 范围0~2,0-不开启 1-悬停 2-爬高                                                                     |
-| GCS_DISC_CRUISE | 航线中是否启用地面站失联             | UINT8  | 范围0~1,0-不启用 1-启用                                                                            |
-| FS_CONF_A       | 失控保护设置                         | UINT32 | 参考enum FS_ACTION. 每4bit为一类保护动作设置                                                       |
-| CIR_RAD_DFLT    | 默认环绕/盘旋半径                    | FLOAT  | 范围1~10000m                                                                                       |
-| TOF_ALT_M       | 默认起飞高度                         | FLOAT  | 范围1~5000, 单位m                                                                                  |
-| RTL_ALT_M       | 默认返航高度                         | FLOAT  | 范围0~5000, 单位m                                                                                  |
-| RTL_HEAD_MODE   | 返航机头对准方式                     | UINT16 | 0-对头返航 1-对尾返航 2-保持当前航向                                                               |
-| WP_FP_ALT_MODE  | 去航线起始点爬高方式                 | UINT8  | 0-直线爬升 1-斜线爬升                                                                              |
-| RTL_EXEC_MODE   | 默认返航执行方式                     | UINT8  | 参考VKFLY_RTL_EXEC_MODE                                                                            |
-| MC_XY_CRUISE    | 默认旋翼巡航速度                     | FLOAT  | 范围2~25, 单位m/s                                                                                  |
-| COM_P1_AF       | 载荷P1串口复用                       | UINT16 | 范围0~UINT16_MAX                                                                                   |
-| ALT_LIM_UP1     | 1级高度限制                          | UINT16 | 范围10~10000, 单位m                                                                                |
-| ALT_LIM_UP2     | 2级高度限制                          | UINT16 | 范围0~10000, 单位m                                                                                 |
-| MAX_HOR_DIST    | 最远水平距离                         | UINT32 | 范围0~UINT32_MAX, 单位m                                                                            |
-| PREC_LAND_ERR   | 精准降落误差范围                     | FLOAT  | 范围0.05~1.0, 单位m                                                                                |
-| VEFOL_FR        | 车辆跟随相对右向位置                 | FLOAT  | 范围-1000~1000,单位m                                                                               |
-| VEFOL_FF        | 车辆跟随相对前向位置                 | FLOAT  | 范围-1000~1000,单位m                                                                               |
-| VEFOL_FU        | 车辆跟随相对上向位置                 | FLOAT  | 范围-1000~1000,单位m                                                                               |
-| VEFOL_FYD       | 车辆跟随相对航向夹角                 | FLOAT  | 范围-180~180,单位deg                                                                               |
-| VEFOL_BASE_YD   | 基站航向安装偏角                     | FLOAT  | 范围-180~180, 单位deg                                                                              |
-| VEFOL_BASE_YD   | 基站航向安装偏角                     | FLOAT  | 范围-180~180, 单位deg                                                                              |
-| PHO_SIG_TYPE    | 拍照信号类型                         | UINT8  | 范围0~2 <br>0-低电平 <br>1-高电平 <br>2-PWM                                                        |
-| PHO_PWM_OFF     | 拍照PWM信号待命值                    | UINT16 | 范围0~10000, 单位us                                                                                |
-| PHO_PWM_ON      | 拍照PWM信号触发值                    | UINT16 | 范围0~10000, 单位us                                                                                |
-| PHO_SIG_TIME    | 拍照触发信号持续时间                 | UINT16 | 范围0~20000, 单位ms                                                                                |
-| PHO_SIG_CH      | 拍照-信号输出通道映射                | UINT8  | 拍照信号映射到飞控的哪个输出接口,0~16, 0-表示不启用映射输出                                        |
-| FOLLOW_DIST     | 默认跟随距离                         | FLOAT  | 范围2~1000,单位m                                                                                   |
-| MAN_VELH_MAX    | 手动模式最大水平速度                 | FLOAT  | 范围2~20,单位m/s                                                                                   |
-| MAN_VELU_MAX    | 手动模式最大爬升速度                 | FLOAT  | 范围1~10,单位m/s                                                                                   |
-| MAN_VELD_MAX    | 手动模式最大下降速度                 | FLOAT  | 范围1~10,单位m/s                                                                                   |
-| AUTO_VELU_MAX   | 自动模式最大爬升速度                 | FLOAT  | 范围0.5~8, 单位m/s                                                                                 |
-| AUTO_VELD_MAX   | 自动模式最大下降速度                 | FLOAT  | 范围0.2~5,单位m/s                                                                                  |
-| AUTO_VELV_LND   | 自动模式降落接地速度                 | FLAOT  | 范围0.2~0.6, 单位m/s                                                                               |
-| TILT_ANG_MAX    | 最大倾斜角度                         | FLOAT  | 范围10~45,单位deg                                                                                  |
-| YAW_SPD_MAX     | 最大航向角速度                       | FLAOT  | 范围10~120,单位deg/s                                                                               |
-| MC_RP_ANG_KP    | 旋翼横滚俯仰角度比例系数             | UINT16 | 范围200~800                                                                                        |
-| MC_YAW_ANG_KP   | 旋翼航向角度比例系数                 | UINT16 | 范围200~800                                                                                        |
-| MC_RSPD_KP      | 旋翼横滚角速度比例系数               | UINT16 | 范围30~200                                                                                         |
-| MC_RSPD_KI      | 旋翼横滚角速度积分系数               | UINT16 | 范围0~20                                                                                           |
-| MC_RSPD_KD      | 旋翼横滚角速度微分系数               | UINT16 | 范围0~20                                                                                           |
-| MC_PSPD_KP      | 旋翼俯仰角速度比例系数               | UINT16 | 范围30~200                                                                                         |
-| MC_PSPD_KI      | 旋翼俯仰角速度积分系数               | UINT16 | 范围0~20                                                                                           |
-| MC_PSPD_KD      | 旋翼俯仰角速度微分系数               | UINT16 | 范围0~20                                                                                           |
-| MC_YSPD_KP      | 旋翼航向角速度比例系数               | UINT16 | 范围50~400                                                                                         |
-| MC_YSPD_KI      | 旋翼航向角速度积分系数               | UINT16 | 范围0~20                                                                                           |
-| MC_YSPD_KD      | 旋翼航向角速度微分系数               | UINT16 | 范围0~20                                                                                           |
-| MC_PXY_KP       | 旋翼水平位置比例系数                 | UINT16 | 范围20~150                                                                                         |
-| MC_VXY_KP       | 旋翼水平速度比例系数                 | UINT16 | 范围80~200                                                                                         |
-| MC_VXY_KI       | 旋翼水平速度积分系数                 | UINT16 | 范围0~20                                                                                           |
-| MC_VXY_KD       | 旋翼水平速度微分系数                 | UINT16 | 范围0~20                                                                                           |
-| MC_PZ_KP        | 旋翼高度位置比例系数                 | UINT16 | 范围20~150                                                                                         |
-| MC_VZ_KP        | 旋翼垂直速度比例系数                 | UINT16 | 范围300~500                                                                                        |
-| MC_AZ_KP        | 旋翼垂直加速度比例系数               | UINT16 | 范围5~20                                                                                           |
-| MC_AZ_KI        | 旋翼垂直加速度积分系数               | UINT16 | 范围5~20                                                                                           |
-| MC_JERKXY_MAX   | 旋翼水平最大加加速度                 | FLOAT  | 范围8~20,单位m/s                                                                                   |
-| MC_HOV_THR      | 旋翼悬停油门                         | FLOAT  | 范围0.3~0.7(暂未使用)                                                                              |
-| MC_MIN_THR      | 旋翼怠速油门                         | FLOAT  | 范围0.05~0.25                                                                                      |
-| MC_UL_THR_BAL   | 旋翼共轴负载均衡                     | INT8   | -10~10,单位%, 调配指定共轴型旋翼上下层动力负载分配, 负值代表下层桨叶负载少, 正值代表下层桨叶负载多 |
-| GYRO0_XOFF      | GYRO0 X轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
-| GYRO0_YOFF      | GYRO0 Y轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
-| GYRO0_ZOFF      | GYRO0 Z轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
-| ACC0_XOFF       | ACC0 X轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
-| ACC0_YOFF       | ACC0 Y轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
-| ACC0_ZOFF       | ACC0 Z轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
-| ACC0_XXSCALE    | ACC0 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
-| ACC0_YYSCALE    | ACC0 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
-| ACC0_ZZSCALE    | ACC0 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
-| MAG0_XOFF       | MAG0 X轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
-| MAG0_YOFF       | MAG0 Y轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
-| MAG0_ZOFF       | MAG0 Z轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
-| MAG0_XXSCALE    | MAG0 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
-| MAG0_YYSCALE    | MAG0 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
-| MAG0_ZZSCALE    | MAG0 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
-| GYRO1_XOFF      | GYRO1 X轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
-| GYRO1_YOFF      | GYRO1 Y轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
-| GYRO1_ZOFF      | GYRO1 Z轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
-| ACC1_XOFF       | ACC1 X轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
-| ACC1_YOFF       | ACC1 Y轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
-| ACC1_ZOFF       | ACC1 Z轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
-| ACC1_XXSCALE    | ACC1 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
-| ACC1_YYSCALE    | ACC1 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
-| ACC1_ZZSCALE    | ACC1 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
-| MAG1_XOFF       | MAG1 X轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
-| MAG1_YOFF       | MAG1 Y轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
-| MAG1_ZOFF       | MAG1 Z轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
-| MAG1_XXSCALE    | MAG1 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
-| MAG1_YYSCALE    | MAG1 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
-| MAG1_ZZSCALE    | MAG1 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
-| IMU_ATT_ROFF0   | IMU水平ROLL偏移                      | FLOAT  | 范围-180~180, 单位 deg <br>飞控通过水平校准自动捕获                                                |
-| IMU_ATT_POFF0   | IMU水平PITCH偏移                     | FLOAT  | 范围-180~180, 单位 deg <br>飞控通过水平校准自动捕获                                                |
-| IMU_ATT_YOFF0   | IMU水平YAW偏移                       | FLOAT  | 范围-180~180, 单位 deg <br>可用于设置飞控IMU安装朝向 <br>安装方向前0, 右90, 左-90, 后180           |
-| ASPD0_OFFSET1   | 空速计零偏                           | FLOAT  | 范围 -5000~5000, 单位Pa                                                                            |
-| IMU_GFLT_TYPE   | 角速度滤波类型                       | UINT8  | 范围0~5, 0-VVH 1-VH 2-H 3-M 4-L 5-VL                                                               |
-| IMU_AFLT_TYPE   | 加速度滤波类型                       | UINT8  | 范围0~5, 0-VVH 1-VH 2-H 3-M 4-L 5-VL                                                               |
-| IMU_PXOFF       | 飞控IMU X安装距离偏差                | INT32  | 范围-1000~1000, 单位cm <br>IMU安装离飞机中心X轴向偏差距离                                          |
-| IMU_PYOFF       | 飞控IMU Y安装距离偏差                | INT32  | 范围-1000~1000, 单位cm <br>IMU安装离飞机中心Y轴向偏差距离                                          |
-| IMU_PZOFF       | 飞控IMU Z安装距离偏差                | INT32  | 范围-1000~1000, 单位cm <br>IMU安装离飞机中心Z轴向偏差距离                                          |
-| GPS_ANT_XOFF    | 普通GPS天线X安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心X轴向偏差距离                                         |
-| GPS_ANT_YOFF    | 普通GPS天线Y安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Y轴向偏差距离                                         |
-| GPS_ANT_ZOFF    | 普通GPS天线Z安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Z轴向偏差距离                                         |
-| RTK_ANT_XOFF    | RTK定位天线X安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心X轴向偏差距离                                         |
-| RTK_ANT_YOFF    | RTK定位天线Y安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Y轴向偏差距离                                         |
-| RTK_ANT_ZOFF    | RTK定位天线Z安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Z轴向偏差距离                                         |
-| RTK_H_COMP      | RTK测向先天安装角度偏差              | FLOAT  | 范围-180~180, 单位deg <br>常用前后安装 0deg, 左右安装 90deg                                        |
-| BAT_V_DIV0      | 电压通道0校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
-| BAT_V_DIV1      | 电压通道1校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
-| BAT_V_DIV2      | 电压通道2校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
-| BAT_V_DIV3      | 电压通道3校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
-| BAT_V_OFF0      | 电压通道0校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
-| BAT_V_OFF1      | 电压通道1校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
-| BAT_V_OFF2      | 电压通道2校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
-| BAT_V_OFF3      | 电压通道3校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
-| GIMB_RTM_RCCH   | 载荷回中-遥控器通道映射              | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
-| GIMB_MROI_RCCH  | 载荷ROI-遥控器通道映射               | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
-| GIMB_FOLL_RCCH  | 载荷跟随\锁定模式切换-遥控器通道映射 | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
-| GIMB_ZOOM_RCCH  | 载荷画面缩放-遥控器通道映射          | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
-| GIMB_PHO_RCCH   | 载荷拍照-遥控器通道映射              | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
-| GIMB_REC_RCCH   | 载荷录像-遥控器通道映射              | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
-| GIMB_SSW_RCCH   | 载荷画面切换-遥控器通道映射          | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_INSUR     | 手动抛投保险开关-遥控器通道映射      | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH1     | 抛投1-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH2     | 抛投2-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH3     | 抛投3-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH4     | 抛投4-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH5     | 抛投5-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH6     | 抛投6-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH7     | 抛投7-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH8     | 抛投8-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH9     | 抛投9-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_RCCH10    | 抛投10-遥控器通道映射                | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| THROW_CH1       | 抛投1-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH2       | 抛投2-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH3       | 抛投3-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH4       | 抛投4-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH5       | 抛投5-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH6       | 抛投6-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH7       | 抛投7-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH8       | 抛投8-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH9       | 抛投9-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH10      | 抛投10-PWM输出通道映射               | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
-| THROW_CH1_ON    | 抛投1-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH2_ON    | 抛投2-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH3_ON    | 抛投3-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH4_ON    | 抛投4-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH5_ON    | 抛投5-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH6_ON    | 抛投6-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH7_ON    | 抛投7-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH8_ON    | 抛投8-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH9_ON    | 抛投9-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH10_ON   | 抛投10-打开PWM值                     | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH1_OFF   | 抛投1-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH2_OFF   | 抛投2-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH3_OFF   | 抛投3-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH4_OFF   | 抛投4-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH5_OFF   | 抛投5-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH6_OFF   | 抛投6-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH7_OFF   | 抛投7-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH8_OFF   | 抛投8-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH9_OFF   | 抛投9-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
-| THROW_CH10_OFF  | 抛投10-关闭PWM值                     | UINT16 | 范围 0~2500                                                                                        |
-| THROW_DC_CH1    | 直通舵机1-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| THROW_DC_CH2    | 直通舵机2-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| THROW_DC_CH3    | 直通舵机3-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| THROW_DC_CH4    | 直通舵机4-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| THROW_DC_RCCH1  | 直通舵机1-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| THROW_DC_RCCH2  | 直通舵机2-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| THROW_DC_RCCH3  | 直通舵机3-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| THROW_DC_RCCH4  | 直通舵机4-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
-| PARACHUTE_RCCH  | 降落伞-遥控器通道映射                | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
-| PARACHUTE_CH    | 降落伞-PWM输出通道映射               | UINT16 | 范围 7~16, 0-表示不启用                                                                            |
-| PARACHUTE_ON    | 降落伞-打开PWM值                     | UINT16 | 范围 0~2500                                                                                        |
-| PARACHUTE_OFF   | 降落伞-关闭PWM值                     | UINT16 | 范围 0~2500                                                                                        |
-| COM_SBUSO_AF    | SBUS.O复用                           | UINT8  | 0-透传SBUS.I 1-复用为抛投信号                                                                      |
-| LADRC_EN        | LADRC控制开关                        | UINT8  | 0-不启用 1-启用, 默认不启用                                                                        |
-| LADRC_R_B0      | LADRC横滚感度                        | float  | 100~1000, 默认300                                                                                  |
-| LADRC_P_B0      | LADRC俯仰感度                        | float  | 100~1000, 默认300                                                                                  |
-| LADRC_Y_B0      | LADRC航向感度                        | float  | 100~1000, 默认600                                                                                  |
-| WIND_COMP_KP    | 抗风补偿                             | float  | 0~1, 默认0                                                                                         |
-| PL_WEI_MAX      | 称重超重门限                         | float  | 单位kg, 范围 0~1000kg, 0表示不启用                                                                 |
-| NAV_DFLT_SATID  | 默认定位卫导模块                     | UINT16 | 0 RTK, 1 GPS, 2 外接备份/抗干扰模块                                                                |
-| MAV_GCS_STA     | 主链路初始默认状态                   | uint32 | 0 自动发送周期消息, 1 静默                                                                         |
-| MAV_OBV_STA     | 备份链路初默认始状态                 | uint32 | 0 自动发送周期消息, 1 静默                                                                         |
-| FORM_CUS_X      | 自定义队形左右位置                   | float  | m, 右为正                                                                                          |
-| FORM_CUS_Y      | 自定义队形前后位置                   | float  | m, 前为正                                                                                          |
-| FORM_CUS_Z      | 自定义队形上下位置                   | float  | m, 上为正                                                                                          |
-| RC_AUTO_AID     | 遥控器自动辅助开关                   | UINT32 | 每bit代表一个通道, 1 启用, bit0遥控器高度辅助开关                                                  |
-| GIMB_PROT_TYPE  | 载荷串口设备                         | UINT32 | 参考[载荷串口设备](#9-载荷串口设备)                                                                |
-| PREFLY_CHECK    | 预飞检查等级                         | UINT32 | 0默认, 1调试. 调试级手动飞行解锁不检查姿态和部分传感器状态                                         |
+| 参数名           | 参数                                 | 类型   | 说明                                                                                               |
+| ---------------- | ------------------------------------ | ------ | -------------------------------------------------------------------------------------------------- |
+| MAV_SYS_ID       | 系统ID                               | UINT8  | 范围1~255, 作为MAVLINK通信使用的 SYSTEM ID                                                         |
+| MAV_COMP_ID      | 组件ID                               | UINT8  | 范围1~255, 作为MAVLINK通信使用的COMPONENT ID                                                       |
+| MLOG_MODE        | 数据记录模式                         | UINT32 | 范围0~3 <br>0-不记录 <br>1-解锁到上锁 <br>2-上电到落锁 3-上电到下电                                |
+| BOOT_MODE        | 系统启动模式                         | UINT8  | 范围0~1, 0正常启动, 1U盘模式(用于导入导出数据文件)                                                 |
+| HW_SN_NUM        | 硬件SN号                             | UINT32 | 范围0~UINT32_MAX                                                                                   |
+| AIRFRAME         | 飞机布局类型                         | UINT16 | 范围0~UINT16_MAX, 区分不同的飞机布局类型, 参考 enum AP_TYPE                                        |
+| GCS_DISCONT_DT   | 地面站失联时间                       | UINT16 | 范围0~UINT16_MAX, 单位s. 持续未收到地面站心跳的时间, 0-表示不检测地面站失联                        |
+| RCFAIL_LOT_T     | RC失控悬停时间                       | UINT16 | 范围0~UINT16_MAX, 单位s. 遥控器失控后悬停等待时间                                                  |
+| RC_ATT_EN        | 遥控器姿态模式启用                   | UINT16 | 范围0~1, 0不启用, 1启用                                                                            |
+| VOLT1_LOW_VAL    | 一级电压低阈值                       | FLOAT  | 范围0~1000, 单位V                                                                                  |
+| VOLT2_LOW_VAL    | 二级电压低阈值                       | FLOAT  | 范围0~1000, 单位V                                                                                  |
+| VCAP1_LOW_VAL    | 一级电量低阈值                       | UINT8  | 范围0~100, 单位1%, 当具有多个智能电池时, 飞控按他们中最低电量进行触发保护判定                      |
+| VCAP2_LOW_VAL    | 二级电量低阈值                       | UINT8  | 范围0~100, 单位1%                                                                                  |
+| H2P_LOW1_VAL     | 一级氢气压低阈值                     | FLOAT  | 范围0~10000, 单位MPa                                                                               |
+| H2P_LOW1_VAL     | 二级氢气压低阈值                     | FLOAT  | 范围0~10000, 单位MPa                                                                               |
+| FUEL_LOW1_VAL    | 一级ecu油量低阈值                    | FLOAT  | 范围 1~100, 单位%                                                                                  |
+| FUEL_LOW2_VAL    | 二级ecu油量低阈值                    | FLOAT  | 范围 1~100, 单位%                                                                                  |
+| VOLT_PROT_CH     | 电压保护通道                         | UINT16 | 范围0~10, 触发电压保护的通道, 默认0飞控供电                                                        |
+| OBAVOID_DIST     | 障碍悬停距离                         | FLOAT  | 范围2~8, 单位m                                                                                     |
+| OBAVOID_ACT      | 避障动作                             | UINT8  | 范围0~2,0-不开启 1-悬停 2-爬高                                                                     |
+| GCS_DISC_CRUISE  | 航线中是否启用地面站失联             | UINT8  | 范围0~1,0-不启用 1-启用                                                                            |
+| FS_CONF_A        | 失控保护设置                         | UINT32 | 参考enum FS_ACTION. 每4bit为一类保护动作设置                                                       |
+| CIR_RAD_DFLT     | 默认环绕/盘旋半径                    | FLOAT  | 范围1~10000m                                                                                       |
+| TOF_ALT_M        | 默认起飞高度                         | FLOAT  | 范围1~5000, 单位m                                                                                  |
+| RTL_ALT_M        | 默认返航高度                         | FLOAT  | 范围0~5000, 单位m                                                                                  |
+| RTL_HEAD_MODE    | 返航机头对准方式                     | UINT16 | 0-对头返航 1-对尾返航 2-保持当前航向                                                               |
+| WP_FP_ALT_MODE   | 去航线起始点爬高方式                 | UINT8  | 0-直线爬升 1-斜线爬升                                                                              |
+| RTL_EXEC_MODE    | 默认返航执行方式                     | UINT8  | 参考VKFLY_RTL_EXEC_MODE                                                                            |
+| MC_XY_CRUISE     | 默认旋翼巡航速度                     | FLOAT  | 范围2~25, 单位m/s                                                                                  |
+| COM_P1_AF        | 载荷P1串口复用                       | UINT16 | 范围0~UINT16_MAX                                                                                   |
+| ALT_LIM_UP1      | 1级高度限制                          | UINT16 | 范围10~10000, 单位m                                                                                |
+| ALT_LIM_UP2      | 2级高度限制                          | UINT16 | 范围0~10000, 单位m                                                                                 |
+| MAX_HOR_DIST     | 最远水平距离                         | UINT32 | 范围0~UINT32_MAX, 单位m                                                                            |
+| PREC_LAND_ERR    | 精准降落误差范围                     | FLOAT  | 范围0.05~1.0, 单位m                                                                                |
+| VEFOL_FR         | 车辆跟随相对右向位置                 | FLOAT  | 范围-1000~1000,单位m                                                                               |
+| VEFOL_FF         | 车辆跟随相对前向位置                 | FLOAT  | 范围-1000~1000,单位m                                                                               |
+| VEFOL_FU         | 车辆跟随相对上向位置                 | FLOAT  | 范围-1000~1000,单位m                                                                               |
+| VEFOL_FYD        | 车辆跟随相对航向夹角                 | FLOAT  | 范围-180~180,单位deg                                                                               |
+| VEFOL_BASE_YD    | 基站航向安装偏角                     | FLOAT  | 范围-180~180, 单位deg                                                                              |
+| VEFOL_BASE_YD    | 基站航向安装偏角                     | FLOAT  | 范围-180~180, 单位deg                                                                              |
+| PHO_SIG_TYPE     | 拍照信号类型                         | UINT8  | 范围0~2 <br>0-低电平 <br>1-高电平 <br>2-PWM                                                        |
+| PHO_PWM_OFF      | 拍照PWM信号待命值                    | UINT16 | 范围0~10000, 单位us                                                                                |
+| PHO_PWM_ON       | 拍照PWM信号触发值                    | UINT16 | 范围0~10000, 单位us                                                                                |
+| PHO_SIG_TIME     | 拍照触发信号持续时间                 | UINT16 | 范围0~20000, 单位ms                                                                                |
+| PHO_SIG_CH       | 拍照-信号输出通道映射                | UINT8  | 拍照信号映射到飞控的哪个输出接口,0~16, 0-表示不启用映射输出                                        |
+| FOLLOW_DIST      | 默认跟随距离                         | FLOAT  | 范围2~1000,单位m                                                                                   |
+| MAN_VELH_MAX     | 手动模式最大水平速度                 | FLOAT  | 范围2~20,单位m/s                                                                                   |
+| MAN_VELU_MAX     | 手动模式最大爬升速度                 | FLOAT  | 范围1~10,单位m/s                                                                                   |
+| MAN_VELD_MAX     | 手动模式最大下降速度                 | FLOAT  | 范围1~10,单位m/s                                                                                   |
+| AUTO_VELU_MAX    | 自动模式最大爬升速度                 | FLOAT  | 范围0.5~8, 单位m/s                                                                                 |
+| AUTO_VELD_MAX    | 自动模式最大下降速度                 | FLOAT  | 范围0.2~5,单位m/s                                                                                  |
+| AUTO_VELV_LND    | 自动模式降落接地速度                 | FLAOT  | 范围0.2~0.6, 单位m/s                                                                               |
+| TILT_ANG_MAX     | 最大倾斜角度                         | FLOAT  | 范围10~45,单位deg                                                                                  |
+| YAW_SPD_MAX      | 最大航向角速度                       | FLOAT  | 范围10~120,单位deg/s                                                                               |
+| MC_RP_ANGACC_MAX | 最大横滚俯仰角加速度                 | FLOAT  | 范围500~1000,单位deg/s/s                                                                          |
+| MC_RP_ANG_KP     | 旋翼横滚俯仰角度比例系数             | UINT16 | 范围200~800                                                                                        |
+| MC_YAW_ANG_KP    | 旋翼航向角度比例系数                 | UINT16 | 范围200~800                                                                                        |
+| MC_RSPD_KP       | 旋翼横滚角速度比例系数               | UINT16 | 范围30~200                                                                                         |
+| MC_RSPD_KI       | 旋翼横滚角速度积分系数               | UINT16 | 范围0~20                                                                                           |
+| MC_RSPD_KD       | 旋翼横滚角速度微分系数               | UINT16 | 范围0~20                                                                                           |
+| MC_PSPD_KP       | 旋翼俯仰角速度比例系数               | UINT16 | 范围30~200                                                                                         |
+| MC_PSPD_KI       | 旋翼俯仰角速度积分系数               | UINT16 | 范围0~20                                                                                           |
+| MC_PSPD_KD       | 旋翼俯仰角速度微分系数               | UINT16 | 范围0~20                                                                                           |
+| MC_YSPD_KP       | 旋翼航向角速度比例系数               | UINT16 | 范围50~400                                                                                         |
+| MC_YSPD_KI       | 旋翼航向角速度积分系数               | UINT16 | 范围0~20                                                                                           |
+| MC_YSPD_KD       | 旋翼航向角速度微分系数               | UINT16 | 范围0~20                                                                                           |
+| MC_PXY_KP        | 旋翼水平位置比例系数                 | UINT16 | 范围20~150                                                                                         |
+| MC_VXY_KP        | 旋翼水平速度比例系数                 | UINT16 | 范围80~200                                                                                         |
+| MC_VXY_KI        | 旋翼水平速度积分系数                 | UINT16 | 范围0~20                                                                                           |
+| MC_VXY_KD        | 旋翼水平速度微分系数                 | UINT16 | 范围0~20                                                                                           |
+| MC_PZ_KP         | 旋翼高度位置比例系数                 | UINT16 | 范围20~150                                                                                         |
+| MC_VZ_KP         | 旋翼垂直速度比例系数                 | UINT16 | 范围300~500                                                                                        |
+| MC_AZ_KP         | 旋翼垂直加速度比例系数               | UINT16 | 范围5~20                                                                                           |
+| MC_AZ_KI         | 旋翼垂直加速度积分系数               | UINT16 | 范围5~20                                                                                           |
+| MC_JERKXY_MAX    | 旋翼水平最大加加速度                 | FLOAT  | 范围8~20,单位m/s^3                                                                                 |
+| MC_ACCXY_MAX     | 旋翼水平最大加速度                   | FLOAT  | 范围 1~20,单位m/s^2                                                                                |
+| MC_JERKZ_MAX     | 旋翼垂直最大加加速度                 | FLOAT  | 范围 1~20,单位m/s^3                                                                                |
+| MC_ACCZ_MAX      | 旋翼垂直最大加速度                   | FLOAT  | 范围 1~5,单位m/s^2                                                                                 |
+| MC_HOV_THR       | 旋翼悬停油门                         | FLOAT  | 范围0.3~0.7(暂未使用)                                                                              |
+| MC_MIN_THR       | 旋翼怠速油门                         | FLOAT  | 范围0.05~0.25                                                                                      |
+| MC_UL_THR_BAL    | 旋翼共轴负载均衡                     | INT8   | -10~10,单位%, 调配指定共轴型旋翼上下层动力负载分配, 负值代表下层桨叶负载少, 正值代表下层桨叶负载多 |
+| GYRO0_XOFF       | GYRO0 X轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
+| GYRO0_YOFF       | GYRO0 Y轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
+| GYRO0_ZOFF       | GYRO0 Z轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
+| ACC0_XOFF        | ACC0 X轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
+| ACC0_YOFF        | ACC0 Y轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
+| ACC0_ZOFF        | ACC0 Z轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
+| ACC0_XXSCALE     | ACC0 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
+| ACC0_YYSCALE     | ACC0 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
+| ACC0_ZZSCALE     | ACC0 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
+| MAG0_XOFF        | MAG0 X轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
+| MAG0_YOFF        | MAG0 Y轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
+| MAG0_ZOFF        | MAG0 Z轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
+| MAG0_XXSCALE     | MAG0 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
+| MAG0_YYSCALE     | MAG0 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
+| MAG0_ZZSCALE     | MAG0 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
+| GYRO1_XOFF       | GYRO1 X轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
+| GYRO1_YOFF       | GYRO1 Y轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
+| GYRO1_ZOFF       | GYRO1 Z轴零位偏移                    | FLOAT  | 范围-10~10, 单位 rad/s                                                                             |
+| ACC1_XOFF        | ACC1 X轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
+| ACC1_YOFF        | ACC1 Y轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
+| ACC1_ZOFF        | ACC1 Z轴零位偏移                     | FLOAT  | 范围-10~10, 单位m/s^2                                                                              |
+| ACC1_XXSCALE     | ACC1 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
+| ACC1_YYSCALE     | ACC1 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
+| ACC1_ZZSCALE     | ACC1 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
+| MAG1_XOFF        | MAG1 X轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
+| MAG1_YOFF        | MAG1 Y轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
+| MAG1_ZOFF        | MAG1 Z轴零位偏移                     | FLOAT  | 范围-10~10,单位Gauss                                                                               |
+| MAG1_XXSCALE     | MAG1 校准XX系数                      | FLOAT  | 范围-10~10                                                                                         |
+| MAG1_YYSCALE     | MAG1 校准YY系数                      | FLOAT  | 范围-10~10                                                                                         |
+| MAG1_ZZSCALE     | MAG1 校准ZZ系数                      | FLOAT  | 范围-10~10                                                                                         |
+| IMU_ATT_ROFF0    | IMU水平ROLL偏移                      | FLOAT  | 范围-180~180, 单位 deg <br>飞控通过水平校准自动捕获                                                |
+| IMU_ATT_POFF0    | IMU水平PITCH偏移                     | FLOAT  | 范围-180~180, 单位 deg <br>飞控通过水平校准自动捕获                                                |
+| IMU_ATT_YOFF0    | IMU水平YAW偏移                       | FLOAT  | 范围-180~180, 单位 deg <br>可用于设置飞控IMU安装朝向 <br>安装方向前0, 右90, 左-90, 后180           |
+| ASPD0_OFFSET1    | 空速计零偏                           | FLOAT  | 范围 -5000~5000, 单位Pa                                                                            |
+| IMU_GFLT_TYPE    | 角速度滤波类型                       | UINT8  | 范围0~5, 0-VVH 1-VH 2-H 3-M 4-L 5-VL                                                               |
+| IMU_AFLT_TYPE    | 加速度滤波类型                       | UINT8  | 范围0~5, 0-VVH 1-VH 2-H 3-M 4-L 5-VL                                                               |
+| IMU_PXOFF        | 飞控IMU X安装距离偏差                | INT32  | 范围-1000~1000, 单位cm <br>IMU安装离飞机中心X轴向偏差距离                                          |
+| IMU_PYOFF        | 飞控IMU Y安装距离偏差                | INT32  | 范围-1000~1000, 单位cm <br>IMU安装离飞机中心Y轴向偏差距离                                          |
+| IMU_PZOFF        | 飞控IMU Z安装距离偏差                | INT32  | 范围-1000~1000, 单位cm <br>IMU安装离飞机中心Z轴向偏差距离                                          |
+| GPS_ANT_XOFF     | 普通GPS天线X安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心X轴向偏差距离                                         |
+| GPS_ANT_YOFF     | 普通GPS天线Y安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Y轴向偏差距离                                         |
+| GPS_ANT_ZOFF     | 普通GPS天线Z安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Z轴向偏差距离                                         |
+| RTK_ANT_XOFF     | RTK定位天线X安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心X轴向偏差距离                                         |
+| RTK_ANT_YOFF     | RTK定位天线Y安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Y轴向偏差距离                                         |
+| RTK_ANT_ZOFF     | RTK定位天线Z安装距离偏差             | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Z轴向偏差距离                                         |
+| RTK_ANT2_XOFF    | RTK2定位天线X安装距离偏差            | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心X轴向偏差距离                                         |
+| RTK_ANT2_YOFF    | RTK2定位天线Y安装距离偏差            | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Y轴向偏差距离                                         |
+| RTK_ANT2_ZOFF    | RTK2定位天线Z安装距离偏差            | INT32  | 范围-1000~1000, 单位cm <br>天线安装离飞机中心Z轴向偏差距离                                         |
+| RTK_H_COMP       | RTK测向先天安装角度偏差              | FLOAT  | 范围-180~180, 单位deg <br>常用前后安装 0deg, 左右安装 90deg                                        |
+| BAT_V_DIV0       | 电压通道0校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
+| BAT_V_DIV1       | 电压通道1校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
+| BAT_V_DIV2       | 电压通道2校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
+| BAT_V_DIV3       | 电压通道3校准比例系数                | FLOAT  | 范围0~1000, 通道0为飞控供电电压                                                                    |
+| BAT_V_OFF0       | 电压通道0校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
+| BAT_V_OFF1       | 电压通道1校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
+| BAT_V_OFF2       | 电压通道2校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
+| BAT_V_OFF3       | 电压通道3校准偏移                    | FLOAT  | 范围-100~100, 单位V                                                                                |
+| GIMB_RTM_RCCH    | 载荷回中-遥控器通道映射              | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
+| GIMB_MROI_RCCH   | 载荷ROI-遥控器通道映射               | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
+| GIMB_FOLL_RCCH   | 载荷跟随\锁定模式切换-遥控器通道映射 | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
+| GIMB_ZOOM_RCCH   | 载荷画面缩放-遥控器通道映射          | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
+| GIMB_PHO_RCCH    | 载荷拍照-遥控器通道映射              | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
+| GIMB_REC_RCCH    | 载荷录像-遥控器通道映射              | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
+| GIMB_SSW_RCCH    | 载荷画面切换-遥控器通道映射          | UINT32 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_INSUR      | 手动抛投保险开关-遥控器通道映射      | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH1      | 抛投1-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH2      | 抛投2-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH3      | 抛投3-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH4      | 抛投4-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH5      | 抛投5-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH6      | 抛投6-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH7      | 抛投7-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH8      | 抛投8-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH9      | 抛投9-遥控器通道映射                 | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_RCCH10     | 抛投10-遥控器通道映射                | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| THROW_CH1        | 抛投1-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH2        | 抛投2-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH3        | 抛投3-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH4        | 抛投4-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH5        | 抛投5-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH6        | 抛投6-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH7        | 抛投7-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH8        | 抛投8-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH9        | 抛投9-PWM输出通道映射                | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH10       | 抛投10-PWM输出通道映射               | UINT16 | 范围 0~16, 0-表示不启用                                                                            |
+| THROW_CH1_ON     | 抛投1-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH2_ON     | 抛投2-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH3_ON     | 抛投3-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH4_ON     | 抛投4-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH5_ON     | 抛投5-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH6_ON     | 抛投6-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH7_ON     | 抛投7-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH8_ON     | 抛投8-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH9_ON     | 抛投9-打开PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH10_ON    | 抛投10-打开PWM值                     | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH1_OFF    | 抛投1-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH2_OFF    | 抛投2-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH3_OFF    | 抛投3-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH4_OFF    | 抛投4-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH5_OFF    | 抛投5-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH6_OFF    | 抛投6-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH7_OFF    | 抛投7-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH8_OFF    | 抛投8-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH9_OFF    | 抛投9-关闭PWM值                      | UINT16 | 范围 0~2500                                                                                        |
+| THROW_CH10_OFF   | 抛投10-关闭PWM值                     | UINT16 | 范围 0~2500                                                                                        |
+| THROW_DC_CH1     | 直通舵机1-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| THROW_DC_CH2     | 直通舵机2-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| THROW_DC_CH3     | 直通舵机3-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| THROW_DC_CH4     | 直通舵机4-飞控通道映射               | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| THROW_DC_RCCH1   | 直通舵机1-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| THROW_DC_RCCH2   | 直通舵机2-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| THROW_DC_RCCH3   | 直通舵机3-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| THROW_DC_RCCH4   | 直通舵机4-遥控器通道映射             | UINT16 | 范围 0~18,0表示不启用                                                                              |
+| PARACHUTE_RCCH   | 降落伞-遥控器通道映射                | UINT16 | 范围 0~18, 0-表示不启用                                                                            |
+| PARACHUTE_CH     | 降落伞-PWM输出通道映射               | UINT16 | 范围 7~16, 0-表示不启用                                                                            |
+| PARACHUTE_ON     | 降落伞-打开PWM值                     | UINT16 | 范围 0~2500                                                                                        |
+| PARACHUTE_OFF    | 降落伞-关闭PWM值                     | UINT16 | 范围 0~2500                                                                                        |
+| COM_SBUSO_AF     | SBUS.O复用                           | UINT8  | 0-透传SBUS.I 1-复用为抛投信号                                                                      |
+| THROW_SIG_TIME   | 抛投信号触发持续时间                 | UINT32 | 持续时间1000-3600000 ms, 默认10000 ms                                                              |
+| LADRC_EN         | LADRC控制开关                        | UINT8  | 0-不启用 1-启用, 默认不启用                                                                        |
+| LADRC_R_B0       | LADRC横滚感度                        | float  | 100~1000, 默认300                                                                                  |
+| LADRC_P_B0       | LADRC俯仰感度                        | float  | 100~1000, 默认300                                                                                  |
+| LADRC_Y_B0       | LADRC航向感度                        | float  | 100~1000, 默认600                                                                                  |
+|MC_RPSPD_D_COF    | 水平角速度微分滤波带宽                | UINT8  | 四个档位(10、20、30、40),默认20 |
+| WIND_COMP_KP     | 抗风补偿                             | float  | 0~1, 默认0                                                                                         |
+| PL_WEI_MAX       | 称重超重门限                         | float  | 单位kg, 范围 0~1000kg, 0表示不启用                                                                 |
+| PL_OVERWEI_EN    | 称重超限机动限制                     | UINT32 | 0-不开启 1-开启                                                                                    |
+| NAV_DFLT_SATID   | 默认定位卫导模块                     | UINT16 | 0 RTK, 1 GPS, 2 外接备份/抗干扰模块                                                                |
+| MAV_GCS_STA      | 主链路初始默认状态                   | uint32 | 0 自动发送周期消息, 1 静默                                                                         |
+| MAV_OBV_STA      | 备份链路初默认始状态                 | uint32 | 0 自动发送周期消息, 1 静默                                                                         |
+| FORM_CUS_X       | 自定义队形左右位置                   | float  | m, 右为正                                                                                          |
+| FORM_CUS_Y       | 自定义队形前后位置                   | float  | m, 前为正                                                                                          |
+| FORM_CUS_Z       | 自定义队形上下位置                   | float  | m, 上为正                                                                                          |
+| FORM_SRC_ID      | 编队数据源模式                       | UINT32 | 0普通模式(使用WGS84坐标编队), 1机载动基站模式(使用动基站ALGN坐标编队)                              |
+| RC_AUTO_AID      | 遥控器自动辅助开关                   | UINT32 | 每bit代表一个通道, 1 启用, bit0遥控器高度辅助开关                                                  |
+| RC_DISARM_EN     | 遥控器手动上锁使能                   | UINT16 | 0-不启用 1-启用                                                                                    |
+| GIMB_PROT_TYPE   | 载荷串口设备类型                     | UINT32 | 参考下文说明                                                                                       |
+| PREFLY_CHECK     | 预飞检查等级                         | UINT32 | 0默认, 1调试. 调试级手动飞行解锁不检查姿态和部分传感器状态                                         |
+| CSP_AS_SEN       | 吊运消摆开关                         | UINT32 | 范围0~10, 0为不启用, 越大越强力                                                                    |
+| COM5_PROT_TYPE   | RTCM串口设备类型                     | UINT32 | 参考下文说明                                                                                       |
+| COM5_BAUDRATE    | RTCM串口波特率                       | UINT32 | 57600 ~ 460800                                                                                     |
+| ACT_CANESC_EN    | CAN ESC 驱动输出开关                 | UINT32 | 0-关闭, 1-开启                                                                                     |
+| COM2_PROT_TYPE   | RTK 串口设备类型                     | UINT32 | 0-UM982, 1-MOSAIC, 2-UBLOX, 3-VK_UM960                                                             |
+
+GIMB_PROT_TYPE 的选项如下
 
 | id  | 设备     |
 | --- | -------- |
@@ -2129,6 +2185,15 @@ VKins 系统的状态数据自定义消息, 主要用于一些自定状态的传
 | 11  | 天进吊舱 |
 | 12  | 天时摇杆 |
 
+COM5_PROT_TYPE 的选项如下
+
+| id  | 设备                                         |
+| --- | -------------------------------------------- |
+| 0   | RTK 基站 (RTCM3 + bestpos/bestvel 协议)      |
+| 1   | MOSAICH 机载定位模块  (septentrio 协议)      |
+| 2   | UBLOX 机载定位模块   (ublox 协议)            |
+| 3   | NOVATEL 机载定位模块 (bestpos, bestvel 协议) |
+
 #### 9.1.1 FS_CONF_A 参数说明
 
 1. bit0~3:1级低电压保护. 支持不启用\返航\降落
@@ -2140,90 +2205,97 @@ VKins 系统的状态数据自定义消息, 主要用于一些自定状态的传
 
 ### 9.2 垂起版本参数
 
-| 参数名          | 参数                     | 类型   | 说明                                                                              |
-| --------------- | ------------------------ | ------ | --------------------------------------------------------------------------------- |
-| MAV_SYS_ID      | 系统ID                   | UINT8  | 范围1~255, 作为MAVLINK通信使用的 SYSTEM ID                                        |
-| MAV_COMP_ID     | 组件ID                   | UINT8  | 范围1~255, 作为MAVLINK通信使用的COMPONENT ID                                      |
-| MLOG_MODE       | 数据记录模式             | UINT32 | 范围0~3 <br>0-不记录 <br>1-解锁到上锁 <br>2-上电到落锁 3-上电到下电               |
-| BOOT_MODE       | 系统启动模式             | UINT8  | 范围0~1, 0-正常启动, 1-U盘模式(用于导入导出数据文件)                              |
-| HW_SN_NUM       | 硬件SN号                 | UINT32 | 范围0~UINT32_MAX                                                                  |
-| AIRFRAME        | 旋翼机型                 | UINT16 | 参考 VKFLY_AP_TYPE, 垂起仅支持 X4, X4R                                            |
-| FW_AIRFRAME     | 固定翼机型               | UINT16 | 参考 VKFLY_FIXEDWING_AP_TYPE                                                      |
-| GCS_DISCONT_DT  | 地面站失联时间           | UINT16 | 范围0~UINT16_MAX, 单位s. 持续未收到地面站心跳的时间, 0-表示不检测地面站失联       |
-| VOLT1_LOW_VAL   | 一级电压低阈值           | FLOAT  | 范围0~1000, 单位V                                                                 |
-| VOLT2_LOW_VAL   | 二级电压低阈值           | FLOAT  | 范围0~1000, 单位V                                                                 |
-| VCAP1_LOW_VAL   | 一级电量低阈值           | UINT8  | 范围0~100, 单位1%, 当具有多个智能电池时, 飞控按他们的平均电量进行触发保护判定     |
-| VCAP2_LOW_VAL   | 二级电量低阈值           | UINT8  | 范围0~100, 单位1%                                                                 |
-| VOLT_PROT_CH    | 电压保护通道             | UINT16 | 范围0~10, 触发电压保护的通道, 默认0飞控供电                                       |
-| FS_CONF_A       | 失控保护设置             | UINT32 | 参考enum FS_ACTION.                                                               |
-| CIR_RAD_DFLT    | 默认环绕/盘旋半径        | FLOAT  | 单位m, 范围100~10000m , 默认200                                                   |
-| TOF_ALT_M       | 默认起飞高度             | FLOAT  | 范围1~5000, 单位m                                                                 |
-| RTL_ALT_M       | 默认返航高度             | FLOAT  | 范围1~5000, 单位m                                                                 |
-| FUEL_LOW1_VAL   | 一级ecu油量低阈值        | FLOAT  | 范围 1~100, 单位%                                                                 |
-| FUEL_LOW2_VAL   | 二级ecu油量低阈值        | FLOAT  | 范围 1~100, 单位%                                                                 |
-| FW_ROLL_KP      | 固定翼横滚感度           | UINT16 | 范围 500~2000, 默认1000                                                           |
-| FW_ROLL_KI      | 固定翼横滚积分           | UINT16 | 范围 0~1000, 默认100                                                              |
-| FW_ROLL_KD      | 固定翼横滚阻尼           | UINT16 | 范围 0~1000, 默认100                                                              |
-| FW_PITCH_KP     | 固定翼俯仰感度           | UINT16 | 范围 500~2000, 默认1000                                                           |
-| FW_PITCH_KI     | 固定翼俯仰积分           | UINT16 | 范围 0~1000, 默认100                                                              |
-| FW_PITCH_KD     | 固定翼俯仰阻尼           | UINT16 | 范围 0~1000, 默认100                                                              |
-| FW_YAW_KD       | 固定翼航向阻尼           | UINT16 | 范围 0~1000, 默认100                                                              |
-| FW_L1_PERIOD    | 固定翼L1周期             | UINT16 | 范围1500~3000, 默认2500                                                           |
-| FW_L1_DAMPING   | 固定翼L1阻尼             | UINT16 | 范围60~100, 默认80                                                                |
-| FW_L1_KI        | 固定翼L1积分             | UINT16 | 范围0~10, 默认2                                                                   |
-| FW_ALT_KP       | 固定翼高度比例           | UINT16 | 范围10~150, 默认 50                                                               |
-| FW_VU_KP        | 固定翼垂速比例           | UINT16 | 范围200~500, 默认 350                                                             |
-| FW_VU_KI        | 固定翼垂速积分           | UINT16 | 范围0~100, 默认10                                                                 |
-| FW_ASPD_THR_KP  | 固定翼油门比例           | UINT16 | 范围10~300, 默认80                                                                |
-| FW_ASPD_THR_KI  | 固定翼油门积分           | UINT16 | 范围1~100, 默认10                                                                 |
-| FW_ROLL_ELEV_KP | 固定翼横滚拉杆补偿       | UINT16 | 范围0~10, 默认3                                                                   |
-| FW_ROLL_MAX     | 固定翼最大横滚角         | FLOAT  | 单位deg, 范围15~45,  默认30                                                       |
-| FW_PITCH_MAX    | 固定翼最大俯仰角         | FLOAT  | 单位deg, 范围5~30, 默认15                                                         |
-| FW_VU_MAX       | 固定翼最大爬升率         | FLOAT  | 单位m/s, 范围1~10, 默认5                                                          |
-| FW_VD_MAX       | 固定翼最大下降率         | FLOAT  | 单位m/s, 范围1~10, 默认5                                                          |
-| FW_ASPD_STALL   | 固定翼失速空速           | FLOAT  | 单位m/s, 范围 10~200, 默认16                                                      |
-| FW_ASPD_MIN     | 固定翼最小空速           | FLOAT  | 单位m/s, 范围 10~200, 默认20                                                      |
-| FW_ASPD_CRUISE  | 固定翼巡航空速           | FLOAT  | 单位m/s, 范围 10~200, 默认22                                                      |
-| FW_TOF_THR      | 切换固定翼最大油门       | UINT16 | 单位1%, 范围10~100, 默认90                                                        |
-| TRANS_FW_TMO    | 切换固定翼超时时间       | UINT16 | 单位s, 范围5~100, 默认10                                                          |
-| TRANS_MC_DIST   | 切换旋翼提前距离         | UINT16 | 单位m,  范围50~500, 默认100                                                       |
-| MC_RP_ANG_KP    | 旋翼横滚俯仰角度比例系数 | UINT16 | 范围200~800                                                                       |
-| MC_YAW_ANG_KP   | 旋翼航向角度比例系数     | UINT16 | 范围200~800                                                                       |
-| MC_RSPD_KP      | 旋翼横滚角速度比例系数   | UINT16 | 范围30~200                                                                        |
-| MC_RSPD_KD      | 旋翼横滚角速度微分系数   | UINT16 | 范围0~20                                                                          |
-| MC_PSPD_KP      | 旋翼俯仰角速度比例系数   | UINT16 | 范围30~200                                                                        |
-| MC_PSPD_KD      | 旋翼俯仰角速度微分系数   | UINT16 | 范围0~20                                                                          |
-| MC_YSPD_KP      | 旋翼航向角速度比例系数   | UINT16 | 范围50~400                                                                        |
-| MC_YSPD_KD      | 旋翼航向角速度微分系数   | UINT16 | 范围0~20                                                                          |
-| MC_PXY_KP       | 旋翼水平位置比例系数     | UINT16 | 范围20~150                                                                        |
-| MC_VXY_KP       | 旋翼水平速度比例系数     | UINT16 | 范围80~200                                                                        |
-| MC_VXY_KI       | 旋翼水平速度积分系数     | UINT16 | 范围0~20                                                                          |
-| MC_VXY_KD       | 旋翼水平速度微分系数     | UINT16 | 范围0~20                                                                          |
-| MC_PZ_KP        | 旋翼高度位置比例系数     | UINT16 | 范围20~150                                                                        |
-| MC_VZ_KP        | 旋翼垂直速度比例系数     | UINT16 | 范围300~500                                                                       |
-| MC_AZ_KP        | 旋翼垂直加速度比例系数   | UINT16 | 范围5~20                                                                          |
-| MC_AZ_KI        | 旋翼垂直加速度积分系数   | UINT16 | 范围5~20                                                                          |
-| MC_JERKXY_MAX   | 旋翼水平最大加加速度     | FLOAT  | 范围8~20,单位m/s                                                                  |
-| MC_HOV_THR      | 旋翼悬停油门             | FLOAT  | 范围0.3~0.7(暂未使用)                                                             |
-| MC_MIN_THR      | 旋翼怠速油门             | FLOAT  | 范围0.05~0.25, 默认 0.15                                                          |
-| FW_RNG_AILEL_D  | 左副翼或前翼行程下       | UINT16 | 范围500~2500, T尾V尾左副翼下, 串联翼左前翼下, 三角翼左翼下                        |
-| FW_RNG_AILEL_M  | 左副翼或前翼行程中       | UINT16 | 范围500~2500, T尾V尾左副翼中, 串联翼左前翼中, 三角翼左翼中                        |
-| FW_RNG_AILEL_U  | 左副翼或前翼行程上       | UINT16 | 范围500~2500, T尾V尾左副翼上, 串联翼左前翼上, 三角翼左翼上                        |
-| FW_RNG_AILER_D  | 右副翼或前翼行程下       | UINT16 | 范围500~2500, T尾V尾右副翼下, 串联翼右前翼下, 三角翼右翼下                        |
-| FW_RNG_AILER_M  | 右副翼或前翼行程中       | UINT16 | 范围500~2500, T尾V尾右副翼中, 串联翼右前翼中, 三角翼右翼中                        |
-| FW_RNG_AILER_U  | 右副翼或前翼行程上       | UINT16 | 范围500~2500, T尾V尾右副翼上, 串联翼右前翼上, 三角翼右翼上                        |
-| FW_RNG_ELEVL_D  | 左升降或后翼行程下       | UINT16 | 范围500~2500, T尾左升降下, V尾左尾下, 倒V尾左尾下, 串联翼左后翼下, 三角翼左鸭翼下 |
-| FW_RNG_ELEVL_M  | 左升降或后翼行程中       | UINT16 | 范围500~2500, T尾左升降中, V尾左尾中, 倒V尾左尾中, 串联翼左后翼中, 三角翼左鸭翼中 |
-| FW_RNG_ELEVL_U  | 左升降或后翼行程上       | UINT16 | 范围500~2500, T尾左升降上, V尾左尾上, 倒V尾左尾上, 串联翼左后翼上, 三角翼左鸭翼上 |
-| FW_RNG_ELEVL_D  | 右升降或后翼行程下       | UINT16 | 范围500~2500, T尾右升降下, V尾左尾下, 倒V尾左尾下, 串联翼右后翼下, 三角翼右鸭翼下 |
-| FW_RNG_ELEVL_M  | 右升降或后翼行程中       | UINT16 | 范围500~2500, T尾右升降中, V尾左尾中, 倒V尾左尾中, 串联翼右后翼中, 三角翼右鸭翼中 |
-| FW_RNG_ELEVL_U  | 右升降或后翼行程上       | UINT16 | 范围500~2500, T尾右升降上, V尾左尾上, 倒V尾左尾上, 串联翼右后翼上, 三角翼右鸭翼上 |
-| FW_RND_RUD_L    | 方向舵行程左             | UINT16 | 范围500~2500                                                                      |
-| FW_RND_RUD_M    | 方向舵行程中             | UINT16 | 范围500~2500                                                                      |
-| FW_RND_RUD_R    | 方向舵行程右             | UINT16 | 范围500~2500                                                                      |
-| FW_THR_OFF      | 油门行程灭车             | UINT16 | 范围500~2500                                                                      |
-| FW_THR_MIN      | 油门行程怠速             | UINT16 | 范围500~2500                                                                      |
-| FW_THR_MAX      | 油门行程最大             | UINT16 | 范围500~2500                                                                      |
+| 参数名          | 参数                          | 类型   | 说明                                                                              |
+| --------------- | ----------------------------- | ------ | --------------------------------------------------------------------------------- |
+| MAV_SYS_ID      | 系统ID                        | UINT8  | 范围1~255, 作为MAVLINK通信使用的 SYSTEM ID                                        |
+| MAV_COMP_ID     | 组件ID                        | UINT8  | 范围1~255, 作为MAVLINK通信使用的COMPONENT ID                                      |
+| MLOG_MODE       | 数据记录模式                  | UINT32 | 范围0~3 <br>0-不记录 <br>1-解锁到上锁 <br>2-上电到落锁 3-上电到下电               |
+| BOOT_MODE       | 系统启动模式                  | UINT8  | 范围0~1, 0-正常启动, 1-U盘模式(用于导入导出数据文件)                              |
+| HW_SN_NUM       | 硬件SN号                      | UINT32 | 范围0~UINT32_MAX                                                                  |
+| AIRFRAME        | 旋翼机型                      | UINT16 | 参考 VKFLY_AP_TYPE, 垂起仅支持 X4, X4R                                            |
+| FW_AIRFRAME     | 固定翼机型                    | UINT16 | 参考 VKFLY_FIXEDWING_AP_TYPE                                                      |
+| GCS_DISCONT_DT  | 地面站失联时间                | UINT16 | 范围0~UINT16_MAX, 单位s. 持续未收到地面站心跳的时间, 0-表示不检测地面站失联       |
+| VOLT1_LOW_VAL   | 一级电压低阈值                | FLOAT  | 范围0~1000, 单位V                                                                 |
+| VOLT2_LOW_VAL   | 二级电压低阈值                | FLOAT  | 范围0~1000, 单位V                                                                 |
+| VOLT1_1_LOW_VAL | 第二路电压 一级电压低阈值     | FLOAT  | 范围0~1000, 单位V                                                                 |
+| VOLT2_1_LOW_VAL | 第二路电压 二级电压低阈值     | FLOAT  | 范围0~1000, 单位V                                                                 |
+| VOLT1_1_LOW_ACT | 第二路电压 一级电压低保护动作 | UINT8  | 参考 VKFLY_FS_ACTION                                                              |
+| VOLT2_1_LOW_ACT | 第二路电压 二级电压低保护动作 | UINT8  | 参考 VKFLY_FS_ACTION                                                              |
+| VCAP1_LOW_VAL   | 一级电量低阈值                | UINT8  | 范围0~100, 单位1%, 当具有多个智能电池时, 飞控按他们的平均电量进行触发保护判定     |
+| VCAP2_LOW_VAL   | 二级电量低阈值                | UINT8  | 范围0~100, 单位1%                                                                 |
+| VOLT_PROT_CH    | 电压保护通道                  | UINT16 | 范围0~10, 触发电压保护的通道, 默认0飞控供电                                       |
+| FS_CONF_A       | 失控保护设置                  | UINT32 | 参考enum FS_ACTION.                                                               |
+| CIR_RAD_DFLT    | 默认环绕/盘旋半径             | FLOAT  | 单位m, 范围100~10000m , 默认200                                                   |
+| TOF_ALT_M       | 默认起飞高度                  | FLOAT  | 范围1~5000, 单位m                                                                 |
+| RTL_ALT_M       | 默认返航高度                  | FLOAT  | 范围1~5000, 单位m                                                                 |
+| FUEL_LOW1_VAL   | 一级ecu油量低阈值             | FLOAT  | 范围 1~100, 单位%                                                                 |
+| FUEL_LOW2_VAL   | 二级ecu油量低阈值             | FLOAT  | 范围 1~100, 单位%                                                                 |
+| FW_ROLL_KP      | 固定翼横滚感度                | UINT16 | 范围 500~2000, 默认1000                                                           |
+| FW_ROLL_KI      | 固定翼横滚积分                | UINT16 | 范围 0~1000, 默认100                                                              |
+| FW_ROLL_KD      | 固定翼横滚阻尼                | UINT16 | 范围 0~1000, 默认100                                                              |
+| FW_PITCH_KP     | 固定翼俯仰感度                | UINT16 | 范围 500~2000, 默认1000                                                           |
+| FW_PITCH_KI     | 固定翼俯仰积分                | UINT16 | 范围 0~1000, 默认100                                                              |
+| FW_PITCH_KD     | 固定翼俯仰阻尼                | UINT16 | 范围 0~1000, 默认100                                                              |
+| FW_YAW_KD       | 固定翼航向阻尼                | UINT16 | 范围 0~1000, 默认100                                                              |
+| FW_L1_PERIOD    | 固定翼L1周期                  | UINT16 | 范围1500~3000, 默认2500                                                           |
+| FW_L1_DAMPING   | 固定翼L1阻尼                  | UINT16 | 范围60~100, 默认80                                                                |
+| FW_L1_KI        | 固定翼L1积分                  | UINT16 | 范围0~10, 默认2                                                                   |
+| FW_ALT_KP       | 固定翼高度比例                | UINT16 | 范围10~150, 默认 50                                                               |
+| FW_VU_KP        | 固定翼垂速比例                | UINT16 | 范围200~500, 默认 350                                                             |
+| FW_VU_KI        | 固定翼垂速积分                | UINT16 | 范围0~100, 默认10                                                                 |
+| FW_ASPD_THR_KP  | 固定翼油门比例                | UINT16 | 范围10~300, 默认80                                                                |
+| FW_ASPD_THR_KI  | 固定翼油门积分                | UINT16 | 范围1~100, 默认10                                                                 |
+| FW_ROLL_ELEV_KP | 固定翼横滚拉杆补偿            | UINT16 | 范围0~10, 默认3                                                                   |
+| FW_ROLL_MAX     | 固定翼最大横滚角              | FLOAT  | 单位deg, 范围15~45,  默认30                                                       |
+| FW_PITCH_MAX    | 固定翼最大俯仰角              | FLOAT  | 单位deg, 范围5~30, 默认15                                                         |
+| FW_TOF_PITCH    | 固定翼起飞俯仰角              | FLOAT  | 单位deg, 范围 5~30, 默认12                                                        |
+| FW_TOF_THR_DL   | 固定翼起飞油门启动延迟        | INT32  | 单位ms, 范围 -1~2000. 负值表示先启动油门, 正值表示检测到过载后再延迟启动油门      |
+| FW_VU_MAX       | 固定翼最大爬升率              | FLOAT  | 单位m/s, 范围1~10, 默认5                                                          |
+| FW_VD_MAX       | 固定翼最大下降率              | FLOAT  | 单位m/s, 范围1~10, 默认5                                                          |
+| FW_ASPD_STALL   | 固定翼失速空速                | FLOAT  | 单位m/s, 范围 10~200, 默认16                                                      |
+| FW_ASPD_MIN     | 固定翼最小空速                | FLOAT  | 单位m/s, 范围 10~200, 默认20                                                      |
+| FW_ASPD_CRUISE  | 固定翼巡航空速                | FLOAT  | 单位m/s, 范围 10~200, 默认22                                                      |
+| FW_TOF_THR      | 切换固定翼最大油门            | UINT16 | 单位1%, 范围10~100, 默认90                                                        |
+| TRANS_FW_TMO    | 切换固定翼超时时间            | UINT16 | 单位s, 范围5~100, 默认10                                                          |
+| TRANS_MC_DIST   | 切换旋翼提前距离              | UINT16 | 单位m,  范围50~500, 默认100                                                       |
+| MC_RP_ANG_KP    | 旋翼横滚俯仰角度比例系数      | UINT16 | 范围200~800                                                                       |
+| MC_YAW_ANG_KP   | 旋翼航向角度比例系数          | UINT16 | 范围200~800                                                                       |
+| MC_RSPD_KP      | 旋翼横滚角速度比例系数        | UINT16 | 范围30~200                                                                        |
+| MC_RSPD_KD      | 旋翼横滚角速度微分系数        | UINT16 | 范围0~20                                                                          |
+| MC_PSPD_KP      | 旋翼俯仰角速度比例系数        | UINT16 | 范围30~200                                                                        |
+| MC_PSPD_KD      | 旋翼俯仰角速度微分系数        | UINT16 | 范围0~20                                                                          |
+| MC_YSPD_KP      | 旋翼航向角速度比例系数        | UINT16 | 范围50~400                                                                        |
+| MC_YSPD_KD      | 旋翼航向角速度微分系数        | UINT16 | 范围0~20                                                                          |
+| MC_PXY_KP       | 旋翼水平位置比例系数          | UINT16 | 范围20~150                                                                        |
+| MC_VXY_KP       | 旋翼水平速度比例系数          | UINT16 | 范围80~200                                                                        |
+| MC_VXY_KI       | 旋翼水平速度积分系数          | UINT16 | 范围0~20                                                                          |
+| MC_VXY_KD       | 旋翼水平速度微分系数          | UINT16 | 范围0~20                                                                          |
+| MC_PZ_KP        | 旋翼高度位置比例系数          | UINT16 | 范围20~150                                                                        |
+| MC_VZ_KP        | 旋翼垂直速度比例系数          | UINT16 | 范围300~500                                                                       |
+| MC_AZ_KP        | 旋翼垂直加速度比例系数        | UINT16 | 范围5~20                                                                          |
+| MC_AZ_KI        | 旋翼垂直加速度积分系数        | UINT16 | 范围5~20                                                                          |
+| MC_JERKXY_MAX   | 旋翼水平最大加加速度          | FLOAT  | 范围8~20,单位m/s                                                                  |
+| MC_HOV_THR      | 旋翼悬停油门                  | FLOAT  | 范围0.3~0.7(暂未使用)                                                             |
+| MC_MIN_THR      | 旋翼怠速油门                  | FLOAT  | 范围0.05~0.25, 默认 0.15                                                          |
+| FW_RNG_AILEL_D  | 左副翼或前翼行程下            | UINT16 | 范围500~2500, T尾V尾左副翼下, 串联翼左前翼下, 三角翼左翼下                        |
+| FW_RNG_AILEL_M  | 左副翼或前翼行程中            | UINT16 | 范围500~2500, T尾V尾左副翼中, 串联翼左前翼中, 三角翼左翼中                        |
+| FW_RNG_AILEL_U  | 左副翼或前翼行程上            | UINT16 | 范围500~2500, T尾V尾左副翼上, 串联翼左前翼上, 三角翼左翼上                        |
+| FW_RNG_AILER_D  | 右副翼或前翼行程下            | UINT16 | 范围500~2500, T尾V尾右副翼下, 串联翼右前翼下, 三角翼右翼下                        |
+| FW_RNG_AILER_M  | 右副翼或前翼行程中            | UINT16 | 范围500~2500, T尾V尾右副翼中, 串联翼右前翼中, 三角翼右翼中                        |
+| FW_RNG_AILER_U  | 右副翼或前翼行程上            | UINT16 | 范围500~2500, T尾V尾右副翼上, 串联翼右前翼上, 三角翼右翼上                        |
+| FW_RNG_ELEVL_D  | 左升降或后翼行程下            | UINT16 | 范围500~2500, T尾左升降下, V尾左尾下, 倒V尾左尾下, 串联翼左后翼下, 三角翼左鸭翼下 |
+| FW_RNG_ELEVL_M  | 左升降或后翼行程中            | UINT16 | 范围500~2500, T尾左升降中, V尾左尾中, 倒V尾左尾中, 串联翼左后翼中, 三角翼左鸭翼中 |
+| FW_RNG_ELEVL_U  | 左升降或后翼行程上            | UINT16 | 范围500~2500, T尾左升降上, V尾左尾上, 倒V尾左尾上, 串联翼左后翼上, 三角翼左鸭翼上 |
+| FW_RNG_ELEVL_D  | 右升降或后翼行程下            | UINT16 | 范围500~2500, T尾右升降下, V尾左尾下, 倒V尾左尾下, 串联翼右后翼下, 三角翼右鸭翼下 |
+| FW_RNG_ELEVL_M  | 右升降或后翼行程中            | UINT16 | 范围500~2500, T尾右升降中, V尾左尾中, 倒V尾左尾中, 串联翼右后翼中, 三角翼右鸭翼中 |
+| FW_RNG_ELEVL_U  | 右升降或后翼行程上            | UINT16 | 范围500~2500, T尾右升降上, V尾左尾上, 倒V尾左尾上, 串联翼右后翼上, 三角翼右鸭翼上 |
+| FW_RND_RUD_L    | 方向舵行程左                  | UINT16 | 范围500~2500                                                                      |
+| FW_RND_RUD_M    | 方向舵行程中                  | UINT16 | 范围500~2500                                                                      |
+| FW_RND_RUD_R    | 方向舵行程右                  | UINT16 | 范围500~2500                                                                      |
+| FW_THR_OFF      | 油门行程灭车                  | UINT16 | 范围500~2500                                                                      |
+| FW_THR_MIN      | 油门行程怠速                  | UINT16 | 范围500~2500                                                                      |
+| FW_THR_MAX      | 油门行程最大                  | UINT16 | 范围500~2500                                                                      |
+| HOLL0_PRESC     | 霍尔转速分频数                | UINT16 | 范围1~10, 将采集的霍尔转速按此系数进行分频, 值由采集头个数决定                    |
 
 #### 9.2.1 FS_CONF_A 参数说明
 

Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 1
v2.0/VKFly/VKFly.h


+ 1 - 1
v2.0/VKFly/mavlink.h

@@ -6,7 +6,7 @@
 #ifndef MAVLINK_H
 #define MAVLINK_H
 
-#define MAVLINK_PRIMARY_XML_HASH -885188825176165029
+#define MAVLINK_PRIMARY_XML_HASH 8972644096136702068
 
 #ifndef MAVLINK_STX
 #define MAVLINK_STX 253

+ 24 - 12
v2.0/VKFly/mavlink_msg_fmub_status.h

@@ -23,9 +23,11 @@ typedef struct __mavlink_fmub_status_t {
  float amsl; /*< [m] altitude above mean sea level.*/
  int32_t ins_status; /*<  */
  int32_t ins_flag; /*<  */
- uint16_t throttle; /*<  throttle output.*/
+ uint16_t throttle; /*<  throttle
+        output.*/
  uint8_t flight_mode; /*<  flight mode.*/
- uint8_t btake_status; /*<  backup takeover
+ uint8_t btake_status; /*<  backup
+        takeover
         status.*/
 } mavlink_fmub_status_t;
 
@@ -120,9 +122,11 @@ typedef struct __mavlink_fmub_status_t {
  * @param amsl [m] altitude above mean sea level.
  * @param ins_status  
  * @param ins_flag  
- * @param throttle  throttle output.
+ * @param throttle  throttle
+        output.
  * @param flight_mode  flight mode.
- * @param btake_status  backup takeover
+ * @param btake_status  backup
+        takeover
         status.
  * @return length of the message in bytes (excluding serial stream start sign)
  */
@@ -210,9 +214,11 @@ static inline uint16_t mavlink_msg_fmub_status_pack(uint8_t system_id, uint8_t c
  * @param amsl [m] altitude above mean sea level.
  * @param ins_status  
  * @param ins_flag  
- * @param throttle  throttle output.
+ * @param throttle  throttle
+        output.
  * @param flight_mode  flight mode.
- * @param btake_status  backup takeover
+ * @param btake_status  backup
+        takeover
         status.
  * @return length of the message in bytes (excluding serial stream start sign)
  */
@@ -303,9 +309,11 @@ static inline uint16_t mavlink_msg_fmub_status_pack_status(uint8_t system_id, ui
  * @param amsl [m] altitude above mean sea level.
  * @param ins_status  
  * @param ins_flag  
- * @param throttle  throttle output.
+ * @param throttle  throttle
+        output.
  * @param flight_mode  flight mode.
- * @param btake_status  backup takeover
+ * @param btake_status  backup
+        takeover
         status.
  * @return length of the message in bytes (excluding serial stream start sign)
  */
@@ -432,9 +440,11 @@ static inline uint16_t mavlink_msg_fmub_status_encode_status(uint8_t system_id,
  * @param amsl [m] altitude above mean sea level.
  * @param ins_status  
  * @param ins_flag  
- * @param throttle  throttle output.
+ * @param throttle  throttle
+        output.
  * @param flight_mode  flight mode.
- * @param btake_status  backup takeover
+ * @param btake_status  backup
+        takeover
         status.
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
@@ -760,7 +770,8 @@ static inline int32_t mavlink_msg_fmub_status_get_ins_flag(const mavlink_message
 /**
  * @brief Get field throttle from fmub_status message
  *
- * @return  throttle output.
+ * @return  throttle
+        output.
  */
 static inline uint16_t mavlink_msg_fmub_status_get_throttle(const mavlink_message_t* msg)
 {
@@ -780,7 +791,8 @@ static inline uint8_t mavlink_msg_fmub_status_get_flight_mode(const mavlink_mess
 /**
  * @brief Get field btake_status from fmub_status message
  *
- * @return  backup takeover
+ * @return  backup
+        takeover
         status.
  */
 static inline uint8_t mavlink_msg_fmub_status_get_btake_status(const mavlink_message_t* msg)

+ 92 - 92
v2.0/VKFly/mavlink_msg_vk_bms_status.h

@@ -7,10 +7,10 @@
 typedef struct __mavlink_vk_bms_status_t {
  uint32_t time_boot_ms; /*< [ms] Timestamp in ms from system boot.*/
  uint32_t voltage; /*< [mV] BMS voltage in mV*/
+ int32_t current; /*< [cA] BMS current in cA, negative value means in
+        charging*/
  uint32_t err_code; /*<  BMS error code,
         0 means no error*/
- int16_t current; /*< [cA] BMS current in cA, negative value means in
-        charging*/
  int16_t temperature; /*< [degC] BMS temperature in degC*/
  uint16_t cell_num; /*<  BMS cell numbers*/
  uint16_t cell_volt[30]; /*< [mV] BMS cell voltage in mV*/
@@ -22,13 +22,13 @@ typedef struct __mavlink_vk_bms_status_t {
         percentage*/
 } mavlink_vk_bms_status_t;
 
-#define MAVLINK_MSG_ID_VK_BMS_STATUS_LEN 83
-#define MAVLINK_MSG_ID_VK_BMS_STATUS_MIN_LEN 83
-#define MAVLINK_MSG_ID_53003_LEN 83
-#define MAVLINK_MSG_ID_53003_MIN_LEN 83
+#define MAVLINK_MSG_ID_VK_BMS_STATUS_LEN 85
+#define MAVLINK_MSG_ID_VK_BMS_STATUS_MIN_LEN 85
+#define MAVLINK_MSG_ID_53003_LEN 85
+#define MAVLINK_MSG_ID_53003_MIN_LEN 85
 
-#define MAVLINK_MSG_ID_VK_BMS_STATUS_CRC 200
-#define MAVLINK_MSG_ID_53003_CRC 200
+#define MAVLINK_MSG_ID_VK_BMS_STATUS_CRC 155
+#define MAVLINK_MSG_ID_53003_CRC 155
 
 #define MAVLINK_MSG_VK_BMS_STATUS_FIELD_CELL_VOLT_LEN 30
 
@@ -39,15 +39,15 @@ typedef struct __mavlink_vk_bms_status_t {
     11, \
     {  { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_bms_status_t, time_boot_ms) }, \
          { "voltage", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_bms_status_t, voltage) }, \
-         { "current", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_vk_bms_status_t, current) }, \
-         { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 14, offsetof(mavlink_vk_bms_status_t, temperature) }, \
-         { "cap_percent", NULL, MAVLINK_TYPE_INT8_T, 0, 80, offsetof(mavlink_vk_bms_status_t, cap_percent) }, \
-         { "bat_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 81, offsetof(mavlink_vk_bms_status_t, bat_id) }, \
-         { "err_code", "0x%04x", MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_vk_bms_status_t, err_code) }, \
-         { "cell_num", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_vk_bms_status_t, cell_num) }, \
-         { "cell_volt", NULL, MAVLINK_TYPE_UINT16_T, 30, 18, offsetof(mavlink_vk_bms_status_t, cell_volt) }, \
-         { "cyc_cnt", NULL, MAVLINK_TYPE_UINT16_T, 0, 78, offsetof(mavlink_vk_bms_status_t, cyc_cnt) }, \
-         { "health", NULL, MAVLINK_TYPE_UINT8_T, 0, 82, offsetof(mavlink_vk_bms_status_t, health) }, \
+         { "current", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vk_bms_status_t, current) }, \
+         { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 16, offsetof(mavlink_vk_bms_status_t, temperature) }, \
+         { "cap_percent", NULL, MAVLINK_TYPE_INT8_T, 0, 82, offsetof(mavlink_vk_bms_status_t, cap_percent) }, \
+         { "bat_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_vk_bms_status_t, bat_id) }, \
+         { "err_code", "0x%04x", MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_vk_bms_status_t, err_code) }, \
+         { "cell_num", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_vk_bms_status_t, cell_num) }, \
+         { "cell_volt", NULL, MAVLINK_TYPE_UINT16_T, 30, 20, offsetof(mavlink_vk_bms_status_t, cell_volt) }, \
+         { "cyc_cnt", NULL, MAVLINK_TYPE_UINT16_T, 0, 80, offsetof(mavlink_vk_bms_status_t, cyc_cnt) }, \
+         { "health", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_vk_bms_status_t, health) }, \
          } \
 }
 #else
@@ -56,15 +56,15 @@ typedef struct __mavlink_vk_bms_status_t {
     11, \
     {  { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_bms_status_t, time_boot_ms) }, \
          { "voltage", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_bms_status_t, voltage) }, \
-         { "current", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_vk_bms_status_t, current) }, \
-         { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 14, offsetof(mavlink_vk_bms_status_t, temperature) }, \
-         { "cap_percent", NULL, MAVLINK_TYPE_INT8_T, 0, 80, offsetof(mavlink_vk_bms_status_t, cap_percent) }, \
-         { "bat_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 81, offsetof(mavlink_vk_bms_status_t, bat_id) }, \
-         { "err_code", "0x%04x", MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_vk_bms_status_t, err_code) }, \
-         { "cell_num", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_vk_bms_status_t, cell_num) }, \
-         { "cell_volt", NULL, MAVLINK_TYPE_UINT16_T, 30, 18, offsetof(mavlink_vk_bms_status_t, cell_volt) }, \
-         { "cyc_cnt", NULL, MAVLINK_TYPE_UINT16_T, 0, 78, offsetof(mavlink_vk_bms_status_t, cyc_cnt) }, \
-         { "health", NULL, MAVLINK_TYPE_UINT8_T, 0, 82, offsetof(mavlink_vk_bms_status_t, health) }, \
+         { "current", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vk_bms_status_t, current) }, \
+         { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 16, offsetof(mavlink_vk_bms_status_t, temperature) }, \
+         { "cap_percent", NULL, MAVLINK_TYPE_INT8_T, 0, 82, offsetof(mavlink_vk_bms_status_t, cap_percent) }, \
+         { "bat_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_vk_bms_status_t, bat_id) }, \
+         { "err_code", "0x%04x", MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_vk_bms_status_t, err_code) }, \
+         { "cell_num", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_vk_bms_status_t, cell_num) }, \
+         { "cell_volt", NULL, MAVLINK_TYPE_UINT16_T, 30, 20, offsetof(mavlink_vk_bms_status_t, cell_volt) }, \
+         { "cyc_cnt", NULL, MAVLINK_TYPE_UINT16_T, 0, 80, offsetof(mavlink_vk_bms_status_t, cyc_cnt) }, \
+         { "health", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_vk_bms_status_t, health) }, \
          } \
 }
 #endif
@@ -93,28 +93,28 @@ typedef struct __mavlink_vk_bms_status_t {
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_bms_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-                               uint32_t time_boot_ms, uint32_t voltage, int16_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
+                               uint32_t time_boot_ms, uint32_t voltage, int32_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_BMS_STATUS_LEN];
     _mav_put_uint32_t(buf, 0, time_boot_ms);
     _mav_put_uint32_t(buf, 4, voltage);
-    _mav_put_uint32_t(buf, 8, err_code);
-    _mav_put_int16_t(buf, 12, current);
-    _mav_put_int16_t(buf, 14, temperature);
-    _mav_put_uint16_t(buf, 16, cell_num);
-    _mav_put_uint16_t(buf, 78, cyc_cnt);
-    _mav_put_int8_t(buf, 80, cap_percent);
-    _mav_put_uint8_t(buf, 81, bat_id);
-    _mav_put_uint8_t(buf, 82, health);
-    _mav_put_uint16_t_array(buf, 18, cell_volt, 30);
+    _mav_put_int32_t(buf, 8, current);
+    _mav_put_uint32_t(buf, 12, err_code);
+    _mav_put_int16_t(buf, 16, temperature);
+    _mav_put_uint16_t(buf, 18, cell_num);
+    _mav_put_uint16_t(buf, 80, cyc_cnt);
+    _mav_put_int8_t(buf, 82, cap_percent);
+    _mav_put_uint8_t(buf, 83, bat_id);
+    _mav_put_uint8_t(buf, 84, health);
+    _mav_put_uint16_t_array(buf, 20, cell_volt, 30);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_BMS_STATUS_LEN);
 #else
     mavlink_vk_bms_status_t packet;
     packet.time_boot_ms = time_boot_ms;
     packet.voltage = voltage;
-    packet.err_code = err_code;
     packet.current = current;
+    packet.err_code = err_code;
     packet.temperature = temperature;
     packet.cell_num = cell_num;
     packet.cyc_cnt = cyc_cnt;
@@ -154,28 +154,28 @@ static inline uint16_t mavlink_msg_vk_bms_status_pack(uint8_t system_id, uint8_t
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_bms_status_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
-                               uint32_t time_boot_ms, uint32_t voltage, int16_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
+                               uint32_t time_boot_ms, uint32_t voltage, int32_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_BMS_STATUS_LEN];
     _mav_put_uint32_t(buf, 0, time_boot_ms);
     _mav_put_uint32_t(buf, 4, voltage);
-    _mav_put_uint32_t(buf, 8, err_code);
-    _mav_put_int16_t(buf, 12, current);
-    _mav_put_int16_t(buf, 14, temperature);
-    _mav_put_uint16_t(buf, 16, cell_num);
-    _mav_put_uint16_t(buf, 78, cyc_cnt);
-    _mav_put_int8_t(buf, 80, cap_percent);
-    _mav_put_uint8_t(buf, 81, bat_id);
-    _mav_put_uint8_t(buf, 82, health);
-    _mav_put_uint16_t_array(buf, 18, cell_volt, 30);
+    _mav_put_int32_t(buf, 8, current);
+    _mav_put_uint32_t(buf, 12, err_code);
+    _mav_put_int16_t(buf, 16, temperature);
+    _mav_put_uint16_t(buf, 18, cell_num);
+    _mav_put_uint16_t(buf, 80, cyc_cnt);
+    _mav_put_int8_t(buf, 82, cap_percent);
+    _mav_put_uint8_t(buf, 83, bat_id);
+    _mav_put_uint8_t(buf, 84, health);
+    _mav_put_uint16_t_array(buf, 20, cell_volt, 30);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_BMS_STATUS_LEN);
 #else
     mavlink_vk_bms_status_t packet;
     packet.time_boot_ms = time_boot_ms;
     packet.voltage = voltage;
-    packet.err_code = err_code;
     packet.current = current;
+    packet.err_code = err_code;
     packet.temperature = temperature;
     packet.cell_num = cell_num;
     packet.cyc_cnt = cyc_cnt;
@@ -219,28 +219,28 @@ static inline uint16_t mavlink_msg_vk_bms_status_pack_status(uint8_t system_id,
  */
 static inline uint16_t mavlink_msg_vk_bms_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                                mavlink_message_t* msg,
-                                   uint32_t time_boot_ms,uint32_t voltage,int16_t current,int16_t temperature,int8_t cap_percent,uint8_t bat_id,uint32_t err_code,uint16_t cell_num,const uint16_t *cell_volt,uint16_t cyc_cnt,uint8_t health)
+                                   uint32_t time_boot_ms,uint32_t voltage,int32_t current,int16_t temperature,int8_t cap_percent,uint8_t bat_id,uint32_t err_code,uint16_t cell_num,const uint16_t *cell_volt,uint16_t cyc_cnt,uint8_t health)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_BMS_STATUS_LEN];
     _mav_put_uint32_t(buf, 0, time_boot_ms);
     _mav_put_uint32_t(buf, 4, voltage);
-    _mav_put_uint32_t(buf, 8, err_code);
-    _mav_put_int16_t(buf, 12, current);
-    _mav_put_int16_t(buf, 14, temperature);
-    _mav_put_uint16_t(buf, 16, cell_num);
-    _mav_put_uint16_t(buf, 78, cyc_cnt);
-    _mav_put_int8_t(buf, 80, cap_percent);
-    _mav_put_uint8_t(buf, 81, bat_id);
-    _mav_put_uint8_t(buf, 82, health);
-    _mav_put_uint16_t_array(buf, 18, cell_volt, 30);
+    _mav_put_int32_t(buf, 8, current);
+    _mav_put_uint32_t(buf, 12, err_code);
+    _mav_put_int16_t(buf, 16, temperature);
+    _mav_put_uint16_t(buf, 18, cell_num);
+    _mav_put_uint16_t(buf, 80, cyc_cnt);
+    _mav_put_int8_t(buf, 82, cap_percent);
+    _mav_put_uint8_t(buf, 83, bat_id);
+    _mav_put_uint8_t(buf, 84, health);
+    _mav_put_uint16_t_array(buf, 20, cell_volt, 30);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_BMS_STATUS_LEN);
 #else
     mavlink_vk_bms_status_t packet;
     packet.time_boot_ms = time_boot_ms;
     packet.voltage = voltage;
-    packet.err_code = err_code;
     packet.current = current;
+    packet.err_code = err_code;
     packet.temperature = temperature;
     packet.cell_num = cell_num;
     packet.cyc_cnt = cyc_cnt;
@@ -318,28 +318,28 @@ static inline uint16_t mavlink_msg_vk_bms_status_encode_status(uint8_t system_id
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
-static inline void mavlink_msg_vk_bms_status_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t voltage, int16_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
+static inline void mavlink_msg_vk_bms_status_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t voltage, int32_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_BMS_STATUS_LEN];
     _mav_put_uint32_t(buf, 0, time_boot_ms);
     _mav_put_uint32_t(buf, 4, voltage);
-    _mav_put_uint32_t(buf, 8, err_code);
-    _mav_put_int16_t(buf, 12, current);
-    _mav_put_int16_t(buf, 14, temperature);
-    _mav_put_uint16_t(buf, 16, cell_num);
-    _mav_put_uint16_t(buf, 78, cyc_cnt);
-    _mav_put_int8_t(buf, 80, cap_percent);
-    _mav_put_uint8_t(buf, 81, bat_id);
-    _mav_put_uint8_t(buf, 82, health);
-    _mav_put_uint16_t_array(buf, 18, cell_volt, 30);
+    _mav_put_int32_t(buf, 8, current);
+    _mav_put_uint32_t(buf, 12, err_code);
+    _mav_put_int16_t(buf, 16, temperature);
+    _mav_put_uint16_t(buf, 18, cell_num);
+    _mav_put_uint16_t(buf, 80, cyc_cnt);
+    _mav_put_int8_t(buf, 82, cap_percent);
+    _mav_put_uint8_t(buf, 83, bat_id);
+    _mav_put_uint8_t(buf, 84, health);
+    _mav_put_uint16_t_array(buf, 20, cell_volt, 30);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_BMS_STATUS, buf, MAVLINK_MSG_ID_VK_BMS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VK_BMS_STATUS_LEN, MAVLINK_MSG_ID_VK_BMS_STATUS_CRC);
 #else
     mavlink_vk_bms_status_t packet;
     packet.time_boot_ms = time_boot_ms;
     packet.voltage = voltage;
-    packet.err_code = err_code;
     packet.current = current;
+    packet.err_code = err_code;
     packet.temperature = temperature;
     packet.cell_num = cell_num;
     packet.cyc_cnt = cyc_cnt;
@@ -373,28 +373,28 @@ static inline void mavlink_msg_vk_bms_status_send_struct(mavlink_channel_t chan,
   is usually the receive buffer for the channel, and allows a reply to an
   incoming message with minimum stack space usage.
  */
-static inline void mavlink_msg_vk_bms_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t time_boot_ms, uint32_t voltage, int16_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
+static inline void mavlink_msg_vk_bms_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t time_boot_ms, uint32_t voltage, int32_t current, int16_t temperature, int8_t cap_percent, uint8_t bat_id, uint32_t err_code, uint16_t cell_num, const uint16_t *cell_volt, uint16_t cyc_cnt, uint8_t health)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char *buf = (char *)msgbuf;
     _mav_put_uint32_t(buf, 0, time_boot_ms);
     _mav_put_uint32_t(buf, 4, voltage);
-    _mav_put_uint32_t(buf, 8, err_code);
-    _mav_put_int16_t(buf, 12, current);
-    _mav_put_int16_t(buf, 14, temperature);
-    _mav_put_uint16_t(buf, 16, cell_num);
-    _mav_put_uint16_t(buf, 78, cyc_cnt);
-    _mav_put_int8_t(buf, 80, cap_percent);
-    _mav_put_uint8_t(buf, 81, bat_id);
-    _mav_put_uint8_t(buf, 82, health);
-    _mav_put_uint16_t_array(buf, 18, cell_volt, 30);
+    _mav_put_int32_t(buf, 8, current);
+    _mav_put_uint32_t(buf, 12, err_code);
+    _mav_put_int16_t(buf, 16, temperature);
+    _mav_put_uint16_t(buf, 18, cell_num);
+    _mav_put_uint16_t(buf, 80, cyc_cnt);
+    _mav_put_int8_t(buf, 82, cap_percent);
+    _mav_put_uint8_t(buf, 83, bat_id);
+    _mav_put_uint8_t(buf, 84, health);
+    _mav_put_uint16_t_array(buf, 20, cell_volt, 30);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_BMS_STATUS, buf, MAVLINK_MSG_ID_VK_BMS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VK_BMS_STATUS_LEN, MAVLINK_MSG_ID_VK_BMS_STATUS_CRC);
 #else
     mavlink_vk_bms_status_t *packet = (mavlink_vk_bms_status_t *)msgbuf;
     packet->time_boot_ms = time_boot_ms;
     packet->voltage = voltage;
-    packet->err_code = err_code;
     packet->current = current;
+    packet->err_code = err_code;
     packet->temperature = temperature;
     packet->cell_num = cell_num;
     packet->cyc_cnt = cyc_cnt;
@@ -438,9 +438,9 @@ static inline uint32_t mavlink_msg_vk_bms_status_get_voltage(const mavlink_messa
  * @return [cA] BMS current in cA, negative value means in
         charging
  */
-static inline int16_t mavlink_msg_vk_bms_status_get_current(const mavlink_message_t* msg)
+static inline int32_t mavlink_msg_vk_bms_status_get_current(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_int16_t(msg,  12);
+    return _MAV_RETURN_int32_t(msg,  8);
 }
 
 /**
@@ -450,7 +450,7 @@ static inline int16_t mavlink_msg_vk_bms_status_get_current(const mavlink_messag
  */
 static inline int16_t mavlink_msg_vk_bms_status_get_temperature(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_int16_t(msg,  14);
+    return _MAV_RETURN_int16_t(msg,  16);
 }
 
 /**
@@ -460,7 +460,7 @@ static inline int16_t mavlink_msg_vk_bms_status_get_temperature(const mavlink_me
  */
 static inline int8_t mavlink_msg_vk_bms_status_get_cap_percent(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_int8_t(msg,  80);
+    return _MAV_RETURN_int8_t(msg,  82);
 }
 
 /**
@@ -471,7 +471,7 @@ static inline int8_t mavlink_msg_vk_bms_status_get_cap_percent(const mavlink_mes
  */
 static inline uint8_t mavlink_msg_vk_bms_status_get_bat_id(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_uint8_t(msg,  81);
+    return _MAV_RETURN_uint8_t(msg,  83);
 }
 
 /**
@@ -482,7 +482,7 @@ static inline uint8_t mavlink_msg_vk_bms_status_get_bat_id(const mavlink_message
  */
 static inline uint32_t mavlink_msg_vk_bms_status_get_err_code(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_uint32_t(msg,  8);
+    return _MAV_RETURN_uint32_t(msg,  12);
 }
 
 /**
@@ -492,7 +492,7 @@ static inline uint32_t mavlink_msg_vk_bms_status_get_err_code(const mavlink_mess
  */
 static inline uint16_t mavlink_msg_vk_bms_status_get_cell_num(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_uint16_t(msg,  16);
+    return _MAV_RETURN_uint16_t(msg,  18);
 }
 
 /**
@@ -502,7 +502,7 @@ static inline uint16_t mavlink_msg_vk_bms_status_get_cell_num(const mavlink_mess
  */
 static inline uint16_t mavlink_msg_vk_bms_status_get_cell_volt(const mavlink_message_t* msg, uint16_t *cell_volt)
 {
-    return _MAV_RETURN_uint16_t_array(msg, cell_volt, 30,  18);
+    return _MAV_RETURN_uint16_t_array(msg, cell_volt, 30,  20);
 }
 
 /**
@@ -512,7 +512,7 @@ static inline uint16_t mavlink_msg_vk_bms_status_get_cell_volt(const mavlink_mes
  */
 static inline uint16_t mavlink_msg_vk_bms_status_get_cyc_cnt(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_uint16_t(msg,  78);
+    return _MAV_RETURN_uint16_t(msg,  80);
 }
 
 /**
@@ -523,7 +523,7 @@ static inline uint16_t mavlink_msg_vk_bms_status_get_cyc_cnt(const mavlink_messa
  */
 static inline uint8_t mavlink_msg_vk_bms_status_get_health(const mavlink_message_t* msg)
 {
-    return _MAV_RETURN_uint8_t(msg,  82);
+    return _MAV_RETURN_uint8_t(msg,  84);
 }
 
 /**
@@ -537,8 +537,8 @@ static inline void mavlink_msg_vk_bms_status_decode(const mavlink_message_t* msg
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     vk_bms_status->time_boot_ms = mavlink_msg_vk_bms_status_get_time_boot_ms(msg);
     vk_bms_status->voltage = mavlink_msg_vk_bms_status_get_voltage(msg);
-    vk_bms_status->err_code = mavlink_msg_vk_bms_status_get_err_code(msg);
     vk_bms_status->current = mavlink_msg_vk_bms_status_get_current(msg);
+    vk_bms_status->err_code = mavlink_msg_vk_bms_status_get_err_code(msg);
     vk_bms_status->temperature = mavlink_msg_vk_bms_status_get_temperature(msg);
     vk_bms_status->cell_num = mavlink_msg_vk_bms_status_get_cell_num(msg);
     mavlink_msg_vk_bms_status_get_cell_volt(msg, vk_bms_status->cell_volt);

+ 156 - 16
v2.0/VKFly/mavlink_msg_vk_engine_ecu_staus.h

@@ -3,7 +3,7 @@
 
 #define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS 53005
 
-
+MAVPACKED(
 typedef struct __mavlink_vk_engine_ecu_staus_t {
  uint32_t timestamp; /*< [ms] Timestamp in ms from system boot.*/
  uint32_t total_runtime; /*< [min] range extender output voltage*/
@@ -25,11 +25,16 @@ typedef struct __mavlink_vk_engine_ecu_staus_t {
  uint8_t engine_state; /*<  engine state*/
  uint8_t index; /*<  engine index*/
  uint8_t reserve[4]; /*<  engine state*/
-} mavlink_vk_engine_ecu_staus_t;
-
-#define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN 37
+ uint16_t inlet_pressure; /*< [hPa] inlet air pressure*/
+ int16_t ge_temp; /*< [degC] Ge temperature*/
+ int16_t air_temp; /*< [degC] air temperature*/
+ int16_t temp_1; /*< [degC] temperature 1*/
+ int16_t volt_2; /*< [dV] volt 2*/
+}) mavlink_vk_engine_ecu_staus_t;
+
+#define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN 47
 #define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN 37
-#define MAVLINK_MSG_ID_53005_LEN 37
+#define MAVLINK_MSG_ID_53005_LEN 47
 #define MAVLINK_MSG_ID_53005_MIN_LEN 37
 
 #define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC 145
@@ -41,7 +46,7 @@ typedef struct __mavlink_vk_engine_ecu_staus_t {
 #define MAVLINK_MESSAGE_INFO_VK_ENGINE_ECU_STAUS { \
     53005, \
     "VK_ENGINE_ECU_STAUS", \
-    18, \
+    23, \
     {  { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_engine_ecu_staus_t, timestamp) }, \
          { "spd_rpm", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_vk_engine_ecu_staus_t, spd_rpm) }, \
          { "thr_pos", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vk_engine_ecu_staus_t, thr_pos) }, \
@@ -60,12 +65,17 @@ typedef struct __mavlink_vk_engine_ecu_staus_t {
          { "engine_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vk_engine_ecu_staus_t, engine_state) }, \
          { "index", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vk_engine_ecu_staus_t, index) }, \
          { "reserve", NULL, MAVLINK_TYPE_UINT8_T, 4, 33, offsetof(mavlink_vk_engine_ecu_staus_t, reserve) }, \
+         { "inlet_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 37, offsetof(mavlink_vk_engine_ecu_staus_t, inlet_pressure) }, \
+         { "ge_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 39, offsetof(mavlink_vk_engine_ecu_staus_t, ge_temp) }, \
+         { "air_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 41, offsetof(mavlink_vk_engine_ecu_staus_t, air_temp) }, \
+         { "temp_1", NULL, MAVLINK_TYPE_INT16_T, 0, 43, offsetof(mavlink_vk_engine_ecu_staus_t, temp_1) }, \
+         { "volt_2", NULL, MAVLINK_TYPE_INT16_T, 0, 45, offsetof(mavlink_vk_engine_ecu_staus_t, volt_2) }, \
          } \
 }
 #else
 #define MAVLINK_MESSAGE_INFO_VK_ENGINE_ECU_STAUS { \
     "VK_ENGINE_ECU_STAUS", \
-    18, \
+    23, \
     {  { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_engine_ecu_staus_t, timestamp) }, \
          { "spd_rpm", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_vk_engine_ecu_staus_t, spd_rpm) }, \
          { "thr_pos", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vk_engine_ecu_staus_t, thr_pos) }, \
@@ -84,6 +94,11 @@ typedef struct __mavlink_vk_engine_ecu_staus_t {
          { "engine_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vk_engine_ecu_staus_t, engine_state) }, \
          { "index", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vk_engine_ecu_staus_t, index) }, \
          { "reserve", NULL, MAVLINK_TYPE_UINT8_T, 4, 33, offsetof(mavlink_vk_engine_ecu_staus_t, reserve) }, \
+         { "inlet_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 37, offsetof(mavlink_vk_engine_ecu_staus_t, inlet_pressure) }, \
+         { "ge_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 39, offsetof(mavlink_vk_engine_ecu_staus_t, ge_temp) }, \
+         { "air_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 41, offsetof(mavlink_vk_engine_ecu_staus_t, air_temp) }, \
+         { "temp_1", NULL, MAVLINK_TYPE_INT16_T, 0, 43, offsetof(mavlink_vk_engine_ecu_staus_t, temp_1) }, \
+         { "volt_2", NULL, MAVLINK_TYPE_INT16_T, 0, 45, offsetof(mavlink_vk_engine_ecu_staus_t, volt_2) }, \
          } \
 }
 #endif
@@ -114,10 +129,15 @@ typedef struct __mavlink_vk_engine_ecu_staus_t {
  * @param engine_state  engine state
  * @param index  engine index
  * @param reserve  engine state
+ * @param inlet_pressure [hPa] inlet air pressure
+ * @param ge_temp [degC] Ge temperature
+ * @param air_temp [degC] air temperature
+ * @param temp_1 [degC] temperature 1
+ * @param volt_2 [dV] volt 2
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-                               uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve)
+                               uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t air_temp, int16_t temp_1, int16_t volt_2)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
@@ -138,6 +158,11 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack(uint8_t system_id, u
     _mav_put_uint8_t(buf, 30, fault);
     _mav_put_uint8_t(buf, 31, engine_state);
     _mav_put_uint8_t(buf, 32, index);
+    _mav_put_uint16_t(buf, 37, inlet_pressure);
+    _mav_put_int16_t(buf, 39, ge_temp);
+    _mav_put_int16_t(buf, 41, air_temp);
+    _mav_put_int16_t(buf, 43, temp_1);
+    _mav_put_int16_t(buf, 45, volt_2);
     _mav_put_uint8_t_array(buf, 33, reserve, 4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
 #else
@@ -159,6 +184,11 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack(uint8_t system_id, u
     packet.fault = fault;
     packet.engine_state = engine_state;
     packet.index = index;
+    packet.inlet_pressure = inlet_pressure;
+    packet.ge_temp = ge_temp;
+    packet.air_temp = air_temp;
+    packet.temp_1 = temp_1;
+    packet.volt_2 = volt_2;
     mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
 #endif
@@ -194,10 +224,15 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack(uint8_t system_id, u
  * @param engine_state  engine state
  * @param index  engine index
  * @param reserve  engine state
+ * @param inlet_pressure [hPa] inlet air pressure
+ * @param ge_temp [degC] Ge temperature
+ * @param air_temp [degC] air temperature
+ * @param temp_1 [degC] temperature 1
+ * @param volt_2 [dV] volt 2
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
-                               uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve)
+                               uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t air_temp, int16_t temp_1, int16_t volt_2)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
@@ -218,6 +253,11 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_status(uint8_t syste
     _mav_put_uint8_t(buf, 30, fault);
     _mav_put_uint8_t(buf, 31, engine_state);
     _mav_put_uint8_t(buf, 32, index);
+    _mav_put_uint16_t(buf, 37, inlet_pressure);
+    _mav_put_int16_t(buf, 39, ge_temp);
+    _mav_put_int16_t(buf, 41, air_temp);
+    _mav_put_int16_t(buf, 43, temp_1);
+    _mav_put_int16_t(buf, 45, volt_2);
     _mav_put_uint8_t_array(buf, 33, reserve, 4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
 #else
@@ -239,6 +279,11 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_status(uint8_t syste
     packet.fault = fault;
     packet.engine_state = engine_state;
     packet.index = index;
+    packet.inlet_pressure = inlet_pressure;
+    packet.ge_temp = ge_temp;
+    packet.air_temp = air_temp;
+    packet.temp_1 = temp_1;
+    packet.volt_2 = volt_2;
     mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
 #endif
@@ -277,11 +322,16 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_status(uint8_t syste
  * @param engine_state  engine state
  * @param index  engine index
  * @param reserve  engine state
+ * @param inlet_pressure [hPa] inlet air pressure
+ * @param ge_temp [degC] Ge temperature
+ * @param air_temp [degC] air temperature
+ * @param temp_1 [degC] temperature 1
+ * @param volt_2 [dV] volt 2
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                                mavlink_message_t* msg,
-                                   uint32_t timestamp,uint16_t spd_rpm,uint8_t thr_pos,uint8_t fuel_pos,int16_t cylinderA_temp,int16_t cylinderB_temp,int16_t coolant_temp,uint16_t fuel_remain,uint16_t alarm,uint32_t total_runtime,uint16_t runtime,uint16_t service_time,uint16_t output_volt,uint16_t output_curr,uint8_t fault,uint8_t engine_state,uint8_t index,const uint8_t *reserve)
+                                   uint32_t timestamp,uint16_t spd_rpm,uint8_t thr_pos,uint8_t fuel_pos,int16_t cylinderA_temp,int16_t cylinderB_temp,int16_t coolant_temp,uint16_t fuel_remain,uint16_t alarm,uint32_t total_runtime,uint16_t runtime,uint16_t service_time,uint16_t output_volt,uint16_t output_curr,uint8_t fault,uint8_t engine_state,uint8_t index,const uint8_t *reserve,uint16_t inlet_pressure,int16_t ge_temp,int16_t air_temp,int16_t temp_1,int16_t volt_2)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
@@ -302,6 +352,11 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_chan(uint8_t system_
     _mav_put_uint8_t(buf, 30, fault);
     _mav_put_uint8_t(buf, 31, engine_state);
     _mav_put_uint8_t(buf, 32, index);
+    _mav_put_uint16_t(buf, 37, inlet_pressure);
+    _mav_put_int16_t(buf, 39, ge_temp);
+    _mav_put_int16_t(buf, 41, air_temp);
+    _mav_put_int16_t(buf, 43, temp_1);
+    _mav_put_int16_t(buf, 45, volt_2);
     _mav_put_uint8_t_array(buf, 33, reserve, 4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
 #else
@@ -323,6 +378,11 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_chan(uint8_t system_
     packet.fault = fault;
     packet.engine_state = engine_state;
     packet.index = index;
+    packet.inlet_pressure = inlet_pressure;
+    packet.ge_temp = ge_temp;
+    packet.air_temp = air_temp;
+    packet.temp_1 = temp_1;
+    packet.volt_2 = volt_2;
     mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
 #endif
@@ -341,7 +401,7 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_chan(uint8_t system_
  */
 static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
 {
-    return mavlink_msg_vk_engine_ecu_staus_pack(system_id, component_id, msg, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve);
+    return mavlink_msg_vk_engine_ecu_staus_pack(system_id, component_id, msg, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->air_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
 }
 
 /**
@@ -355,7 +415,7 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode(uint8_t system_id,
  */
 static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
 {
-    return mavlink_msg_vk_engine_ecu_staus_pack_chan(system_id, component_id, chan, msg, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve);
+    return mavlink_msg_vk_engine_ecu_staus_pack_chan(system_id, component_id, chan, msg, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->air_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
 }
 
 /**
@@ -369,7 +429,7 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode_chan(uint8_t syste
  */
 static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
 {
-    return mavlink_msg_vk_engine_ecu_staus_pack_status(system_id, component_id, _status, msg,  vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve);
+    return mavlink_msg_vk_engine_ecu_staus_pack_status(system_id, component_id, _status, msg,  vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->air_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
 }
 
 /**
@@ -396,10 +456,15 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode_status(uint8_t sys
  * @param engine_state  engine state
  * @param index  engine index
  * @param reserve  engine state
+ * @param inlet_pressure [hPa] inlet air pressure
+ * @param ge_temp [degC] Ge temperature
+ * @param air_temp [degC] air temperature
+ * @param temp_1 [degC] temperature 1
+ * @param volt_2 [dV] volt 2
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
-static inline void mavlink_msg_vk_engine_ecu_staus_send(mavlink_channel_t chan, uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve)
+static inline void mavlink_msg_vk_engine_ecu_staus_send(mavlink_channel_t chan, uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t air_temp, int16_t temp_1, int16_t volt_2)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
@@ -420,6 +485,11 @@ static inline void mavlink_msg_vk_engine_ecu_staus_send(mavlink_channel_t chan,
     _mav_put_uint8_t(buf, 30, fault);
     _mav_put_uint8_t(buf, 31, engine_state);
     _mav_put_uint8_t(buf, 32, index);
+    _mav_put_uint16_t(buf, 37, inlet_pressure);
+    _mav_put_int16_t(buf, 39, ge_temp);
+    _mav_put_int16_t(buf, 41, air_temp);
+    _mav_put_int16_t(buf, 43, temp_1);
+    _mav_put_int16_t(buf, 45, volt_2);
     _mav_put_uint8_t_array(buf, 33, reserve, 4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
 #else
@@ -441,6 +511,11 @@ static inline void mavlink_msg_vk_engine_ecu_staus_send(mavlink_channel_t chan,
     packet.fault = fault;
     packet.engine_state = engine_state;
     packet.index = index;
+    packet.inlet_pressure = inlet_pressure;
+    packet.ge_temp = ge_temp;
+    packet.air_temp = air_temp;
+    packet.temp_1 = temp_1;
+    packet.volt_2 = volt_2;
     mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, (const char *)&packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
 #endif
@@ -454,7 +529,7 @@ static inline void mavlink_msg_vk_engine_ecu_staus_send(mavlink_channel_t chan,
 static inline void mavlink_msg_vk_engine_ecu_staus_send_struct(mavlink_channel_t chan, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-    mavlink_msg_vk_engine_ecu_staus_send(chan, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve);
+    mavlink_msg_vk_engine_ecu_staus_send(chan, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->air_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
 #else
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, (const char *)vk_engine_ecu_staus, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
 #endif
@@ -468,7 +543,7 @@ static inline void mavlink_msg_vk_engine_ecu_staus_send_struct(mavlink_channel_t
   is usually the receive buffer for the channel, and allows a reply to an
   incoming message with minimum stack space usage.
  */
-static inline void mavlink_msg_vk_engine_ecu_staus_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve)
+static inline void mavlink_msg_vk_engine_ecu_staus_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t air_temp, int16_t temp_1, int16_t volt_2)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char *buf = (char *)msgbuf;
@@ -489,6 +564,11 @@ static inline void mavlink_msg_vk_engine_ecu_staus_send_buf(mavlink_message_t *m
     _mav_put_uint8_t(buf, 30, fault);
     _mav_put_uint8_t(buf, 31, engine_state);
     _mav_put_uint8_t(buf, 32, index);
+    _mav_put_uint16_t(buf, 37, inlet_pressure);
+    _mav_put_int16_t(buf, 39, ge_temp);
+    _mav_put_int16_t(buf, 41, air_temp);
+    _mav_put_int16_t(buf, 43, temp_1);
+    _mav_put_int16_t(buf, 45, volt_2);
     _mav_put_uint8_t_array(buf, 33, reserve, 4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
 #else
@@ -510,6 +590,11 @@ static inline void mavlink_msg_vk_engine_ecu_staus_send_buf(mavlink_message_t *m
     packet->fault = fault;
     packet->engine_state = engine_state;
     packet->index = index;
+    packet->inlet_pressure = inlet_pressure;
+    packet->ge_temp = ge_temp;
+    packet->air_temp = air_temp;
+    packet->temp_1 = temp_1;
+    packet->volt_2 = volt_2;
     mav_array_memcpy(packet->reserve, reserve, sizeof(uint8_t)*4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, (const char *)packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
 #endif
@@ -703,6 +788,56 @@ static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_reserve(const mavlink
     return _MAV_RETURN_uint8_t_array(msg, reserve, 4,  33);
 }
 
+/**
+ * @brief Get field inlet_pressure from vk_engine_ecu_staus message
+ *
+ * @return [hPa] inlet air pressure
+ */
+static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_inlet_pressure(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_uint16_t(msg,  37);
+}
+
+/**
+ * @brief Get field ge_temp from vk_engine_ecu_staus message
+ *
+ * @return [degC] Ge temperature
+ */
+static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_ge_temp(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_int16_t(msg,  39);
+}
+
+/**
+ * @brief Get field air_temp from vk_engine_ecu_staus message
+ *
+ * @return [degC] air temperature
+ */
+static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_air_temp(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_int16_t(msg,  41);
+}
+
+/**
+ * @brief Get field temp_1 from vk_engine_ecu_staus message
+ *
+ * @return [degC] temperature 1
+ */
+static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_temp_1(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_int16_t(msg,  43);
+}
+
+/**
+ * @brief Get field volt_2 from vk_engine_ecu_staus message
+ *
+ * @return [dV] volt 2
+ */
+static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_volt_2(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_int16_t(msg,  45);
+}
+
 /**
  * @brief Decode a vk_engine_ecu_staus message into a struct
  *
@@ -730,6 +865,11 @@ static inline void mavlink_msg_vk_engine_ecu_staus_decode(const mavlink_message_
     vk_engine_ecu_staus->engine_state = mavlink_msg_vk_engine_ecu_staus_get_engine_state(msg);
     vk_engine_ecu_staus->index = mavlink_msg_vk_engine_ecu_staus_get_index(msg);
     mavlink_msg_vk_engine_ecu_staus_get_reserve(msg, vk_engine_ecu_staus->reserve);
+    vk_engine_ecu_staus->inlet_pressure = mavlink_msg_vk_engine_ecu_staus_get_inlet_pressure(msg);
+    vk_engine_ecu_staus->ge_temp = mavlink_msg_vk_engine_ecu_staus_get_ge_temp(msg);
+    vk_engine_ecu_staus->air_temp = mavlink_msg_vk_engine_ecu_staus_get_air_temp(msg);
+    vk_engine_ecu_staus->temp_1 = mavlink_msg_vk_engine_ecu_staus_get_temp_1(msg);
+    vk_engine_ecu_staus->volt_2 = mavlink_msg_vk_engine_ecu_staus_get_volt_2(msg);
 #else
         uint8_t len = msg->len < MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN? msg->len : MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN;
         memset(vk_engine_ecu_staus, 0, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);

+ 97 - 13
v2.0/VKFly/mavlink_msg_vk_formation_leader.h

@@ -21,11 +21,14 @@ typedef struct __mavlink_vk_formation_leader_t {
  uint8_t formation_type; /*<  formation type*/
  float formation_heading; /*< [deg] if nan, use yaw as formation heading*/
  float form_head_lock; /*<  0 unlock, 1 lock*/
+ float ae; /*< [m/s/s] formation leader east acceleration*/
+ float an; /*< [m/s/s] formation leader east acceleration*/
+ float au; /*< [m/s/s] formation leader east acceleration*/
 }) mavlink_vk_formation_leader_t;
 
-#define MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN 53
+#define MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN 65
 #define MAVLINK_MSG_ID_VK_FORMATION_LEADER_MIN_LEN 45
-#define MAVLINK_MSG_ID_53004_LEN 53
+#define MAVLINK_MSG_ID_53004_LEN 65
 #define MAVLINK_MSG_ID_53004_MIN_LEN 45
 
 #define MAVLINK_MSG_ID_VK_FORMATION_LEADER_CRC 219
@@ -37,7 +40,7 @@ typedef struct __mavlink_vk_formation_leader_t {
 #define MAVLINK_MESSAGE_INFO_VK_FORMATION_LEADER { \
     53004, \
     "VK_FORMATION_LEADER", \
-    16, \
+    19, \
     {  { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_formation_leader_t, timestamp) }, \
          { "state", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_formation_leader_t, state) }, \
          { "lat", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vk_formation_leader_t, lat) }, \
@@ -54,12 +57,15 @@ typedef struct __mavlink_vk_formation_leader_t {
          { "rect_col_num", NULL, MAVLINK_TYPE_UINT16_T, 0, 42, offsetof(mavlink_vk_formation_leader_t, rect_col_num) }, \
          { "formation_heading", NULL, MAVLINK_TYPE_FLOAT, 0, 45, offsetof(mavlink_vk_formation_leader_t, formation_heading) }, \
          { "form_head_lock", NULL, MAVLINK_TYPE_FLOAT, 0, 49, offsetof(mavlink_vk_formation_leader_t, form_head_lock) }, \
+         { "ae", NULL, MAVLINK_TYPE_FLOAT, 0, 53, offsetof(mavlink_vk_formation_leader_t, ae) }, \
+         { "an", NULL, MAVLINK_TYPE_FLOAT, 0, 57, offsetof(mavlink_vk_formation_leader_t, an) }, \
+         { "au", NULL, MAVLINK_TYPE_FLOAT, 0, 61, offsetof(mavlink_vk_formation_leader_t, au) }, \
          } \
 }
 #else
 #define MAVLINK_MESSAGE_INFO_VK_FORMATION_LEADER { \
     "VK_FORMATION_LEADER", \
-    16, \
+    19, \
     {  { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_formation_leader_t, timestamp) }, \
          { "state", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_formation_leader_t, state) }, \
          { "lat", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vk_formation_leader_t, lat) }, \
@@ -76,6 +82,9 @@ typedef struct __mavlink_vk_formation_leader_t {
          { "rect_col_num", NULL, MAVLINK_TYPE_UINT16_T, 0, 42, offsetof(mavlink_vk_formation_leader_t, rect_col_num) }, \
          { "formation_heading", NULL, MAVLINK_TYPE_FLOAT, 0, 45, offsetof(mavlink_vk_formation_leader_t, formation_heading) }, \
          { "form_head_lock", NULL, MAVLINK_TYPE_FLOAT, 0, 49, offsetof(mavlink_vk_formation_leader_t, form_head_lock) }, \
+         { "ae", NULL, MAVLINK_TYPE_FLOAT, 0, 53, offsetof(mavlink_vk_formation_leader_t, ae) }, \
+         { "an", NULL, MAVLINK_TYPE_FLOAT, 0, 57, offsetof(mavlink_vk_formation_leader_t, an) }, \
+         { "au", NULL, MAVLINK_TYPE_FLOAT, 0, 61, offsetof(mavlink_vk_formation_leader_t, au) }, \
          } \
 }
 #endif
@@ -102,10 +111,13 @@ typedef struct __mavlink_vk_formation_leader_t {
  * @param rect_col_num  columns number of rectangle formation
  * @param formation_heading [deg] if nan, use yaw as formation heading
  * @param form_head_lock  0 unlock, 1 lock
+ * @param ae [m/s/s] formation leader east acceleration
+ * @param an [m/s/s] formation leader east acceleration
+ * @param au [m/s/s] formation leader east acceleration
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_formation_leader_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-                               uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock)
+                               uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock, float ae, float an, float au)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN];
@@ -125,6 +137,9 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack(uint8_t system_id, u
     _mav_put_uint8_t(buf, 44, formation_type);
     _mav_put_float(buf, 45, formation_heading);
     _mav_put_float(buf, 49, form_head_lock);
+    _mav_put_float(buf, 53, ae);
+    _mav_put_float(buf, 57, an);
+    _mav_put_float(buf, 61, au);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN);
 #else
@@ -145,6 +160,9 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack(uint8_t system_id, u
     packet.formation_type = formation_type;
     packet.formation_heading = formation_heading;
     packet.form_head_lock = form_head_lock;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN);
 #endif
@@ -176,10 +194,13 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack(uint8_t system_id, u
  * @param rect_col_num  columns number of rectangle formation
  * @param formation_heading [deg] if nan, use yaw as formation heading
  * @param form_head_lock  0 unlock, 1 lock
+ * @param ae [m/s/s] formation leader east acceleration
+ * @param an [m/s/s] formation leader east acceleration
+ * @param au [m/s/s] formation leader east acceleration
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_formation_leader_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
-                               uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock)
+                               uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock, float ae, float an, float au)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN];
@@ -199,6 +220,9 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack_status(uint8_t syste
     _mav_put_uint8_t(buf, 44, formation_type);
     _mav_put_float(buf, 45, formation_heading);
     _mav_put_float(buf, 49, form_head_lock);
+    _mav_put_float(buf, 53, ae);
+    _mav_put_float(buf, 57, an);
+    _mav_put_float(buf, 61, au);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN);
 #else
@@ -219,6 +243,9 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack_status(uint8_t syste
     packet.formation_type = formation_type;
     packet.formation_heading = formation_heading;
     packet.form_head_lock = form_head_lock;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN);
 #endif
@@ -253,11 +280,14 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack_status(uint8_t syste
  * @param rect_col_num  columns number of rectangle formation
  * @param formation_heading [deg] if nan, use yaw as formation heading
  * @param form_head_lock  0 unlock, 1 lock
+ * @param ae [m/s/s] formation leader east acceleration
+ * @param an [m/s/s] formation leader east acceleration
+ * @param au [m/s/s] formation leader east acceleration
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_formation_leader_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                                mavlink_message_t* msg,
-                                   uint32_t timestamp,uint32_t state,int32_t lat,int32_t lon,float msl,float ve,float vn,float vu,float yaw,uint8_t formation_type,int16_t x_dist,int16_t y_dist,int16_t z_dist,uint16_t rect_col_num,float formation_heading,float form_head_lock)
+                                   uint32_t timestamp,uint32_t state,int32_t lat,int32_t lon,float msl,float ve,float vn,float vu,float yaw,uint8_t formation_type,int16_t x_dist,int16_t y_dist,int16_t z_dist,uint16_t rect_col_num,float formation_heading,float form_head_lock,float ae,float an,float au)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN];
@@ -277,6 +307,9 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack_chan(uint8_t system_
     _mav_put_uint8_t(buf, 44, formation_type);
     _mav_put_float(buf, 45, formation_heading);
     _mav_put_float(buf, 49, form_head_lock);
+    _mav_put_float(buf, 53, ae);
+    _mav_put_float(buf, 57, an);
+    _mav_put_float(buf, 61, au);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN);
 #else
@@ -297,6 +330,9 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack_chan(uint8_t system_
     packet.formation_type = formation_type;
     packet.formation_heading = formation_heading;
     packet.form_head_lock = form_head_lock;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN);
 #endif
@@ -315,7 +351,7 @@ static inline uint16_t mavlink_msg_vk_formation_leader_pack_chan(uint8_t system_
  */
 static inline uint16_t mavlink_msg_vk_formation_leader_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vk_formation_leader_t* vk_formation_leader)
 {
-    return mavlink_msg_vk_formation_leader_pack(system_id, component_id, msg, vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock);
+    return mavlink_msg_vk_formation_leader_pack(system_id, component_id, msg, vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock, vk_formation_leader->ae, vk_formation_leader->an, vk_formation_leader->au);
 }
 
 /**
@@ -329,7 +365,7 @@ static inline uint16_t mavlink_msg_vk_formation_leader_encode(uint8_t system_id,
  */
 static inline uint16_t mavlink_msg_vk_formation_leader_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vk_formation_leader_t* vk_formation_leader)
 {
-    return mavlink_msg_vk_formation_leader_pack_chan(system_id, component_id, chan, msg, vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock);
+    return mavlink_msg_vk_formation_leader_pack_chan(system_id, component_id, chan, msg, vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock, vk_formation_leader->ae, vk_formation_leader->an, vk_formation_leader->au);
 }
 
 /**
@@ -343,7 +379,7 @@ static inline uint16_t mavlink_msg_vk_formation_leader_encode_chan(uint8_t syste
  */
 static inline uint16_t mavlink_msg_vk_formation_leader_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vk_formation_leader_t* vk_formation_leader)
 {
-    return mavlink_msg_vk_formation_leader_pack_status(system_id, component_id, _status, msg,  vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock);
+    return mavlink_msg_vk_formation_leader_pack_status(system_id, component_id, _status, msg,  vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock, vk_formation_leader->ae, vk_formation_leader->an, vk_formation_leader->au);
 }
 
 /**
@@ -366,10 +402,13 @@ static inline uint16_t mavlink_msg_vk_formation_leader_encode_status(uint8_t sys
  * @param rect_col_num  columns number of rectangle formation
  * @param formation_heading [deg] if nan, use yaw as formation heading
  * @param form_head_lock  0 unlock, 1 lock
+ * @param ae [m/s/s] formation leader east acceleration
+ * @param an [m/s/s] formation leader east acceleration
+ * @param au [m/s/s] formation leader east acceleration
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
-static inline void mavlink_msg_vk_formation_leader_send(mavlink_channel_t chan, uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock)
+static inline void mavlink_msg_vk_formation_leader_send(mavlink_channel_t chan, uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock, float ae, float an, float au)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN];
@@ -389,6 +428,9 @@ static inline void mavlink_msg_vk_formation_leader_send(mavlink_channel_t chan,
     _mav_put_uint8_t(buf, 44, formation_type);
     _mav_put_float(buf, 45, formation_heading);
     _mav_put_float(buf, 49, form_head_lock);
+    _mav_put_float(buf, 53, ae);
+    _mav_put_float(buf, 57, an);
+    _mav_put_float(buf, 61, au);
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_FORMATION_LEADER, buf, MAVLINK_MSG_ID_VK_FORMATION_LEADER_MIN_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_CRC);
 #else
@@ -409,6 +451,9 @@ static inline void mavlink_msg_vk_formation_leader_send(mavlink_channel_t chan,
     packet.formation_type = formation_type;
     packet.formation_heading = formation_heading;
     packet.form_head_lock = form_head_lock;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_FORMATION_LEADER, (const char *)&packet, MAVLINK_MSG_ID_VK_FORMATION_LEADER_MIN_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_CRC);
 #endif
@@ -422,7 +467,7 @@ static inline void mavlink_msg_vk_formation_leader_send(mavlink_channel_t chan,
 static inline void mavlink_msg_vk_formation_leader_send_struct(mavlink_channel_t chan, const mavlink_vk_formation_leader_t* vk_formation_leader)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-    mavlink_msg_vk_formation_leader_send(chan, vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock);
+    mavlink_msg_vk_formation_leader_send(chan, vk_formation_leader->timestamp, vk_formation_leader->state, vk_formation_leader->lat, vk_formation_leader->lon, vk_formation_leader->msl, vk_formation_leader->ve, vk_formation_leader->vn, vk_formation_leader->vu, vk_formation_leader->yaw, vk_formation_leader->formation_type, vk_formation_leader->x_dist, vk_formation_leader->y_dist, vk_formation_leader->z_dist, vk_formation_leader->rect_col_num, vk_formation_leader->formation_heading, vk_formation_leader->form_head_lock, vk_formation_leader->ae, vk_formation_leader->an, vk_formation_leader->au);
 #else
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_FORMATION_LEADER, (const char *)vk_formation_leader, MAVLINK_MSG_ID_VK_FORMATION_LEADER_MIN_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_CRC);
 #endif
@@ -436,7 +481,7 @@ static inline void mavlink_msg_vk_formation_leader_send_struct(mavlink_channel_t
   is usually the receive buffer for the channel, and allows a reply to an
   incoming message with minimum stack space usage.
  */
-static inline void mavlink_msg_vk_formation_leader_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock)
+static inline void mavlink_msg_vk_formation_leader_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t timestamp, uint32_t state, int32_t lat, int32_t lon, float msl, float ve, float vn, float vu, float yaw, uint8_t formation_type, int16_t x_dist, int16_t y_dist, int16_t z_dist, uint16_t rect_col_num, float formation_heading, float form_head_lock, float ae, float an, float au)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char *buf = (char *)msgbuf;
@@ -456,6 +501,9 @@ static inline void mavlink_msg_vk_formation_leader_send_buf(mavlink_message_t *m
     _mav_put_uint8_t(buf, 44, formation_type);
     _mav_put_float(buf, 45, formation_heading);
     _mav_put_float(buf, 49, form_head_lock);
+    _mav_put_float(buf, 53, ae);
+    _mav_put_float(buf, 57, an);
+    _mav_put_float(buf, 61, au);
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_FORMATION_LEADER, buf, MAVLINK_MSG_ID_VK_FORMATION_LEADER_MIN_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_CRC);
 #else
@@ -476,6 +524,9 @@ static inline void mavlink_msg_vk_formation_leader_send_buf(mavlink_message_t *m
     packet->formation_type = formation_type;
     packet->formation_heading = formation_heading;
     packet->form_head_lock = form_head_lock;
+    packet->ae = ae;
+    packet->an = an;
+    packet->au = au;
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_FORMATION_LEADER, (const char *)packet, MAVLINK_MSG_ID_VK_FORMATION_LEADER_MIN_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN, MAVLINK_MSG_ID_VK_FORMATION_LEADER_CRC);
 #endif
@@ -647,6 +698,36 @@ static inline float mavlink_msg_vk_formation_leader_get_form_head_lock(const mav
     return _MAV_RETURN_float(msg,  49);
 }
 
+/**
+ * @brief Get field ae from vk_formation_leader message
+ *
+ * @return [m/s/s] formation leader east acceleration
+ */
+static inline float mavlink_msg_vk_formation_leader_get_ae(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  53);
+}
+
+/**
+ * @brief Get field an from vk_formation_leader message
+ *
+ * @return [m/s/s] formation leader east acceleration
+ */
+static inline float mavlink_msg_vk_formation_leader_get_an(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  57);
+}
+
+/**
+ * @brief Get field au from vk_formation_leader message
+ *
+ * @return [m/s/s] formation leader east acceleration
+ */
+static inline float mavlink_msg_vk_formation_leader_get_au(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  61);
+}
+
 /**
  * @brief Decode a vk_formation_leader message into a struct
  *
@@ -672,6 +753,9 @@ static inline void mavlink_msg_vk_formation_leader_decode(const mavlink_message_
     vk_formation_leader->formation_type = mavlink_msg_vk_formation_leader_get_formation_type(msg);
     vk_formation_leader->formation_heading = mavlink_msg_vk_formation_leader_get_formation_heading(msg);
     vk_formation_leader->form_head_lock = mavlink_msg_vk_formation_leader_get_form_head_lock(msg);
+    vk_formation_leader->ae = mavlink_msg_vk_formation_leader_get_ae(msg);
+    vk_formation_leader->an = mavlink_msg_vk_formation_leader_get_an(msg);
+    vk_formation_leader->au = mavlink_msg_vk_formation_leader_get_au(msg);
 #else
         uint8_t len = msg->len < MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN? msg->len : MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN;
         memset(vk_formation_leader, 0, MAVLINK_MSG_ID_VK_FORMATION_LEADER_LEN);

+ 98 - 24
v2.0/VKFly/mavlink_msg_vk_weigher_state.h

@@ -10,39 +10,48 @@ typedef struct __mavlink_vk_weigher_state_t {
  uint16_t weight_d; /*<  weight variant rate*/
  uint8_t work_state; /*<  */
  uint8_t err_code; /*<  */
+ float attitude_Q[4]; /*<  */
+ float rope_length; /*<  length in m, NAN means ignore*/
+ float rope_vel; /*<  velocity in m/s, NAN means ignore*/
 } mavlink_vk_weigher_state_t;
 
-#define MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN 12
+#define MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN 36
 #define MAVLINK_MSG_ID_VK_WEIGHER_STATE_MIN_LEN 12
-#define MAVLINK_MSG_ID_53021_LEN 12
+#define MAVLINK_MSG_ID_53021_LEN 36
 #define MAVLINK_MSG_ID_53021_MIN_LEN 12
 
 #define MAVLINK_MSG_ID_VK_WEIGHER_STATE_CRC 89
 #define MAVLINK_MSG_ID_53021_CRC 89
 
-
+#define MAVLINK_MSG_VK_WEIGHER_STATE_FIELD_ATTITUDE_Q_LEN 4
 
 #if MAVLINK_COMMAND_24BIT
 #define MAVLINK_MESSAGE_INFO_VK_WEIGHER_STATE { \
     53021, \
     "VK_WEIGHER_STATE", \
-    5, \
+    8, \
     {  { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_weigher_state_t, timestamp) }, \
          { "weight", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_weigher_state_t, weight) }, \
          { "weight_d", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_vk_weigher_state_t, weight_d) }, \
          { "work_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_vk_weigher_state_t, work_state) }, \
          { "err_code", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_vk_weigher_state_t, err_code) }, \
+         { "attitude_Q", NULL, MAVLINK_TYPE_FLOAT, 4, 12, offsetof(mavlink_vk_weigher_state_t, attitude_Q) }, \
+         { "rope_length", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_vk_weigher_state_t, rope_length) }, \
+         { "rope_vel", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_vk_weigher_state_t, rope_vel) }, \
          } \
 }
 #else
 #define MAVLINK_MESSAGE_INFO_VK_WEIGHER_STATE { \
     "VK_WEIGHER_STATE", \
-    5, \
+    8, \
     {  { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_weigher_state_t, timestamp) }, \
          { "weight", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_weigher_state_t, weight) }, \
          { "weight_d", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_vk_weigher_state_t, weight_d) }, \
          { "work_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_vk_weigher_state_t, work_state) }, \
          { "err_code", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_vk_weigher_state_t, err_code) }, \
+         { "attitude_Q", NULL, MAVLINK_TYPE_FLOAT, 4, 12, offsetof(mavlink_vk_weigher_state_t, attitude_Q) }, \
+         { "rope_length", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_vk_weigher_state_t, rope_length) }, \
+         { "rope_vel", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_vk_weigher_state_t, rope_vel) }, \
          } \
 }
 #endif
@@ -58,10 +67,13 @@ typedef struct __mavlink_vk_weigher_state_t {
  * @param weight_d  weight variant rate
  * @param work_state  
  * @param err_code  
+ * @param attitude_Q  
+ * @param rope_length  length in m, NAN means ignore
+ * @param rope_vel  velocity in m/s, NAN means ignore
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_weigher_state_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-                               uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code)
+                               uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code, const float *attitude_Q, float rope_length, float rope_vel)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN];
@@ -70,7 +82,9 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack(uint8_t system_id, uint
     _mav_put_uint16_t(buf, 8, weight_d);
     _mav_put_uint8_t(buf, 10, work_state);
     _mav_put_uint8_t(buf, 11, err_code);
-
+    _mav_put_float(buf, 28, rope_length);
+    _mav_put_float(buf, 32, rope_vel);
+    _mav_put_float_array(buf, 12, attitude_Q, 4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN);
 #else
     mavlink_vk_weigher_state_t packet;
@@ -79,7 +93,9 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack(uint8_t system_id, uint
     packet.weight_d = weight_d;
     packet.work_state = work_state;
     packet.err_code = err_code;
-
+    packet.rope_length = rope_length;
+    packet.rope_vel = rope_vel;
+    mav_array_memcpy(packet.attitude_Q, attitude_Q, sizeof(float)*4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN);
 #endif
 
@@ -99,10 +115,13 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack(uint8_t system_id, uint
  * @param weight_d  weight variant rate
  * @param work_state  
  * @param err_code  
+ * @param attitude_Q  
+ * @param rope_length  length in m, NAN means ignore
+ * @param rope_vel  velocity in m/s, NAN means ignore
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_weigher_state_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
-                               uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code)
+                               uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code, const float *attitude_Q, float rope_length, float rope_vel)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN];
@@ -111,7 +130,9 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack_status(uint8_t system_i
     _mav_put_uint16_t(buf, 8, weight_d);
     _mav_put_uint8_t(buf, 10, work_state);
     _mav_put_uint8_t(buf, 11, err_code);
-
+    _mav_put_float(buf, 28, rope_length);
+    _mav_put_float(buf, 32, rope_vel);
+    _mav_put_float_array(buf, 12, attitude_Q, 4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN);
 #else
     mavlink_vk_weigher_state_t packet;
@@ -120,7 +141,9 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack_status(uint8_t system_i
     packet.weight_d = weight_d;
     packet.work_state = work_state;
     packet.err_code = err_code;
-
+    packet.rope_length = rope_length;
+    packet.rope_vel = rope_vel;
+    mav_array_memcpy(packet.attitude_Q, attitude_Q, sizeof(float)*4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN);
 #endif
 
@@ -143,11 +166,14 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack_status(uint8_t system_i
  * @param weight_d  weight variant rate
  * @param work_state  
  * @param err_code  
+ * @param attitude_Q  
+ * @param rope_length  length in m, NAN means ignore
+ * @param rope_vel  velocity in m/s, NAN means ignore
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vk_weigher_state_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                                mavlink_message_t* msg,
-                                   uint32_t timestamp,uint32_t weight,uint16_t weight_d,uint8_t work_state,uint8_t err_code)
+                                   uint32_t timestamp,uint32_t weight,uint16_t weight_d,uint8_t work_state,uint8_t err_code,const float *attitude_Q,float rope_length,float rope_vel)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN];
@@ -156,7 +182,9 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack_chan(uint8_t system_id,
     _mav_put_uint16_t(buf, 8, weight_d);
     _mav_put_uint8_t(buf, 10, work_state);
     _mav_put_uint8_t(buf, 11, err_code);
-
+    _mav_put_float(buf, 28, rope_length);
+    _mav_put_float(buf, 32, rope_vel);
+    _mav_put_float_array(buf, 12, attitude_Q, 4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN);
 #else
     mavlink_vk_weigher_state_t packet;
@@ -165,7 +193,9 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack_chan(uint8_t system_id,
     packet.weight_d = weight_d;
     packet.work_state = work_state;
     packet.err_code = err_code;
-
+    packet.rope_length = rope_length;
+    packet.rope_vel = rope_vel;
+    mav_array_memcpy(packet.attitude_Q, attitude_Q, sizeof(float)*4);
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN);
 #endif
 
@@ -183,7 +213,7 @@ static inline uint16_t mavlink_msg_vk_weigher_state_pack_chan(uint8_t system_id,
  */
 static inline uint16_t mavlink_msg_vk_weigher_state_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vk_weigher_state_t* vk_weigher_state)
 {
-    return mavlink_msg_vk_weigher_state_pack(system_id, component_id, msg, vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code);
+    return mavlink_msg_vk_weigher_state_pack(system_id, component_id, msg, vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code, vk_weigher_state->attitude_Q, vk_weigher_state->rope_length, vk_weigher_state->rope_vel);
 }
 
 /**
@@ -197,7 +227,7 @@ static inline uint16_t mavlink_msg_vk_weigher_state_encode(uint8_t system_id, ui
  */
 static inline uint16_t mavlink_msg_vk_weigher_state_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vk_weigher_state_t* vk_weigher_state)
 {
-    return mavlink_msg_vk_weigher_state_pack_chan(system_id, component_id, chan, msg, vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code);
+    return mavlink_msg_vk_weigher_state_pack_chan(system_id, component_id, chan, msg, vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code, vk_weigher_state->attitude_Q, vk_weigher_state->rope_length, vk_weigher_state->rope_vel);
 }
 
 /**
@@ -211,7 +241,7 @@ static inline uint16_t mavlink_msg_vk_weigher_state_encode_chan(uint8_t system_i
  */
 static inline uint16_t mavlink_msg_vk_weigher_state_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vk_weigher_state_t* vk_weigher_state)
 {
-    return mavlink_msg_vk_weigher_state_pack_status(system_id, component_id, _status, msg,  vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code);
+    return mavlink_msg_vk_weigher_state_pack_status(system_id, component_id, _status, msg,  vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code, vk_weigher_state->attitude_Q, vk_weigher_state->rope_length, vk_weigher_state->rope_vel);
 }
 
 /**
@@ -223,10 +253,13 @@ static inline uint16_t mavlink_msg_vk_weigher_state_encode_status(uint8_t system
  * @param weight_d  weight variant rate
  * @param work_state  
  * @param err_code  
+ * @param attitude_Q  
+ * @param rope_length  length in m, NAN means ignore
+ * @param rope_vel  velocity in m/s, NAN means ignore
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
-static inline void mavlink_msg_vk_weigher_state_send(mavlink_channel_t chan, uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code)
+static inline void mavlink_msg_vk_weigher_state_send(mavlink_channel_t chan, uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code, const float *attitude_Q, float rope_length, float rope_vel)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN];
@@ -235,7 +268,9 @@ static inline void mavlink_msg_vk_weigher_state_send(mavlink_channel_t chan, uin
     _mav_put_uint16_t(buf, 8, weight_d);
     _mav_put_uint8_t(buf, 10, work_state);
     _mav_put_uint8_t(buf, 11, err_code);
-
+    _mav_put_float(buf, 28, rope_length);
+    _mav_put_float(buf, 32, rope_vel);
+    _mav_put_float_array(buf, 12, attitude_Q, 4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_WEIGHER_STATE, buf, MAVLINK_MSG_ID_VK_WEIGHER_STATE_MIN_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_CRC);
 #else
     mavlink_vk_weigher_state_t packet;
@@ -244,7 +279,9 @@ static inline void mavlink_msg_vk_weigher_state_send(mavlink_channel_t chan, uin
     packet.weight_d = weight_d;
     packet.work_state = work_state;
     packet.err_code = err_code;
-
+    packet.rope_length = rope_length;
+    packet.rope_vel = rope_vel;
+    mav_array_memcpy(packet.attitude_Q, attitude_Q, sizeof(float)*4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_WEIGHER_STATE, (const char *)&packet, MAVLINK_MSG_ID_VK_WEIGHER_STATE_MIN_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_CRC);
 #endif
 }
@@ -257,7 +294,7 @@ static inline void mavlink_msg_vk_weigher_state_send(mavlink_channel_t chan, uin
 static inline void mavlink_msg_vk_weigher_state_send_struct(mavlink_channel_t chan, const mavlink_vk_weigher_state_t* vk_weigher_state)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-    mavlink_msg_vk_weigher_state_send(chan, vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code);
+    mavlink_msg_vk_weigher_state_send(chan, vk_weigher_state->timestamp, vk_weigher_state->weight, vk_weigher_state->weight_d, vk_weigher_state->work_state, vk_weigher_state->err_code, vk_weigher_state->attitude_Q, vk_weigher_state->rope_length, vk_weigher_state->rope_vel);
 #else
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_WEIGHER_STATE, (const char *)vk_weigher_state, MAVLINK_MSG_ID_VK_WEIGHER_STATE_MIN_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_CRC);
 #endif
@@ -271,7 +308,7 @@ static inline void mavlink_msg_vk_weigher_state_send_struct(mavlink_channel_t ch
   is usually the receive buffer for the channel, and allows a reply to an
   incoming message with minimum stack space usage.
  */
-static inline void mavlink_msg_vk_weigher_state_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code)
+static inline void mavlink_msg_vk_weigher_state_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t timestamp, uint32_t weight, uint16_t weight_d, uint8_t work_state, uint8_t err_code, const float *attitude_Q, float rope_length, float rope_vel)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char *buf = (char *)msgbuf;
@@ -280,7 +317,9 @@ static inline void mavlink_msg_vk_weigher_state_send_buf(mavlink_message_t *msgb
     _mav_put_uint16_t(buf, 8, weight_d);
     _mav_put_uint8_t(buf, 10, work_state);
     _mav_put_uint8_t(buf, 11, err_code);
-
+    _mav_put_float(buf, 28, rope_length);
+    _mav_put_float(buf, 32, rope_vel);
+    _mav_put_float_array(buf, 12, attitude_Q, 4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_WEIGHER_STATE, buf, MAVLINK_MSG_ID_VK_WEIGHER_STATE_MIN_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_CRC);
 #else
     mavlink_vk_weigher_state_t *packet = (mavlink_vk_weigher_state_t *)msgbuf;
@@ -289,7 +328,9 @@ static inline void mavlink_msg_vk_weigher_state_send_buf(mavlink_message_t *msgb
     packet->weight_d = weight_d;
     packet->work_state = work_state;
     packet->err_code = err_code;
-
+    packet->rope_length = rope_length;
+    packet->rope_vel = rope_vel;
+    mav_array_memcpy(packet->attitude_Q, attitude_Q, sizeof(float)*4);
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_WEIGHER_STATE, (const char *)packet, MAVLINK_MSG_ID_VK_WEIGHER_STATE_MIN_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN, MAVLINK_MSG_ID_VK_WEIGHER_STATE_CRC);
 #endif
 }
@@ -350,6 +391,36 @@ static inline uint8_t mavlink_msg_vk_weigher_state_get_err_code(const mavlink_me
     return _MAV_RETURN_uint8_t(msg,  11);
 }
 
+/**
+ * @brief Get field attitude_Q from vk_weigher_state message
+ *
+ * @return  
+ */
+static inline uint16_t mavlink_msg_vk_weigher_state_get_attitude_Q(const mavlink_message_t* msg, float *attitude_Q)
+{
+    return _MAV_RETURN_float_array(msg, attitude_Q, 4,  12);
+}
+
+/**
+ * @brief Get field rope_length from vk_weigher_state message
+ *
+ * @return  length in m, NAN means ignore
+ */
+static inline float mavlink_msg_vk_weigher_state_get_rope_length(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  28);
+}
+
+/**
+ * @brief Get field rope_vel from vk_weigher_state message
+ *
+ * @return  velocity in m/s, NAN means ignore
+ */
+static inline float mavlink_msg_vk_weigher_state_get_rope_vel(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  32);
+}
+
 /**
  * @brief Decode a vk_weigher_state message into a struct
  *
@@ -364,6 +435,9 @@ static inline void mavlink_msg_vk_weigher_state_decode(const mavlink_message_t*
     vk_weigher_state->weight_d = mavlink_msg_vk_weigher_state_get_weight_d(msg);
     vk_weigher_state->work_state = mavlink_msg_vk_weigher_state_get_work_state(msg);
     vk_weigher_state->err_code = mavlink_msg_vk_weigher_state_get_err_code(msg);
+    mavlink_msg_vk_weigher_state_get_attitude_Q(msg, vk_weigher_state->attitude_Q);
+    vk_weigher_state->rope_length = mavlink_msg_vk_weigher_state_get_rope_length(msg);
+    vk_weigher_state->rope_vel = mavlink_msg_vk_weigher_state_get_rope_vel(msg);
 #else
         uint8_t len = msg->len < MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN? msg->len : MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN;
         memset(vk_weigher_state, 0, MAVLINK_MSG_ID_VK_WEIGHER_STATE_LEN);

+ 43 - 15
v2.0/VKFly/mavlink_msg_vkfmu_status.h

@@ -3,7 +3,7 @@
 
 #define MAVLINK_MSG_ID_VKFMU_STATUS 53001
 
-
+MAVPACKED(
 typedef struct __mavlink_vkfmu_status_t {
  uint32_t time_boot_ms; /*< [ms] Timestamp in ms from system boot.*/
  uint32_t flight_time; /*< [s] flight time in seconds*/
@@ -15,11 +15,12 @@ typedef struct __mavlink_vkfmu_status_t {
  uint8_t rtl_reason; /*<  return to launch reason.*/
  uint8_t loiter_reason; /*<  Loiter reason */
  uint8_t s_flag3; /*<  fmu sflag3*/
-} mavlink_vkfmu_status_t;
+ uint16_t servo_display; /*<  bitmap for servo state display*/
+}) mavlink_vkfmu_status_t;
 
-#define MAVLINK_MSG_ID_VKFMU_STATUS_LEN 25
+#define MAVLINK_MSG_ID_VKFMU_STATUS_LEN 27
 #define MAVLINK_MSG_ID_VKFMU_STATUS_MIN_LEN 25
-#define MAVLINK_MSG_ID_53001_LEN 25
+#define MAVLINK_MSG_ID_53001_LEN 27
 #define MAVLINK_MSG_ID_53001_MIN_LEN 25
 
 #define MAVLINK_MSG_ID_VKFMU_STATUS_CRC 136
@@ -31,7 +32,7 @@ typedef struct __mavlink_vkfmu_status_t {
 #define MAVLINK_MESSAGE_INFO_VKFMU_STATUS { \
     53001, \
     "VKFMU_STATUS", \
-    10, \
+    11, \
     {  { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkfmu_status_t, time_boot_ms) }, \
          { "rtl_reason", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_vkfmu_status_t, rtl_reason) }, \
          { "loiter_reason", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_vkfmu_status_t, loiter_reason) }, \
@@ -42,12 +43,13 @@ typedef struct __mavlink_vkfmu_status_t {
          { "dist_to_tar", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_vkfmu_status_t, dist_to_tar) }, \
          { "servo_state", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_vkfmu_status_t, servo_state) }, \
          { "flight_dist", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_vkfmu_status_t, flight_dist) }, \
+         { "servo_display", NULL, MAVLINK_TYPE_UINT16_T, 0, 25, offsetof(mavlink_vkfmu_status_t, servo_display) }, \
          } \
 }
 #else
 #define MAVLINK_MESSAGE_INFO_VKFMU_STATUS { \
     "VKFMU_STATUS", \
-    10, \
+    11, \
     {  { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkfmu_status_t, time_boot_ms) }, \
          { "rtl_reason", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_vkfmu_status_t, rtl_reason) }, \
          { "loiter_reason", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_vkfmu_status_t, loiter_reason) }, \
@@ -58,6 +60,7 @@ typedef struct __mavlink_vkfmu_status_t {
          { "dist_to_tar", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_vkfmu_status_t, dist_to_tar) }, \
          { "servo_state", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_vkfmu_status_t, servo_state) }, \
          { "flight_dist", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_vkfmu_status_t, flight_dist) }, \
+         { "servo_display", NULL, MAVLINK_TYPE_UINT16_T, 0, 25, offsetof(mavlink_vkfmu_status_t, servo_display) }, \
          } \
 }
 #endif
@@ -78,10 +81,11 @@ typedef struct __mavlink_vkfmu_status_t {
  * @param dist_to_tar [cm] distance to target position in cm
  * @param servo_state  bitmap for servo state
  * @param flight_dist [m] flight distance since this power up
+ * @param servo_display  bitmap for servo state display
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vkfmu_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-                               uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist)
+                               uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist, uint16_t servo_display)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKFMU_STATUS_LEN];
@@ -95,6 +99,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack(uint8_t system_id, uint8_t
     _mav_put_uint8_t(buf, 22, rtl_reason);
     _mav_put_uint8_t(buf, 23, loiter_reason);
     _mav_put_uint8_t(buf, 24, s_flag3);
+    _mav_put_uint16_t(buf, 25, servo_display);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKFMU_STATUS_LEN);
 #else
@@ -109,6 +114,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack(uint8_t system_id, uint8_t
     packet.rtl_reason = rtl_reason;
     packet.loiter_reason = loiter_reason;
     packet.s_flag3 = s_flag3;
+    packet.servo_display = servo_display;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKFMU_STATUS_LEN);
 #endif
@@ -134,10 +140,11 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack(uint8_t system_id, uint8_t
  * @param dist_to_tar [cm] distance to target position in cm
  * @param servo_state  bitmap for servo state
  * @param flight_dist [m] flight distance since this power up
+ * @param servo_display  bitmap for servo state display
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vkfmu_status_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
-                               uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist)
+                               uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist, uint16_t servo_display)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKFMU_STATUS_LEN];
@@ -151,6 +158,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack_status(uint8_t system_id, u
     _mav_put_uint8_t(buf, 22, rtl_reason);
     _mav_put_uint8_t(buf, 23, loiter_reason);
     _mav_put_uint8_t(buf, 24, s_flag3);
+    _mav_put_uint16_t(buf, 25, servo_display);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKFMU_STATUS_LEN);
 #else
@@ -165,6 +173,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack_status(uint8_t system_id, u
     packet.rtl_reason = rtl_reason;
     packet.loiter_reason = loiter_reason;
     packet.s_flag3 = s_flag3;
+    packet.servo_display = servo_display;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKFMU_STATUS_LEN);
 #endif
@@ -193,11 +202,12 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack_status(uint8_t system_id, u
  * @param dist_to_tar [cm] distance to target position in cm
  * @param servo_state  bitmap for servo state
  * @param flight_dist [m] flight distance since this power up
+ * @param servo_display  bitmap for servo state display
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vkfmu_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                                mavlink_message_t* msg,
-                                   uint32_t time_boot_ms,uint8_t rtl_reason,uint8_t loiter_reason,uint8_t s_flag3,uint16_t ups_volt,uint16_t adc_volt,uint32_t flight_time,uint32_t dist_to_tar,uint16_t servo_state,float flight_dist)
+                                   uint32_t time_boot_ms,uint8_t rtl_reason,uint8_t loiter_reason,uint8_t s_flag3,uint16_t ups_volt,uint16_t adc_volt,uint32_t flight_time,uint32_t dist_to_tar,uint16_t servo_state,float flight_dist,uint16_t servo_display)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKFMU_STATUS_LEN];
@@ -211,6 +221,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack_chan(uint8_t system_id, uin
     _mav_put_uint8_t(buf, 22, rtl_reason);
     _mav_put_uint8_t(buf, 23, loiter_reason);
     _mav_put_uint8_t(buf, 24, s_flag3);
+    _mav_put_uint16_t(buf, 25, servo_display);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKFMU_STATUS_LEN);
 #else
@@ -225,6 +236,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack_chan(uint8_t system_id, uin
     packet.rtl_reason = rtl_reason;
     packet.loiter_reason = loiter_reason;
     packet.s_flag3 = s_flag3;
+    packet.servo_display = servo_display;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKFMU_STATUS_LEN);
 #endif
@@ -243,7 +255,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_pack_chan(uint8_t system_id, uin
  */
 static inline uint16_t mavlink_msg_vkfmu_status_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vkfmu_status_t* vkfmu_status)
 {
-    return mavlink_msg_vkfmu_status_pack(system_id, component_id, msg, vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist);
+    return mavlink_msg_vkfmu_status_pack(system_id, component_id, msg, vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist, vkfmu_status->servo_display);
 }
 
 /**
@@ -257,7 +269,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_encode(uint8_t system_id, uint8_
  */
 static inline uint16_t mavlink_msg_vkfmu_status_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vkfmu_status_t* vkfmu_status)
 {
-    return mavlink_msg_vkfmu_status_pack_chan(system_id, component_id, chan, msg, vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist);
+    return mavlink_msg_vkfmu_status_pack_chan(system_id, component_id, chan, msg, vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist, vkfmu_status->servo_display);
 }
 
 /**
@@ -271,7 +283,7 @@ static inline uint16_t mavlink_msg_vkfmu_status_encode_chan(uint8_t system_id, u
  */
 static inline uint16_t mavlink_msg_vkfmu_status_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vkfmu_status_t* vkfmu_status)
 {
-    return mavlink_msg_vkfmu_status_pack_status(system_id, component_id, _status, msg,  vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist);
+    return mavlink_msg_vkfmu_status_pack_status(system_id, component_id, _status, msg,  vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist, vkfmu_status->servo_display);
 }
 
 /**
@@ -288,10 +300,11 @@ static inline uint16_t mavlink_msg_vkfmu_status_encode_status(uint8_t system_id,
  * @param dist_to_tar [cm] distance to target position in cm
  * @param servo_state  bitmap for servo state
  * @param flight_dist [m] flight distance since this power up
+ * @param servo_display  bitmap for servo state display
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
-static inline void mavlink_msg_vkfmu_status_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist)
+static inline void mavlink_msg_vkfmu_status_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist, uint16_t servo_display)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKFMU_STATUS_LEN];
@@ -305,6 +318,7 @@ static inline void mavlink_msg_vkfmu_status_send(mavlink_channel_t chan, uint32_
     _mav_put_uint8_t(buf, 22, rtl_reason);
     _mav_put_uint8_t(buf, 23, loiter_reason);
     _mav_put_uint8_t(buf, 24, s_flag3);
+    _mav_put_uint16_t(buf, 25, servo_display);
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKFMU_STATUS, buf, MAVLINK_MSG_ID_VKFMU_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_CRC);
 #else
@@ -319,6 +333,7 @@ static inline void mavlink_msg_vkfmu_status_send(mavlink_channel_t chan, uint32_
     packet.rtl_reason = rtl_reason;
     packet.loiter_reason = loiter_reason;
     packet.s_flag3 = s_flag3;
+    packet.servo_display = servo_display;
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKFMU_STATUS, (const char *)&packet, MAVLINK_MSG_ID_VKFMU_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_CRC);
 #endif
@@ -332,7 +347,7 @@ static inline void mavlink_msg_vkfmu_status_send(mavlink_channel_t chan, uint32_
 static inline void mavlink_msg_vkfmu_status_send_struct(mavlink_channel_t chan, const mavlink_vkfmu_status_t* vkfmu_status)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-    mavlink_msg_vkfmu_status_send(chan, vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist);
+    mavlink_msg_vkfmu_status_send(chan, vkfmu_status->time_boot_ms, vkfmu_status->rtl_reason, vkfmu_status->loiter_reason, vkfmu_status->s_flag3, vkfmu_status->ups_volt, vkfmu_status->adc_volt, vkfmu_status->flight_time, vkfmu_status->dist_to_tar, vkfmu_status->servo_state, vkfmu_status->flight_dist, vkfmu_status->servo_display);
 #else
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKFMU_STATUS, (const char *)vkfmu_status, MAVLINK_MSG_ID_VKFMU_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_CRC);
 #endif
@@ -346,7 +361,7 @@ static inline void mavlink_msg_vkfmu_status_send_struct(mavlink_channel_t chan,
   is usually the receive buffer for the channel, and allows a reply to an
   incoming message with minimum stack space usage.
  */
-static inline void mavlink_msg_vkfmu_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist)
+static inline void mavlink_msg_vkfmu_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t time_boot_ms, uint8_t rtl_reason, uint8_t loiter_reason, uint8_t s_flag3, uint16_t ups_volt, uint16_t adc_volt, uint32_t flight_time, uint32_t dist_to_tar, uint16_t servo_state, float flight_dist, uint16_t servo_display)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char *buf = (char *)msgbuf;
@@ -360,6 +375,7 @@ static inline void mavlink_msg_vkfmu_status_send_buf(mavlink_message_t *msgbuf,
     _mav_put_uint8_t(buf, 22, rtl_reason);
     _mav_put_uint8_t(buf, 23, loiter_reason);
     _mav_put_uint8_t(buf, 24, s_flag3);
+    _mav_put_uint16_t(buf, 25, servo_display);
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKFMU_STATUS, buf, MAVLINK_MSG_ID_VKFMU_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_CRC);
 #else
@@ -374,6 +390,7 @@ static inline void mavlink_msg_vkfmu_status_send_buf(mavlink_message_t *msgbuf,
     packet->rtl_reason = rtl_reason;
     packet->loiter_reason = loiter_reason;
     packet->s_flag3 = s_flag3;
+    packet->servo_display = servo_display;
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKFMU_STATUS, (const char *)packet, MAVLINK_MSG_ID_VKFMU_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_LEN, MAVLINK_MSG_ID_VKFMU_STATUS_CRC);
 #endif
@@ -485,6 +502,16 @@ static inline float mavlink_msg_vkfmu_status_get_flight_dist(const mavlink_messa
     return _MAV_RETURN_float(msg,  12);
 }
 
+/**
+ * @brief Get field servo_display from vkfmu_status message
+ *
+ * @return  bitmap for servo state display
+ */
+static inline uint16_t mavlink_msg_vkfmu_status_get_servo_display(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_uint16_t(msg,  25);
+}
+
 /**
  * @brief Decode a vkfmu_status message into a struct
  *
@@ -504,6 +531,7 @@ static inline void mavlink_msg_vkfmu_status_decode(const mavlink_message_t* msg,
     vkfmu_status->rtl_reason = mavlink_msg_vkfmu_status_get_rtl_reason(msg);
     vkfmu_status->loiter_reason = mavlink_msg_vkfmu_status_get_loiter_reason(msg);
     vkfmu_status->s_flag3 = mavlink_msg_vkfmu_status_get_s_flag3(msg);
+    vkfmu_status->servo_display = mavlink_msg_vkfmu_status_get_servo_display(msg);
 #else
         uint8_t len = msg->len < MAVLINK_MSG_ID_VKFMU_STATUS_LEN? msg->len : MAVLINK_MSG_ID_VKFMU_STATUS_LEN;
         memset(vkfmu_status, 0, MAVLINK_MSG_ID_VKFMU_STATUS_LEN);

+ 30 - 18
v2.0/VKFly/testsuite.h

@@ -113,7 +113,7 @@ static void mavlink_test_vkfmu_status(uint8_t system_id, uint8_t component_id, m
         uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
         uint16_t i;
     mavlink_vkfmu_status_t packet_in = {
-        963497464,963497672,963497880,101.0,18067,18171,18275,199,10,77
+        963497464,963497672,963497880,101.0,18067,18171,18275,199,10,77,18535
     };
     mavlink_vkfmu_status_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
@@ -127,6 +127,7 @@ static void mavlink_test_vkfmu_status(uint8_t system_id, uint8_t component_id, m
         packet1.rtl_reason = packet_in.rtl_reason;
         packet1.loiter_reason = packet_in.loiter_reason;
         packet1.s_flag3 = packet_in.s_flag3;
+        packet1.servo_display = packet_in.servo_display;
         
         
 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
@@ -141,12 +142,12 @@ static void mavlink_test_vkfmu_status(uint8_t system_id, uint8_t component_id, m
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vkfmu_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.rtl_reason , packet1.loiter_reason , packet1.s_flag3 , packet1.ups_volt , packet1.adc_volt , packet1.flight_time , packet1.dist_to_tar , packet1.servo_state , packet1.flight_dist );
+    mavlink_msg_vkfmu_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.rtl_reason , packet1.loiter_reason , packet1.s_flag3 , packet1.ups_volt , packet1.adc_volt , packet1.flight_time , packet1.dist_to_tar , packet1.servo_state , packet1.flight_dist , packet1.servo_display );
     mavlink_msg_vkfmu_status_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vkfmu_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.rtl_reason , packet1.loiter_reason , packet1.s_flag3 , packet1.ups_volt , packet1.adc_volt , packet1.flight_time , packet1.dist_to_tar , packet1.servo_state , packet1.flight_dist );
+    mavlink_msg_vkfmu_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.rtl_reason , packet1.loiter_reason , packet1.s_flag3 , packet1.ups_volt , packet1.adc_volt , packet1.flight_time , packet1.dist_to_tar , packet1.servo_state , packet1.flight_dist , packet1.servo_display );
     mavlink_msg_vkfmu_status_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -159,7 +160,7 @@ static void mavlink_test_vkfmu_status(uint8_t system_id, uint8_t component_id, m
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
         
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vkfmu_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.rtl_reason , packet1.loiter_reason , packet1.s_flag3 , packet1.ups_volt , packet1.adc_volt , packet1.flight_time , packet1.dist_to_tar , packet1.servo_state , packet1.flight_dist );
+    mavlink_msg_vkfmu_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.rtl_reason , packet1.loiter_reason , packet1.s_flag3 , packet1.ups_volt , packet1.adc_volt , packet1.flight_time , packet1.dist_to_tar , packet1.servo_state , packet1.flight_dist , packet1.servo_display );
     mavlink_msg_vkfmu_status_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -244,14 +245,14 @@ static void mavlink_test_vk_bms_status(uint8_t system_id, uint8_t component_id,
         uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
         uint16_t i;
     mavlink_vk_bms_status_t packet_in = {
-        963497464,963497672,963497880,17859,17963,18067,{ 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197, 18198, 18199, 18200 },21291,245,56,123
+        963497464,963497672,963497880,963498088,18067,18171,{ 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304 },21395,123,190,1
     };
     mavlink_vk_bms_status_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
         packet1.time_boot_ms = packet_in.time_boot_ms;
         packet1.voltage = packet_in.voltage;
-        packet1.err_code = packet_in.err_code;
         packet1.current = packet_in.current;
+        packet1.err_code = packet_in.err_code;
         packet1.temperature = packet_in.temperature;
         packet1.cell_num = packet_in.cell_num;
         packet1.cyc_cnt = packet_in.cyc_cnt;
@@ -313,7 +314,7 @@ static void mavlink_test_vk_formation_leader(uint8_t system_id, uint8_t componen
         uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
         uint16_t i;
     mavlink_vk_formation_leader_t packet_in = {
-        963497464,963497672,963497880,963498088,129.0,157.0,185.0,213.0,241.0,19107,19211,19315,19419,137,332.0,360.0
+        963497464,963497672,963497880,963498088,129.0,157.0,185.0,213.0,241.0,19107,19211,19315,19419,137,332.0,360.0,388.0,416.0,444.0
     };
     mavlink_vk_formation_leader_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
@@ -333,6 +334,9 @@ static void mavlink_test_vk_formation_leader(uint8_t system_id, uint8_t componen
         packet1.formation_type = packet_in.formation_type;
         packet1.formation_heading = packet_in.formation_heading;
         packet1.form_head_lock = packet_in.form_head_lock;
+        packet1.ae = packet_in.ae;
+        packet1.an = packet_in.an;
+        packet1.au = packet_in.au;
         
         
 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
@@ -347,12 +351,12 @@ static void mavlink_test_vk_formation_leader(uint8_t system_id, uint8_t componen
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_formation_leader_pack(system_id, component_id, &msg , packet1.timestamp , packet1.state , packet1.lat , packet1.lon , packet1.msl , packet1.ve , packet1.vn , packet1.vu , packet1.yaw , packet1.formation_type , packet1.x_dist , packet1.y_dist , packet1.z_dist , packet1.rect_col_num , packet1.formation_heading , packet1.form_head_lock );
+    mavlink_msg_vk_formation_leader_pack(system_id, component_id, &msg , packet1.timestamp , packet1.state , packet1.lat , packet1.lon , packet1.msl , packet1.ve , packet1.vn , packet1.vu , packet1.yaw , packet1.formation_type , packet1.x_dist , packet1.y_dist , packet1.z_dist , packet1.rect_col_num , packet1.formation_heading , packet1.form_head_lock , packet1.ae , packet1.an , packet1.au );
     mavlink_msg_vk_formation_leader_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_formation_leader_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.state , packet1.lat , packet1.lon , packet1.msl , packet1.ve , packet1.vn , packet1.vu , packet1.yaw , packet1.formation_type , packet1.x_dist , packet1.y_dist , packet1.z_dist , packet1.rect_col_num , packet1.formation_heading , packet1.form_head_lock );
+    mavlink_msg_vk_formation_leader_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.state , packet1.lat , packet1.lon , packet1.msl , packet1.ve , packet1.vn , packet1.vu , packet1.yaw , packet1.formation_type , packet1.x_dist , packet1.y_dist , packet1.z_dist , packet1.rect_col_num , packet1.formation_heading , packet1.form_head_lock , packet1.ae , packet1.an , packet1.au );
     mavlink_msg_vk_formation_leader_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -365,7 +369,7 @@ static void mavlink_test_vk_formation_leader(uint8_t system_id, uint8_t componen
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
         
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_formation_leader_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.state , packet1.lat , packet1.lon , packet1.msl , packet1.ve , packet1.vn , packet1.vu , packet1.yaw , packet1.formation_type , packet1.x_dist , packet1.y_dist , packet1.z_dist , packet1.rect_col_num , packet1.formation_heading , packet1.form_head_lock );
+    mavlink_msg_vk_formation_leader_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.state , packet1.lat , packet1.lon , packet1.msl , packet1.ve , packet1.vn , packet1.vu , packet1.yaw , packet1.formation_type , packet1.x_dist , packet1.y_dist , packet1.z_dist , packet1.rect_col_num , packet1.formation_heading , packet1.form_head_lock , packet1.ae , packet1.an , packet1.au );
     mavlink_msg_vk_formation_leader_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -387,7 +391,7 @@ static void mavlink_test_vk_engine_ecu_staus(uint8_t system_id, uint8_t componen
         uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
         uint16_t i;
     mavlink_vk_engine_ecu_staus_t packet_in = {
-        963497464,963497672,17651,17755,17859,17963,18067,18171,18275,18379,18483,18587,89,156,223,34,101,{ 168, 169, 170, 171 }
+        963497464,963497672,17651,17755,17859,17963,18067,18171,18275,18379,18483,18587,89,156,223,34,101,{ 168, 169, 170, 171 },19159,19263,19367,19471,19575
     };
     mavlink_vk_engine_ecu_staus_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
@@ -408,6 +412,11 @@ static void mavlink_test_vk_engine_ecu_staus(uint8_t system_id, uint8_t componen
         packet1.fault = packet_in.fault;
         packet1.engine_state = packet_in.engine_state;
         packet1.index = packet_in.index;
+        packet1.inlet_pressure = packet_in.inlet_pressure;
+        packet1.ge_temp = packet_in.ge_temp;
+        packet1.air_temp = packet_in.air_temp;
+        packet1.temp_1 = packet_in.temp_1;
+        packet1.volt_2 = packet_in.volt_2;
         
         mav_array_memcpy(packet1.reserve, packet_in.reserve, sizeof(uint8_t)*4);
         
@@ -423,12 +432,12 @@ static void mavlink_test_vk_engine_ecu_staus(uint8_t system_id, uint8_t componen
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_engine_ecu_staus_pack(system_id, component_id, &msg , packet1.timestamp , packet1.spd_rpm , packet1.thr_pos , packet1.fuel_pos , packet1.cylinderA_temp , packet1.cylinderB_temp , packet1.coolant_temp , packet1.fuel_remain , packet1.alarm , packet1.total_runtime , packet1.runtime , packet1.service_time , packet1.output_volt , packet1.output_curr , packet1.fault , packet1.engine_state , packet1.index , packet1.reserve );
+    mavlink_msg_vk_engine_ecu_staus_pack(system_id, component_id, &msg , packet1.timestamp , packet1.spd_rpm , packet1.thr_pos , packet1.fuel_pos , packet1.cylinderA_temp , packet1.cylinderB_temp , packet1.coolant_temp , packet1.fuel_remain , packet1.alarm , packet1.total_runtime , packet1.runtime , packet1.service_time , packet1.output_volt , packet1.output_curr , packet1.fault , packet1.engine_state , packet1.index , packet1.reserve , packet1.inlet_pressure , packet1.ge_temp , packet1.air_temp , packet1.temp_1 , packet1.volt_2 );
     mavlink_msg_vk_engine_ecu_staus_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_engine_ecu_staus_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.spd_rpm , packet1.thr_pos , packet1.fuel_pos , packet1.cylinderA_temp , packet1.cylinderB_temp , packet1.coolant_temp , packet1.fuel_remain , packet1.alarm , packet1.total_runtime , packet1.runtime , packet1.service_time , packet1.output_volt , packet1.output_curr , packet1.fault , packet1.engine_state , packet1.index , packet1.reserve );
+    mavlink_msg_vk_engine_ecu_staus_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.spd_rpm , packet1.thr_pos , packet1.fuel_pos , packet1.cylinderA_temp , packet1.cylinderB_temp , packet1.coolant_temp , packet1.fuel_remain , packet1.alarm , packet1.total_runtime , packet1.runtime , packet1.service_time , packet1.output_volt , packet1.output_curr , packet1.fault , packet1.engine_state , packet1.index , packet1.reserve , packet1.inlet_pressure , packet1.ge_temp , packet1.air_temp , packet1.temp_1 , packet1.volt_2 );
     mavlink_msg_vk_engine_ecu_staus_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -441,7 +450,7 @@ static void mavlink_test_vk_engine_ecu_staus(uint8_t system_id, uint8_t componen
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
         
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_engine_ecu_staus_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.spd_rpm , packet1.thr_pos , packet1.fuel_pos , packet1.cylinderA_temp , packet1.cylinderB_temp , packet1.coolant_temp , packet1.fuel_remain , packet1.alarm , packet1.total_runtime , packet1.runtime , packet1.service_time , packet1.output_volt , packet1.output_curr , packet1.fault , packet1.engine_state , packet1.index , packet1.reserve );
+    mavlink_msg_vk_engine_ecu_staus_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.spd_rpm , packet1.thr_pos , packet1.fuel_pos , packet1.cylinderA_temp , packet1.cylinderB_temp , packet1.coolant_temp , packet1.fuel_remain , packet1.alarm , packet1.total_runtime , packet1.runtime , packet1.service_time , packet1.output_volt , packet1.output_curr , packet1.fault , packet1.engine_state , packet1.index , packet1.reserve , packet1.inlet_pressure , packet1.ge_temp , packet1.air_temp , packet1.temp_1 , packet1.volt_2 );
     mavlink_msg_vk_engine_ecu_staus_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -985,7 +994,7 @@ static void mavlink_test_vk_weigher_state(uint8_t system_id, uint8_t component_i
         uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
         uint16_t i;
     mavlink_vk_weigher_state_t packet_in = {
-        963497464,963497672,17651,163,230
+        963497464,963497672,17651,163,230,{ 101.0, 102.0, 103.0, 104.0 },213.0,241.0
     };
     mavlink_vk_weigher_state_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
@@ -994,7 +1003,10 @@ static void mavlink_test_vk_weigher_state(uint8_t system_id, uint8_t component_i
         packet1.weight_d = packet_in.weight_d;
         packet1.work_state = packet_in.work_state;
         packet1.err_code = packet_in.err_code;
+        packet1.rope_length = packet_in.rope_length;
+        packet1.rope_vel = packet_in.rope_vel;
         
+        mav_array_memcpy(packet1.attitude_Q, packet_in.attitude_Q, sizeof(float)*4);
         
 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
         if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
@@ -1008,12 +1020,12 @@ static void mavlink_test_vk_weigher_state(uint8_t system_id, uint8_t component_i
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_weigher_state_pack(system_id, component_id, &msg , packet1.timestamp , packet1.weight , packet1.weight_d , packet1.work_state , packet1.err_code );
+    mavlink_msg_vk_weigher_state_pack(system_id, component_id, &msg , packet1.timestamp , packet1.weight , packet1.weight_d , packet1.work_state , packet1.err_code , packet1.attitude_Q , packet1.rope_length , packet1.rope_vel );
     mavlink_msg_vk_weigher_state_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_weigher_state_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.weight , packet1.weight_d , packet1.work_state , packet1.err_code );
+    mavlink_msg_vk_weigher_state_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.weight , packet1.weight_d , packet1.work_state , packet1.err_code , packet1.attitude_Q , packet1.rope_length , packet1.rope_vel );
     mavlink_msg_vk_weigher_state_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -1026,7 +1038,7 @@ static void mavlink_test_vk_weigher_state(uint8_t system_id, uint8_t component_i
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
         
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vk_weigher_state_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.weight , packet1.weight_d , packet1.work_state , packet1.err_code );
+    mavlink_msg_vk_weigher_state_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.weight , packet1.weight_d , packet1.work_state , packet1.err_code , packet1.attitude_Q , packet1.rope_length , packet1.rope_vel );
     mavlink_msg_vk_weigher_state_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 

+ 1 - 1
v2.0/VKFly/version.h

@@ -7,7 +7,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Wed Dec 10 2025"
+#define MAVLINK_BUILD_DATE "Tue Jun 02 2026"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
  

+ 1 - 1
v2.0/common/common.h

@@ -10,7 +10,7 @@
     #error Wrong include order: MAVLINK_COMMON.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call.
 #endif
 
-#define MAVLINK_COMMON_XML_HASH 2430053584100455190
+#define MAVLINK_COMMON_XML_HASH -3278988540419237606
 
 #ifdef __cplusplus
 extern "C" {

+ 1 - 1
v2.0/common/mavlink.h

@@ -6,7 +6,7 @@
 #ifndef MAVLINK_H
 #define MAVLINK_H
 
-#define MAVLINK_PRIMARY_XML_HASH 2430053584100455190
+#define MAVLINK_PRIMARY_XML_HASH -3278988540419237606
 
 #ifndef MAVLINK_STX
 #define MAVLINK_STX 253

+ 1 - 1
v2.0/common/version.h

@@ -7,7 +7,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Wed Dec 10 2025"
+#define MAVLINK_BUILD_DATE "Tue Jun 02 2026"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
  

+ 1 - 1
v2.0/minimal/mavlink.h

@@ -6,7 +6,7 @@
 #ifndef MAVLINK_H
 #define MAVLINK_H
 
-#define MAVLINK_PRIMARY_XML_HASH 6929421565067421522
+#define MAVLINK_PRIMARY_XML_HASH 17446188318974926
 
 #ifndef MAVLINK_STX
 #define MAVLINK_STX 253

+ 1 - 1
v2.0/minimal/minimal.h

@@ -10,7 +10,7 @@
     #error Wrong include order: MAVLINK_MINIMAL.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call.
 #endif
 
-#define MAVLINK_MINIMAL_XML_HASH 6929421565067421522
+#define MAVLINK_MINIMAL_XML_HASH 17446188318974926
 
 #ifdef __cplusplus
 extern "C" {

+ 1 - 1
v2.0/minimal/version.h

@@ -7,7 +7,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Wed Dec 10 2025"
+#define MAVLINK_BUILD_DATE "Tue Jun 02 2026"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 22
  

+ 1 - 1
v2.0/standard/mavlink.h

@@ -6,7 +6,7 @@
 #ifndef MAVLINK_H
 #define MAVLINK_H
 
-#define MAVLINK_PRIMARY_XML_HASH -716600996459614309
+#define MAVLINK_PRIMARY_XML_HASH 9120061021025250788
 
 #ifndef MAVLINK_STX
 #define MAVLINK_STX 253

+ 1 - 1
v2.0/standard/standard.h

@@ -10,7 +10,7 @@
     #error Wrong include order: MAVLINK_STANDARD.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call.
 #endif
 
-#define MAVLINK_STANDARD_XML_HASH -716600996459614309
+#define MAVLINK_STANDARD_XML_HASH 9120061021025250788
 
 #ifdef __cplusplus
 extern "C" {

+ 1 - 1
v2.0/standard/version.h

@@ -7,7 +7,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Wed Dec 10 2025"
+#define MAVLINK_BUILD_DATE "Tue Jun 02 2026"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 22
  

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff