feat: 心跳包新增固件版本号字段,更新协议文档
This commit is contained in:
41
docs/报文.md
41
docs/报文.md
@ -68,26 +68,41 @@ AA 55 LEN ID [DATA] SUM
|
||||
```
|
||||
|
||||
### 2.4 系统心跳包 (30秒/次)
|
||||
系统定时上报当前存活状态,包含当前的 I/O 状态及防丢包序列号。
|
||||
系统定时上报当前存活状态,包含当前的 I/O 状态、防丢包序列号、固件版本及 Modbus 寄存器值。
|
||||
|
||||
#### 2.4.1 标准心跳包 (8字节Payload)
|
||||
|
||||
```text
|
||||
AA AA 05 ID [IO] [SEQ_H] [SEQ_L] SUM
|
||||
-- -- -- -- ---- ------- ------- ---
|
||||
| | | | | | | |
|
||||
| | | | | | | +-- 校验和
|
||||
| | | | | +-------+-------- 2字节序列号 (0-65535, 循环自增)
|
||||
| | | | +----------------------- 当前 4 路 I/O 状态位
|
||||
| | | +---------------------------- 本机设备 ID
|
||||
| | +-------------------------------- 长度固定为 0x05 (ID + 3字节Payload + SUM)
|
||||
| +------------------------------------ 类型标识:0xAA (Heartbeat)
|
||||
+---------------------------------------- 固定起始符
|
||||
AA AA 09 [DEVICE_ID] [SEQ_H] [SEQ_L] [FW_H] [FW_L] [IO_STATUS] [MODBUS_H] [MODBUS_L] SUM
|
||||
-- -- -- ----------- --------------- ------------- ----------- --------------------- ---
|
||||
| | | | | | | | |
|
||||
| | | | | | | | +-- 1字节 校验和
|
||||
| | | | | | | +-------------------- 2字节 Modbus 寄存器值
|
||||
| | | | | | +------------------------------------- 1字节 I/O 状态
|
||||
| | | | | | Bit7: W5500 网线连接状态
|
||||
| | | | | | Bit3-Bit0: 4路 DI 状态
|
||||
| | | | | +--------------------------------------------------- 2字节序列号
|
||||
| | | | +------------------------------------------------------------------ 2字节固件版本编码
|
||||
| | | +----------------------------------------------------------------------------------- 1字节本机设备 ID
|
||||
| | +--------------------------------------------------------------------------------------------- 长度 0x09,后续的总字节数
|
||||
| +------------------------------------------------------------------------------------------------- 类型 0xAA
|
||||
+----------------------------------------------------------------------------------------------------- 固定起始符
|
||||
```
|
||||
|
||||
**Payload 字段说明:**
|
||||
| 字段 | 长度 | 说明 |
|
||||
|------|------|------|
|
||||
| SEQ_H, SEQ_L | 2 | 2字节序列号 (0-65535, 循环自增) |
|
||||
| FW_H, FW_L | 2 | 2字节固件版本编码 (MAKE_XTELL_CODE 宏定义) |
|
||||
| DEVICE_ID | 1 | 本机设备 ID (MY_DEVICE_ID) |
|
||||
| IO_STATUS | 1 | 1字节 I/O 状态 |
|
||||
| MODBUS_H, MODBUS_L | 2 | 2字节 Modbus 寄存器值 (最新读取值) |
|
||||
|
||||
---
|
||||
|
||||
## 3. 示例说明 (假设 Device ID = 0x01)
|
||||
|
||||
* **心跳包示例**:`AA AA 04 01 0F 00 05 72`
|
||||
* 表示:ID为1的设备,I/O全为高,序列号为5。
|
||||
* **心跳包示例**:`AA AA 08 01 00 05 06 41 01 0F 01 2C 5A`
|
||||
* 表示:ID为1的设备,序列号5,固件版本 0x0641 (2026年5月10日第1次编译),本机ID=1,I/O全高,Modbus=0x012C (300)(8字节payload)
|
||||
* **485透传示例**:`AA 48 05 01 41 42 43 44 4D`
|
||||
* 表示:ID为1的设备,转发了 485 数据 "ABCD" (长度 4+1=5)。
|
||||
|
||||
Reference in New Issue
Block a user