|  |  |  | #!/usr/bin/env python3
 | 
					
						
							|  |  |  | import time
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from cereal import car, log, messaging
 | 
					
						
							|  |  |  | from common.params import Params
 | 
					
						
							|  |  |  | from selfdrive.manager.process_config import managed_processes
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__":
 | 
					
						
							|  |  |  |   CP = car.CarParams(notCar=True)
 | 
					
						
							|  |  |  |   Params().put("CarParams", CP.to_bytes())
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   procs = ['camerad', 'ui', 'modeld', 'calibrationd']
 | 
					
						
							|  |  |  |   for p in procs:
 | 
					
						
							|  |  |  |     managed_processes[p].start()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   pm = messaging.PubMaster(['controlsState', 'deviceState', 'pandaStates', 'carParams'])
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   msgs = {s: messaging.new_message(s) for s in ['controlsState', 'deviceState', 'carParams']}
 | 
					
						
							|  |  |  |   msgs['deviceState'].deviceState.started = True
 | 
					
						
							|  |  |  |   msgs['carParams'].carParams.openpilotLongitudinalControl = True
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   msgs['pandaStates'] = messaging.new_message('pandaStates', 1)
 | 
					
						
							|  |  |  |   msgs['pandaStates'].pandaStates[0].ignitionLine = True
 | 
					
						
							|  |  |  |   msgs['pandaStates'].pandaStates[0].pandaType = log.PandaState.PandaType.uno
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   try:
 | 
					
						
							|  |  |  |     while True:
 | 
					
						
							|  |  |  |       time.sleep(1 / 100)  # continually send, rate doesn't matter
 | 
					
						
							|  |  |  |       for s in msgs:
 | 
					
						
							|  |  |  |         pm.send(s, msgs[s])
 | 
					
						
							|  |  |  |   except KeyboardInterrupt:
 | 
					
						
							|  |  |  |     for p in procs:
 | 
					
						
							|  |  |  |       managed_processes[p].stop()
 |