ソースを参照

1、添加消息 外置adc 53031
2、生成v2.0源文件

zhuts 2 ヶ月 前
コミット
cd8260fa19

+ 14 - 0
msg_definitions/VKFly.xml

@@ -1294,6 +1294,20 @@
       <field type="uint32_t" name="servo_status"></field>
     </message>
 
+    <message id="53031" name="VK_ADC_EXT_STATUS">
+      <description>External ADC interpreted status.</description>
+      <field type="uint32_t" name="time_boot_ms" units="ms">Timestamp in ms from system boot.</field>
+      <field type="uint8_t" name="type">0:disable, 1:voltage, 2:current, 3:fuel</field>
+      <field type="uint8_t" name="valid">0:invalid, 1:valid</field>
+      <field type="float" name="raw_voltage" units="V">Calibrated ADC_EX voltage.</field>
+      <field type="float" name="voltage_ratio">ADC_EXT_V_DIV ratio applied to raw_voltage.</field>
+      <field type="float" name="voltage" units="V">Voltage mode value.</field>
+      <field type="float" name="current" units="A">Current mode value.</field>
+      <field type="float" name="fuel_percent" units="%">Fuel mode value.</field>
+      <field type="uint8_t" name="fuel_low1">0:normal, 1:below ADC_EXT_FUEL_LOW1</field>
+      <field type="uint8_t" name="fuel_low2">0:normal, 1:below ADC_EXT_FUEL_LOW2</field>
+    </message>
+    
     <message id="53100" name="VK_FW_UPDATE_BEGIN">
       <description>VKFLY autopilot update firmware begin. This message send from GCS to autopilot. </description>
       <field type="uint8_t" name="target_system">Target system id.</field>

+ 15 - 0
readme.md

@@ -1132,6 +1132,21 @@ CACC 管理信息 json 表, 地面站向飞控传输后飞控记录在内部存
 | raw_press   | 压力 hPa 百帕 |
 | flags       | 标志位 1-异常 |
 
