diff --git a/selfdrive/ui/layouts/settings/firehose.py b/selfdrive/ui/layouts/settings/firehose.py index 1c5df061ec..602d2d807b 100644 --- a/selfdrive/ui/layouts/settings/firehose.py +++ b/selfdrive/ui/layouts/settings/firehose.py @@ -1,4 +1,5 @@ import pyray as rl +import json import time import threading @@ -40,7 +41,7 @@ class FirehoseLayout(Widget): def __init__(self): super().__init__() self.params = Params() - self.segment_count = int(self.params.get(self.PARAM_KEY, encoding='utf8') or 0) + self.segment_count = self._get_segment_count() self.scroll_panel = GuiScrollPanel() self.running = True @@ -48,6 +49,14 @@ class FirehoseLayout(Widget): self.update_thread.start() self.last_update_time = 0 + def _get_segment_count(self) -> int: + stats = self.params.get(self.PARAM_KEY, encoding='utf8') + try: + return int(json.loads(stats).get("firehose", 0)) + except json.JSONDecodeError: + cloudlog.error(f"Failed to decode firehose stats: {stats}") + return 0 + def __del__(self): self.running = False if self.update_thread and self.update_thread.is_alive(): diff --git a/selfdrive/ui/onroad/driver_state.py b/selfdrive/ui/onroad/driver_state.py index 5947cb877d..f73763d573 100644 --- a/selfdrive/ui/onroad/driver_state.py +++ b/selfdrive/ui/onroad/driver_state.py @@ -51,7 +51,6 @@ class DriverStateRenderer(Widget): self.is_rhd = False self.dm_fade_state = 0.0 self.state_updated = False - self.last_rect: rl.Rectangle = rl.Rectangle(0, 0, 0, 0) self.driver_pose_vals = np.zeros(3, dtype=np.float32) self.driver_pose_diff = np.zeros(3, dtype=np.float32) self.driver_pose_sins = np.zeros(3, dtype=np.float32) @@ -112,9 +111,6 @@ class DriverStateRenderer(Widget): """Update the driver monitoring state based on model data""" sm = ui_state.sm if not sm.updated["driverMonitoringState"]: - if self.state_updated and (self._rect.x != self.last_rect.x or self._rect.y != self.last_rect.y or - self._rect.width != self.last_rect.width or self._rect.height != self.last_rect.height): - self._pre_calculate_drawing_elements(self._rect) return # Get monitoring state