`reset`: timeout after prolonged inactivity (#35859)

* reset

* pc

* const

* x
pull/35860/head
Maxime Desroches 1 week ago committed by GitHub
parent e32a2ce164
commit c4b63cd439
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 10
      system/ui/reset.py

@ -2,6 +2,7 @@
import os
import sys
import threading
import time
from enum import IntEnum
import pyray as rl
@ -14,6 +15,7 @@ from openpilot.system.ui.widgets.label import gui_label, gui_text_box
NVME = "/dev/nvme0n1"
USERDATA = "/dev/disk/by-partlabel/userdata"
TIMEOUT = 3*60
class ResetMode(IntEnum):
@ -33,6 +35,7 @@ class Reset(Widget):
def __init__(self, mode):
super().__init__()
self._mode = mode
self._previous_reset_state = None
self._reset_state = ResetState.NONE
self._cancel_button = Button("Cancel", self._cancel_callback)
self._confirm_button = Button("Confirm", self._confirm, button_style=ButtonStyle.PRIMARY)
@ -64,6 +67,13 @@ class Reset(Widget):
self._reset_state = ResetState.RESETTING
threading.Timer(0.1, self._do_erase).start()
def _update_state(self):
if self._reset_state != self._previous_reset_state:
self._previous_reset_state = self._reset_state
self._timeout_st = time.monotonic()
elif self._reset_state != ResetState.RESETTING and (time.monotonic() - self._timeout_st) > TIMEOUT:
exit(0)
def _render(self, rect: rl.Rectangle):
label_rect = rl.Rectangle(rect.x + 140, rect.y, rect.width - 280, 100)
gui_label(label_rect, "System Reset", 100, font_weight=FontWeight.BOLD)

Loading…
Cancel
Save