|
|
|
@ -1,16 +1,25 @@ |
|
|
|
|
import os |
|
|
|
|
|
|
|
|
|
from cereal import car |
|
|
|
|
from common.params import Params |
|
|
|
|
from selfdrive.hardware import TICI, PC |
|
|
|
|
from selfdrive.manager.process import PythonProcess, NativeProcess, DaemonProcess |
|
|
|
|
|
|
|
|
|
WEBCAM = os.getenv("USE_WEBCAM") is not None |
|
|
|
|
|
|
|
|
|
def driverview(started: bool, params: Params, CP: car.CarParams) -> bool: |
|
|
|
|
return params.get_bool("IsDriverViewEnabled") |
|
|
|
|
|
|
|
|
|
def notcar(started: bool, params: Params, CP: car.CarParams) -> bool: |
|
|
|
|
return CP.notCar |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
procs = [ |
|
|
|
|
DaemonProcess("manage_athenad", "selfdrive.athena.manage_athenad", "AthenadPid"), |
|
|
|
|
# due to qualcomm kernel bugs SIGKILLing camerad sometimes causes page table corruption |
|
|
|
|
NativeProcess("camerad", "selfdrive/camerad", ["./camerad"], unkillable=True, driverview=True), |
|
|
|
|
NativeProcess("camerad", "selfdrive/camerad", ["./camerad"], unkillable=True, callback=driverview), |
|
|
|
|
NativeProcess("clocksd", "selfdrive/clocksd", ["./clocksd"]), |
|
|
|
|
NativeProcess("dmonitoringmodeld", "selfdrive/modeld", ["./dmonitoringmodeld"], enabled=(not PC or WEBCAM), driverview=True), |
|
|
|
|
NativeProcess("dmonitoringmodeld", "selfdrive/modeld", ["./dmonitoringmodeld"], enabled=(not PC or WEBCAM), callback=driverview), |
|
|
|
|
NativeProcess("logcatd", "selfdrive/logcatd", ["./logcatd"]), |
|
|
|
|
NativeProcess("loggerd", "selfdrive/loggerd", ["./loggerd"]), |
|
|
|
|
NativeProcess("modeld", "selfdrive/modeld", ["./modeld"]), |
|
|
|
@ -25,7 +34,7 @@ procs = [ |
|
|
|
|
PythonProcess("calibrationd", "selfdrive.locationd.calibrationd"), |
|
|
|
|
PythonProcess("controlsd", "selfdrive.controls.controlsd"), |
|
|
|
|
PythonProcess("deleter", "selfdrive.loggerd.deleter", offroad=True), |
|
|
|
|
PythonProcess("dmonitoringd", "selfdrive.monitoring.dmonitoringd", enabled=(not PC or WEBCAM), driverview=True), |
|
|
|
|
PythonProcess("dmonitoringd", "selfdrive.monitoring.dmonitoringd", enabled=(not PC or WEBCAM), callback=driverview), |
|
|
|
|
PythonProcess("logmessaged", "selfdrive.logmessaged", offroad=True), |
|
|
|
|
PythonProcess("pandad", "selfdrive.boardd.pandad", offroad=True), |
|
|
|
|
PythonProcess("paramsd", "selfdrive.locationd.paramsd"), |
|
|
|
@ -38,8 +47,8 @@ procs = [ |
|
|
|
|
PythonProcess("uploader", "selfdrive.loggerd.uploader", offroad=True), |
|
|
|
|
PythonProcess("statsd", "selfdrive.statsd", offroad=True), |
|
|
|
|
|
|
|
|
|
NativeProcess("bridge", "cereal/messaging", ["./bridge"], onroad=False, notcar=True), |
|
|
|
|
PythonProcess("webjoystick", "tools.joystick.web", onroad=False, notcar=True), |
|
|
|
|
NativeProcess("bridge", "cereal/messaging", ["./bridge"], onroad=False, callback=notcar), |
|
|
|
|
PythonProcess("webjoystick", "tools.joystick.web", onroad=False, callback=notcar), |
|
|
|
|
|
|
|
|
|
# Experimental |
|
|
|
|
PythonProcess("rawgpsd", "selfdrive.sensord.rawgps.rawgpsd", enabled=os.path.isfile("/persist/comma/use-quectel-rawgps")), |
|
|
|
|