@ -15,7 +15,8 @@ class CarState(CarStateBase):
super ( ) . __init__ ( CP )
super ( ) . __init__ ( CP )
can_define = CANDefine ( DBC [ CP . carFingerprint ] [ " pt " ] )
can_define = CANDefine ( DBC [ CP . carFingerprint ] [ " pt " ] )
self . shifter_values = can_define . dv [ " ECMPRDNL2 " ] [ " PRNDL2 " ]
self . shifter_values = can_define . dv [ " ECMPRDNL2 " ] [ " PRNDL2 " ]
self . lka_steering_cmd_counter = 0
self . loopback_lka_steering_cmd_updated = False
self . camera_lka_steering_cmd_counter = 0
self . buttons_counter = 0
self . buttons_counter = 0
def update ( self , pt_cp , cam_cp , loopback_cp ) :
def update ( self , pt_cp , cam_cp , loopback_cp ) :
@ -25,6 +26,11 @@ class CarState(CarStateBase):
self . cruise_buttons = pt_cp . vl [ " ASCMSteeringButton " ] [ " ACCButtons " ]
self . cruise_buttons = pt_cp . vl [ " ASCMSteeringButton " ] [ " ACCButtons " ]
self . buttons_counter = pt_cp . vl [ " ASCMSteeringButton " ] [ " RollingCounter " ]
self . buttons_counter = pt_cp . vl [ " ASCMSteeringButton " ] [ " RollingCounter " ]
# Variables used for avoiding LKAS faults
self . loopback_lka_steering_cmd_updated = len ( loopback_cp . vl_all [ " ASCMLKASteeringCmd " ] ) > 0
if self . CP . networkLocation == NetworkLocation . fwdCamera :
self . camera_lka_steering_cmd_counter = cam_cp . vl [ " ASCMLKASteeringCmd " ] [ " RollingCounter " ]
ret . wheelSpeeds = self . get_wheel_speeds (
ret . wheelSpeeds = self . get_wheel_speeds (
pt_cp . vl [ " EBCMWheelSpdFront " ] [ " FLWheelSpd " ] ,
pt_cp . vl [ " EBCMWheelSpdFront " ] [ " FLWheelSpd " ] ,
pt_cp . vl [ " EBCMWheelSpdFront " ] [ " FRWheelSpd " ] ,
pt_cp . vl [ " EBCMWheelSpdFront " ] [ " FRWheelSpd " ] ,
@ -59,7 +65,6 @@ class CarState(CarStateBase):
ret . steeringTorque = pt_cp . vl [ " PSCMStatus " ] [ " LKADriverAppldTrq " ]
ret . steeringTorque = pt_cp . vl [ " PSCMStatus " ] [ " LKADriverAppldTrq " ]
ret . steeringTorqueEps = pt_cp . vl [ " PSCMStatus " ] [ " LKATorqueDelivered " ]
ret . steeringTorqueEps = pt_cp . vl [ " PSCMStatus " ] [ " LKATorqueDelivered " ]
ret . steeringPressed = abs ( ret . steeringTorque ) > STEER_THRESHOLD
ret . steeringPressed = abs ( ret . steeringTorque ) > STEER_THRESHOLD
self . lka_steering_cmd_counter = loopback_cp . vl [ " ASCMLKASteeringCmd " ] [ " RollingCounter " ]
# 0 inactive, 1 active, 2 temporarily limited, 3 failed
# 0 inactive, 1 active, 2 temporarily limited, 3 failed
self . lkas_status = pt_cp . vl [ " PSCMStatus " ] [ " LKATorqueDeliveredStatus " ]
self . lkas_status = pt_cp . vl [ " PSCMStatus " ] [ " LKATorqueDeliveredStatus " ]
@ -94,8 +99,14 @@ class CarState(CarStateBase):
signals = [ ]
signals = [ ]
checks = [ ]
checks = [ ]
if CP . networkLocation == NetworkLocation . fwdCamera :
if CP . networkLocation == NetworkLocation . fwdCamera :
signals . append ( ( " ACCSpeedSetpoint " , " ASCMActiveCruiseControlStatus " ) )
signals + = [
checks . append ( ( " ASCMActiveCruiseControlStatus " , 25 ) )
( " RollingCounter " , " ASCMLKASteeringCmd " ) ,
( " ACCSpeedSetpoint " , " ASCMActiveCruiseControlStatus " ) ,
]
checks + = [
( " ASCMLKASteeringCmd " , 10 ) ,
( " ASCMActiveCruiseControlStatus " , 25 ) ,
]
return CANParser ( DBC [ CP . carFingerprint ] [ " pt " ] , signals , checks , CanBus . CAMERA )
return CANParser ( DBC [ CP . carFingerprint ] [ " pt " ] , signals , checks , CanBus . CAMERA )