diff --git a/selfdrive/ui/sunnypilot/ui_state.py b/selfdrive/ui/sunnypilot/ui_state.py index 21ed78b096..79ca410e1b 100644 --- a/selfdrive/ui/sunnypilot/ui_state.py +++ b/selfdrive/ui/sunnypilot/ui_state.py @@ -22,6 +22,8 @@ class UIStateSP: self.sunnylink_state = SunnylinkState() + self.global_brightness_override: int = self.params.get("Brightness", return_default=True) + def update(self) -> None: if self.sunnylink_enabled: self.sunnylink_state.start() @@ -74,6 +76,7 @@ class UIStateSP: self.rainbow_path = self.params.get_bool("RainbowMode") self.chevron_metrics = self.params.get("ChevronInfo") self.active_bundle = self.params.get("ModelManager_ActiveBundle") + self.global_brightness_override = self.params.get("Brightness", return_default=True) class DeviceSP: diff --git a/selfdrive/ui/ui_state.py b/selfdrive/ui/ui_state.py index a86c84ada3..7aad769bb1 100644 --- a/selfdrive/ui/ui_state.py +++ b/selfdrive/ui/ui_state.py @@ -255,9 +255,18 @@ class Device(DeviceSP): else: clipped_brightness = ((clipped_brightness + 16.0) / 116.0) ** 3.0 - clipped_brightness = float(np.interp(clipped_brightness, [0, 1], [30, 100])) + if gui_app.sunnypilot_ui(): + if ui_state.global_brightness_override <= 0: + min_global_brightness = 1 if ui_state.global_brightness_override < 0 else 30 + clipped_brightness = float(np.interp(clipped_brightness, [0, 1], [min_global_brightness, 100])) + else: + clipped_brightness = float(np.interp(clipped_brightness, [0, 1], [30, 100])) brightness = round(self._brightness_filter.update(clipped_brightness)) + + if gui_app.sunnypilot_ui() and ui_state.global_brightness_override > 0: + brightness = ui_state.global_brightness_override + if not self._awake: brightness = 0