From 7eb65e878be32bed443fb3ba4f801cee8a875fd3 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Fri, 27 Feb 2026 22:56:26 -0500 Subject: [PATCH] [TIZI/TICI] ui: Speed Limit Assist active status (#1729) [TIZI/TICI] ui: display Speed Limit Assist active status --- .../ui/sunnypilot/onroad/hud_renderer.py | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/selfdrive/ui/sunnypilot/onroad/hud_renderer.py b/selfdrive/ui/sunnypilot/onroad/hud_renderer.py index 86fcf3c693..b96a921a8b 100644 --- a/selfdrive/ui/sunnypilot/onroad/hud_renderer.py +++ b/selfdrive/ui/sunnypilot/onroad/hud_renderer.py @@ -22,6 +22,8 @@ from openpilot.system.ui.lib.application import gui_app from openpilot.system.ui.lib.multilang import tr from openpilot.system.ui.lib.text_measure import measure_text_cached +SLA_ACTIVE_COLOR = rl.Color(0x91, 0x9b, 0x95, 0xff) + class HudRendererSP(HudRenderer): def __init__(self): @@ -71,6 +73,8 @@ class HudRendererSP(HudRenderer): self.show_icbm_status = self.icbm_active_counter > 0 def _draw_set_speed(self, rect: rl.Rectangle) -> None: + long_plan_sp = ui_state.sm['longitudinalPlanSP'] + long_override = ui_state.sm['carControl'].cruiseControl.override self._get_icbm_status() set_speed_width = UI_CONFIG.set_speed_width_metric if ui_state.is_metric else UI_CONFIG.set_speed_width_imperial @@ -85,12 +89,16 @@ class HudRendererSP(HudRenderer): set_speed_color = COLORS.DARK_GREY if self.is_cruise_set: set_speed_color = COLORS.WHITE - if ui_state.status == UIStatus.ENGAGED: - max_color = COLORS.ENGAGED - elif ui_state.status == UIStatus.DISENGAGED: - max_color = COLORS.DISENGAGED - elif ui_state.status == UIStatus.OVERRIDE: - max_color = COLORS.OVERRIDE + if long_plan_sp.speedLimit.assist.active: + set_speed_color = SLA_ACTIVE_COLOR if long_override else rl.Color(0, 0xff, 0, 0xff) + max_color = SLA_ACTIVE_COLOR if long_override else rl.Color(0x80, 0xd8, 0xa6, 0xff) + else: + if ui_state.status == UIStatus.ENGAGED: + max_color = COLORS.ENGAGED + elif ui_state.status == UIStatus.DISENGAGED: + max_color = COLORS.DISENGAGED + elif ui_state.status == UIStatus.OVERRIDE: + max_color = COLORS.OVERRIDE max_str_size = 60 if self.show_icbm_status else 40 max_str_y = 15 if self.show_icbm_status else 27