|  |  | @ -1,14 +1,11 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | #!/usr/bin/env python3 |  |  |  | #!/usr/bin/env python3 | 
			
		
	
		
		
			
				
					
					|  |  |  | from opendbc.can.parser import CANParser |  |  |  | from opendbc.can.parser import CANParser | 
			
		
	
		
		
			
				
					
					|  |  |  | from cereal import car |  |  |  | from cereal import car | 
			
		
	
		
		
			
				
					
					|  |  |  | from selfdrive.car.toyota.values import NO_DSU_CAR, DBC, TSS2_CAR |  |  |  | from selfdrive.car.toyota.values import DBC, TSS2_CAR | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | from selfdrive.car.interfaces import RadarInterfaceBase |  |  |  | from selfdrive.car.interfaces import RadarInterfaceBase | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | def _create_radar_can_parser(car_fingerprint): |  |  |  | def _create_radar_can_parser(car_fingerprint): | 
			
		
	
		
		
			
				
					
					|  |  |  |   if DBC[car_fingerprint]['radar'] is None: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     return None |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   if car_fingerprint in TSS2_CAR: |  |  |  |   if car_fingerprint in TSS2_CAR: | 
			
		
	
		
		
			
				
					
					|  |  |  |     RADAR_A_MSGS = list(range(0x180, 0x190)) |  |  |  |     RADAR_A_MSGS = list(range(0x180, 0x190)) | 
			
		
	
		
		
			
				
					
					|  |  |  |     RADAR_B_MSGS = list(range(0x190, 0x1a0)) |  |  |  |     RADAR_B_MSGS = list(range(0x190, 0x1a0)) | 
			
		
	
	
		
		
			
				
					|  |  | @ -42,16 +39,12 @@ class RadarInterface(RadarInterfaceBase): | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.valid_cnt = {key: 0 for key in self.RADAR_A_MSGS} |  |  |  |     self.valid_cnt = {key: 0 for key in self.RADAR_A_MSGS} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.rcp = _create_radar_can_parser(CP.carFingerprint) |  |  |  |     self.rcp = None if CP.radarUnavailable else _create_radar_can_parser(CP.carFingerprint) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     self.trigger_msg = self.RADAR_B_MSGS[-1] |  |  |  |     self.trigger_msg = self.RADAR_B_MSGS[-1] | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.updated_messages = set() |  |  |  |     self.updated_messages = set() | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     # No radar dbc for cars without DSU which are not TSS 2.0 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     # TODO: make a adas dbc file for dsu-less models |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.no_radar = CP.carFingerprint in NO_DSU_CAR and CP.carFingerprint not in TSS2_CAR |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   def update(self, can_strings): |  |  |  |   def update(self, can_strings): | 
			
		
	
		
		
			
				
					
					|  |  |  |     if self.no_radar or self.rcp is None: |  |  |  |     if self.rcp is None: | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       return super().update(None) |  |  |  |       return super().update(None) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     vls = self.rcp.update_strings(can_strings) |  |  |  |     vls = self.rcp.update_strings(can_strings) | 
			
		
	
	
		
		
			
				
					|  |  | 
 |