mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-05 00:05:59 +08:00
Expose Python UI Screen Timeout Variables
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user