From 36eafc0dc6ea73bcc59df216a3231ae54960a282 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Mon, 24 Jun 2024 19:14:57 -0800 Subject: [PATCH] Hyundai CAN: Log ABS/ESP Activation to `espActive` (#32743) * Hyundai CAN: Log active ABS to accFaulted * Add comments * `espActive` to CarState and CarEvent.EventName * re-order --------- Co-authored-by: Shane Smiskol --- cereal/car.capnp | 2 ++ selfdrive/car/hyundai/carstate.py | 1 + selfdrive/car/interfaces.py | 2 ++ selfdrive/controls/lib/events.py | 5 +++++ 4 files changed, 10 insertions(+) diff --git a/cereal/car.capnp b/cereal/car.capnp index c17e1c063fc3b8..3df23d99214ea2 100644 --- a/cereal/car.capnp +++ b/cereal/car.capnp @@ -116,6 +116,7 @@ struct CarEvent @0x9b1657f34caf3ad3 { paramsdTemporaryError @50; paramsdPermanentError @119; actuatorsApiUnavailable @120; + espActive @121; radarCanErrorDEPRECATED @15; communityFeatureDisallowedDEPRECATED @62; @@ -194,6 +195,7 @@ struct CarState { espDisabled @32 :Bool; accFaulted @42 :Bool; carFaultedNonCritical @47 :Bool; # some ECU is faulted, but car remains controllable + espActive @51 :Bool; # cruise state cruiseState @10 :CruiseState; diff --git a/selfdrive/car/hyundai/carstate.py b/selfdrive/car/hyundai/carstate.py index 92c489cf34e257..41cb9ee4573188 100644 --- a/selfdrive/car/hyundai/carstate.py +++ b/selfdrive/car/hyundai/carstate.py @@ -119,6 +119,7 @@ def update(self, cp, cp_cam): ret.brakeHoldActive = cp.vl["TCS15"]["AVH_LAMP"] == 2 # 0 OFF, 1 ERROR, 2 ACTIVE, 3 READY ret.parkingBrake = cp.vl["TCS13"]["PBRAKE_ACT"] == 1 ret.espDisabled = cp.vl["TCS11"]["TCS_PAS"] == 1 + ret.espActive = cp.vl["TCS11"]["ABS_ACT"] == 1 ret.accFaulted = cp.vl["TCS13"]["ACCEnable"] != 0 # 0 ACC CONTROL ENABLED, 1-3 ACC CONTROL DISABLED if self.CP.flags & (HyundaiFlags.HYBRID | HyundaiFlags.EV): diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index e5762ed52aaa78..54070284e4750f 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -280,6 +280,8 @@ def create_common_events(self, cs_out, extra_gears=None, pcm_enable=True, allow_ events.add(EventName.wrongCarMode) if cs_out.espDisabled: events.add(EventName.espDisabled) + if cs_out.espActive: + events.add(EventName.espActive) if cs_out.stockFcw: events.add(EventName.stockFcw) if cs_out.stockAeb: diff --git a/selfdrive/controls/lib/events.py b/selfdrive/controls/lib/events.py index b01818d704bf22..25833da741879c 100755 --- a/selfdrive/controls/lib/events.py +++ b/selfdrive/controls/lib/events.py @@ -831,6 +831,11 @@ def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, ET.NO_ENTRY: NoEntryAlert("Cruise Fault: Restart the Car"), }, + EventName.espActive: { + ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Electronic Stability Control Active"), + ET.NO_ENTRY: NoEntryAlert("Electronic Stability Control Active"), + }, + EventName.controlsMismatch: { ET.IMMEDIATE_DISABLE: ImmediateDisableAlert("Controls Mismatch"), ET.NO_ENTRY: NoEntryAlert("Controls Mismatch"),