|
|
@ -16,13 +16,13 @@ class CarState(CarStateBase): |
|
|
|
|
|
|
|
|
|
|
|
ret = car.CarState.new_message() |
|
|
|
ret = car.CarState.new_message() |
|
|
|
|
|
|
|
|
|
|
|
self.frame = int(cp.vl["EPS_STATUS"]["COUNTER"]) |
|
|
|
self.frame = int(cp.vl["EPS_2"]["COUNTER"]) |
|
|
|
|
|
|
|
|
|
|
|
ret.doorOpen = any([cp.vl["BCM_1"]["DOOR_OPEN_FL"], |
|
|
|
ret.doorOpen = any([cp.vl["BCM_1"]["DOOR_OPEN_FL"], |
|
|
|
cp.vl["BCM_1"]["DOOR_OPEN_FR"], |
|
|
|
cp.vl["BCM_1"]["DOOR_OPEN_FR"], |
|
|
|
cp.vl["BCM_1"]["DOOR_OPEN_RL"], |
|
|
|
cp.vl["BCM_1"]["DOOR_OPEN_RL"], |
|
|
|
cp.vl["BCM_1"]["DOOR_OPEN_RR"]]) |
|
|
|
cp.vl["BCM_1"]["DOOR_OPEN_RR"]]) |
|
|
|
ret.seatbeltUnlatched = cp.vl["SEATBELT_STATUS"]["SEATBELT_DRIVER_UNLATCHED"] == 1 |
|
|
|
ret.seatbeltUnlatched = cp.vl["ORC_1"]["SEATBELT_DRIVER_UNLATCHED"] == 1 |
|
|
|
|
|
|
|
|
|
|
|
# brake pedal |
|
|
|
# brake pedal |
|
|
|
ret.brake = 0 |
|
|
|
ret.brake = 0 |
|
|
@ -35,10 +35,10 @@ class CarState(CarStateBase): |
|
|
|
ret.espDisabled = (cp.vl["TRACTION_BUTTON"]["TRACTION_OFF"] == 1) |
|
|
|
ret.espDisabled = (cp.vl["TRACTION_BUTTON"]["TRACTION_OFF"] == 1) |
|
|
|
|
|
|
|
|
|
|
|
ret.wheelSpeeds = self.get_wheel_speeds( |
|
|
|
ret.wheelSpeeds = self.get_wheel_speeds( |
|
|
|
cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_FL"], |
|
|
|
cp.vl["ESP_6"]["WHEEL_SPEED_FL"], |
|
|
|
cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_FR"], |
|
|
|
cp.vl["ESP_6"]["WHEEL_SPEED_FR"], |
|
|
|
cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_RL"], |
|
|
|
cp.vl["ESP_6"]["WHEEL_SPEED_RL"], |
|
|
|
cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_RR"], |
|
|
|
cp.vl["ESP_6"]["WHEEL_SPEED_RR"], |
|
|
|
unit=1, |
|
|
|
unit=1, |
|
|
|
) |
|
|
|
) |
|
|
|
ret.vEgoRaw = (cp.vl["SPEED_1"]["SPEED_LEFT"] + cp.vl["SPEED_1"]["SPEED_RIGHT"]) / 2. |
|
|
|
ret.vEgoRaw = (cp.vl["SPEED_1"]["SPEED_LEFT"] + cp.vl["SPEED_1"]["SPEED_RIGHT"]) / 2. |
|
|
@ -51,17 +51,17 @@ class CarState(CarStateBase): |
|
|
|
|
|
|
|
|
|
|
|
ret.cruiseState.available = cp.vl["DAS_3"]["ACC_AVAILABLE"] == 1 # ACC is white |
|
|
|
ret.cruiseState.available = cp.vl["DAS_3"]["ACC_AVAILABLE"] == 1 # ACC is white |
|
|
|
ret.cruiseState.enabled = cp.vl["DAS_3"]["ACC_ACTIVE"] == 1 # ACC is green |
|
|
|
ret.cruiseState.enabled = cp.vl["DAS_3"]["ACC_ACTIVE"] == 1 # ACC is green |
|
|
|
ret.cruiseState.speed = cp.vl["DASHBOARD"]["ACC_SPEED_CONFIG_KPH"] * CV.KPH_TO_MS |
|
|
|
ret.cruiseState.speed = cp.vl["DAS_4"]["ACC_SPEED_CONFIG_KPH"] * CV.KPH_TO_MS |
|
|
|
# CRUISE_STATE is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode, find if there are other states too |
|
|
|
# CRUISE_STATE is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode, find if there are other states too |
|
|
|
ret.cruiseState.nonAdaptive = cp.vl["DASHBOARD"]["CRUISE_STATE"] in (1, 2) |
|
|
|
ret.cruiseState.nonAdaptive = cp.vl["DAS_4"]["CRUISE_STATE"] in (1, 2) |
|
|
|
ret.accFaulted = cp.vl["DAS_3"]["ACC_FAULTED"] != 0 |
|
|
|
ret.accFaulted = cp.vl["DAS_3"]["ACC_FAULTED"] != 0 |
|
|
|
|
|
|
|
|
|
|
|
ret.steeringAngleDeg = cp.vl["STEERING"]["STEER_ANGLE"] |
|
|
|
ret.steeringAngleDeg = cp.vl["STEERING"]["STEER_ANGLE"] |
|
|
|
ret.steeringRateDeg = cp.vl["STEERING"]["STEERING_RATE"] |
|
|
|
ret.steeringRateDeg = cp.vl["STEERING"]["STEERING_RATE"] |
|
|
|
ret.steeringTorque = cp.vl["EPS_STATUS"]["TORQUE_DRIVER"] |
|
|
|
ret.steeringTorque = cp.vl["EPS_2"]["COLUMN_TORQUE"] |
|
|
|
ret.steeringTorqueEps = cp.vl["EPS_STATUS"]["TORQUE_MOTOR"] |
|
|
|
ret.steeringTorqueEps = cp.vl["EPS_2"]["EPS_TORQUE_MOTOR"] |
|
|
|
ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD |
|
|
|
ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD |
|
|
|
steer_state = cp.vl["EPS_STATUS"]["LKAS_STATE"] |
|
|
|
steer_state = cp.vl["EPS_2"]["LKAS_STATE"] |
|
|
|
ret.steerFaultPermanent = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) |
|
|
|
ret.steerFaultPermanent = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) |
|
|
|
|
|
|
|
|
|
|
|
ret.genericToggle = bool(cp.vl["STEERING_LEVERS"]["HIGH_BEAM_FLASH"]) |
|
|
|
ret.genericToggle = bool(cp.vl["STEERING_LEVERS"]["HIGH_BEAM_FLASH"]) |
|
|
@ -73,7 +73,7 @@ class CarState(CarStateBase): |
|
|
|
self.lkas_counter = cp_cam.vl["LKAS_COMMAND"]["COUNTER"] |
|
|
|
self.lkas_counter = cp_cam.vl["LKAS_COMMAND"]["COUNTER"] |
|
|
|
self.lkas_car_model = cp_cam.vl["LKAS_HUD"]["CAR_MODEL"] |
|
|
|
self.lkas_car_model = cp_cam.vl["LKAS_HUD"]["CAR_MODEL"] |
|
|
|
self.lkas_status_ok = cp_cam.vl["LKAS_HEARTBIT"]["LKAS_STATUS_OK"] |
|
|
|
self.lkas_status_ok = cp_cam.vl["LKAS_HEARTBIT"]["LKAS_STATUS_OK"] |
|
|
|
self.button_counter = cp.vl["WHEEL_BUTTONS"]["COUNTER"] |
|
|
|
self.button_counter = cp.vl["CRUISE_BUTTONS"]["COUNTER"] |
|
|
|
|
|
|
|
|
|
|
|
return ret |
|
|
|
return ret |
|
|
|
|
|
|
|
|
|
|
@ -90,10 +90,10 @@ class CarState(CarStateBase): |
|
|
|
("Accelerator_Position", "ECM_5"), |
|
|
|
("Accelerator_Position", "ECM_5"), |
|
|
|
("SPEED_LEFT", "SPEED_1"), |
|
|
|
("SPEED_LEFT", "SPEED_1"), |
|
|
|
("SPEED_RIGHT", "SPEED_1"), |
|
|
|
("SPEED_RIGHT", "SPEED_1"), |
|
|
|
("WHEEL_SPEED_FL", "WHEEL_SPEEDS"), |
|
|
|
("WHEEL_SPEED_FL", "ESP_6"), |
|
|
|
("WHEEL_SPEED_RR", "WHEEL_SPEEDS"), |
|
|
|
("WHEEL_SPEED_RR", "ESP_6"), |
|
|
|
("WHEEL_SPEED_RL", "WHEEL_SPEEDS"), |
|
|
|
("WHEEL_SPEED_RL", "ESP_6"), |
|
|
|
("WHEEL_SPEED_FR", "WHEEL_SPEEDS"), |
|
|
|
("WHEEL_SPEED_FR", "ESP_6"), |
|
|
|
("STEER_ANGLE", "STEERING"), |
|
|
|
("STEER_ANGLE", "STEERING"), |
|
|
|
("STEERING_RATE", "STEERING"), |
|
|
|
("STEERING_RATE", "STEERING"), |
|
|
|
("TURN_SIGNALS", "STEERING_LEVERS"), |
|
|
|
("TURN_SIGNALS", "STEERING_LEVERS"), |
|
|
@ -101,31 +101,31 @@ class CarState(CarStateBase): |
|
|
|
("ACC_ACTIVE", "DAS_3"), |
|
|
|
("ACC_ACTIVE", "DAS_3"), |
|
|
|
("ACC_FAULTED", "DAS_3"), |
|
|
|
("ACC_FAULTED", "DAS_3"), |
|
|
|
("HIGH_BEAM_FLASH", "STEERING_LEVERS"), |
|
|
|
("HIGH_BEAM_FLASH", "STEERING_LEVERS"), |
|
|
|
("ACC_SPEED_CONFIG_KPH", "DASHBOARD"), |
|
|
|
("ACC_SPEED_CONFIG_KPH", "DAS_4"), |
|
|
|
("CRUISE_STATE", "DASHBOARD"), |
|
|
|
("CRUISE_STATE", "DAS_4"), |
|
|
|
("TORQUE_DRIVER", "EPS_STATUS"), |
|
|
|
("COLUMN_TORQUE", "EPS_2"), |
|
|
|
("TORQUE_MOTOR", "EPS_STATUS"), |
|
|
|
("EPS_TORQUE_MOTOR", "EPS_2"), |
|
|
|
("LKAS_STATE", "EPS_STATUS"), |
|
|
|
("LKAS_STATE", "EPS_2"), |
|
|
|
("COUNTER", "EPS_STATUS",), |
|
|
|
("COUNTER", "EPS_2",), |
|
|
|
("TRACTION_OFF", "TRACTION_BUTTON"), |
|
|
|
("TRACTION_OFF", "TRACTION_BUTTON"), |
|
|
|
("SEATBELT_DRIVER_UNLATCHED", "SEATBELT_STATUS"), |
|
|
|
("SEATBELT_DRIVER_UNLATCHED", "ORC_1"), |
|
|
|
("COUNTER", "WHEEL_BUTTONS"), |
|
|
|
("COUNTER", "CRUISE_BUTTONS"), |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
checks = [ |
|
|
|
checks = [ |
|
|
|
# sig_address, frequency |
|
|
|
# sig_address, frequency |
|
|
|
("ESP_1", 50), |
|
|
|
("ESP_1", 50), |
|
|
|
("EPS_STATUS", 100), |
|
|
|
("EPS_2", 100), |
|
|
|
("SPEED_1", 100), |
|
|
|
("SPEED_1", 100), |
|
|
|
("WHEEL_SPEEDS", 50), |
|
|
|
("ESP_6", 50), |
|
|
|
("STEERING", 100), |
|
|
|
("STEERING", 100), |
|
|
|
("DAS_3", 50), |
|
|
|
("DAS_3", 50), |
|
|
|
("GEAR", 50), |
|
|
|
("GEAR", 50), |
|
|
|
("ECM_5", 50), |
|
|
|
("ECM_5", 50), |
|
|
|
("WHEEL_BUTTONS", 50), |
|
|
|
("CRUISE_BUTTONS", 50), |
|
|
|
("DASHBOARD", 15), |
|
|
|
("DAS_4", 15), |
|
|
|
("STEERING_LEVERS", 10), |
|
|
|
("STEERING_LEVERS", 10), |
|
|
|
("SEATBELT_STATUS", 2), |
|
|
|
("ORC_1", 2), |
|
|
|
("BCM_1", 1), |
|
|
|
("BCM_1", 1), |
|
|
|
("TRACTION_BUTTON", 1), |
|
|
|
("TRACTION_BUTTON", 1), |
|
|
|
] |
|
|
|
] |
|
|
|