mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-05 21:42:05 +08:00
Honda: use common imperial unit message (#24786)
* CAR_SPEED should be on all cars * bump opendbc * clean this up too * it's an or * clean up * comment old-commit-hash: 60aa553b8c0d8323f276b102ce359262e639861b
This commit is contained in:
+1
-1
Submodule opendbc updated: 30aacafa10...ec0e1f20ba
@@ -22,9 +22,9 @@ def get_can_signals(CP, gearbox_msg, main_on_sig_msg):
|
||||
("STEER_ANGLE_RATE", "STEERING_SENSORS"),
|
||||
("MOTOR_TORQUE", "STEER_MOTOR_TORQUE"),
|
||||
("STEER_TORQUE_SENSOR", "STEER_STATUS"),
|
||||
("IMPERIAL_UNIT", "CAR_SPEED"),
|
||||
("LEFT_BLINKER", "SCM_FEEDBACK"),
|
||||
("RIGHT_BLINKER", "SCM_FEEDBACK"),
|
||||
("GEAR", gearbox_msg),
|
||||
("SEATBELT_DRIVER_LAMP", "SEATBELT_STATUS"),
|
||||
("SEATBELT_DRIVER_LATCHED", "SEATBELT_STATUS"),
|
||||
("BRAKE_PRESSED", "POWERTRAIN_DATA"),
|
||||
@@ -35,6 +35,7 @@ def get_can_signals(CP, gearbox_msg, main_on_sig_msg):
|
||||
("BRAKE_HOLD_ACTIVE", "VSA_STATUS"),
|
||||
("STEER_STATUS", "STEER_STATUS"),
|
||||
("GEAR_SHIFTER", gearbox_msg),
|
||||
("GEAR", gearbox_msg),
|
||||
("PEDAL_GAS", "POWERTRAIN_DATA"),
|
||||
("CRUISE_SETTING", "SCM_BUTTONS"),
|
||||
("ACC_STATUS", "POWERTRAIN_DATA"),
|
||||
@@ -48,9 +49,10 @@ def get_can_signals(CP, gearbox_msg, main_on_sig_msg):
|
||||
("SEATBELT_STATUS", 10),
|
||||
("CRUISE", 10),
|
||||
("POWERTRAIN_DATA", 100),
|
||||
("CAR_SPEED", 10),
|
||||
("VSA_STATUS", 50),
|
||||
("STEER_STATUS", 100),
|
||||
("STEER_MOTOR_TORQUE", 0), # TODO: not on every car
|
||||
("STEER_MOTOR_TORQUE", 0), # TODO: not on every car
|
||||
]
|
||||
|
||||
if CP.carFingerprint == CAR.ODYSSEY_CHN:
|
||||
@@ -73,16 +75,11 @@ def get_can_signals(CP, gearbox_msg, main_on_sig_msg):
|
||||
signals.append(("BRAKE_PRESSED", "BRAKE_MODULE"))
|
||||
checks.append(("BRAKE_MODULE", 50))
|
||||
|
||||
if CP.carFingerprint in HONDA_BOSCH:
|
||||
signals += [
|
||||
("EPB_STATE", "EPB_STATUS"),
|
||||
("IMPERIAL_UNIT", "CAR_SPEED"),
|
||||
]
|
||||
checks += [
|
||||
("EPB_STATUS", 50),
|
||||
("CAR_SPEED", 10),
|
||||
]
|
||||
if CP.carFingerprint in (HONDA_BOSCH | {CAR.CIVIC, CAR.ODYSSEY, CAR.ODYSSEY_CHN}):
|
||||
signals.append(("EPB_STATE", "EPB_STATUS"))
|
||||
checks.append(("EPB_STATUS", 50))
|
||||
|
||||
if CP.carFingerprint in HONDA_BOSCH:
|
||||
if not CP.openpilotLongitudinalControl:
|
||||
signals += [
|
||||
("CRUISE_CONTROL_LABEL", "ACC_HUD"),
|
||||
@@ -121,17 +118,6 @@ def get_can_signals(CP, gearbox_msg, main_on_sig_msg):
|
||||
("STANDSTILL", 50),
|
||||
]
|
||||
|
||||
if CP.carFingerprint == CAR.CIVIC:
|
||||
signals += [("IMPERIAL_UNIT", "HUD_SETTING"),
|
||||
("EPB_STATE", "EPB_STATUS")]
|
||||
checks += [
|
||||
("HUD_SETTING", 50),
|
||||
("EPB_STATUS", 50),
|
||||
]
|
||||
elif CP.carFingerprint in (CAR.ODYSSEY, CAR.ODYSSEY_CHN):
|
||||
signals.append(("EPB_STATE", "EPB_STATUS"))
|
||||
checks.append(("EPB_STATUS", 50))
|
||||
|
||||
# add gas interceptor reading if we are using it
|
||||
if CP.enableGasInterceptor:
|
||||
signals.append(("INTERCEPTOR_GAS", "GAS_SENSOR"))
|
||||
@@ -179,6 +165,11 @@ class CarState(CarStateBase):
|
||||
# update prevs, update must run once per loop
|
||||
self.prev_cruise_buttons = self.cruise_buttons
|
||||
self.prev_cruise_setting = self.cruise_setting
|
||||
self.cruise_setting = cp.vl["SCM_BUTTONS"]["CRUISE_SETTING"]
|
||||
self.cruise_buttons = cp.vl["SCM_BUTTONS"]["CRUISE_BUTTONS"]
|
||||
|
||||
# used for car hud message
|
||||
self.is_metric = not cp.vl["CAR_SPEED"]["IMPERIAL_UNIT"]
|
||||
|
||||
# ******************* parse out can *******************
|
||||
# STANDSTILL->WHEELS_MOVING bit can be noisy around zero, so use XMISSION_SPEED
|
||||
@@ -219,16 +210,12 @@ class CarState(CarStateBase):
|
||||
ret.steeringAngleDeg = cp.vl["STEERING_SENSORS"]["STEER_ANGLE"]
|
||||
ret.steeringRateDeg = cp.vl["STEERING_SENSORS"]["STEER_ANGLE_RATE"]
|
||||
|
||||
self.cruise_setting = cp.vl["SCM_BUTTONS"]["CRUISE_SETTING"]
|
||||
self.cruise_buttons = cp.vl["SCM_BUTTONS"]["CRUISE_BUTTONS"]
|
||||
|
||||
ret.leftBlinker, ret.rightBlinker = self.update_blinker_from_stalk(
|
||||
250, cp.vl["SCM_FEEDBACK"]["LEFT_BLINKER"], cp.vl["SCM_FEEDBACK"]["RIGHT_BLINKER"])
|
||||
ret.brakeHoldActive = cp.vl["VSA_STATUS"]["BRAKE_HOLD_ACTIVE"] == 1
|
||||
|
||||
# TODO: set for all cars
|
||||
if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.ODYSSEY_CHN, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORDH, CAR.CIVIC_BOSCH,
|
||||
CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G, CAR.HONDA_E):
|
||||
if self.CP.carFingerprint in (HONDA_BOSCH | {CAR.CIVIC, CAR.ODYSSEY, CAR.ODYSSEY_CHN}):
|
||||
ret.parkingBrake = cp.vl["EPB_STATUS"]["EPB_STATE"] != 0
|
||||
|
||||
gear = int(cp.vl[self.gearbox_msg]["GEAR_SHIFTER"])
|
||||
@@ -281,14 +268,6 @@ class CarState(CarStateBase):
|
||||
if ret.brake > 0.1:
|
||||
ret.brakePressed = True
|
||||
|
||||
# TODO: discover the CAN msg that has the imperial unit bit for all other cars
|
||||
if self.CP.carFingerprint in (CAR.CIVIC, ):
|
||||
self.is_metric = not cp.vl["HUD_SETTING"]["IMPERIAL_UNIT"]
|
||||
elif self.CP.carFingerprint in HONDA_BOSCH:
|
||||
self.is_metric = not cp.vl["CAR_SPEED"]["IMPERIAL_UNIT"]
|
||||
else:
|
||||
self.is_metric = False
|
||||
|
||||
if self.CP.carFingerprint in HONDA_BOSCH:
|
||||
ret.stockAeb = (not self.CP.openpilotLongitudinalControl) and bool(cp.vl["ACC_CONTROL"]["AEB_STATUS"] and cp.vl["ACC_CONTROL"]["ACCEL_COMMAND"] < -1e-5)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user