瀏覽代碼

增加一些备份导航相关状态数据

Liu Yang 3 周之前
父節點
當前提交
2185205ae4

+ 41 - 0
msg_definitions/VKFly.xml

@@ -664,6 +664,18 @@
         <param index="7" label="Altitude" units="m">Altitude</param>
       </entry>
 
+      <entry value="44013" name="VKFLY_CMD_NAV_EDU_TRAINING" hasLocation="true"
+        isDestination="true">
+        <description>VLFLY Custom orbit waypoint </description>
+        <param index="1" label="Hold Time And Speed"> </param>
+        <param index="2" label="Alt Mode And Speed"> </param>
+        <param index="3" label="Param3"> </param>
+        <param index="4" label="Yaw Mode"> </param>
+        <param index="5" label="Latitude">Latitude</param>
+        <param index="6" label="Longitude">Longitude</param>
+        <param index="7" label="Altitude" units="m">Altitude</param>
+      </entry>
+
       <entry value="44030" name="VKFLY_CMD_MOUNT_CTRL" hasLocation="true"
         isDestination="true">
         <description>VLFLY Custom orbit waypoint </description>
@@ -791,6 +803,18 @@
         <param index="7" label="Alt"> </param>
       </entry>
 
+      <entry value="44067" name="VKFLY_CMD_MISSION_START_EDU_TRAINING" hasLocation="false"
+        isDestination="false">
+        <description>Start mission</description>
+        <param index="1" label="Start Seq" minValue="0" maxValue="65535">start sequence of mission</param>
+        <param index="2" label="Loop Count"> </param>
+        <param index="3" label="Mission Done Action" enum="VKFLY_MISSION_DONE_ACT"> </param>
+        <param index="4" label=""> </param>
+        <param index="5" label=""> </param>
+        <param index="6" label=""> </param>
+        <param index="7" label=""> </param>
+      </entry>
+
     </enum>
   </enums>
 
@@ -818,6 +842,21 @@
       <field type="uint8_t" name="solv_hsat_num">satelites number for heading</field>
       <field type="int16_t" name="temperature" units="degC">temperature</field>
       <field type="uint8_t" name="vibe_coe"></field>
+      <extensions />
+      <field type="float" name="roll" units="deg">solved roll angle</field>
+      <field type="float" name="pitch" units="deg">solved pitch angle</field>
+      <field type="float" name="yaw" units="deg">solved yaw angle</field>
+      <field type="float" name="ve" units="m/s">solved east speed</field>
+      <field type="float" name="vn" units="m/s">solved north speed</field>
+      <field type="float" name="vu" units="m/s">solved up speed</field>
+      <field type="float" name="ae" units="m/s/s">solved east acceleration</field>
+      <field type="float" name="an" units="m/s/s">solved north acceleration</field>
+      <field type="float" name="au" units="m/s/s">solved up acceleration</field>
+      <field type="int32_t" name="solv_lon" units="degE7">solved longitude</field>
+      <field type="int32_t" name="solv_lat" units="degE7">solved lattidue</field>
+      <field type="float" name="solv_hR" units="m">solved relative altitude</field>
+      <field type="uint32_t" name="sensor_state">sensor state</field>
+      <field type="uint8_t" name="id">nav id, 0 for main nav, 1 for aux nav</field>
     </message>
 
     <message id="53001" name="VKFMU_STATUS">
@@ -832,6 +871,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="uint8_t" name="used_nav_id">fmu sflag7</field>
     </message>
 
     <message id="53002" name="VK_ROI_TARGET">

+ 95 - 12
readme.md

@@ -1037,6 +1037,39 @@ param3 分为 byte[4] 进行使用.
 | param6 | 经度 1e-7deg                                                                                                                                                                                                                                                                                                        |
 | param7 | 高度 m                                                                                                                                                                                                                                                                                                              |
 
+### 5.1.6 教培航点 VKFLY_CMD_NAV_EDU_TRAINING
+
+使用 MISSION_ITEM_INT 消息定义传输教培航点
+
+* param1
+  该参数按 byte[4] 进行使用
+  | 字节        | 类型  | 说明                                                 |
+  | ----------- | ----- | ---------------------------------------------------- |
+  | byte0-byte1 | int16 | 悬停时间, 单位 s. 0表示不进行悬停自动协调转弯        |
+  | byte2-byte3 | int16 | 巡航速度, 单位 dm/s. 0或负数表示使用默认巡航速度参数 |
+* param2
+  该参数按 byte[4] 进行使用
+  | 字节        | 类型  | 说明                                                 |
+  | ----------- | ----- | ---------------------------------------------------- |
+  | byte0       | uint8 | 高度执行方式, 0-坡度执行, 1-先到高度再水平执行       |
+  | byte1       | uint8 | 预留                                                 |
+  | byte2-byte3 | int16 | 垂直速度, 单位 dm/s. 0或负数表示使用默认巡航速度参数 |
+* param3
+  预留
+* param4
+  该参数作为 byte[4] 类型使用
+  | 字节        | 类型  | 说明                                                                                                                                                                |
+  | ----------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+  | byte0       | uint8 | 航向模式, 参考 VKFLY_YAW_CTRL_MODE                                                                                                                                  |
+  | byte1       | uint8 | 预留                                                                                                                                                                |
+  | byte2-byte3 | int16 | 航向值, 范围-180-180, 当航向模式为 VKFLY_YAW_TO_SETVAL 时表示给定的航向值, 单位deg. 当航向模式为指向 <br>HOME 或 NEXT_WP 或 INTEREST 等给定点时, 表示叠加的航向偏移 |
+* xy
+  经纬度, 单位 1e-7deg
+* z
+  高度, 单位 m. 通过 frame 来判断高度是否为相对高度还是绝对高度
+  MAV_FRAME_GLOBAL_RELATIVE_ALT: 相对高度
+  MAV_FRAME_GLOBAL_ALT: 海拔高度
+
 ### 4.2 电子围栏 MAV_MISSION_TYPE_FENCE (未实施)
 
 飞控一共有200个电子围栏点.
@@ -1456,6 +1489,15 @@ param1~param5中,
 | param1 | 目标模态, MAV_VTOL_STATE_MC 旋翼, MAV_VTOL_STATE_FW 固定翼 |
 | param2 | 是否立刻切换, 填0                                          |
 
+### 5.41 教培开始航线 VKFLY_CMD_MISSION_START_EDU_TRAINING
+* param1
+  起始航点序号, 0-UINT16_MAX
+* param2
+  执行循环次数, -1表示无限循环, 其它取 1~UINT16_MAX
+* param3
+  航线完成后动作, 参考 VKFLY_MISSION_DONE_ACT
+
+
 ## 6 飞控 LOG 读取
 
 - LOG_REQUEST_LIST
@@ -1549,21 +1591,62 @@ VKins 系统的状态数据自定义消息, 主要用于一些自定状态的传
 | solv_hsat_num   | 定向星数                                                                                  |
 | temperature     | 飞控温度, degC                                                                            |
 | vibe_coe        | 振动系数 0-无效                                                                           |
+| roll            | 解算横滚角度, deg, -180~180, 右滚正                                                       |
+| pitch           | 解算俯仰角度, deg, -180~180, 抬头正                                                       |
+| yaw             | 解算横滚角度, deg, -180~180, 北偏东正                                                     |
+| ve              | 解算东向速度, m/s                                                                         |
+| vn              | 解算北向速度, m/s                                                                         |
+| vu              | 解算天向速度, m/s                                                                         |
+| ae              | 解算东向加速度, m/s^2                                                                     |
+| an              | 解算北向加速度, m/s^2                                                                     |
+| au              | 解算天向加速度, m/s^2                                                                     |
+| solv_lon        | 解算经度, 1e-7deg                                                                         |
+| solv_lat        | 解算纬度, 1e-7deg                                                                         |
+| solv_hR         | 解算相对高度, m                                                                           |
+| sensor_state    | 传感器状态, 每位对应一个传感器, 1-开 0-关                                                   |
+| id              | 导航模块id, 0-主导航, 1-备份导航                                                                      |
+
+sensor_state 对应位定义如下结构体
+
+```c
+struct {
+    uint32_t imu0_available : 1;     /* imu 0 有效 */
+    uint32_t imu1_available : 1;     /* imu 1 有效 */
+    uint32_t imu2_available : 1;     /* imu 2 有效 */
+    uint32_t mag0_available : 1;     /* mag 0 有效 */
+    uint32_t mag1_available : 1;     /* mag 1 有效 */
+    uint32_t baro0_available : 1;    /* baro 0 有效 */
+    uint32_t baro1_available : 1;    /* baro 1 有效 */
+    uint32_t gps0_available : 1;     /* gps 0 有效 */
+    uint32_t gps1_available : 1;     /* gps 1 有效 */
+    uint32_t rtk_h_available : 1;    /* rtk 航向定向有效 */
+    uint32_t rtk_p_available : 1;    /* rtk 定位有效 */
+    uint32_t airpseed_available : 1; /* 空速有效 */
+    uint32_t sonar_available : 1;    /* 超声波高度有效 */
+    uint32_t optFlow_available : 1;  /* 光流有效 */
+    uint32_t gps2_available : 1;     /* gps2 有效 */
+    uint32_t gps3_available : 1;     /* gps3 有效 */
+  };
+```
+
+1. V10/V12 飞控仅具备一个主导航模块, 主导航模块有 imu0, imu1, mag0, baro0, gps0(vkgps), gps1(vkgps), gps2(rtk),  airspeed(固定翼)
+2. EV2 飞控具备两个导航模块, 每个模块有 imu0, mag0, baro0, gps0(vkgps), gps2(rtk), airspeed(固定翼)
 
 ### 8.2 VKFMU_STATUS
 
-| 字段          | 说明                                  |
-| ------------- | ------------------------------------- |
-| time_boot_ms  | 系统本地时间戳ms                      |
-| rtl_reason    | 返航原因, 参考 VKFLY_RTL_REASON       |
-| loiter_reason | 悬停原因, 参考 VKFLY_LOITER_REASON    |
-| s_flag3       | bit0, 长机编队信息连接状态, 1连接正常 |
-| ups_volt      | ups电压, 0.1V                         |
-| adc_volt      | adc电压, 0.1V                         |
-| flight_time   | 飞行时间,s                            |
-| dist_t_tar    | 目标距离, cm                          |
-| servo_state   | 舵机状态, 每位对应一个舵机, 1-开 0-关 |
-| flight_dist   | 飞行距离, m, 本次上电开始飞行的总距离 |
+| 字段          | 说明                                          |
+| ------------- | --------------------------------------------- |
+| time_boot_ms  | 系统本地时间戳ms                              |
+| rtl_reason    | 返航原因, 参考 VKFLY_RTL_REASON               |
+| loiter_reason | 悬停原因, 参考 VKFLY_LOITER_REASON            |
+| s_flag3       | bit0, 长机编队信息连接状态, 1连接正常         |
+| ups_volt      | ups电压, 0.1V                                 |
+| adc_volt      | adc电压, 0.1V                                 |
+| flight_time   | 飞行时间,s                                    |
+| dist_t_tar    | 目标距离, cm                                  |
+| servo_state   | 舵机状态, 每位对应一个舵机, 1-开 0-关         |
+| flight_dist   | 飞行距离, m, 本次上电开始飞行的总距离         |
+| used_nav_id   | 使用的导航数据源ID, 0-主导航 1-备份导航 |
 
 ## 9 飞控参数说明
 

File diff suppressed because it is too large
+ 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 -5223598330246455531
+#define MAVLINK_PRIMARY_XML_HASH 3605415749578804351
 
 #ifndef MAVLINK_STX
 #define MAVLINK_STX 253

+ 41 - 13
v2.0/VKFly/mavlink_msg_vkfmu_status.h

@@ -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*/
+ uint8_t used_nav_id; /*<  fmu sflag7*/
 } mavlink_vkfmu_status_t;
 
-#define MAVLINK_MSG_ID_VKFMU_STATUS_LEN 25
+#define MAVLINK_MSG_ID_VKFMU_STATUS_LEN 26
 #define MAVLINK_MSG_ID_VKFMU_STATUS_MIN_LEN 25
-#define MAVLINK_MSG_ID_53001_LEN 25
+#define MAVLINK_MSG_ID_53001_LEN 26
 #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) }, \
