From 0a254fbc4e85461c343842bff4da1f2c392e540f Mon Sep 17 00:00:00 2001 From: Andrei Radulescu Date: Fri, 27 Jun 2025 01:16:20 +0300 Subject: [PATCH] ui: avoid some raylib ui no dongleid errors (#35562) avoid some ui.py errors on pc --- selfdrive/ui/layouts/settings/firehose.py | 7 ++++++- selfdrive/ui/lib/prime_state.py | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/selfdrive/ui/layouts/settings/firehose.py b/selfdrive/ui/layouts/settings/firehose.py index ccedf57a93..298f66e276 100644 --- a/selfdrive/ui/layouts/settings/firehose.py +++ b/selfdrive/ui/layouts/settings/firehose.py @@ -6,6 +6,7 @@ import threading from openpilot.common.api import Api, api_get from openpilot.common.params import Params from openpilot.common.swaglog import cloudlog +from openpilot.system.athena.registration import UNREGISTERED_DONGLE_ID from openpilot.system.ui.lib.application import gui_app, FontWeight from openpilot.system.ui.lib.wrap_text import wrap_text from openpilot.system.ui.lib.scroll_panel import GuiScrollPanel @@ -51,6 +52,8 @@ class FirehoseLayout(Widget): def _get_segment_count(self) -> int: stats = self.params.get(self.PARAM_KEY, encoding='utf8') + if not stats: + return 0 try: return int(json.loads(stats).get("firehose", 0)) except Exception: @@ -158,7 +161,9 @@ class FirehoseLayout(Widget): def _fetch_firehose_stats(self): try: - dongle_id = self.params.get("DongleId", encoding='utf8') or "" + dongle_id = self.params.get("DongleId", encoding='utf8') + if not dongle_id or dongle_id == UNREGISTERED_DONGLE_ID: + return identity_token = Api(dongle_id).get_token() response = api_get(f"v1/devices/{dongle_id}/firehose_stats", access_token=identity_token) if response.status_code == 200: diff --git a/selfdrive/ui/lib/prime_state.py b/selfdrive/ui/lib/prime_state.py index 38d9eff9a1..6b87540f65 100644 --- a/selfdrive/ui/lib/prime_state.py +++ b/selfdrive/ui/lib/prime_state.py @@ -6,6 +6,7 @@ import time from openpilot.common.api import Api, api_get from openpilot.common.params import Params from openpilot.common.swaglog import cloudlog +from openpilot.system.athena.registration import UNREGISTERED_DONGLE_ID class PrimeType(IntEnum): @@ -44,7 +45,7 @@ class PrimeState: def _fetch_prime_status(self) -> None: dongle_id = self._params.get("DongleId", encoding='utf8') - if not dongle_id: + if not dongle_id or dongle_id == UNREGISTERED_DONGLE_ID: return try: