# 电涡流传感器模块通信协议

## 电涡流传感器模块通信协议

| **序号** | **修改内容** | **版本** | **日期**     | **修改人** |
|:------:|:--------:|:------:|:----------:|:-------:|
| 1      | 初版       | V1.0   | 2024-12-25 | Hulk    |
| 2      |  修改指令含义  |    V1.1    |    20250822        |     Hulk    |
|        |          |        |            |         |
|        |          |        |            |         |

### 发包格式

| **包头** | **类型** | **数据长度**    | **数据** | **校验** |
|:------:|:------:|:-----------:|:------:|:------:|
| D5     | 0x03   | Data Length |  Data  | CRC    |

- 数据长度只包含数据部分，不包含包头、类型、数据长度、校验
- CRC求和校验，包含类型、数据长度、数据
- 数据部分为ascii码

### 回包格式

| **包头** |  **状态码**   | **数据长度**    | **数据** | **校验** |
|:------:|:----------:|:-----------:|:------:|:------:|
|   B5   |  0xF0 正常包  | Data Length |  Data  | CRC    |
|   B5   | 0xF1 CRC错误 | Data Length |  Data  | CRC    |
|   B5   | 0xF2 包头错误  | Data Length |  Data  | CRC    |
|   B5   | 0xF3 类型错误  | Data Length |  Data  | CRC    |
|   B5   | 0xF4 包长度错误 | Data Length |  Data  | CRC    |

- 数据长度仅包含数据部分，不包含包头状态码等
- CRC求和校验，包含状态码数据长度和数据部分

-------------------

## 电涡流传感器模块功能

### 1. 开启自动读取并发送电涡流传感器模块数据

- M1指令 开启自动读取并发送涡流传感器数据，间隔10ms左右
    - `D5 03 02 4D 31 83`
- 电涡流传感器模块涡流回复数据
    - `B5 F0 04 01 AE 1B E4 A2`, 有效数据为 `0x01AE1BE4`，转换为`28187620`
    - `B5 F0 04 04 19 C1 FA CC`, 有效数据为 `0x0419C1FAD2`，转换为`17612012242`


### 2. 关闭自动读取并发送电涡流传感器模块数据

- M2 指令 关闭自动读取并发送涡流传感器数据
    - `D5 03 02 4D 32 84`
    > 注：因为485总线为半双工，M1命令开启后持续自动发送数据，M2指令发送停止命令可能无法一次成功，可持续发送几次

### 3. 单次读取并发送电涡流传感器数据

- M3 指令 单次读取并发送涡流传感器数据
    - `D5 03 02 4D 33 85`

### 4. 单次读取并发送板载温度传感器数据

- M3 指令 单次读取并发送板载温度传感器数据
    - `D5 03 02 4D 34 86`
