From bd2c65ea6d3aa270e56de2c42fd41a0e1b2be982 Mon Sep 17 00:00:00 2001 From: dragonpilot Date: Mon, 19 Aug 2019 15:26:21 +1000 Subject: [PATCH] =?UTF-8?q?=E8=AE=93tomtom/autonavi=20=E5=9C=A8=E8=B5=B7?= =?UTF-8?q?=E5=8B=95=E6=99=82=E8=87=AA=E5=8B=95=E5=95=9F=E5=8B=95=EF=BC=8C?= =?UTF-8?q?=E7=86=84=E7=81=AB=E6=99=82=E8=87=AA=E5=8B=95=E9=97=9C=E9=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- selfdrive/manager.py | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/selfdrive/manager.py b/selfdrive/manager.py index d1c598566..84d129cad 100755 --- a/selfdrive/manager.py +++ b/selfdrive/manager.py @@ -95,6 +95,7 @@ from selfdrive.version import version, dirty import selfdrive.crash as crash from selfdrive.loggerd.config import ROOT +from common.realtime import sec_since_boot # comment out anything you don't want to run managed_processes = { @@ -378,12 +379,23 @@ def manager_thread(): logger_dead = False - if params.get("DragonBootTomTom") == "1": - system("am start -n com.tomtom.speedcams.android.map/com.tomtom.speedcams.android.activities.SpeedCamActivity") - if params.get("DragonBootAutonavi") == "1": - system("am start -n com.autonavi.amapauto/.MainMapActivity") + tomtom_started = False + autonavi_started = False + dp_last_check = 0. while 1: + ts = sec_since_boot() + if ts - dp_last_check > 3.: + try: + tomtom_started = False if subprocess.check_output(['pidof', 'com.tomtom.speedcams.android.map']) == "" else True + except subprocess.CalledProcessError as e: + tomtom_started = False + + try: + autonavi_started = False if subprocess.check_output(['pidof', 'com.autonavi.amapauto']) == "" else True + except subprocess.CalledProcessError as e: + autonavi_started = False + msg = messaging.recv_sock(thermal_sock, wait=True) # uploader is gated based on the phone temperature @@ -401,11 +413,24 @@ def manager_thread(): kill_managed_process(p) else: start_managed_process(p) + + # dragonpilot, handle tomtom/autonavi + if params.get("DragonBootTomTom") == "1" and not tomtom_started: + system("am start -n com.tomtom.speedcams.android.map/com.tomtom.speedcams.android.activities.SpeedCamActivity") + if params.get("DragonBootAutonavi") == "1" and not autonavi_started: + system("am start -n com.autonavi.amapauto/.MainMapActivity") + else: logger_dead = False for p in car_started_processes: kill_managed_process(p) + # dragonpilot, handle tomtom/autonavi + if params.get("DragonBootTomTom") == "1" and tomtom_started: + system("pkill com.tomtom.speedcams.android.map") + if params.get("DragonBootAutonavi") == "1" and autonavi_started: + system("pkill com.autonavi.amapauto") + # check the status of all processes, did any of them die? running_list = [" running %s %s" % (p, running[p]) for p in running] cloudlog.debug('\n'.join(running_list))