|  |  | @ -4,7 +4,7 @@ from openpilot.common.conversions import Conversions as CV | 
			
		
	
		
		
			
				
					
					|  |  |  | from openpilot.selfdrive.car.interfaces import CarStateBase |  |  |  | from openpilot.selfdrive.car.interfaces import CarStateBase | 
			
		
	
		
		
			
				
					
					|  |  |  | from opendbc.can.parser import CANParser |  |  |  | from opendbc.can.parser import CANParser | 
			
		
	
		
		
			
				
					
					|  |  |  | from openpilot.selfdrive.car.volkswagen.values import DBC, CANBUS, PQ_CARS, NetworkLocation, TransmissionType, GearShifter, \ |  |  |  | from openpilot.selfdrive.car.volkswagen.values import DBC, CANBUS, PQ_CARS, NetworkLocation, TransmissionType, GearShifter, \ | 
			
		
	
		
		
			
				
					
					|  |  |  |                                             CarControllerParams |  |  |  |                                             CarControllerParams, VolkswagenFlags | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | class CarState(CarStateBase): |  |  |  | class CarState(CarStateBase): | 
			
		
	
	
		
		
			
				
					|  |  | @ -14,6 +14,7 @@ class CarState(CarStateBase): | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.button_states = {button.event_type: False for button in self.CCP.BUTTONS} |  |  |  |     self.button_states = {button.event_type: False for button in self.CCP.BUTTONS} | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.esp_hold_confirmation = False |  |  |  |     self.esp_hold_confirmation = False | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.upscale_lead_car_signal = False |  |  |  |     self.upscale_lead_car_signal = False | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     self.eps_stock_values = False | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def create_button_events(self, pt_cp, buttons): |  |  |  |   def create_button_events(self, pt_cp, buttons): | 
			
		
	
		
		
			
				
					
					|  |  |  |     button_events = [] |  |  |  |     button_events = [] | 
			
		
	
	
		
		
			
				
					|  |  | @ -59,6 +60,11 @@ class CarState(CarStateBase): | 
			
		
	
		
		
			
				
					
					|  |  |  |     ret.steerFaultPermanent = hca_status in ("DISABLED", "FAULT") |  |  |  |     ret.steerFaultPermanent = hca_status in ("DISABLED", "FAULT") | 
			
		
	
		
		
			
				
					
					|  |  |  |     ret.steerFaultTemporary = hca_status in ("INITIALIZING", "REJECTED") |  |  |  |     ret.steerFaultTemporary = hca_status in ("INITIALIZING", "REJECTED") | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     # VW Emergency Assist status tracking and mitigation | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     self.eps_stock_values = pt_cp.vl["LH_EPS_03"] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       ret.carFaultedNonCritical = bool(cam_cp.vl["HCA_01"]["EA_Ruckfreigabe"]) or cam_cp.vl["HCA_01"]["EA_ACC_Sollstatus"] > 0 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     # Update gas, brakes, and gearshift. |  |  |  |     # Update gas, brakes, and gearshift. | 
			
		
	
		
		
			
				
					
					|  |  |  |     ret.gas = pt_cp.vl["Motor_20"]["MO_Fahrpedalrohwert_01"] / 100.0 |  |  |  |     ret.gas = pt_cp.vl["Motor_20"]["MO_Fahrpedalrohwert_01"] / 100.0 | 
			
		
	
		
		
			
				
					
					|  |  |  |     ret.gasPressed = ret.gas > 0 |  |  |  |     ret.gasPressed = ret.gas > 0 | 
			
		
	
	
		
		
			
				
					|  |  | @ -293,6 +299,11 @@ class CarState(CarStateBase): | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     messages = [] |  |  |  |     messages = [] | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       messages += [ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         ("HCA_01", 1),  # From R242 Driver assistance camera, 50Hz if steering/1Hz if not | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       ] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if CP.networkLocation == NetworkLocation.fwdCamera: |  |  |  |     if CP.networkLocation == NetworkLocation.fwdCamera: | 
			
		
	
		
		
			
				
					
					|  |  |  |       messages += [ |  |  |  |       messages += [ | 
			
		
	
		
		
			
				
					
					|  |  |  |         # sig_address, frequency |  |  |  |         # sig_address, frequency | 
			
		
	
	
		
		
			
				
					|  |  | 
 |