Commit Graph
2 Commits
Author SHA1 Message Date
wangfq 5e4e1b1ec7 fix: DeviceManager 死锁 — threading.Lock 改为 RLock
根因: update_from_dev_info/update_loop_data/update_event/update_heartbeat
      在 with self._lock 块内调用 get_or_create(), 后者再次 with self._lock.
      Python threading.Lock 不可重入 → 永久阻塞 → GUI 无响应.

修复: self._lock = threading.RLock() (可重入锁)

清理: mqtt_client.py 移除 debug print 和未使用的 sys import
2026-07-07 17:36:35 +08:00
wangfq a2cfe4602c feat: DBNMQTTool — DLD960 IoT MQTT 设备管理工具 (Python/tkinter 跨平台)
基于《DLD960_IoT_MQTT协议.md》V1.00 实现

功能:
- MQTT Broker 连接管理
- 设备自动发现(订阅 dld960/+/dev/# 通配符)
- 设备信息查询(dev_info_query)
- 网络配置(SSC/IoT TCP)+ Topic 配置
- 实时线圈数据监控(loop_data)+ 事件上报(event_report)
- 心跳监控(heartbeat)
- 控制命令:密码验证/设置、出厂初始化、设备复位

项目结构:
- main.py          主窗口 (tkinter GUI)
- dbn_mqtt_tool/
  - protocol.py    DLD960 IoT MQTT 协议定义
  - mqtt_client.py MQTT 客户端封装 (paho-mqtt)
  - device_manager.py 设备发现与状态管理
2026-07-06 18:14:38 +08:00