|  |  | @ -42,15 +42,19 @@ def cycle_alerts(duration=200, is_metric=False): | 
			
		
	
		
		
			
				
					
					|  |  |  |     #(EventName.outOfSpace, ET.PERMANENT), |  |  |  |     #(EventName.outOfSpace, ET.PERMANENT), | 
			
		
	
		
		
			
				
					
					|  |  |  |     #(EventName.modeldLagging, ET.PERMANENT), |  |  |  |     #(EventName.modeldLagging, ET.PERMANENT), | 
			
		
	
		
		
			
				
					
					|  |  |  |     #(EventName.processNotRunning, ET.NO_ENTRY), |  |  |  |     #(EventName.processNotRunning, ET.NO_ENTRY), | 
			
		
	
		
		
			
				
					
					|  |  |  |     (EventName.commIssue, ET.NO_ENTRY), |  |  |  |     #(EventName.commIssue, ET.NO_ENTRY), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     (EventName.calibrationInvalid, ET.PERMANENT), |  |  |  |     #(EventName.calibrationInvalid, ET.PERMANENT), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     (EventName.posenetInvalid, ET.NO_ENTRY), |  |  |  |     (EventName.cameraMalfunction, ET.PERMANENT), | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     (EventName.cameraFrameRate, ET.PERMANENT), | 
			
		
	
		
		
			
				
					
					|  |  |  |   ] |  |  |  |   ] | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   cameras = ['roadCameraState', 'wideRoadCameraState', 'driverCameraState'] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   CS = car.CarState.new_message() |  |  |  |   CS = car.CarState.new_message() | 
			
		
	
		
		
			
				
					
					|  |  |  |   CP = CarInterface.get_params("HONDA CIVIC 2016") |  |  |  |   CP = CarInterface.get_params("HONDA CIVIC 2016") | 
			
		
	
		
		
			
				
					
					|  |  |  |   sm = messaging.SubMaster(['deviceState', 'pandaStates', 'roadCameraState', 'modelV2', 'liveCalibration', |  |  |  |   sm = messaging.SubMaster(['deviceState', 'pandaStates', 'roadCameraState', 'modelV2', 'liveCalibration', | 
			
		
	
		
		
			
				
					
					|  |  |  |                             'driverMonitoringState', 'longitudinalPlan', 'lateralPlan', 'liveLocationKalman', 'managerState']) |  |  |  |                             'driverMonitoringState', 'longitudinalPlan', 'lateralPlan', 'liveLocationKalman', | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             'managerState'] + cameras) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   pm = messaging.PubMaster(['controlsState', 'pandaStates', 'deviceState']) |  |  |  |   pm = messaging.PubMaster(['controlsState', 'pandaStates', 'deviceState']) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -84,9 +88,10 @@ def cycle_alerts(duration=200, is_metric=False): | 
			
		
	
		
		
			
				
					
					|  |  |  |       sm['liveCalibration'].rpyCalib = [-1 * random.random() for _ in range(random.randint(0, 3))] |  |  |  |       sm['liveCalibration'].rpyCalib = [-1 * random.random() for _ in range(random.randint(0, 3))] | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       for s in sm.data.keys(): |  |  |  |       for s in sm.data.keys(): | 
			
		
	
		
		
			
				
					
					|  |  |  |         sm.alive[s] = random.random() > 0.08 |  |  |  |         prob = 0.3 if s in cameras else 0.08 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         sm.valid[s] = random.random() > 0.08 |  |  |  |         sm.alive[s] = random.random() > prob | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         sm.freq_ok[s] = random.random() > 0.08 |  |  |  |         sm.valid[s] = random.random() > prob | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         sm.freq_ok[s] = random.random() > prob | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       a = events.create_alerts([et, ], [CP, CS, sm, is_metric, 0]) |  |  |  |       a = events.create_alerts([et, ], [CP, CS, sm, is_metric, 0]) | 
			
		
	
		
		
			
				
					
					|  |  |  |       AM.add_many(frame, a) |  |  |  |       AM.add_many(frame, a) | 
			
		
	
	
		
		
			
				
					|  |  | 
 |