|  |  | @ -64,7 +64,7 @@ class Controls: | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     # Setup sockets |  |  |  |     # Setup sockets | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.pm = messaging.PubMaster(['sendcan', 'controlsState', 'carState', |  |  |  |     self.pm = messaging.PubMaster(['sendcan', 'controlsState', 'carState', | 
			
		
	
		
		
			
				
					
					|  |  |  |                                    'carControl', 'carEvents', 'carParams']) |  |  |  |                                    'carControl', 'onroadEvents', 'carParams']) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.sensor_packets = ["accelerometer", "gyroscope"] |  |  |  |     self.sensor_packets = ["accelerometer", "gyroscope"] | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.camera_packets = ["roadCameraState", "driverCameraState", "wideRoadCameraState"] |  |  |  |     self.camera_packets = ["roadCameraState", "driverCameraState", "wideRoadCameraState"] | 
			
		
	
	
		
		
			
				
					|  |  | @ -212,7 +212,7 @@ class Controls: | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.state = State.enabled |  |  |  |         self.state = State.enabled | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def update_events(self, CS): |  |  |  |   def update_events(self, CS): | 
			
		
	
		
		
			
				
					
					|  |  |  |     """Compute carEvents from carState""" |  |  |  |     """Compute onroadEvents from carState""" | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.events.clear() |  |  |  |     self.events.clear() | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -823,11 +823,11 @@ class Controls: | 
			
		
	
		
		
			
				
					
					|  |  |  |     cs_send.carState.events = car_events |  |  |  |     cs_send.carState.events = car_events | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.pm.send('carState', cs_send) |  |  |  |     self.pm.send('carState', cs_send) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     # carEvents - logged every second or on change |  |  |  |     # onroadEvents - logged every second or on change | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     if (self.sm.frame % int(1. / DT_CTRL) == 0) or (self.events.names != self.events_prev): |  |  |  |     if (self.sm.frame % int(1. / DT_CTRL) == 0) or (self.events.names != self.events_prev): | 
			
		
	
		
		
			
				
					
					|  |  |  |       ce_send = messaging.new_message('carEvents', len(self.events)) |  |  |  |       ce_send = messaging.new_message('onroadEvents', len(self.events)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       ce_send.carEvents = car_events |  |  |  |       ce_send.onroadEvents = car_events | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       self.pm.send('carEvents', ce_send) |  |  |  |       self.pm.send('onroadEvents', ce_send) | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     self.events_prev = self.events.names.copy() |  |  |  |     self.events_prev = self.events.names.copy() | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     # carParams - logged every 50 seconds (> 1 per segment) |  |  |  |     # carParams - logged every 50 seconds (> 1 per segment) | 
			
		
	
	
		
		
			
				
					|  |  | 
 |