+         { "used_nav_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 25, offsetof(mavlink_vkfmu_status_t, used_nav_id) }, \
          } \
 }
 #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) }, \
+         { "used_nav_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 25, offsetof(mavlink_vkfmu_status_t, used_nav_id) }, \
          } \
 }
 #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 used_nav_id  fmu sflag7
  * @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, uint8_t used_nav_id)
 {
 #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_uint8_t(buf, 25, used_nav_id);
 
         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.used_nav_id = used_nav_id;
 
         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 used_nav_id  fmu sflag7
  * @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, uint8_t used_nav_id)
 {
 #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_uint8_t(buf, 25, used_nav_id);
 
         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.used_nav_id = used_nav_id;
 
         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 used_nav_id  fmu sflag7
  * @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,uint8_t used_nav_id)
 {
 #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_uint8_t(buf, 25, used_nav_id);
 
         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.used_nav_id = used_nav_id;
 
         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->used_nav_id);
 }
 
 /**
@@ -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->used_nav_id);
 }
 
 /**
@@ -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->used_nav_id);
 }
 
 /**
@@ -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 used_nav_id  fmu sflag7
  */
 #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, uint8_t used_nav_id)
 {
 #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_uint8_t(buf, 25, used_nav_id);
 
     _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.used_nav_id = used_nav_id;
 
     _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->used_nav_id);
 #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, uint8_t used_nav_id)
 {
 #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_uint8_t(buf, 25, used_nav_id);
 
     _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->used_nav_id = used_nav_id;
 
     _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 used_nav_id from vkfmu_status message
+ *
+ * @return  fmu sflag7
+ */
+static inline uint8_t mavlink_msg_vkfmu_status_get_used_nav_id(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_uint8_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->used_nav_id = mavlink_msg_vkfmu_status_get_used_nav_id(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);

+ 407 - 15
v2.0/VKFly/mavlink_msg_vkins_status.h

@@ -3,7 +3,7 @@
 
 #define MAVLINK_MSG_ID_VKINS_STATUS 53000
 
-
+MAVPACKED(
 typedef struct __mavlink_vkins_status_t {
  uint32_t time_boot_ms; /*< [ms] Timestamp in ms from system boot.*/
  float g0; /*< [m/s/s] vkins initial calibrated gravitation acceleration.*/
@@ -25,11 +25,25 @@ typedef struct __mavlink_vkins_status_t {
  uint8_t solv_psat_num; /*<  satelites number for position*/
  uint8_t solv_hsat_num; /*<  satelites number for heading*/
  uint8_t vibe_coe; /*<  */
-} mavlink_vkins_status_t;
+ float roll; /*< [deg] solved roll angle*/
+ float pitch; /*< [deg] solved pitch angle*/
+ float yaw; /*< [deg] solved yaw angle*/
+ float ve; /*< [m/s] solved east speed*/
+ float vn; /*< [m/s] solved north speed*/
+ float vu; /*< [m/s] solved up speed*/
+ float ae; /*< [m/s/s] solved east acceleration*/
+ float an; /*< [m/s/s] solved north acceleration*/
+ float au; /*< [m/s/s] solved up acceleration*/
+ int32_t solv_lon; /*< [degE7] solved longitude*/
+ int32_t solv_lat; /*< [degE7] solved lattidue*/
+ float solv_hR; /*< [m] solved relative altitude*/
+ uint32_t sensor_state; /*<  sensor state*/
+ uint8_t id; /*<  nav id, 0 for main nav, 1 for aux nav*/
+}) mavlink_vkins_status_t;
 
-#define MAVLINK_MSG_ID_VKINS_STATUS_LEN 37
+#define MAVLINK_MSG_ID_VKINS_STATUS_LEN 90
 #define MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN 37
-#define MAVLINK_MSG_ID_53000_LEN 37
+#define MAVLINK_MSG_ID_53000_LEN 90
 #define MAVLINK_MSG_ID_53000_MIN_LEN 37
 
 #define MAVLINK_MSG_ID_VKINS_STATUS_CRC 22
@@ -41,7 +55,7 @@ typedef struct __mavlink_vkins_status_t {
 #define MAVLINK_MESSAGE_INFO_VKINS_STATUS { \
     53000, \
     "VKINS_STATUS", \
-    18, \
+    32, \
     {  { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkins_status_t, time_boot_ms) }, \
          { "nav_status", "0x%02x", MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_vkins_status_t, nav_status) }, \
          { "s_flag1", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_vkins_status_t, s_flag1) }, \
@@ -60,12 +74,26 @@ typedef struct __mavlink_vkins_status_t {
          { "solv_hsat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_vkins_status_t, solv_hsat_num) }, \
          { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_vkins_status_t, temperature) }, \
          { "vibe_coe", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_vkins_status_t, vibe_coe) }, \
+         { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 37, offsetof(mavlink_vkins_status_t, roll) }, \
+         { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 41, offsetof(mavlink_vkins_status_t, pitch) }, \
+         { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 45, offsetof(mavlink_vkins_status_t, yaw) }, \
+         { "ve", NULL, MAVLINK_TYPE_FLOAT, 0, 49, offsetof(mavlink_vkins_status_t, ve) }, \
+         { "vn", NULL, MAVLINK_TYPE_FLOAT, 0, 53, offsetof(mavlink_vkins_status_t, vn) }, \
+         { "vu", NULL, MAVLINK_TYPE_FLOAT, 0, 57, offsetof(mavlink_vkins_status_t, vu) }, \
+         { "ae", NULL, MAVLINK_TYPE_FLOAT, 0, 61, offsetof(mavlink_vkins_status_t, ae) }, \
+         { "an", NULL, MAVLINK_TYPE_FLOAT, 0, 65, offsetof(mavlink_vkins_status_t, an) }, \
+         { "au", NULL, MAVLINK_TYPE_FLOAT, 0, 69, offsetof(mavlink_vkins_status_t, au) }, \
+         { "solv_lon", NULL, MAVLINK_TYPE_INT32_T, 0, 73, offsetof(mavlink_vkins_status_t, solv_lon) }, \
+         { "solv_lat", NULL, MAVLINK_TYPE_INT32_T, 0, 77, offsetof(mavlink_vkins_status_t, solv_lat) }, \
+         { "solv_hR", NULL, MAVLINK_TYPE_FLOAT, 0, 81, offsetof(mavlink_vkins_status_t, solv_hR) }, \
+         { "sensor_state", NULL, MAVLINK_TYPE_UINT32_T, 0, 85, offsetof(mavlink_vkins_status_t, sensor_state) }, \
+         { "id", NULL, MAVLINK_TYPE_UINT8_T, 0, 89, offsetof(mavlink_vkins_status_t, id) }, \
          } \
 }
 #else
 #define MAVLINK_MESSAGE_INFO_VKINS_STATUS { \
     "VKINS_STATUS", \
-    18, \
+    32, \
     {  { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkins_status_t, time_boot_ms) }, \
          { "nav_status", "0x%02x", MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_vkins_status_t, nav_status) }, \
          { "s_flag1", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_vkins_status_t, s_flag1) }, \
@@ -84,6 +112,20 @@ typedef struct __mavlink_vkins_status_t {
          { "solv_hsat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_vkins_status_t, solv_hsat_num) }, \
          { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_vkins_status_t, temperature) }, \
          { "vibe_coe", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_vkins_status_t, vibe_coe) }, \
+         { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 37, offsetof(mavlink_vkins_status_t, roll) }, \
+         { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 41, offsetof(mavlink_vkins_status_t, pitch) }, \
+         { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 45, offsetof(mavlink_vkins_status_t, yaw) }, \
+         { "ve", NULL, MAVLINK_TYPE_FLOAT, 0, 49, offsetof(mavlink_vkins_status_t, ve) }, \
+         { "vn", NULL, MAVLINK_TYPE_FLOAT, 0, 53, offsetof(mavlink_vkins_status_t, vn) }, \
+         { "vu", NULL, MAVLINK_TYPE_FLOAT, 0, 57, offsetof(mavlink_vkins_status_t, vu) }, \
+         { "ae", NULL, MAVLINK_TYPE_FLOAT, 0, 61, offsetof(mavlink_vkins_status_t, ae) }, \
+         { "an", NULL, MAVLINK_TYPE_FLOAT, 0, 65, offsetof(mavlink_vkins_status_t, an) }, \
+         { "au", NULL, MAVLINK_TYPE_FLOAT, 0, 69, offsetof(mavlink_vkins_status_t, au) }, \
+         { "solv_lon", NULL, MAVLINK_TYPE_INT32_T, 0, 73, offsetof(mavlink_vkins_status_t, solv_lon) }, \
+         { "solv_lat", NULL, MAVLINK_TYPE_INT32_T, 0, 77, offsetof(mavlink_vkins_status_t, solv_lat) }, \
+         { "solv_hR", NULL, MAVLINK_TYPE_FLOAT, 0, 81, offsetof(mavlink_vkins_status_t, solv_hR) }, \
+         { "sensor_state", NULL, MAVLINK_TYPE_UINT32_T, 0, 85, offsetof(mavlink_vkins_status_t, sensor_state) }, \
+         { "id", NULL, MAVLINK_TYPE_UINT8_T, 0, 89, offsetof(mavlink_vkins_status_t, id) }, \
          } \
 }
 #endif
@@ -114,10 +156,24 @@ typedef struct __mavlink_vkins_status_t {
  * @param solv_hsat_num  satelites number for heading
  * @param temperature [degC] temperature
  * @param vibe_coe  
+ * @param roll [deg] solved roll angle
+ * @param pitch [deg] solved pitch angle
+ * @param yaw [deg] solved yaw angle
+ * @param ve [m/s] solved east speed
+ * @param vn [m/s] solved north speed
+ * @param vu [m/s] solved up speed
+ * @param ae [m/s/s] solved east acceleration
+ * @param an [m/s/s] solved north acceleration
+ * @param au [m/s/s] solved up acceleration
+ * @param solv_lon [degE7] solved longitude
+ * @param solv_lat [degE7] solved lattidue
+ * @param solv_hR [m] solved relative altitude
+ * @param sensor_state  sensor state
+ * @param id  nav id, 0 for main nav, 1 for aux nav
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vkins_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-                               uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
+                               uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
@@ -139,6 +195,20 @@ static inline uint16_t mavlink_msg_vkins_status_pack(uint8_t system_id, uint8_t
     _mav_put_uint8_t(buf, 34, solv_psat_num);
     _mav_put_uint8_t(buf, 35, solv_hsat_num);
     _mav_put_uint8_t(buf, 36, vibe_coe);
+    _mav_put_float(buf, 37, roll);
+    _mav_put_float(buf, 41, pitch);
+    _mav_put_float(buf, 45, yaw);
+    _mav_put_float(buf, 49, ve);
+    _mav_put_float(buf, 53, vn);
+    _mav_put_float(buf, 57, vu);
+    _mav_put_float(buf, 61, ae);
+    _mav_put_float(buf, 65, an);
+    _mav_put_float(buf, 69, au);
+    _mav_put_int32_t(buf, 73, solv_lon);
+    _mav_put_int32_t(buf, 77, solv_lat);
+    _mav_put_float(buf, 81, solv_hR);
+    _mav_put_uint32_t(buf, 85, sensor_state);
+    _mav_put_uint8_t(buf, 89, id);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
 #else
@@ -161,6 +231,20 @@ static inline uint16_t mavlink_msg_vkins_status_pack(uint8_t system_id, uint8_t
     packet.solv_psat_num = solv_psat_num;
     packet.solv_hsat_num = solv_hsat_num;
     packet.vibe_coe = vibe_coe;
+    packet.roll = roll;
+    packet.pitch = pitch;
+    packet.yaw = yaw;
+    packet.ve = ve;
+    packet.vn = vn;
+    packet.vu = vu;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
+    packet.solv_lon = solv_lon;
+    packet.solv_lat = solv_lat;
+    packet.solv_hR = solv_hR;
+    packet.sensor_state = sensor_state;
+    packet.id = id;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
 #endif
@@ -196,10 +280,24 @@ static inline uint16_t mavlink_msg_vkins_status_pack(uint8_t system_id, uint8_t
  * @param solv_hsat_num  satelites number for heading
  * @param temperature [degC] temperature
  * @param vibe_coe  
+ * @param roll [deg] solved roll angle
+ * @param pitch [deg] solved pitch angle
+ * @param yaw [deg] solved yaw angle
+ * @param ve [m/s] solved east speed
+ * @param vn [m/s] solved north speed
+ * @param vu [m/s] solved up speed
+ * @param ae [m/s/s] solved east acceleration
+ * @param an [m/s/s] solved north acceleration
+ * @param au [m/s/s] solved up acceleration
+ * @param solv_lon [degE7] solved longitude
+ * @param solv_lat [degE7] solved lattidue
+ * @param solv_hR [m] solved relative altitude
+ * @param sensor_state  sensor state
+ * @param id  nav id, 0 for main nav, 1 for aux nav
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vkins_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 nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
+                               uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
@@ -221,6 +319,20 @@ static inline uint16_t mavlink_msg_vkins_status_pack_status(uint8_t system_id, u
     _mav_put_uint8_t(buf, 34, solv_psat_num);
     _mav_put_uint8_t(buf, 35, solv_hsat_num);
     _mav_put_uint8_t(buf, 36, vibe_coe);
+    _mav_put_float(buf, 37, roll);
+    _mav_put_float(buf, 41, pitch);
+    _mav_put_float(buf, 45, yaw);
+    _mav_put_float(buf, 49, ve);
+    _mav_put_float(buf, 53, vn);
+    _mav_put_float(buf, 57, vu);
+    _mav_put_float(buf, 61, ae);
+    _mav_put_float(buf, 65, an);
+    _mav_put_float(buf, 69, au);
+    _mav_put_int32_t(buf, 73, solv_lon);
+    _mav_put_int32_t(buf, 77, solv_lat);
+    _mav_put_float(buf, 81, solv_hR);
+    _mav_put_uint32_t(buf, 85, sensor_state);
+    _mav_put_uint8_t(buf, 89, id);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
 #else
@@ -243,6 +355,20 @@ static inline uint16_t mavlink_msg_vkins_status_pack_status(uint8_t system_id, u
     packet.solv_psat_num = solv_psat_num;
     packet.solv_hsat_num = solv_hsat_num;
     packet.vibe_coe = vibe_coe;
+    packet.roll = roll;
+    packet.pitch = pitch;
+    packet.yaw = yaw;
+    packet.ve = ve;
+    packet.vn = vn;
+    packet.vu = vu;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
+    packet.solv_lon = solv_lon;
+    packet.solv_lat = solv_lat;
+    packet.solv_hR = solv_hR;
+    packet.sensor_state = sensor_state;
+    packet.id = id;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
 #endif
@@ -281,11 +407,25 @@ static inline uint16_t mavlink_msg_vkins_status_pack_status(uint8_t system_id, u
  * @param solv_hsat_num  satelites number for heading
  * @param temperature [degC] temperature
  * @param vibe_coe  
+ * @param roll [deg] solved roll angle
+ * @param pitch [deg] solved pitch angle
+ * @param yaw [deg] solved yaw angle
+ * @param ve [m/s] solved east speed
+ * @param vn [m/s] solved north speed
+ * @param vu [m/s] solved up speed
+ * @param ae [m/s/s] solved east acceleration
+ * @param an [m/s/s] solved north acceleration
+ * @param au [m/s/s] solved up acceleration
+ * @param solv_lon [degE7] solved longitude
+ * @param solv_lat [degE7] solved lattidue
+ * @param solv_hR [m] solved relative altitude
+ * @param sensor_state  sensor state
+ * @param id  nav id, 0 for main nav, 1 for aux nav
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_vkins_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 nav_status,uint8_t s_flag1,uint8_t s_flag2,uint8_t s_flag3,uint8_t s_flag4,uint8_t s_flag5,uint8_t s_flag6,uint8_t mag_calib_stage,float g0,int32_t raw_latitude,int32_t raw_longitude,float baro_alt,float raw_gps_alt,uint8_t solv_psat_num,uint8_t solv_hsat_num,int16_t temperature,uint8_t vibe_coe)
+                                   uint32_t time_boot_ms,uint8_t nav_status,uint8_t s_flag1,uint8_t s_flag2,uint8_t s_flag3,uint8_t s_flag4,uint8_t s_flag5,uint8_t s_flag6,uint8_t mag_calib_stage,float g0,int32_t raw_latitude,int32_t raw_longitude,float baro_alt,float raw_gps_alt,uint8_t solv_psat_num,uint8_t solv_hsat_num,int16_t temperature,uint8_t vibe_coe,float roll,float pitch,float yaw,float ve,float vn,float vu,float ae,float an,float au,int32_t solv_lon,int32_t solv_lat,float solv_hR,uint32_t sensor_state,uint8_t id)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
@@ -307,6 +447,20 @@ static inline uint16_t mavlink_msg_vkins_status_pack_chan(uint8_t system_id, uin
     _mav_put_uint8_t(buf, 34, solv_psat_num);
     _mav_put_uint8_t(buf, 35, solv_hsat_num);
     _mav_put_uint8_t(buf, 36, vibe_coe);
+    _mav_put_float(buf, 37, roll);
+    _mav_put_float(buf, 41, pitch);
+    _mav_put_float(buf, 45, yaw);
+    _mav_put_float(buf, 49, ve);
+    _mav_put_float(buf, 53, vn);
+    _mav_put_float(buf, 57, vu);
+    _mav_put_float(buf, 61, ae);
+    _mav_put_float(buf, 65, an);
+    _mav_put_float(buf, 69, au);
+    _mav_put_int32_t(buf, 73, solv_lon);
+    _mav_put_int32_t(buf, 77, solv_lat);
+    _mav_put_float(buf, 81, solv_hR);
+    _mav_put_uint32_t(buf, 85, sensor_state);
+    _mav_put_uint8_t(buf, 89, id);
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
 #else
@@ -329,6 +483,20 @@ static inline uint16_t mavlink_msg_vkins_status_pack_chan(uint8_t system_id, uin
     packet.solv_psat_num = solv_psat_num;
     packet.solv_hsat_num = solv_hsat_num;
     packet.vibe_coe = vibe_coe;
+    packet.roll = roll;
+    packet.pitch = pitch;
+    packet.yaw = yaw;
+    packet.ve = ve;
+    packet.vn = vn;
+    packet.vu = vu;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
+    packet.solv_lon = solv_lon;
+    packet.solv_lat = solv_lat;
+    packet.solv_hR = solv_hR;
+    packet.sensor_state = sensor_state;
+    packet.id = id;
 
         memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
 #endif
@@ -347,7 +515,7 @@ static inline uint16_t mavlink_msg_vkins_status_pack_chan(uint8_t system_id, uin
  */
 static inline uint16_t mavlink_msg_vkins_status_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vkins_status_t* vkins_status)
 {
-    return mavlink_msg_vkins_status_pack(system_id, component_id, msg, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
+    return mavlink_msg_vkins_status_pack(system_id, component_id, msg, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
 }
 
 /**
@@ -361,7 +529,7 @@ static inline uint16_t mavlink_msg_vkins_status_encode(uint8_t system_id, uint8_
  */
 static inline uint16_t mavlink_msg_vkins_status_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vkins_status_t* vkins_status)
 {
-    return mavlink_msg_vkins_status_pack_chan(system_id, component_id, chan, msg, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
+    return mavlink_msg_vkins_status_pack_chan(system_id, component_id, chan, msg, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
 }
 
 /**
@@ -375,7 +543,7 @@ static inline uint16_t mavlink_msg_vkins_status_encode_chan(uint8_t system_id, u
  */
 static inline uint16_t mavlink_msg_vkins_status_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vkins_status_t* vkins_status)
 {
-    return mavlink_msg_vkins_status_pack_status(system_id, component_id, _status, msg,  vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
+    return mavlink_msg_vkins_status_pack_status(system_id, component_id, _status, msg,  vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
 }
 
 /**
@@ -402,10 +570,24 @@ static inline uint16_t mavlink_msg_vkins_status_encode_status(uint8_t system_id,
  * @param solv_hsat_num  satelites number for heading
  * @param temperature [degC] temperature
  * @param vibe_coe  
+ * @param roll [deg] solved roll angle
+ * @param pitch [deg] solved pitch angle
+ * @param yaw [deg] solved yaw angle
+ * @param ve [m/s] solved east speed
+ * @param vn [m/s] solved north speed
+ * @param vu [m/s] solved up speed
+ * @param ae [m/s/s] solved east acceleration
+ * @param an [m/s/s] solved north acceleration
+ * @param au [m/s/s] solved up acceleration
+ * @param solv_lon [degE7] solved longitude
+ * @param solv_lat [degE7] solved lattidue
+ * @param solv_hR [m] solved relative altitude
+ * @param sensor_state  sensor state
+ * @param id  nav id, 0 for main nav, 1 for aux nav
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
-static inline void mavlink_msg_vkins_status_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
+static inline void mavlink_msg_vkins_status_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
@@ -427,6 +609,20 @@ static inline void mavlink_msg_vkins_status_send(mavlink_channel_t chan, uint32_
     _mav_put_uint8_t(buf, 34, solv_psat_num);
     _mav_put_uint8_t(buf, 35, solv_hsat_num);
     _mav_put_uint8_t(buf, 36, vibe_coe);
+    _mav_put_float(buf, 37, roll);
+    _mav_put_float(buf, 41, pitch);
+    _mav_put_float(buf, 45, yaw);
+    _mav_put_float(buf, 49, ve);
+    _mav_put_float(buf, 53, vn);
+    _mav_put_float(buf, 57, vu);
+    _mav_put_float(buf, 61, ae);
+    _mav_put_float(buf, 65, an);
+    _mav_put_float(buf, 69, au);
+    _mav_put_int32_t(buf, 73, solv_lon);
+    _mav_put_int32_t(buf, 77, solv_lat);
+    _mav_put_float(buf, 81, solv_hR);
+    _mav_put_uint32_t(buf, 85, sensor_state);
+    _mav_put_uint8_t(buf, 89, id);
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, buf, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
 #else
@@ -449,6 +645,20 @@ static inline void mavlink_msg_vkins_status_send(mavlink_channel_t chan, uint32_
     packet.solv_psat_num = solv_psat_num;
     packet.solv_hsat_num = solv_hsat_num;
     packet.vibe_coe = vibe_coe;
+    packet.roll = roll;
+    packet.pitch = pitch;
+    packet.yaw = yaw;
+    packet.ve = ve;
+    packet.vn = vn;
+    packet.vu = vu;
+    packet.ae = ae;
+    packet.an = an;
+    packet.au = au;
+    packet.solv_lon = solv_lon;
+    packet.solv_lat = solv_lat;
+    packet.solv_hR = solv_hR;
+    packet.sensor_state = sensor_state;
+    packet.id = id;
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, (const char *)&packet, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
 #endif
@@ -462,7 +672,7 @@ static inline void mavlink_msg_vkins_status_send(mavlink_channel_t chan, uint32_
 static inline void mavlink_msg_vkins_status_send_struct(mavlink_channel_t chan, const mavlink_vkins_status_t* vkins_status)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-    mavlink_msg_vkins_status_send(chan, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
+    mavlink_msg_vkins_status_send(chan, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
 #else
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, (const char *)vkins_status, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
 #endif
@@ -476,7 +686,7 @@ static inline void mavlink_msg_vkins_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_vkins_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
+static inline void mavlink_msg_vkins_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
     char *buf = (char *)msgbuf;
@@ -498,6 +708,20 @@ static inline void mavlink_msg_vkins_status_send_buf(mavlink_message_t *msgbuf,
     _mav_put_uint8_t(buf, 34, solv_psat_num);
     _mav_put_uint8_t(buf, 35, solv_hsat_num);
     _mav_put_uint8_t(buf, 36, vibe_coe);
+    _mav_put_float(buf, 37, roll);
+    _mav_put_float(buf, 41, pitch);
+    _mav_put_float(buf, 45, yaw);
+    _mav_put_float(buf, 49, ve);
+    _mav_put_float(buf, 53, vn);
+    _mav_put_float(buf, 57, vu);
+    _mav_put_float(buf, 61, ae);
+    _mav_put_float(buf, 65, an);
+    _mav_put_float(buf, 69, au);
+    _mav_put_int32_t(buf, 73, solv_lon);
+    _mav_put_int32_t(buf, 77, solv_lat);
+    _mav_put_float(buf, 81, solv_hR);
+    _mav_put_uint32_t(buf, 85, sensor_state);
+    _mav_put_uint8_t(buf, 89, id);
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, buf, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
 #else
@@ -520,6 +744,20 @@ static inline void mavlink_msg_vkins_status_send_buf(mavlink_message_t *msgbuf,
     packet->solv_psat_num = solv_psat_num;
     packet->solv_hsat_num = solv_hsat_num;
     packet->vibe_coe = vibe_coe;
+    packet->roll = roll;
+    packet->pitch = pitch;
+    packet->yaw = yaw;
+    packet->ve = ve;
+    packet->vn = vn;
+    packet->vu = vu;
+    packet->ae = ae;
+    packet->an = an;
+    packet->au = au;
+    packet->solv_lon = solv_lon;
+    packet->solv_lat = solv_lat;
+    packet->solv_hR = solv_hR;
+    packet->sensor_state = sensor_state;
+    packet->id = id;
 
     _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, (const char *)packet, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
 #endif
@@ -713,6 +951,146 @@ static inline uint8_t mavlink_msg_vkins_status_get_vibe_coe(const mavlink_messag
     return _MAV_RETURN_uint8_t(msg,  36);
 }
 
+/**
+ * @brief Get field roll from vkins_status message
+ *
+ * @return [deg] solved roll angle
+ */
+static inline float mavlink_msg_vkins_status_get_roll(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  37);
+}
+
+/**
+ * @brief Get field pitch from vkins_status message
+ *
+ * @return [deg] solved pitch angle
+ */
+static inline float mavlink_msg_vkins_status_get_pitch(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  41);
+}
+
+/**
+ * @brief Get field yaw from vkins_status message
+ *
+ * @return [deg] solved yaw angle
+ */
+static inline float mavlink_msg_vkins_status_get_yaw(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  45);
+}
+
+/**
+ * @brief Get field ve from vkins_status message
+ *
+ * @return [m/s] solved east speed
+ */
+static inline float mavlink_msg_vkins_status_get_ve(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  49);
+}
+
+/**
+ * @brief Get field vn from vkins_status message
+ *
+ * @return [m/s] solved north speed
+ */
+static inline float mavlink_msg_vkins_status_get_vn(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  53);
+}
+
+/**
+ * @brief Get field vu from vkins_status message
+ *
+ * @return [m/s] solved up speed
+ */
+static inline float mavlink_msg_vkins_status_get_vu(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  57);
+}
+
+/**
+ * @brief Get field ae from vkins_status message
+ *
+ * @return [m/s/s] solved east acceleration
+ */
+static inline float mavlink_msg_vkins_status_get_ae(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  61);
+}
+
+/**
+ * @brief Get field an from vkins_status message
+ *
+ * @return [m/s/s] solved north acceleration
+ */
+static inline float mavlink_msg_vkins_status_get_an(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  65);
+}
+
+/**
+ * @brief Get field au from vkins_status message
+ *
+ * @return [m/s/s] solved up acceleration
+ */
+static inline float mavlink_msg_vkins_status_get_au(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  69);
+}
+
+/**
+ * @brief Get field solv_lon from vkins_status message
+ *
+ * @return [degE7] solved longitude
+ */
+static inline int32_t mavlink_msg_vkins_status_get_solv_lon(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_int32_t(msg,  73);
+}
+
+/**
+ * @brief Get field solv_lat from vkins_status message
+ *
+ * @return [degE7] solved lattidue
+ */
+static inline int32_t mavlink_msg_vkins_status_get_solv_lat(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_int32_t(msg,  77);
+}
+
+/**
+ * @brief Get field solv_hR from vkins_status message
+ *
+ * @return [m] solved relative altitude
+ */
+static inline float mavlink_msg_vkins_status_get_solv_hR(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_float(msg,  81);
+}
+
+/**
+ * @brief Get field sensor_state from vkins_status message
+ *
+ * @return  sensor state
+ */
+static inline uint32_t mavlink_msg_vkins_status_get_sensor_state(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_uint32_t(msg,  85);
+}
+
+/**
+ * @brief Get field id from vkins_status message
+ *
+ * @return  nav id, 0 for main nav, 1 for aux nav
+ */
+static inline uint8_t mavlink_msg_vkins_status_get_id(const mavlink_message_t* msg)
+{
+    return _MAV_RETURN_uint8_t(msg,  89);
+}
+
 /**
  * @brief Decode a vkins_status message into a struct
  *
@@ -740,6 +1118,20 @@ static inline void mavlink_msg_vkins_status_decode(const mavlink_message_t* msg,
     vkins_status->solv_psat_num = mavlink_msg_vkins_status_get_solv_psat_num(msg);
     vkins_status->solv_hsat_num = mavlink_msg_vkins_status_get_solv_hsat_num(msg);
     vkins_status->vibe_coe = mavlink_msg_vkins_status_get_vibe_coe(msg);
+    vkins_status->roll = mavlink_msg_vkins_status_get_roll(msg);
+    vkins_status->pitch = mavlink_msg_vkins_status_get_pitch(msg);
+    vkins_status->yaw = mavlink_msg_vkins_status_get_yaw(msg);
+    vkins_status->ve = mavlink_msg_vkins_status_get_ve(msg);
+    vkins_status->vn = mavlink_msg_vkins_status_get_vn(msg);
+    vkins_status->vu = mavlink_msg_vkins_status_get_vu(msg);
+    vkins_status->ae = mavlink_msg_vkins_status_get_ae(msg);
+    vkins_status->an = mavlink_msg_vkins_status_get_an(msg);
+    vkins_status->au = mavlink_msg_vkins_status_get_au(msg);
+    vkins_status->solv_lon = mavlink_msg_vkins_status_get_solv_lon(msg);
+    vkins_status->solv_lat = mavlink_msg_vkins_status_get_solv_lat(msg);
+    vkins_status->solv_hR = mavlink_msg_vkins_status_get_solv_hR(msg);
+    vkins_status->sensor_state = mavlink_msg_vkins_status_get_sensor_state(msg);
+    vkins_status->id = mavlink_msg_vkins_status_get_id(msg);
 #else
         uint8_t len = msg->len < MAVLINK_MSG_ID_VKINS_STATUS_LEN? msg->len : MAVLINK_MSG_ID_VKINS_STATUS_LEN;
         memset(vkins_status, 0, MAVLINK_MSG_ID_VKINS_STATUS_LEN);

+ 23 - 8
v2.0/VKFly/testsuite.h

@@ -37,7 +37,7 @@ static void mavlink_test_vkins_status(uint8_t system_id, uint8_t component_id, m
         uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
         uint16_t i;
     mavlink_vkins_status_t packet_in = {
-        963497464,45.0,963497880,963498088,129.0,157.0,18483,211,22,89,156,223,34,101,168,235,46,113
+        963497464,45.0,963497880,963498088,129.0,157.0,18483,211,22,89,156,223,34,101,168,235,46,113,276.0,304.0,332.0,360.0,388.0,416.0,444.0,472.0,500.0,963501260,963501468,584.0,963501884,80
     };
     mavlink_vkins_status_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
@@ -59,6 +59,20 @@ static void mavlink_test_vkins_status(uint8_t system_id, uint8_t component_id, m
         packet1.solv_psat_num = packet_in.solv_psat_num;
         packet1.solv_hsat_num = packet_in.solv_hsat_num;
         packet1.vibe_coe = packet_in.vibe_coe;
+        packet1.roll = packet_in.roll;
+        packet1.pitch = packet_in.pitch;
+        packet1.yaw = packet_in.yaw;
+        packet1.ve = packet_in.ve;
+        packet1.vn = packet_in.vn;
+        packet1.vu = packet_in.vu;
+        packet1.ae = packet_in.ae;
+        packet1.an = packet_in.an;
+        packet1.au = packet_in.au;
+        packet1.solv_lon = packet_in.solv_lon;
+        packet1.solv_lat = packet_in.solv_lat;
+        packet1.solv_hR = packet_in.solv_hR;
+        packet1.sensor_state = packet_in.sensor_state;
+        packet1.id = packet_in.id;
         
         
 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
@@ -73,12 +87,12 @@ static void mavlink_test_vkins_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_vkins_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.nav_status , packet1.s_flag1 , packet1.s_flag2 , packet1.s_flag3 , packet1.s_flag4 , packet1.s_flag5 , packet1.s_flag6 , packet1.mag_calib_stage , packet1.g0 , packet1.raw_latitude , packet1.raw_longitude , packet1.baro_alt , packet1.raw_gps_alt , packet1.solv_psat_num , packet1.solv_hsat_num , packet1.temperature , packet1.vibe_coe );
+    mavlink_msg_vkins_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.nav_status , packet1.s_flag1 , packet1.s_flag2 , packet1.s_flag3 , packet1.s_flag4 , packet1.s_flag5 , packet1.s_flag6 , packet1.mag_calib_stage , packet1.g0 , packet1.raw_latitude , packet1.raw_longitude , packet1.baro_alt , packet1.raw_gps_alt , packet1.solv_psat_num , packet1.solv_hsat_num , packet1.temperature , packet1.vibe_coe , packet1.roll , packet1.pitch , packet1.yaw , packet1.ve , packet1.vn , packet1.vu , packet1.ae , packet1.an , packet1.au , packet1.solv_lon , packet1.solv_lat , packet1.solv_hR , packet1.sensor_state , packet1.id );
     mavlink_msg_vkins_status_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-    mavlink_msg_vkins_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.nav_status , packet1.s_flag1 , packet1.s_flag2 , packet1.s_flag3 , packet1.s_flag4 , packet1.s_flag5 , packet1.s_flag6 , packet1.mag_calib_stage , packet1.g0 , packet1.raw_latitude , packet1.raw_longitude , packet1.baro_alt , packet1.raw_gps_alt , packet1.solv_psat_num , packet1.solv_hsat_num , packet1.temperature , packet1.vibe_coe );
+    mavlink_msg_vkins_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.nav_status , packet1.s_flag1 , packet1.s_flag2 , packet1.s_flag3 , packet1.s_flag4 , packet1.s_flag5 , packet1.s_flag6 , packet1.mag_calib_stage , packet1.g0 , packet1.raw_latitude , packet1.raw_longitude , packet1.baro_alt , packet1.raw_gps_alt , packet1.solv_psat_num , packet1.solv_hsat_num , packet1.temperature , packet1.vibe_coe , packet1.roll , packet1.pitch , packet1.yaw , packet1.ve , packet1.vn , packet1.vu , packet1.ae , packet1.an , packet1.au , packet1.solv_lon , packet1.solv_lat , packet1.solv_hR , packet1.sensor_state , packet1.id );
     mavlink_msg_vkins_status_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -91,7 +105,7 @@ static void mavlink_test_vkins_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_vkins_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.nav_status , packet1.s_flag1 , packet1.s_flag2 , packet1.s_flag3 , packet1.s_flag4 , packet1.s_flag5 , packet1.s_flag6 , packet1.mag_calib_stage , packet1.g0 , packet1.raw_latitude , packet1.raw_longitude , packet1.baro_alt , packet1.raw_gps_alt , packet1.solv_psat_num , packet1.solv_hsat_num , packet1.temperature , packet1.vibe_coe );
+    mavlink_msg_vkins_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.nav_status , packet1.s_flag1 , packet1.s_flag2 , packet1.s_flag3 , packet1.s_flag4 , packet1.s_flag5 , packet1.s_flag6 , packet1.mag_calib_stage , packet1.g0 , packet1.raw_latitude , packet1.raw_longitude , packet1.baro_alt , packet1.raw_gps_alt , packet1.solv_psat_num , packet1.solv_hsat_num , packet1.temperature , packet1.vibe_coe , packet1.roll , packet1.pitch , packet1.yaw , packet1.ve , packet1.vn , packet1.vu , packet1.ae , packet1.an , packet1.au , packet1.solv_lon , packet1.solv_lat , packet1.solv_hR , packet1.sensor_state , packet1.id );
     mavlink_msg_vkins_status_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -113,7 +127,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,144
     };
     mavlink_vkfmu_status_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
@@ -127,6 +141,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.used_nav_id = packet_in.used_nav_id;
         
         
 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
@@ -141,12 +156,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.used_nav_id );
     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.used_nav_id );
     mavlink_msg_vkfmu_status_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -159,7 +174,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.used_nav_id );
     mavlink_msg_vkfmu_status_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 "Sat Jul 05 2025"
+#define MAVLINK_BUILD_DATE "Sat Jul 19 2025"
 #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 1708057333764453208
+#define MAVLINK_COMMON_XML_HASH -6242672291044224836
 
 #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 1708057333764453208
+#define MAVLINK_PRIMARY_XML_HASH -6242672291044224836
 
 #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 "Sat Jul 05 2025"
+#define MAVLINK_BUILD_DATE "Sat Jul 19 2025"
 #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 -7453342355037382492
+#define MAVLINK_PRIMARY_XML_HASH -214001293604702304
 
 #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 -7453342355037382492
+#define MAVLINK_MINIMAL_XML_HASH -214001293604702304
 
 #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 "Sat Jul 05 2025"
+#define MAVLINK_BUILD_DATE "Sat Jul 19 2025"
 #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 -3068734849600737466
+#define MAVLINK_PRIMARY_XML_HASH 3285250865351877699
 
 #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 -3068734849600737466
+#define MAVLINK_STANDARD_XML_HASH 3285250865351877699
 
 #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 "Sat Jul 05 2025"
+#define MAVLINK_BUILD_DATE "Sat Jul 19 2025"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 22
  

Some files were not shown because too many files changed in this diff