|  |  | @ -251,13 +251,6 @@ def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messag | 
			
		
	
		
		
			
				
					
					|  |  |  |     Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .2) |  |  |  |     Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .2) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | def no_gps_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   return Alert( |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     "Poor GPS reception", |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     "Hardware malfunctioning if sky is visible", |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     AlertStatus.normal, AlertSize.mid, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     Priority.LOWER, VisualAlert.none, AudibleAlert.none, .2, creation_delay=300.) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | # *** debug alerts *** |  |  |  | # *** debug alerts *** | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | def out_of_space_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: |  |  |  | def out_of_space_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: | 
			
		
	
	
		
		
			
				
					|  |  | @ -559,9 +552,6 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { | 
			
		
	
		
		
			
				
					
					|  |  |  |   }, |  |  |  |   }, | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   # Unused |  |  |  |   # Unused | 
			
		
	
		
		
			
				
					
					|  |  |  |   EventName.gpsMalfunction: { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     ET.PERMANENT: NormalPermanentAlert("GPS Malfunction", "Likely Hardware Issue"), |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   EventName.locationdTemporaryError: { |  |  |  |   EventName.locationdTemporaryError: { | 
			
		
	
		
		
			
				
					
					|  |  |  |     ET.NO_ENTRY: NoEntryAlert("locationd Temporary Error"), |  |  |  |     ET.NO_ENTRY: NoEntryAlert("locationd Temporary Error"), | 
			
		
	
	
		
		
			
				
					|  |  | @ -696,7 +686,11 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { | 
			
		
	
		
		
			
				
					
					|  |  |  |   }, |  |  |  |   }, | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   EventName.noGps: { |  |  |  |   EventName.noGps: { | 
			
		
	
		
		
			
				
					
					|  |  |  |     ET.PERMANENT: no_gps_alert, |  |  |  |     ET.PERMANENT: Alert( | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       "Poor GPS reception", | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       "Ensure device has a clear view of the sky", | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       AlertStatus.normal, AlertSize.mid, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       Priority.LOWER, VisualAlert.none, AudibleAlert.none, .2, creation_delay=600.) | 
			
		
	
		
		
			
				
					
					|  |  |  |   }, |  |  |  |   }, | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   EventName.soundsUnavailable: { |  |  |  |   EventName.soundsUnavailable: { | 
			
		
	
	
		
		
			
				
					|  |  | 
 |