30 Revize 84858b0e0b ... 3f2b4607eb

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

+ 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 参数说明
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 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
  

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů