| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -23,7 +23,7 @@ from selfdrive.controls.lib.events import Events, ET | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.controls.lib.alertmanager import AlertManager | 
					 | 
					 | 
					 | 
					from selfdrive.controls.lib.alertmanager import AlertManager | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.controls.lib.vehicle_model import VehicleModel | 
					 | 
					 | 
					 | 
					from selfdrive.controls.lib.vehicle_model import VehicleModel | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.locationd.calibrationd import Calibration | 
					 | 
					 | 
					 | 
					from selfdrive.locationd.calibrationd import Calibration | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.hardware import HARDWARE, TICI | 
					 | 
					 | 
					 | 
					from selfdrive.hardware import HARDWARE, TICI, EON | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from selfdrive.manager.process_config import managed_processes | 
					 | 
					 | 
					 | 
					from selfdrive.manager.process_config import managed_processes | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					LDW_MIN_SPEED = 31 * CV.MPH_TO_MS | 
					 | 
					 | 
					 | 
					LDW_MIN_SPEED = 31 * CV.MPH_TO_MS | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -201,6 +201,9 @@ class Controls: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    # TODO: make tici threshold the same | 
					 | 
					 | 
					 | 
					    # TODO: make tici threshold the same | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if self.sm['deviceState'].memoryUsagePercent > (90 if TICI else 65) and not SIMULATION: | 
					 | 
					 | 
					 | 
					    if self.sm['deviceState'].memoryUsagePercent > (90 if TICI else 65) and not SIMULATION: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      self.events.add(EventName.lowMemory) | 
					 | 
					 | 
					 | 
					      self.events.add(EventName.lowMemory) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    cpus = list(self.sm['deviceState'].cpuUsagePercent)[:(-1 if EON else None)] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    if max(cpus, default=0) > 95: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      self.events.add(EventName.highCpuUsage) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    # Alert if fan isn't spinning for 5 seconds | 
					 | 
					 | 
					 | 
					    # Alert if fan isn't spinning for 5 seconds | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if self.sm['pandaState'].pandaType in [PandaType.uno, PandaType.dos]: | 
					 | 
					 | 
					 | 
					    if self.sm['pandaState'].pandaType in [PandaType.uno, PandaType.dos]: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |