Chrysler: carState signals update (#24760)

* carstate update

* update refs

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 38ff2982eb
vw-mqb-aeb
realfast 3 years ago committed by GitHub
parent 0d83812f86
commit dda0f8186e
  1. 2
      opendbc
  2. 4
      selfdrive/car/chrysler/carcontroller.py
  3. 58
      selfdrive/car/chrysler/carstate.py
  4. 9
      selfdrive/car/chrysler/chryslercan.py
  5. 2
      selfdrive/test/process_replay/ref_commit

@ -1 +1 @@
Subproject commit 47b79c4d5ab5adc0bdd9d228c3d9594da0355c49 Subproject commit 7fbf7c2a685a90ff01e744cfb410f1a8a3c06278

@ -1,7 +1,7 @@
from cereal import car from cereal import car
from opendbc.can.packer import CANPacker from opendbc.can.packer import CANPacker
from selfdrive.car import apply_toyota_steer_torque_limits from selfdrive.car import apply_toyota_steer_torque_limits
from selfdrive.car.chrysler.chryslercan import create_lkas_hud, create_lkas_command, create_wheel_buttons from selfdrive.car.chrysler.chryslercan import create_lkas_hud, create_lkas_command, create_cruise_buttons
from selfdrive.car.chrysler.values import CAR, CarControllerParams from selfdrive.car.chrysler.values import CAR, CarControllerParams
@ -49,7 +49,7 @@ class CarController:
# *** control msgs *** # *** control msgs ***
if CC.cruiseControl.cancel: if CC.cruiseControl.cancel:
can_sends.append(create_wheel_buttons(self.packer, CS.button_counter + 1, cancel=True)) can_sends.append(create_cruise_buttons(self.packer, CS.button_counter + 1, cancel=True))
# LKAS_HEARTBIT is forwarded by Panda so no need to send it here. # LKAS_HEARTBIT is forwarded by Panda so no need to send it here.
# frame is 100Hz (0.01s period) # frame is 100Hz (0.01s period)

@ -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),
] ]

@ -48,10 +48,9 @@ def create_lkas_command(packer, apply_steer, moving_fast, frame):
return packer.make_can_msg("LKAS_COMMAND", 0, values) return packer.make_can_msg("LKAS_COMMAND", 0, values)
def create_wheel_buttons(packer, frame, cancel=False): def create_cruise_buttons(packer, frame, cancel=False):
# WHEEL_BUTTONS (571) Message sent to cancel ACC.
values = { values = {
"ACC_CANCEL": cancel, "ACC_Cancel": cancel,
"COUNTER": frame % 0x10 "COUNTER": frame % 0x10,
} }
return packer.make_can_msg("WHEEL_BUTTONS", 0, values) return packer.make_can_msg("CRUISE_BUTTONS", 0, values)

@ -1 +1 @@
d7c610172f3ff10b68403abc19b260c91c848ebb 806984d4206056fb132625c5dad6c0ca1835a2d6
Loading…
Cancel
Save