Skip to content

Commit 7dce7b2

Browse files
committed
Decouple MqttClient from MqttPublisher
1 parent 1c4109a commit 7dce7b2

4 files changed

Lines changed: 11 additions & 28 deletions

File tree

src/isar/services/service_connections/mqtt/mqtt_client.py

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,11 @@
99
from paho.mqtt import client as mqtt
1010
from paho.mqtt.client import Client
1111
from paho.mqtt.enums import CallbackAPIVersion
12-
from paho.mqtt.packettypes import PacketTypes
1312
from paho.mqtt.properties import Properties
1413
from paho.mqtt.reasoncodes import ReasonCode
1514

1615
from isar.config.settings import settings
17-
from robot_interface.telemetry.mqtt_client import MqttClientInterface, MQTTQueueMessage
18-
19-
20-
def props_expiry(seconds: int) -> Properties:
21-
p = Properties(PacketTypes.PUBLISH)
22-
p.MessageExpiryInterval = seconds
23-
return p
16+
from robot_interface.telemetry.mqtt_client import MQTTQueueMessage
2417

2518

2619
def _on_success(data: Details) -> None:
@@ -43,7 +36,7 @@ def _on_giveup(data: Details) -> None:
4336
)
4437

4538

46-
class MqttClient(MqttClientInterface):
39+
class MqttClient:
4740
def __init__(self, mqtt_queue: Queue[MQTTQueueMessage]) -> None:
4841
self.logger = logging.getLogger("mqtt_client")
4942
self.logger.setLevel("INFO")
@@ -97,7 +90,8 @@ def run(self) -> None:
9790
except Empty:
9891
continue
9992

100-
self.publish(
93+
self.logger.debug("Publishing message to topic: %s", item.topic)
94+
self.client.publish(
10195
topic=item.topic,
10296
payload=item.payload,
10397
qos=item.qos,
@@ -137,16 +131,3 @@ def connect(self, host: str, port: int) -> None:
137131
self.logger.info("Attempting to connect to MQTT Broker")
138132
self.logger.info("Host: %s, Port: %s", host, port)
139133
self.client.connect(host=host, port=port)
140-
141-
def publish(
142-
self,
143-
topic: str,
144-
payload: str,
145-
qos: int = 0,
146-
retain: bool = False,
147-
properties: Properties | None = None,
148-
) -> None:
149-
self.logger.debug("Publishing message to topic: %s", topic)
150-
self.client.publish(
151-
topic=topic, payload=payload, qos=qos, retain=retain, properties=properties
152-
)

src/isar/services/service_connections/mqtt/robot_heartbeat_publisher.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
from queue import Queue
44

55
from isar.config.settings import settings
6-
from isar.services.service_connections.mqtt.mqtt_client import props_expiry
7-
from robot_interface.telemetry.mqtt_client import MqttPublisher, MQTTQueueMessage
6+
from robot_interface.telemetry.mqtt_client import (
7+
MqttPublisher,
8+
MQTTQueueMessage,
9+
props_expiry,
10+
)
811
from robot_interface.telemetry.payloads import RobotHeartbeatPayload
912

1013

src/isar/services/utilities/mqtt_utilities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33

44
from isar.config.settings import settings
55
from isar.models.status import IsarStatus
6-
from isar.services.service_connections.mqtt.mqtt_client import props_expiry
76
from robot_interface.models.exceptions.robot_exceptions import ErrorMessage
87
from robot_interface.models.mission.status import MissionStatus
98
from robot_interface.models.mission.task import TASKS
109
from robot_interface.telemetry.mqtt_client import (
1110
MqttClientInterface,
1211
MqttPublisher,
1312
MQTTQueueMessage,
13+
props_expiry,
1414
)
1515
from robot_interface.telemetry.payloads import (
1616
InterventionNeededPayload,

src/isar/storage/uploader.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import time
33

44
from isar.config.settings import settings
5-
from isar.services.service_connections.mqtt.mqtt_client import props_expiry
65
from isar.storage.storage_interface import (
76
BlobStoragePath,
87
LocalStoragePath,
@@ -16,7 +15,7 @@
1615
InspectionValue,
1716
)
1817
from robot_interface.models.mission.mission import Mission
19-
from robot_interface.telemetry.mqtt_client import MqttClientInterface
18+
from robot_interface.telemetry.mqtt_client import MqttClientInterface, props_expiry
2019
from robot_interface.telemetry.payloads import (
2120
InspectionResultPayload,
2221
InspectionValuePayload,

0 commit comments

Comments
 (0)