|
|
@ -62,6 +62,8 @@ class CarState(CarStateBase): |
|
|
|
ret.cruiseState.nonAdaptive = cp.vl["Cluster_Info1_FD1"]["AccEnbl_B_RqDrv"] == 0 |
|
|
|
ret.cruiseState.nonAdaptive = cp.vl["Cluster_Info1_FD1"]["AccEnbl_B_RqDrv"] == 0 |
|
|
|
ret.cruiseState.standstill = cp.vl["EngBrakeData"]["AccStopMde_D_Rq"] == 3 |
|
|
|
ret.cruiseState.standstill = cp.vl["EngBrakeData"]["AccStopMde_D_Rq"] == 3 |
|
|
|
ret.accFaulted = cp.vl["EngBrakeData"]["CcStat_D_Actl"] in (1, 2) |
|
|
|
ret.accFaulted = cp.vl["EngBrakeData"]["CcStat_D_Actl"] in (1, 2) |
|
|
|
|
|
|
|
if not self.CP.openpilotLongitudinalControl: |
|
|
|
|
|
|
|
ret.accFaulted = ret.accFaulted or cp_cam.vl["ACCDATA"]["CmbbDeny_B_Actl"] == 1 |
|
|
|
|
|
|
|
|
|
|
|
# gear |
|
|
|
# gear |
|
|
|
if self.CP.transmissionType == TransmissionType.automatic: |
|
|
|
if self.CP.transmissionType == TransmissionType.automatic: |
|
|
@ -218,6 +220,8 @@ class CarState(CarStateBase): |
|
|
|
def get_cam_can_parser(CP): |
|
|
|
def get_cam_can_parser(CP): |
|
|
|
signals = [ |
|
|
|
signals = [ |
|
|
|
# sig_name, sig_address |
|
|
|
# sig_name, sig_address |
|
|
|
|
|
|
|
("CmbbDeny_B_Actl", "ACCDATA"), # ACC/AEB unavailable/lockout |
|
|
|
|
|
|
|
|
|
|
|
("CmbbBrkDecel_B_Rq", "ACCDATA_2"), # AEB actuation request bit |
|
|
|
("CmbbBrkDecel_B_Rq", "ACCDATA_2"), # AEB actuation request bit |
|
|
|
|
|
|
|
|
|
|
|
("HaDsply_No_Cs", "ACCDATA_3"), |
|
|
|
("HaDsply_No_Cs", "ACCDATA_3"), |
|
|
@ -264,6 +268,7 @@ class CarState(CarStateBase): |
|
|
|
|
|
|
|
|
|
|
|
checks = [ |
|
|
|
checks = [ |
|
|
|
# sig_address, frequency |
|
|
|
# sig_address, frequency |
|
|
|
|
|
|
|
("ACCDATA", 50), |
|
|
|
("ACCDATA_2", 50), |
|
|
|
("ACCDATA_2", 50), |
|
|
|
("ACCDATA_3", 5), |
|
|
|
("ACCDATA_3", 5), |
|
|
|
("IPMA_Data", 1), |
|
|
|
("IPMA_Data", 1), |
|
|
|