Forgot to set up notify event
This commit is contained in:
@@ -6,22 +6,24 @@ from services.mqtt_service import MQTTService
|
|||||||
|
|
||||||
class MQTTForwarder:
|
class MQTTForwarder:
|
||||||
|
|
||||||
client_id : str
|
_client_id : str
|
||||||
local_broker : MQTTService
|
_local_broker : MQTTService
|
||||||
central_broker : MQTTService
|
_central_broker : MQTTService
|
||||||
|
_qos : int
|
||||||
|
|
||||||
def __init__(self, client_id : str, src_mqtt: MQTTService, dst_mqtt: MQTTService):
|
def __init__(self, client_id : str, src_mqtt: MQTTService, dst_mqtt: MQTTService, qos : int):
|
||||||
self.client_id = client_id
|
self._client_id = client_id
|
||||||
self.local_broker = src_mqtt
|
self._local_broker = src_mqtt
|
||||||
self.central_broker = dst_mqtt
|
self._central_broker = dst_mqtt
|
||||||
|
self._qos = qos
|
||||||
|
|
||||||
def start(self, src_topic: str, dst_topic: str):
|
def start(self, src_topic: str, dst_topic: str):
|
||||||
try:
|
try:
|
||||||
def forward_handler(topic: str, msg: str):
|
def forward_handler(topic: str, msg: str):
|
||||||
forwarded_msg = self.__wrap_data(msg)
|
forwarded_msg = self.__wrap_data(msg)
|
||||||
self.central_broker.publish(dst_topic, forwarded_msg)
|
self._central_broker.publish(dst_topic, forwarded_msg, self._qos)
|
||||||
|
|
||||||
self.local_broker.subscribe(src_topic, forward_handler)
|
self._local_broker.subscribe(src_topic, forward_handler)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"An error occurred while forwarding from {src_topic} to {dst_topic}: {e}")
|
print(f"An error occurred while forwarding from {src_topic} to {dst_topic}: {e}")
|
||||||
|
|
||||||
@@ -30,7 +32,7 @@ class MQTTForwarder:
|
|||||||
result = {}
|
result = {}
|
||||||
data = json.loads(msg)
|
data = json.loads(msg)
|
||||||
result["timestamp"] = int(time.time())
|
result["timestamp"] = int(time.time())
|
||||||
result["systemId"] = self.client_id
|
result["systemId"] = self._client_id
|
||||||
result["data"] = {}
|
result["data"] = {}
|
||||||
for keys in data:
|
for keys in data:
|
||||||
result["data"][keys] = data[keys]
|
result["data"][keys] = data[keys]
|
||||||
|
|||||||
@@ -9,11 +9,10 @@ class SoundReader:
|
|||||||
_pin :int
|
_pin :int
|
||||||
_running :bool
|
_running :bool
|
||||||
_thread :threading.Thread | None
|
_thread :threading.Thread | None
|
||||||
_subscriber :Callable[[int], None]
|
_subscriber :Callable[[str], None]
|
||||||
|
|
||||||
def __init__(self, pin):
|
def __init__(self, pin):
|
||||||
self._pin = pin
|
self._pin = pin
|
||||||
self._sound_level = 0
|
|
||||||
self._running = False
|
self._running = False
|
||||||
self._thread = None
|
self._thread = None
|
||||||
|
|
||||||
@@ -32,15 +31,12 @@ class SoundReader:
|
|||||||
self._thread.join()
|
self._thread.join()
|
||||||
GPIO.cleanup()
|
GPIO.cleanup()
|
||||||
|
|
||||||
def subscribe(self, handler:Callable[[int], None]):
|
def subscribe(self, handler:Callable[[str], None]):
|
||||||
self._subscriber = handler
|
self._subscriber = handler
|
||||||
|
|
||||||
def get_level(self):
|
def _notify(self, data : str):
|
||||||
return self._sound_level
|
|
||||||
|
|
||||||
def _notify(self):
|
|
||||||
if self._subscriber:
|
if self._subscriber:
|
||||||
self._subscriber(self._sound_level)
|
self._subscriber(data)
|
||||||
|
|
||||||
def _read(self):
|
def _read(self):
|
||||||
measure_duration = 0.2
|
measure_duration = 0.2
|
||||||
@@ -51,7 +47,7 @@ class SoundReader:
|
|||||||
while time.time() - start < measure_duration:
|
while time.time() - start < measure_duration:
|
||||||
if GPIO.input(self._pin):
|
if GPIO.input(self._pin):
|
||||||
level += 1
|
level += 1
|
||||||
self._sound_level = level
|
self._notify(f'{{"soundSensorValue": {level}}}')
|
||||||
time.sleep(interval - measure_duration)
|
time.sleep(interval - measure_duration)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user