diff --git a/DBNMQTTool/dbn_mqtt_tool/device_manager.py b/DBNMQTTool/dbn_mqtt_tool/device_manager.py index 0ae1398..a2ce78b 100644 --- a/DBNMQTTool/dbn_mqtt_tool/device_manager.py +++ b/DBNMQTTool/dbn_mqtt_tool/device_manager.py @@ -29,7 +29,7 @@ class DeviceManager: def __init__(self): self._devices: dict[str, DeviceInfo] = {} - self._lock = threading.Lock() + self._lock = threading.RLock() # 可重入锁: update_xxx 内部调用 get_or_create self._callbacks: list[Callable] = [] def on_change(self, callback: Callable): diff --git a/DBNMQTTool/dbn_mqtt_tool/mqtt_client.py b/DBNMQTTool/dbn_mqtt_tool/mqtt_client.py index 33fc4dc..bc6ef70 100644 --- a/DBNMQTTool/dbn_mqtt_tool/mqtt_client.py +++ b/DBNMQTTool/dbn_mqtt_tool/mqtt_client.py @@ -3,7 +3,6 @@ MQTT 客户端封装 """ import json import time -import sys import threading from typing import Callable, Optional from dataclasses import dataclass @@ -123,13 +122,7 @@ class MqttClient: if not self._client or not self._connected: raise ConnectionError("MQTT 未连接") data = json.dumps(payload, ensure_ascii=False) - print(f"[MqttClient] publish topic={topic} qos={qos}", flush=True) - try: - info = self._client.publish(topic, data, qos=qos) - print(f"[MqttClient] publish done mid={info.mid}", flush=True) - except Exception as e: - print(f"[MqttClient] publish EXCEPTION: {e}", flush=True) - raise + self._client.publish(topic, data, qos=qos) def subscribe(self, topic: str, qos: int = 1): """订阅主题"""