Переглянути джерело

修改 can 温度采集模块协议

LiuYang 6 днів тому
батько
коміт
a8f0cbaeb2
2 змінених файлів з 19 додано та 29 видалено
  1. 1 28
      msg_definitions/VKFly.xml
  2. 18 1
      readme.md

+ 1 - 28
msg_definitions/VKFly.xml

@@ -1386,7 +1386,7 @@
       <description>K-type thermocouple temperature collected from a CAN bus module, 8 channels.</description>
       <field type="uint32_t" name="time_boot_ms" units="ms">Timestamp in ms from system boot.</field>
       <field type="int16_t[8]" name="temperature" units="cdegC" invalid="INT16_MAX">Temperature of each channel, 0.1 degC. INT16_MAX means sensor not connected or line fault.</field>
-      <field type="uint8_t" name="valid_mask">Bitmap: bit N set means channel N is valid.</field>
+      <field type="uint8_t" name="over_temp_mask">Bitmap: bit N set means channel N temperature is higher than its high threshold (parameter CAN_TEMP_HI1..CAN_TEMP_HI8, 0 disables the alarm of that channel).</field>
       <field type="uint8_t" name="online">1: sensor module online, 0: communication timeout.</field>
     </message>
 
@@ -1446,33 +1446,6 @@
       <field type="uint8_t" name="reset_cnt"> reset count</field>
     </message>
 
-    <message id="53200" name="kMUB_STATUS">
-      <description>EV2 FMU backup status.</description>
-      <field type="uint32_t" name="timestamp" units="ms">timestamp from systemboot in ms.</field>
-      <field type="float" name="roll" units="rad">euler roll angle.</field>
-      <field type="float" name="pitch" units="rad">euler pitch angle.</field>
-      <field type="float" name="yaw" units="rad">euler yaw angle.</field>
-      <field type="float" name="vn" units="m/s">velocity in northward axis.</field>
-      <field type="float" name="ve" units="m/s">velocity in eastward axis.</field>
-      <field type="float" name="vd" units="m/s">velocity in downward axis.</field>
-      <field type="float" name="ax" units="m/s/s">acceleration in x axis.</field>
-      <field type="float" name="ay" units="m/s/s">acceleration in y axis.</field>
-      <field type="float" name="az" units="m/s/s">acceleration in z axis.</field>
-      <field type="float" name="gx" units="rad/s">angular velocity in x axis.</field>
-      <field type="float" name="gy" units="rad/s">angular velocity in y axis.</field>
-      <field type="float" name="gz" units="rad/s">angular velocity in z axis.</field>
-      <field type="int32_t" name="lat" units="degE7">latitude.</field>
-      <field type="int32_t" name="lon" units="degE7">longitude.</field>
-      <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" 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" minValue="0" maxValue="1" increment="1">backup
-        takeover
-        status.</field>
-    </message>
 
     <message id="53300" name="QINGXIE_BMS">
       <description>VKFLY transfer update terminate. Send this message to terminate a update file

+ 18 - 1
readme.md

@@ -2108,9 +2108,11 @@ K 型热电偶温度采集模块温度消息, 消息 ID 为 **53033**, 默认以
 | ---- | ---- | ---- |
 | time_boot_ms | uint32_t | 最近一次收到温度帧的时间戳, ms, 自系统启动开始计时 |
 | temperature | int16_t[8] | 8 个通道温度, 单位 0.1°C; `INT16_MAX` 表示传感器未接入或线路故障 |
-| valid_mask | uint8_t | 位图, bit N 为 1 表示第 N+1 通道有效 |
+| over_temp_mask | uint8_t | 超温报警位图, bit N 为 1 表示第 N+1 通道温度达到或超过其高温阈值 `CAN_TEMP_HI(N+1)` |
 | online | uint8_t | 1: 模块在线; 0: 通讯超时(超时时间为 5s) |
 
+超温报警阈值由参数 `CAN_TEMP_HI1` ~ `CAN_TEMP_HI8` 设置(参考 9.3 节), 单位 °C, 0 表示该通道不启用超温报警; 温度无效(`INT16_MAX`)的通道对应 bit 恒为 0.
+
 模块通讯超时后飞控停止下发本消息, 地面站不应将上一条消息视为当前温度.
 
 ## 9 飞控参数说明
@@ -2523,3 +2525,18 @@ COM5_PROT_TYPE 的选项如下
 5. bit16~19: 1级ecu油量低保护. 支持不启用\返航\降落
 6. bit20~23: 2级ecu油量低保护. 支持不启用\返航\降落
 7. bit24~27: 固定翼高度保护. 支持不启用\返航\降落
+
+### 9.3 K型热电偶温度采集参数
+
+用于 `VK_CAN_TEMP` 消息的超温报警阈值, 旋翼/垂起通用. 独立于通道温度的有效性, 温度无效(`INT16_MAX`)的通道不产生报警.
+
+| 参数名        | 参数                     | 类型  | 说明                                                              |
+| ------------- | ------------------------ | ----- | ----------------------------------------------------------------- |
+| CAN_TEMP_HI1  | 通道1超温报警阈值        | FLOAT | 默认0, 范围0~1500, 单位°C; 0-不启用报警, 温度达到或超过阈值时报警 |
+| CAN_TEMP_HI2  | 通道2超温报警阈值        | FLOAT | 同上                                                              |
+| CAN_TEMP_HI3  | 通道3超温报警阈值        | FLOAT | 同上                                                              |
+| CAN_TEMP_HI4  | 通道4超温报警阈值        | FLOAT | 同上                                                              |
+| CAN_TEMP_HI5  | 通道5超温报警阈值        | FLOAT | 同上                                                              |
+| CAN_TEMP_HI6  | 通道6超温报警阈值        | FLOAT | 同上                                                              |
+| CAN_TEMP_HI7  | 通道7超温报警阈值        | FLOAT | 同上                                                              |
+| CAN_TEMP_HI8  | 通道8超温报警阈值        | FLOAT | 同上                                                              |