ui: kick watchdog (#35460)

* kick watchdog

* use global

* use monotonic
pull/35474/head
Dean Lee 5 days ago committed by GitHub
parent 8aadf02b2f
commit 23ea85dca6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 22
      common/watchdog.py
  2. 4
      selfdrive/ui/ui.py
  3. 3
      system/manager/process.py

@ -0,0 +1,22 @@
import os
import time
import struct
from openpilot.system.hardware.hw import Paths
WATCHDOG_FN = f"{Paths.shm_path()}/wd_"
_LAST_KICK = 0.0
def kick_watchdog():
global _LAST_KICK
current_time = time.monotonic()
if current_time - _LAST_KICK < 1.0:
return
try:
with open(f"{WATCHDOG_FN}{os.getpid()}", 'wb') as f:
f.write(struct.pack('<Q', int(current_time * 1e9)))
f.flush()
_LAST_KICK = current_time
except OSError:
pass

@ -1,10 +1,12 @@
#!/usr/bin/env python3
import pyray as rl
from openpilot.common.watchdog import kick_watchdog
from openpilot.system.ui.lib.application import gui_app
from openpilot.selfdrive.ui.layouts.main import MainLayout
from openpilot.selfdrive.ui.ui_state import ui_state
def main():
gui_app.init_window("UI")
main_layout = MainLayout()
@ -15,6 +17,8 @@ def main():
main_layout.render(rl.Rectangle(0, 0, gui_app.width, gui_app.height))
kick_watchdog()
if __name__ == "__main__":
main()

@ -16,9 +16,8 @@ import openpilot.system.sentry as sentry
from openpilot.common.basedir import BASEDIR
from openpilot.common.params import Params
from openpilot.common.swaglog import cloudlog
from openpilot.system.hardware.hw import Paths
from openpilot.common.watchdog import WATCHDOG_FN
WATCHDOG_FN = f"{Paths.shm_path()}/wd_"
ENABLE_WATCHDOG = os.getenv("NO_WATCHDOG") is None

Loading…
Cancel
Save