Set up forwarding

This commit is contained in:
2026-01-03 16:23:45 +01:00
parent d56189ccee
commit e77c125ab3
2 changed files with 9 additions and 13 deletions

View File

@@ -1,19 +1,14 @@
#!/usr/bin/env python3
import os
import cv2
import requests
from dotenv import load_dotenv
from flask import Flask, jsonify, request
from flask import Flask
from controllers.GameController import GameController
from hardware.light.lora_light_sensor_reader import LoraLightSensorReader
from hardware.rfid.reader import RfidReader
from hardware.sound.sound import SoundReader
from services.clock_service import ClockService
from services.detection_service import DetectionService
from services.forwarder_service import ForwarderService
from services.game_service import GameService
from services.mqtt_service import MQTTService
load_dotenv()
@@ -59,14 +54,14 @@ if __name__ == "__main__":
forwarder_service = ForwarderService(local_broker, api_broker)
game_controller = GameController(app)
forwarder_service.register_forwarder(client_id, "/system/sensor/rfid", f"/customer/telemetry/rfid")
forwarder_service.register_forwarder(client_id, "/system/sensor/light", f"/customer/telemetry/light")
forwarder_service.register_forwarder(client_id, "/system/sensor/sound", f"/customer/telemetry/sound")
forwarder_service.register_forwarder(client_id, "/system/sensor/gps", f"/customer/telemetry/gps")
forwarder_service.register_forwarder(client_id, "/system/sensor/rfid", f"/customer/telemetry/rfid", 2)
forwarder_service.register_forwarder(client_id, "/system/sensor/light", f"/customer/telemetry/light", 1)
forwarder_service.register_forwarder(client_id, "/system/sensor/sound", f"/customer/telemetry/sound", 1)
forwarder_service.register_forwarder(client_id, "/system/sensor/gps", f"/customer/telemetry/gps", 2)
rfid_reader.subscribe(lambda uid: local_broker.publish("/system/sensor/rfid", str(uid), 2))
light_sensor_reader.subscribe(lambda light_value: local_broker.publish("/system/sensor/light", str(light_value), 1))
sound_reader.subscribe(lambda light_value: local_broker.publish("/system/sensor/sound", str(light_value), 1))
sound_reader.subscribe(lambda sound_value: local_broker.publish("/system/sensor/sound", str(sound_value), 1))
forwarder_service.start_all()

View File

@@ -17,11 +17,12 @@ class ForwarderService:
self.dst_broker_service = dst_broker
self.forwards = {}
def register_forwarder(self, client_id: str, src_topic: str, dst_topic: str) -> None:
def register_forwarder(self, client_id: str, src_topic: str, dst_topic: str, qos : int) -> None:
forwarder = MQTTForwarder(
client_id,
self.src_broker_service,
self.dst_broker_service
self.dst_broker_service,
qos
)
self.forwards[forwarder] = (src_topic, dst_topic)