@ -8,13 +8,13 @@ from openpilot.selfdrive.manager.process import PythonProcess, NativeProcess, Da
WEBCAM = os . getenv ( " USE_WEBCAM " ) is not None
WEBCAM = os . getenv ( " USE_WEBCAM " ) is not None
def driverview ( started : bool , params : Params , CP : car . CarParams ) - > bool :
def driverview ( started : bool , params : Params , CP : car . CarParams ) - > bool :
return params . get_bool ( " IsDriverViewEnabled " ) # type: ignore
return started or params . get_bool ( " IsDriverViewEnabled " )
def notcar ( started : bool , params : Params , CP : car . CarParams ) - > bool :
def notcar ( started : bool , params : Params , CP : car . CarParams ) - > bool :
return CP . notCar # type: ignore
return started and CP . notCar
def iscar ( started : bool , params : Params , CP : car . CarParams ) - > bool :
def iscar ( started : bool , params : Params , CP : car . CarParams ) - > bool :
return not CP . notCar
return started and not CP . notCar
def logging ( started , params , CP : car . CarParams ) - > bool :
def logging ( started , params , CP : car . CarParams ) - > bool :
run = ( not CP . notCar ) or not params . get_bool ( " DisableLogging " )
run = ( not CP . notCar ) or not params . get_bool ( " DisableLogging " )
@ -32,51 +32,61 @@ def ublox(started, params, CP: car.CarParams) -> bool:
def qcomgps ( started , params , CP : car . CarParams ) - > bool :
def qcomgps ( started , params , CP : car . CarParams ) - > bool :
return started and not ublox_available ( )
return started and not ublox_available ( )
procs = [
def always_run ( started , params , CP : car . CarParams ) - > bool :
NativeProcess ( " camerad " , " system/camerad " , [ " ./camerad " ] , callback = driverview ) ,
return True
NativeProcess ( " clocksd " , " system/clocksd " , [ " ./clocksd " ] ) ,
NativeProcess ( " logcatd " , " system/logcatd " , [ " ./logcatd " ] ) ,
def only_onroad ( started : bool , params , CP : car . CarParams ) - > bool :
NativeProcess ( " proclogd " , " system/proclogd " , [ " ./proclogd " ] ) ,
return started
PythonProcess ( " logmessaged " , " system.logmessaged " , offroad = True ) ,
PythonProcess ( " micd " , " system.micd " , callback = iscar ) ,
def only_offroad ( started , params , CP : car . CarParams ) - > bool :
PythonProcess ( " timezoned " , " system.timezoned " , enabled = not PC , offroad = True ) ,
return not started
procs = [
DaemonProcess ( " manage_athenad " , " selfdrive.athena.manage_athenad " , " AthenadPid " ) ,
DaemonProcess ( " manage_athenad " , " selfdrive.athena.manage_athenad " , " AthenadPid " ) ,
NativeProcess ( " dmonitoringmodeld " , " selfdrive/modeld " , [ " ./dmonitoringmodeld " ] , enabled = ( not PC or WEBCAM ) , callback = driverview ) ,
NativeProcess ( " encoderd " , " system/loggerd " , [ " ./encoderd " ] ) ,
NativeProcess ( " camerad " , " system/camerad " , [ " ./camerad " ] , driverview ) ,
NativeProcess ( " stream_encoderd " , " system/loggerd " , [ " ./encoderd " , " --stream " ] , onroad = False , callback = notcar ) ,
NativeProcess ( " clocksd " , " system/clocksd " , [ " ./clocksd " ] , only_onroad ) ,
NativeProcess ( " loggerd " , " system/loggerd " , [ " ./loggerd " ] , onroad = False , callback = logging ) ,
NativeProcess ( " logcatd " , " system/logcatd " , [ " ./logcatd " ] , only_onroad ) ,
NativeProcess ( " modeld " , " selfdrive/modeld " , [ " ./modeld " ] ) ,
NativeProcess ( " proclogd " , " system/proclogd " , [ " ./proclogd " ] , only_onroad ) ,
NativeProcess ( " mapsd " , " selfdrive/navd " , [ " ./mapsd " ] ) ,
PythonProcess ( " logmessaged " , " system.logmessaged " , always_run ) ,
NativeProcess ( " navmodeld " , " selfdrive/modeld " , [ " ./navmodeld " ] ) ,
PythonProcess ( " micd " , " system.micd " , iscar ) ,
NativeProcess ( " sensord " , " system/sensord " , [ " ./sensord " ] , enabled = not PC ) ,
PythonProcess ( " timezoned " , " system.timezoned " , always_run , enabled = not PC ) ,
NativeProcess ( " ui " , " selfdrive/ui " , [ " ./ui " ] , offroad = True , watchdog_max_dt = ( 5 if not PC else None ) ) ,
NativeProcess ( " soundd " , " selfdrive/ui/soundd " , [ " ./soundd " ] ) ,
NativeProcess ( " dmonitoringmodeld " , " selfdrive/modeld " , [ " ./dmonitoringmodeld " ] , driverview , enabled = ( not PC or WEBCAM ) ) ,
NativeProcess ( " locationd " , " selfdrive/locationd " , [ " ./locationd " ] ) ,
NativeProcess ( " encoderd " , " system/loggerd " , [ " ./encoderd " ] , only_onroad ) ,
NativeProcess ( " boardd " , " selfdrive/boardd " , [ " ./boardd " ] , enabled = False ) ,
NativeProcess ( " stream_encoderd " , " system/loggerd " , [ " ./encoderd " , " --stream " ] , notcar ) ,
PythonProcess ( " calibrationd " , " selfdrive.locationd.calibrationd " ) ,
NativeProcess ( " loggerd " , " system/loggerd " , [ " ./loggerd " ] , logging ) ,
PythonProcess ( " torqued " , " selfdrive.locationd.torqued " ) ,
NativeProcess ( " modeld " , " selfdrive/modeld " , [ " ./modeld " ] , only_onroad ) ,
PythonProcess ( " controlsd " , " selfdrive.controls.controlsd " ) ,
NativeProcess ( " mapsd " , " selfdrive/navd " , [ " ./mapsd " ] , only_onroad ) ,
PythonProcess ( " deleter " , " system.loggerd.deleter " , offroad = True ) ,
NativeProcess ( " navmodeld " , " selfdrive/modeld " , [ " ./navmodeld " ] , only_onroad ) ,
PythonProcess ( " dmonitoringd " , " selfdrive.monitoring.dmonitoringd " , enabled = ( not PC or WEBCAM ) , callback = driverview ) ,
NativeProcess ( " sensord " , " system/sensord " , [ " ./sensord " ] , only_onroad , enabled = not PC ) ,
PythonProcess ( " laikad " , " selfdrive.locationd.laikad " ) ,
NativeProcess ( " ui " , " selfdrive/ui " , [ " ./ui " ] , always_run , watchdog_max_dt = ( 5 if not PC else None ) ) ,
PythonProcess ( " rawgpsd " , " system.sensord.rawgps.rawgpsd " , enabled = TICI , onroad = False , callback = qcomgps ) ,
NativeProcess ( " soundd " , " selfdrive/ui/soundd " , [ " ./soundd " ] , only_onroad ) ,
PythonProcess ( " navd " , " selfdrive.navd.navd " ) ,
NativeProcess ( " locationd " , " selfdrive/locationd " , [ " ./locationd " ] , only_onroad ) ,
PythonProcess ( " pandad " , " selfdrive.boardd.pandad " , offroad = True ) ,
NativeProcess ( " boardd " , " selfdrive/boardd " , [ " ./boardd " ] , always_run , enabled = False ) ,
PythonProcess ( " paramsd " , " selfdrive.locationd.paramsd " ) ,
PythonProcess ( " calibrationd " , " selfdrive.locationd.calibrationd " , only_onroad ) ,
NativeProcess ( " ubloxd " , " system/ubloxd " , [ " ./ubloxd " ] , enabled = TICI , onroad = False , callback = ublox ) ,
PythonProcess ( " torqued " , " selfdrive.locationd.torqued " , only_onroad ) ,
PythonProcess ( " pigeond " , " system.sensord.pigeond " , enabled = TICI , onroad = False , callback = ublox ) ,
PythonProcess ( " controlsd " , " selfdrive.controls.controlsd " , only_onroad ) ,
PythonProcess ( " plannerd " , " selfdrive.controls.plannerd " ) ,
PythonProcess ( " deleter " , " system.loggerd.deleter " , always_run ) ,
PythonProcess ( " radard " , " selfdrive.controls.radard " ) ,
PythonProcess ( " dmonitoringd " , " selfdrive.monitoring.dmonitoringd " , driverview , enabled = ( not PC or WEBCAM ) ) ,
PythonProcess ( " thermald " , " selfdrive.thermald.thermald " , offroad = True ) ,
PythonProcess ( " laikad " , " selfdrive.locationd.laikad " , only_onroad ) ,
PythonProcess ( " tombstoned " , " selfdrive.tombstoned " , enabled = not PC , offroad = True ) ,
PythonProcess ( " rawgpsd " , " system.sensord.rawgps.rawgpsd " , qcomgps , enabled = TICI ) ,
PythonProcess ( " updated " , " selfdrive.updated " , enabled = not PC , onroad = False , offroad = True ) ,
PythonProcess ( " navd " , " selfdrive.navd.navd " , only_onroad ) ,
PythonProcess ( " uploader " , " system.loggerd.uploader " , offroad = True ) ,
PythonProcess ( " pandad " , " selfdrive.boardd.pandad " , always_run ) ,
PythonProcess ( " statsd " , " selfdrive.statsd " , offroad = True ) ,
PythonProcess ( " paramsd " , " selfdrive.locationd.paramsd " , only_onroad ) ,
NativeProcess ( " ubloxd " , " system/ubloxd " , [ " ./ubloxd " ] , ublox , enabled = TICI ) ,
PythonProcess ( " pigeond " , " system.sensord.pigeond " , ublox , enabled = TICI ) ,
PythonProcess ( " plannerd " , " selfdrive.controls.plannerd " , only_onroad ) ,
PythonProcess ( " radard " , " selfdrive.controls.radard " , only_onroad ) ,
PythonProcess ( " thermald " , " selfdrive.thermald.thermald " , always_run ) ,
PythonProcess ( " tombstoned " , " selfdrive.tombstoned " , always_run , enabled = not PC ) ,
PythonProcess ( " updated " , " selfdrive.updated " , only_offroad , enabled = not PC ) ,
PythonProcess ( " uploader " , " system.loggerd.uploader " , always_run ) ,
PythonProcess ( " statsd " , " selfdrive.statsd " , always_run ) ,
# debug procs
# debug procs
NativeProcess ( " bridge " , " cereal/messaging " , [ " ./bridge " ] , onroad = False , callback = notcar ) ,
NativeProcess ( " bridge " , " cereal/messaging " , [ " ./bridge " ] , notcar ) ,
PythonProcess ( " webjoystick " , " tools.bodyteleop.web " , onroad = False , callback = notcar ) ,
PythonProcess ( " webjoystick " , " tools.bodyteleop.web " , notcar ) ,
]
]
managed_processes = { p . name : p for p in procs }
managed_processes = { p . name : p for p in procs }