@ -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 }