Skip to content

Commit ab0829d

Browse files
committed
Include telemetry metadata in publisher
1 parent 85ad39b commit ab0829d

5 files changed

Lines changed: 14 additions & 18 deletions

File tree

src/isar/script.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,7 @@ def inspections_callback(inspection: Inspection, mission: Mission) -> None:
155155
robot_heartbeat_thread.start()
156156
threads.append(robot_heartbeat_thread)
157157

158-
telemetry_params: list[TelemetryParameters] = robot_interface.get_telemetry_publishers(
159-
robot_name=settings.ROBOT_NAME,
160-
isar_id=settings.ISAR_ID,
161-
)
158+
telemetry_params: list[TelemetryParameters] = robot_interface.get_telemetry_publishers()
162159
for telemetry_parameter in telemetry_params:
163160
telemetry_thread = MqttTelemetryPublisher(events.mqtt_queue, telemetry_parameter)
164161
telemetry_thread.start()

src/robot_interface/robot_interface.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ def generate_media_config(self) -> MediaConfig | None:
216216

217217
@abstractmethod
218218
def get_telemetry_publishers(
219-
self, isar_id: str, robot_name: str
219+
self
220220
) -> list[TelemetryParameters]:
221221
"""
222222
Set up telemetry publisher threads to publish regular updates for pose, battery

src/robot_interface/telemetry/mqtt_client.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,12 @@ def run(self) -> None:
5252
while True:
5353
time.sleep(self.interval)
5454
try:
55-
payload = self.telemetry_method()
55+
payload_str = self.telemetry_method()
56+
payload_dict = json.loads(payload_str)
57+
payload_dict["isar_id"] = isar_id
58+
payload_dict["robot_name"] = robot_name
59+
payload_dict["timestamp"] = str(datetime.now(UTC))
60+
payload = json.dumps(payload_dict)
5661
topic = self.topic
5762
except RobotTelemetryPoseException, RobotTelemetryNoUpdateException:
5863
continue
@@ -61,7 +66,7 @@ def run(self) -> None:
6166
CloudHealthPayload(
6267
isar_id=isar_id,
6368
robot_name=robot_name,
64-
timestamp=datetime.now(UTC),
69+
timestamp=str(datetime.now(UTC)),
6570
)
6671
)
6772
topic = f"isar/{isar_id}/cloud_health"

src/robot_interface/telemetry/payloads.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,26 @@
1212
from robot_interface.models.robots.battery_state import BatteryState
1313

1414

15-
class TelemetryPayload(BaseModel):
16-
isar_id: str
17-
robot_name: str
18-
timestamp: datetime
19-
20-
2115
class CloudHealthPayload(BaseModel):
2216
isar_id: str
2317
robot_name: str
2418
timestamp: datetime
2519

2620

27-
class TelemetryPosePayload(TelemetryPayload, BaseModel):
21+
class TelemetryPosePayload(BaseModel):
2822
pose: Pose
2923

3024

31-
class TelemetryBatteryPayload(TelemetryPayload, BaseModel):
25+
class TelemetryBatteryPayload(BaseModel):
3226
battery_level: float
3327
battery_state: BatteryState | None = None
3428

3529

36-
class TelemetryObstacleStatusPayload(TelemetryPayload, BaseModel):
30+
class TelemetryObstacleStatusPayload(BaseModel):
3731
obstacle_status: bool
3832

3933

40-
class TelemetryPressurePayload(TelemetryPayload, BaseModel):
34+
class TelemetryPressurePayload(BaseModel):
4135
pressure_level: float
4236

4337

tests/test_mocks/robot_interface.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def register_inspection_callback(
8585
return
8686

8787
def get_telemetry_publishers(
88-
self, isar_id: str, robot_name: str
88+
self
8989
) -> list[TelemetryParameters]:
9090
return []
9191

0 commit comments

Comments
 (0)