| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -6,11 +6,13 @@ import requests | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import threading | 
					 | 
					 | 
					 | 
					import threading | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import time | 
					 | 
					 | 
					 | 
					import time | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import traceback | 
					 | 
					 | 
					 | 
					import traceback | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					from pathlib import Path | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from cereal import log | 
					 | 
					 | 
					 | 
					from cereal import log | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import cereal.messaging as messaging | 
					 | 
					 | 
					 | 
					import cereal.messaging as messaging | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from common.api import Api | 
					 | 
					 | 
					 | 
					from common.api import Api | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from common.params import Params | 
					 | 
					 | 
					 | 
					from common.params import Params | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					from selfdrive.hardware import TICI | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.loggerd.xattr_cache import getxattr, setxattr | 
					 | 
					 | 
					 | 
					from selfdrive.loggerd.xattr_cache import getxattr, setxattr | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.loggerd.config import ROOT | 
					 | 
					 | 
					 | 
					from selfdrive.loggerd.config import ROOT | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.swaglog import cloudlog | 
					 | 
					 | 
					 | 
					from selfdrive.swaglog import cloudlog | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -198,6 +200,9 @@ def uploader_fn(exit_event): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    cloudlog.info("uploader missing dongle_id") | 
					 | 
					 | 
					 | 
					    cloudlog.info("uploader missing dongle_id") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    raise Exception("uploader can't start without dongle id") | 
					 | 
					 | 
					 | 
					    raise Exception("uploader can't start without dongle id") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  if TICI and not Path("/data/media").is_mount(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    cloudlog.debug("NVME not mounted") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  sm = messaging.SubMaster(['deviceState']) | 
					 | 
					 | 
					 | 
					  sm = messaging.SubMaster(['deviceState']) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  uploader = Uploader(dongle_id, ROOT) | 
					 | 
					 | 
					 | 
					  uploader = Uploader(dongle_id, ROOT) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |