|  |  |  | @ -1,7 +1,7 @@ | 
			
		
	
		
			
				
					|  |  |  |  | #!/usr/bin/env python3 | 
			
		
	
		
			
				
					|  |  |  |  | from cereal import car | 
			
		
	
		
			
				
					|  |  |  |  | from selfdrive.config import Conversions as CV | 
			
		
	
		
			
				
					|  |  |  |  | from selfdrive.car.toyota.values import Ecu, ECU_FINGERPRINT, CAR, TSS2_CAR, FINGERPRINTS, CarControllerParams | 
			
		
	
		
			
				
					|  |  |  |  | from selfdrive.car.toyota.values import Ecu, ECU_FINGERPRINT, CAR, TSS2_CAR, NO_DSU_CAR, FINGERPRINTS, CarControllerParams | 
			
		
	
		
			
				
					|  |  |  |  | from selfdrive.car import STD_CARGO_KG, scale_rot_inertia, scale_tire_stiffness, is_ecu_disconnected, gen_empty_fingerprint | 
			
		
	
		
			
				
					|  |  |  |  | from selfdrive.swaglog import cloudlog | 
			
		
	
		
			
				
					|  |  |  |  | from selfdrive.car.interfaces import CarInterfaceBase | 
			
		
	
	
		
			
				
					|  |  |  | @ -313,8 +313,9 @@ class CarInterface(CarInterfaceBase): | 
			
		
	
		
			
				
					|  |  |  |  |     ret.enableCamera = True | 
			
		
	
		
			
				
					|  |  |  |  |     # Detect smartDSU, which intercepts ACC_CMD from the DSU allowing openpilot to send it | 
			
		
	
		
			
				
					|  |  |  |  |     smartDsu = 0x2FF in fingerprint[0] | 
			
		
	
		
			
				
					|  |  |  |  |     # TODO: use FW query for the enableDsu flag | 
			
		
	
		
			
				
					|  |  |  |  |     # In TSS2 cars the camera does long control | 
			
		
	
		
			
				
					|  |  |  |  |     ret.enableDsu = is_ecu_disconnected(fingerprint[0], FINGERPRINTS, ECU_FINGERPRINT, candidate, Ecu.dsu) and candidate not in TSS2_CAR | 
			
		
	
		
			
				
					|  |  |  |  |     ret.enableDsu = is_ecu_disconnected(fingerprint[0], FINGERPRINTS, ECU_FINGERPRINT, candidate, Ecu.dsu) and candidate not in NO_DSU_CAR | 
			
		
	
		
			
				
					|  |  |  |  |     ret.enableGasInterceptor = 0x201 in fingerprint[0] | 
			
		
	
		
			
				
					|  |  |  |  |     # if the smartDSU is detected, openpilot can send ACC_CMD (and the smartDSU will block it from the DSU) or not (the DSU is "connected") | 
			
		
	
		
			
				
					|  |  |  |  |     ret.openpilotLongitudinalControl = ret.enableCamera and (smartDsu or ret.enableDsu or candidate in TSS2_CAR) | 
			
		
	
	
		
			
				
					|  |  |  | 
 |