同步协议 V1.03:双主题发布对齐 + initialize 数据格式修正
vd960DBN:
- heartbeat/sensor/initialize 发布统一走 dld960/{sn}/dev
- dev_initialize_pub 补 model/hard_ver/soft_ver,删 extra_info.version
DBNMQTTool:
- 协议版本号更新至 V1.03
- 协议 Topic 树和模拟页增加 initialize 支持
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
"""
|
||||
DLD960 IoT MQTT 协议定义
|
||||
|
||||
基于《DLD960_IoT_MQTT协议.md》V1.01
|
||||
基于《DLD960_IoT_MQTT协议.md》V1.03
|
||||
双主题结构:{sn}/srv(服务器下发)、{sn}/dev(设备上报)
|
||||
消息类型由 JSON `cmd` 字段区分。
|
||||
"""
|
||||
|
||||
@@ -419,6 +419,21 @@ class MainWindow(QMainWindow):
|
||||
g2l.addLayout(g2l2)
|
||||
layout.addWidget(g2)
|
||||
|
||||
# -- initialize --
|
||||
g_init = QGroupBox("上电初始化 (initialize) — V1.03")
|
||||
g_init_l = QVBoxLayout(g_init)
|
||||
self._sim_init = QPlainTextEdit()
|
||||
self._sim_init.setFont(QFont("Consolas", 10))
|
||||
self._sim_init.setPlainText(self._sample_initialize_data())
|
||||
g_init_l.addWidget(self._sim_init)
|
||||
g_init_l2 = QHBoxLayout()
|
||||
b_init = QPushButton("发送")
|
||||
b_init.clicked.connect(self._sim_send_initialize)
|
||||
g_init_l2.addWidget(b_init)
|
||||
g_init_l2.addStretch()
|
||||
g_init_l.addLayout(g_init_l2)
|
||||
layout.addWidget(g_init)
|
||||
|
||||
# -- heartbeat --
|
||||
g3 = QGroupBox("心跳上报 (heartbeat)")
|
||||
g3l = QVBoxLayout(g3)
|
||||
@@ -479,6 +494,24 @@ class MainWindow(QMainWindow):
|
||||
]}
|
||||
}, indent=2)
|
||||
|
||||
def _sample_initialize_data(self) -> str:
|
||||
return json.dumps({
|
||||
"msg_id": 1,
|
||||
"cmd": "initialize",
|
||||
"ts": 1719000000,
|
||||
"data": {
|
||||
"dev_serial": "DC045A49718F",
|
||||
"model": "DLD960",
|
||||
"hard_ver": "1.0",
|
||||
"soft_ver": "1.0",
|
||||
"extra_info": {
|
||||
"code": "869756049404948",
|
||||
"csq": "21",
|
||||
"location": "113.9237976,022.6400375"
|
||||
}
|
||||
}
|
||||
}, indent=2)
|
||||
|
||||
def _sample_heartbeat_data(self) -> str:
|
||||
return json.dumps({
|
||||
"msg_id": 200,
|
||||
@@ -509,6 +542,10 @@ class MainWindow(QMainWindow):
|
||||
sn = self._sim_sn.text()
|
||||
self._sim_publish(topic_up(sn), self._sim_event.toPlainText())
|
||||
|
||||
def _sim_send_initialize(self):
|
||||
sn = self._sim_sn.text()
|
||||
self._sim_publish(topic_up(sn), self._sim_init.toPlainText())
|
||||
|
||||
def _sim_send_hb(self):
|
||||
sn = self._sim_sn.text()
|
||||
self._sim_publish(topic_up(sn), self._sim_hb.toPlainText())
|
||||
@@ -602,6 +639,7 @@ class MainWindow(QMainWindow):
|
||||
item = QTreeWidgetItem(dev, [topic_up(sn), "设备发布:loop_data / event_report / heartbeat / 命令响应"])
|
||||
# 子条目列出 cmd 类型
|
||||
for cmd_name, desc in [
|
||||
("initialize", "设备上电初始化 (V1.03)"),
|
||||
("loop_data", "线圈传感数据上报"),
|
||||
("event_report", "事件上报(有车/无车/故障)"),
|
||||
("heartbeat", "设备心跳"),
|
||||
|
||||
Reference in New Issue
Block a user