+### 2.37 外置 ADC 状态 VK_ADC_EXT_STATUS
+
+| 字段          | 说明                                                |
+| ------------- | --------------------------------------------------- |
+| time_boot_ms  | 系统启动后的时间戳, ms                              |
+| type          | 外置 ADC 功能类型, 0-禁用, 1-电压, 2-电流, 3-油量   |
+| valid         | 数据有效标志, 0-无效, 1-有效                        |
+| raw_voltage   | 校准后的 ADC_EX 原始电压, V                         |
+| voltage_ratio | ADC_EXT_V_DIV 分压比                                |
+| voltage       | 电压模式解析值, V                                   |
+| current       | 电流模式解析值, A                                   |
+| fuel_percent  | 油量模式解析值, %                                   |
+| fuel_low1     | 低油量一级告警, 0-正常, 1-低于 ADC_EXT_FUEL_LOW1    |
+| fuel_low2     | 低油量二级告警, 0-正常, 1-低于 ADC_EXT_FUEL_LOW2    |
+
 ## 3 参数设置
 
 飞控的参数修改、读取方法参考 [mavlink services parameter](https://mavlink.io/en/services/parameter.html). 使用16字节的 paramid 作为每各参数的唯一表示码.

ファイルの差分が大きいため隠しています
+ 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 3113041886279315263
+#define MAVLINK_PRIMARY_XML_HASH -7753861919877293366
 
 #ifndef MAVLINK_STX
 #define MAVLINK_STX 253

+ 69 - 0
v2.0/VKFly/testsuite.h

@@ -1464,6 +1464,74 @@ static void mavlink_test_vkfly_tianqu_servo_status(uint8_t system_id, uint8_t co
 #endif
 }
 
+static void mavlink_test_vk_adc_ext_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
+    mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
+        if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_VK_ADC_EXT_STATUS >= 256) {
+            return;
+        }
+#endif
+    mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+    mavlink_vk_adc_ext_status_t packet_in = {
+        963497464,45.0,73.0,101.0,129.0,157.0,77,144,211,22
+    };
+    mavlink_vk_adc_ext_status_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        packet1.time_boot_ms = packet_in.time_boot_ms;
+        packet1.raw_voltage = packet_in.raw_voltage;
+        packet1.voltage_ratio = packet_in.voltage_ratio;
+        packet1.voltage = packet_in.voltage;
+        packet1.current = packet_in.current;
+        packet1.fuel_percent = packet_in.fuel_percent;
+        packet1.type = packet_in.type;
+        packet1.valid = packet_in.valid;
+        packet1.fuel_low1 = packet_in.fuel_low1;
+        packet1.fuel_low2 = packet_in.fuel_low2;
+        
+        
+#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
+        if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
+           // cope with extensions
+           memset(MAVLINK_MSG_ID_VK_ADC_EXT_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_VK_ADC_EXT_STATUS_MIN_LEN);
+        }
+#endif
+        memset(&packet2, 0, sizeof(packet2));
+    mavlink_msg_vk_adc_ext_status_encode(system_id, component_id, &msg, &packet1);
+    mavlink_msg_vk_adc_ext_status_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+    mavlink_msg_vk_adc_ext_status_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.type , packet1.valid , packet1.raw_voltage , packet1.voltage_ratio , packet1.voltage , packet1.current , packet1.fuel_percent , packet1.fuel_low1 , packet1.fuel_low2 );
+    mavlink_msg_vk_adc_ext_status_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+    mavlink_msg_vk_adc_ext_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.type , packet1.valid , packet1.raw_voltage , packet1.voltage_ratio , packet1.voltage , packet1.current , packet1.fuel_percent , packet1.fuel_low1 , packet1.fuel_low2 );
+    mavlink_msg_vk_adc_ext_status_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+            comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+    mavlink_msg_vk_adc_ext_status_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+    mavlink_msg_vk_adc_ext_status_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.type , packet1.valid , packet1.raw_voltage , packet1.voltage_ratio , packet1.voltage , packet1.current , packet1.fuel_percent , packet1.fuel_low1 , packet1.fuel_low2 );
+    mavlink_msg_vk_adc_ext_status_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+#ifdef MAVLINK_HAVE_GET_MESSAGE_INFO
+    MAVLINK_ASSERT(mavlink_get_message_info_by_name("VK_ADC_EXT_STATUS") != NULL);
+    MAVLINK_ASSERT(mavlink_get_message_info_by_id(MAVLINK_MSG_ID_VK_ADC_EXT_STATUS) != NULL);
+#endif
+}
+
 static void mavlink_test_vk_fw_update_begin(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
 {
 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
@@ -2083,6 +2151,7 @@ static void mavlink_test_VKFly(uint8_t system_id, uint8_t component_id, mavlink_
     mavlink_test_vkfly_edu_status(system_id, component_id, last_msg);
     mavlink_test_vkfly_edu_status_ack(system_id, component_id, last_msg);
     mavlink_test_vkfly_tianqu_servo_status(system_id, component_id, last_msg);
+    mavlink_test_vk_adc_ext_status(system_id, component_id, last_msg);
     mavlink_test_vk_fw_update_begin(system_id, component_id, last_msg);
     mavlink_test_vk_fw_update_ack(system_id, component_id, last_msg);
     mavlink_test_vk_fw_update_data_request(system_id, component_id, last_msg);

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

@@ -7,7 +7,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Sun Jul 05 2026"
+#define MAVLINK_BUILD_DATE "Wed Jul 08 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 -7954013556109728363
+#define MAVLINK_COMMON_XML_HASH -3051199627196316908
 
 #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 -7954013556109728363
+#define MAVLINK_PRIMARY_XML_HASH -3051199627196316908
 
 #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 "Sun Jul 05 2026"
+#define MAVLINK_BUILD_DATE "Wed Jul 08 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 1207109037547892467
+#define MAVLINK_PRIMARY_XML_HASH 1827049497179663407
 
 #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 1207109037547892467
+#define MAVLINK_MINIMAL_XML_HASH 1827049497179663407
 
 #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 "Sun Jul 05 2026"
+#define MAVLINK_BUILD_DATE "Wed Jul 08 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 -5064534317611232676
+#define MAVLINK_PRIMARY_XML_HASH 3076027445494062441
 
 #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 -5064534317611232676
+#define MAVLINK_STANDARD_XML_HASH 3076027445494062441
 
 #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 "Sun Jul 05 2026"
+#define MAVLINK_BUILD_DATE "Wed Jul 08 2026"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 22
  

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません