DBNMQTTool: initialize 消息解析后同步显示设备型号到列表
- device_manager.mark_online 增加 model/hard_ver/soft_ver 参数 - 修复旧格式 extra_info.version 取 soft_ver 的问题 - main.py 的 initialize 处理传入完整设备信息
This commit is contained in:
@@ -92,15 +92,22 @@ class DeviceManager:
|
|||||||
dev.online = True
|
dev.online = True
|
||||||
self._notify()
|
self._notify()
|
||||||
|
|
||||||
def mark_online(self, dev_serial: str, extra_info: Optional[dict] = None):
|
def mark_online(self, dev_serial: str, model: str = "",
|
||||||
|
hard_ver: str = "", soft_ver: str = "",
|
||||||
|
extra_info: Optional[dict] = None):
|
||||||
"""V1.03: 设备上线初始化标记"""
|
"""V1.03: 设备上线初始化标记"""
|
||||||
with self._lock:
|
with self._lock:
|
||||||
dev = self.get_or_create(dev_serial)
|
dev = self.get_or_create(dev_serial)
|
||||||
dev.online = True
|
dev.online = True
|
||||||
dev.last_seen = datetime.now()
|
dev.last_seen = datetime.now()
|
||||||
|
if model:
|
||||||
|
dev.model = model
|
||||||
|
if hard_ver:
|
||||||
|
dev.hard_ver = hard_ver
|
||||||
|
if soft_ver:
|
||||||
|
dev.soft_ver = soft_ver
|
||||||
if extra_info:
|
if extra_info:
|
||||||
dev.extra_info = extra_info
|
dev.extra_info = extra_info
|
||||||
dev.soft_ver = extra_info.get("version", dev.soft_ver)
|
|
||||||
self._notify()
|
self._notify()
|
||||||
|
|
||||||
def set_offline(self):
|
def set_offline(self):
|
||||||
|
|||||||
+8
-3
@@ -899,10 +899,15 @@ class MainWindow(QMainWindow):
|
|||||||
# V1.03: 设备上线初始化
|
# V1.03: 设备上线初始化
|
||||||
data = payload.get("data", {})
|
data = payload.get("data", {})
|
||||||
dev_sn = data.get("dev_serial", dev_serial)
|
dev_sn = data.get("dev_serial", dev_serial)
|
||||||
|
model = data.get("model", "")
|
||||||
|
hard_ver = data.get("hard_ver", "")
|
||||||
|
soft_ver = data.get("soft_ver", "")
|
||||||
extra = data.get("extra_info", {})
|
extra = data.get("extra_info", {})
|
||||||
self._devmgr.mark_online(dev_sn, extra)
|
self._devmgr.mark_online(dev_sn, model=model,
|
||||||
self._log_recv(topic, payload, f"initialize sn={dev_sn} ver={extra.get('version','?')}")
|
hard_ver=hard_ver, soft_ver=soft_ver,
|
||||||
self._show_json({"online": dev_sn, "info": extra})
|
extra_info=extra)
|
||||||
|
self._log_recv(topic, payload, f"initialize sn={dev_sn} model={model}")
|
||||||
|
self._show_json({"online": dev_sn, "model": model, "extra": extra})
|
||||||
|
|
||||||
# 旧协议 / 无 cmd 字段 的消息(如 Initialize)
|
# 旧协议 / 无 cmd 字段 的消息(如 Initialize)
|
||||||
elif "Method" in payload:
|
elif "Method" in payload:
|
||||||
|
|||||||
Reference in New Issue
Block a user