feat: MQTT 协议 V1.01 — Topic 压缩为双主题 (up/down)
- 7个主题压缩为2个: dld960/{sn}/down + dld960/{sn}/up
- 消息类型由 JSON cmd 字段区分,不再依赖 topic 路径
- protocol.py: topic_up()/topic_down() 替代旧7个函数
- mqtt_client.py: 4个通配符订阅→1个 dld960/+/up
- main.py: 消息路由改为 cmd 匹配,协议Topic树简化
- 文档更新 V1.01
This commit is contained in:
+34
-36
@@ -19,33 +19,30 @@
|
||||
|
||||
## 1.2 Topic 结构
|
||||
|
||||
协议仅使用两个主题,所有消息类型通过 JSON 内 `cmd` 字段区分。
|
||||
|
||||
```
|
||||
dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
dld960/{dev_serial}/{direction}
|
||||
```
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| `dev_serial` | 设备序列码(6字节十六进制字符串,如 `A1B2C3D4E5F6`) |
|
||||
| `direction` | `srv` = 服务器下发,`dev` = 设备上报 |
|
||||
| `category` | 消息类别 |
|
||||
| `sub` | 子类别(可选) |
|
||||
| `direction` | `down` = 服务器下发(设备订阅),`up` = 设备上报(服务器订阅) |
|
||||
|
||||
### 1.2.1 服务器下发 Topic(设备订阅)
|
||||
### 1.2.1 服务器下发 Topic — `dld960/{sn}/down`
|
||||
|
||||
| Topic | 说明 | 对应串口 CMD |
|
||||
|-------|------|-------------|
|
||||
| `dld960/{sn}/srv/config/set` | 设置配置参数 | 0x11, 0x13, 0x15, 0x63 |
|
||||
| `dld960/{sn}/srv/config/query` | 查询配置参数 | 0x10, 0x12, 0x14, 0x16, 0x64 |
|
||||
| `dld960/{sn}/srv/ctrl` | 控制命令 | 0x09, 0x1C, 0x1D, 0x1E, 0x1F, 0xC5 |
|
||||
设备订阅此主题,接收服务器下发的所有命令(配置设置、查询、控制等)。
|
||||
服务器发布到此主题。
|
||||
|
||||
### 1.2.2 设备上报 Topic(服务器订阅)
|
||||
对应串口 CMD:0x09 ~ 0x1F, 0x63, 0x64, 0xC5 等。
|
||||
|
||||
| Topic | 说明 | 对应串口 CMD |
|
||||
|-------|------|-------------|
|
||||
| `dld960/{sn}/dev/config/resp` | 配置查询/设置响应 | 各命令返回 |
|
||||
| `dld960/{sn}/dev/data/loop` | 线圈传感数据上报 | 0xC0 (SensType=0x0C) |
|
||||
| `dld960/{sn}/dev/data/event` | 事件上报(有车/无车、故障等) | — |
|
||||
| `dld960/{sn}/dev/status` | 设备状态(在线心跳、自检) | — |
|
||||
### 1.2.2 设备上报 Topic — `dld960/{sn}/up`
|
||||
|
||||
设备发布到此主题,上报线圈数据、事件、心跳及命令响应。
|
||||
服务器订阅此主题接收所有设备上行消息。
|
||||
|
||||
服务器端可订阅通配符 `dld960/+/up` 监听所有设备。
|
||||
|
||||
---
|
||||
|
||||
@@ -130,7 +127,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.1 更改设备序列码 `dev_serial_set`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/set`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -145,7 +142,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
}
|
||||
```
|
||||
|
||||
**响应:** Topic: `dld960/{sn}/dev/config/resp`
|
||||
**响应:** Topic: `dld960/{sn}/up`
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -159,7 +156,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.2 查询设备信息 `dev_info_query`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/query`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -213,7 +210,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.3 设置 SSC 网络配置 `ssc_net_set`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/set`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -256,7 +253,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.4 查询 SSC 网络配置 `ssc_net_query`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/query`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -272,7 +269,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.5 设置 IoT 网络配置 `iot_net_set`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/set`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -303,7 +300,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.6 查询 IoT 网络配置 `iot_net_query`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/query`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -319,7 +316,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.7 设置设备 Topic `iot_topic_set`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/set`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -340,7 +337,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.8 查询设备 Topic `iot_topic_query`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/query`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -356,7 +353,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.9 验证设备密码 `pwd_verify`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/ctrl`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -389,7 +386,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.10 设置设备密码 `pwd_set`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/ctrl`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -409,7 +406,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.11 设备出厂初始化 `factory_reset`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/ctrl`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -435,7 +432,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.12 设备复位 `device_reset`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/ctrl`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -451,7 +448,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.13 设置车检器多路参数 `loop_param_set`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/set`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -540,7 +537,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.14 读取车检器多路参数 `loop_param_query`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/config/query`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -591,7 +588,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 4.15 设置主动上报 `report_config`
|
||||
|
||||
> Topic: `dld960/{sn}/srv/ctrl`
|
||||
> Topic: `dld960/{sn}/down`
|
||||
|
||||
**请求:**
|
||||
|
||||
@@ -630,7 +627,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 5.1 线圈传感数据 `loop_data`
|
||||
|
||||
> Topic: `dld960/{sn}/dev/data/loop`
|
||||
> Topic: `dld960/{sn}/up`
|
||||
> QoS: 0/1
|
||||
|
||||
```json
|
||||
@@ -716,7 +713,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 5.2 事件上报 `event_report`
|
||||
|
||||
> Topic: `dld960/{sn}/dev/data/event`
|
||||
> Topic: `dld960/{sn}/up`
|
||||
|
||||
设备检测到事件时主动上报,非周期性。
|
||||
|
||||
@@ -756,7 +753,7 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
|
||||
## 5.3 设备心跳 `heartbeat`
|
||||
|
||||
> Topic: `dld960/{sn}/dev/status`
|
||||
> Topic: `dld960/{sn}/up`
|
||||
> 周期:默认 60 秒
|
||||
|
||||
```json
|
||||
@@ -787,3 +784,4 @@ dld960/{dev_serial}/{direction}/{category}[/{sub}]
|
||||
| 版本 | 修订时间 | 修订说明 | 修订人 |
|
||||
|------|----------|----------|--------|
|
||||
| V1.00 | 2026-06-22 | 初始版本,基于串口协议 V1.01 | wangfq |
|
||||
| V1.01 | 2026-07-07 | Topic 压缩为双主题(`{sn}/up` + `{sn}/down`),消息类型由 `cmd` 字段区分 | wangfq |
|
||||
|
||||
Reference in New Issue
Block a user