Manager cleanup (#20231)

* move manager in folder

* inital refactor

* call start

* small cleanup

* add comments

* use self.signal()

* order shouldnt matter

* newlines

* add helpers

* newlines

* add process config

* split out build part of manager

* this should fix most tests

* no sensord on pc

* dont start athena

* remove comment

* fix old athena test

* fix inject model

* fix test car models

* should be not none

* fix helpers exitcode

* ignore manage_athenad

* Use time.monotonic()

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* combine init, remove spinner

* move manager test

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 5a3b51130649356b14b24e3c82e014b3a0be95a8
This commit is contained in:
Willem Melching
2021-03-05 11:03:23 +01:00
committed by GitHub
parent 213d9255f2
commit c0098cec09
31 changed files with 786 additions and 755 deletions
+2 -2
View File
@@ -24,7 +24,7 @@ import argparse
import re
from collections import defaultdict
import selfdrive.manager as manager
from selfdrive.manager.process_config import managed_processes
# Do statistics every 5 seconds
PRINT_INTERVAL = 5
@@ -36,7 +36,7 @@ monitored_proc_names = [
# android procs
'SurfaceFlinger', 'sensors.qcom'
] + manager.car_started_processes + manager.persistent_processes
] + list(managed_processes.keys())
cpu_time_names = ['user', 'system', 'children_user', 'children_system']
+21 -15
View File
@@ -1,21 +1,27 @@
#!/usr/bin/env python3
import time
import cereal.messaging as messaging
from selfdrive.manager import start_managed_process, kill_managed_process
from selfdrive.manager.process_config import managed_processes
services = ['controlsState', 'deviceState', 'radarState'] # the services needed to be spoofed to start ui offroad
procs = ['camerad', 'ui', 'modeld', 'calibrationd']
[start_managed_process(p) for p in procs] # start needed processes
pm = messaging.PubMaster(services)
dat_controlsState, dat_deviceState, dat_radar = [messaging.new_message(s) for s in services]
dat_deviceState.deviceState.started = True
if __name__ == "__main__":
services = ['controlsState', 'deviceState', 'radarState'] # the services needed to be spoofed to start ui offroad
procs = ['camerad', 'ui', 'modeld', 'calibrationd']
try:
while True:
pm.send('controlsState', dat_controlsState)
pm.send('deviceState', dat_deviceState)
pm.send('radarState', dat_radar)
time.sleep(1 / 100) # continually send, rate doesn't matter for deviceState
except KeyboardInterrupt:
[kill_managed_process(p) for p in procs]
for p in procs:
managed_processes[p].start()
pm = messaging.PubMaster(services)
dat_controlsState, dat_deviceState, dat_radar = [messaging.new_message(s) for s in services]
dat_deviceState.deviceState.started = True
try:
while True:
pm.send('controlsState', dat_controlsState)
pm.send('deviceState', dat_deviceState)
pm.send('radarState', dat_radar)
time.sleep(1 / 100) # continually send, rate doesn't matter for deviceState
except KeyboardInterrupt:
for p in procs:
managed_processes[p].stop()