something like this

old-commit-hash: 123d6ed845d662aec2bd95d1ccf9c2782308d693
pull/32103/head
Shane Smiskol 1 year ago
parent 497bd8115b
commit 6927015b45
  1. 21
      selfdrive/pandad/pandad.py

@ -3,7 +3,9 @@
import os
import usb1
import time
import signal
import subprocess
import sys
from typing import NoReturn
from panda import Panda, PandaDFU, PandaProtocolMismatch, FW_PATH
@ -62,12 +64,26 @@ def flash_panda(panda_serial: str) -> Panda:
def main() -> NoReturn:
# override manager's immediate SystemExit to allow pandad to exit gracefully
do_exit = False
def signal_handler(signum, frame):
nonlocal do_exit, process
do_exit = True
cloudlog.warning(f"caught signal {signum}, exiting")
if process is not None:
process.terminate()
sys.exit(0)
signal.signal(signal.SIGTERM, signal_handler)
count = 0
first_run = True
params = Params()
no_internal_panda_count = 0
while True:
while not do_exit:
try:
count += 1
cloudlog.event("pandad.flash_and_connect", count=count)
@ -160,7 +176,8 @@ def main() -> NoReturn:
# run pandad with all connected serials as arguments
os.environ['MANAGER_DAEMON'] = 'pandad'
os.chdir(os.path.join(BASEDIR, "selfdrive/pandad"))
subprocess.run(["./pandad", *panda_serials], check=True)
process = subprocess.Popen(["./pandad", *panda_serials])
process.wait()
if __name__ == "__main__":
main()

Loading…
Cancel
Save