Expose Python UI Screen Timeout Variables

This commit is contained in:
firestarsdog
2026-05-31 14:40:08 -04:00
parent 86359bacab
commit fad4434104
2 changed files with 22 additions and 7 deletions
@@ -21,7 +21,7 @@ from openpilot.system.ui.widgets.keyboard import Keyboard
from openpilot.system.ui.widgets.option_dialog import MultiOptionDialog
from openpilot.system.ui.widgets.label import gui_label
from openpilot.selfdrive.ui.ui_state import ui_state
from openpilot.selfdrive.ui.ui_state import device, ui_state
from openpilot.selfdrive.ui.layouts.settings.starpilot.panel import _SettingsPage
from openpilot.selfdrive.ui.layouts.settings.starpilot.aethergrid import (
AETHER_LIST_METRICS,
@@ -154,8 +154,8 @@ class SystemSettingsManagerView(AetherInteractiveMixin, Widget):
"step": 5,
"live": False,
"presets": [5, 15, 30, 60],
"get": lambda: float(self._controller._params.get_int("ScreenTimeout")),
"set": lambda v: self._controller._params.put_int("ScreenTimeout", int(v)),
"get": lambda: float(self._controller._params.get_int("ScreenTimeout", return_default=True)),
"set": lambda v: self._set_timeout("ScreenTimeout", v),
},
"ScreenTimeoutOnroad": {
"title": tr("Onroad Screen Timeout"),
@@ -167,8 +167,8 @@ class SystemSettingsManagerView(AetherInteractiveMixin, Widget):
"step": 5,
"live": False,
"presets": [5, 15, 30, 60],
"get": lambda: float(self._controller._params.get_int("ScreenTimeoutOnroad")),
"set": lambda v: self._controller._params.put_int("ScreenTimeoutOnroad", int(v)),
"get": lambda: float(self._controller._params.get_int("ScreenTimeoutOnroad", return_default=True)),
"set": lambda v: self._set_timeout("ScreenTimeoutOnroad", v),
},
"DeviceShutdown": {
"title": tr("Shutdown Delay"),
@@ -409,6 +409,10 @@ class SystemSettingsManagerView(AetherInteractiveMixin, Widget):
self._active_adjustor_key = None
self._ensure_visible_key = None
def _set_timeout(self, key: str, value: float):
self._controller._params.put_int(key, int(value))
device.reset_interactive_timeout()
def _get_drive_mode_index(self):
state = self._controller._get_force_drive_state()
if state == tr("Default"): return 0
+13 -2
View File
@@ -251,6 +251,7 @@ class Device:
self._interactive_timeout_callbacks: list[Callable] = []
self._prev_timed_out = False
self._awake: bool = True
self._params = Params()
self._offroad_brightness: int = BACKLIGHT_OFFROAD
self._last_brightness: int = 0
@@ -271,12 +272,22 @@ class Device:
if self._override_interactive_timeout is not None:
return self._override_interactive_timeout
ignition_timeout = 10 if gui_app.big_ui() else 5
return ignition_timeout if ui_state.ignition else 30
timeout_onroad = self._params.get_int("ScreenTimeoutOnroad")
timeout_offroad = self._params.get_int("ScreenTimeout")
if timeout_onroad <= 0:
timeout_onroad = 10 if gui_app.big_ui() else 5
if timeout_offroad <= 0:
timeout_offroad = 30
return int(timeout_onroad if ui_state.ignition else timeout_offroad)
def _reset_interactive_timeout(self) -> None:
self._interaction_time = time.monotonic() + self.interactive_timeout
def reset_interactive_timeout(self) -> None:
self._reset_interactive_timeout()
def add_interactive_timeout_callback(self, callback: Callable):
self._interactive_timeout_callbacks.append(callback)