dragonpilot - 基於 openpilot 的開源駕駛輔助系統
				
			 
			
		 
		
		
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
	
	
		
		
			
	
	
		
			
				
					
						
							|  |  |  | import importlib
 | 
					
						
							|  |  |  | from setproctitle import setproctitle  # pylint: disable=no-name-in-module
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import cereal.messaging as messaging
 | 
					
						
							|  |  |  | import selfdrive.crash as crash
 | 
					
						
							|  |  |  | from selfdrive.swaglog import cloudlog
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def launcher(proc):
 | 
					
						
							|  |  |  |   try:
 | 
					
						
							|  |  |  |     # import the process
 | 
					
						
							|  |  |  |     mod = importlib.import_module(proc)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # rename the process
 | 
					
						
							|  |  |  |     setproctitle(proc)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # create new context since we forked
 | 
					
						
							|  |  |  |     messaging.context = messaging.Context()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # exec the process
 | 
					
						
							|  |  |  |     mod.main()
 | 
					
						
							|  |  |  |   except KeyboardInterrupt:
 | 
					
						
							|  |  |  |     cloudlog.warning("child %s got SIGINT" % proc)
 | 
					
						
							|  |  |  |   except Exception:
 | 
					
						
							|  |  |  |     # can't install the crash handler becuase sys.excepthook doesn't play nice
 | 
					
						
							|  |  |  |     # with threads, so catch it here.
 | 
					
						
							|  |  |  |     crash.capture_exception()
 | 
					
						
							|  |  |  |     raise
 |