@ -6,7 +6,7 @@ from common.realtime import DT_CTRL 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					from  opendbc . can . can_define  import  CANDefine  
					 
					 
					 
					from  opendbc . can . can_define  import  CANDefine  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					from  opendbc . can . parser  import  CANParser  
					 
					 
					 
					from  opendbc . can . parser  import  CANParser  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					from  selfdrive . car . interfaces  import  CarStateBase  
					 
					 
					 
					from  selfdrive . car . interfaces  import  CarStateBase  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					from  selfdrive . car . toyota . values  import  ToyotaFlags ,  CAR ,  DBC ,  STEER_THRESHOLD ,  NO_STOP_TIMER_CAR ,  TSS2_CAR ,  RADAR_ACC_CAR ,  EPS_SCALE  
					 
					 
					 
					from  selfdrive . car . toyota . values  import  ToyotaFlags ,  DBC ,  STEER_THRESHOLD ,  NO_STOP_TIMER_CAR ,  TSS2_CAR ,  RADAR_ACC_CAR ,  EPS_SCALE ,  UNSUPPORTED_DSU_CAR  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					class  CarState ( CarStateBase ) :  
					 
					 
					 
					class  CarState ( CarStateBase ) :  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -87,7 +87,7 @@ class CarState(CarStateBase): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    # 17 is a fault from a prolonged high torque delta between cmd and user   
					 
					 
					 
					    # 17 is a fault from a prolonged high torque delta between cmd and user   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    ret . steerFaultPermanent  =  cp . vl [ " EPS_STATUS " ] [ " LKA_STATE " ]  ==  17   
					 
					 
					 
					    ret . steerFaultPermanent  =  cp . vl [ " EPS_STATUS " ] [ " LKA_STATE " ]  ==  17   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  self . CP . carFingerprint  in  ( CAR . LEXUS_IS ,  CAR . LEXUS_RC ) :   
					 
					 
					 
					    if  self . CP . carFingerprint  in  UNSUPPORTED_DSU_CAR :   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					      ret . cruiseState . available  =  cp . vl [ " DSU_CRUISE " ] [ " MAIN_ON " ]  !=  0   
					 
					 
					 
					      ret . cruiseState . available  =  cp . vl [ " DSU_CRUISE " ] [ " MAIN_ON " ]  !=  0   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      ret . cruiseState . speed  =  cp . vl [ " DSU_CRUISE " ] [ " SET_SPEED " ]  *  CV . KPH_TO_MS   
					 
					 
					 
					      ret . cruiseState . speed  =  cp . vl [ " DSU_CRUISE " ] [ " SET_SPEED " ]  *  CV . KPH_TO_MS   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      cluster_set_speed  =  cp . vl [ " PCM_CRUISE_ALT " ] [ " UI_SET_SPEED " ]   
					 
					 
					 
					      cluster_set_speed  =  cp . vl [ " PCM_CRUISE_ALT " ] [ " UI_SET_SPEED " ]   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -112,7 +112,7 @@ class CarState(CarStateBase): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    # these cars are identified by an ACC_TYPE value of 2.   
					 
					 
					 
					    # these cars are identified by an ACC_TYPE value of 2.   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    # TODO: it is possible to avoid the lockout and gain stop and go if you   
					 
					 
					 
					    # TODO: it is possible to avoid the lockout and gain stop and go if you   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    # send your own ACC_CONTROL msg on startup with ACC_TYPE set to 1   
					 
					 
					 
					    # send your own ACC_CONTROL msg on startup with ACC_TYPE set to 1   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( self . CP . carFingerprint  not  in  TSS2_CAR  and  self . CP . carFingerprint  not  in  ( CAR . LEXUS_IS ,  CAR . LEXUS_RC ) )  or  \  
					 
					 
					 
					    if  ( self . CP . carFingerprint  not  in  TSS2_CAR  and  self . CP . carFingerprint  not  in  UNSUPPORTED_DSU_CAR )  or  \  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					       ( self . CP . carFingerprint  in  TSS2_CAR  and  self . acc_type  ==  1 ) :   
					 
					 
					 
					       ( self . CP . carFingerprint  in  TSS2_CAR  and  self . acc_type  ==  1 ) :   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      self . low_speed_lockout  =  cp . vl [ " PCM_CRUISE_2 " ] [ " LOW_SPEED_LOCKOUT " ]  ==  2   
					 
					 
					 
					      self . low_speed_lockout  =  cp . vl [ " PCM_CRUISE_2 " ] [ " LOW_SPEED_LOCKOUT " ]  ==  2   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -196,7 +196,7 @@ class CarState(CarStateBase): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      signals . append ( ( " GAS_PEDAL " ,  " GAS_PEDAL " ) )   
					 
					 
					 
					      signals . append ( ( " GAS_PEDAL " ,  " GAS_PEDAL " ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      checks . append ( ( " GAS_PEDAL " ,  33 ) )   
					 
					 
					 
					      checks . append ( ( " GAS_PEDAL " ,  33 ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  CP . carFingerprint  in  ( CAR . LEXUS_IS ,  CAR . LEXUS_RC ) :   
					 
					 
					 
					    if  CP . carFingerprint  in  UNSUPPORTED_DSU_CAR :   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					      signals . append ( ( " MAIN_ON " ,  " DSU_CRUISE " ) )   
					 
					 
					 
					      signals . append ( ( " MAIN_ON " ,  " DSU_CRUISE " ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      signals . append ( ( " SET_SPEED " ,  " DSU_CRUISE " ) )   
					 
					 
					 
					      signals . append ( ( " SET_SPEED " ,  " DSU_CRUISE " ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      signals . append ( ( " UI_SET_SPEED " ,  " PCM_CRUISE_ALT " ) )   
					 
					 
					 
					      signals . append ( ( " UI_SET_SPEED " ,  " PCM_CRUISE_ALT " ) )