From f4bc8ee6b7db745cd73d7007971bd9241ae61d05 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sun, 28 Jun 2026 20:20:47 -0500 Subject: [PATCH] ev9 --- .../opendbc/car/hyundai/carcontroller.py | 2 -- .../opendbc/car/hyundai/tests/test_hyundai.py | 33 ++++++++++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/opendbc_repo/opendbc/car/hyundai/carcontroller.py b/opendbc_repo/opendbc/car/hyundai/carcontroller.py index a9347144a..d146d002f 100644 --- a/opendbc_repo/opendbc/car/hyundai/carcontroller.py +++ b/opendbc_repo/opendbc/car/hyundai/carcontroller.py @@ -629,8 +629,6 @@ class CarController(CarControllerBase): # prevent LFA from activating on LKA steering cars by sending "no lane lines detected" to ADAS ECU suppress_lfa = bool(lka_steering) - if self.CP.carFingerprint == CAR.KIA_EV9 and self.CP.flags & HyundaiFlags.CANFD_ANGLE_STEERING: - suppress_lfa = bool(steering_msg_active) if self.frame % 5 == 0 and suppress_lfa: can_sends.append(hyundaicanfd.create_suppress_lfa(self.packer, self.CAN, CS.lfa_block_msg, self.CP.flags & HyundaiFlags.CANFD_LKA_STEERING_ALT)) diff --git a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py index 3707ed737..12c2c06ed 100644 --- a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py +++ b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py @@ -1421,7 +1421,9 @@ class TestHyundaiFingerprint: parser = CANParser(DBC[CP.carFingerprint][Bus.pt], [("LKAS_ALT", 0)], can_bus.ACAN) cc = SimpleNamespace(enabled=False, latActive=False, actuators=SimpleNamespace(longControlState=LongCtrlState.off), leftBlinker=False, rightBlinker=False, hudControl=SimpleNamespace()) - cs = SimpleNamespace(stock_lfa_msg=None, stock_lkas_msg={}, + lfa_block_msg = {f"BYTE{i}": 0 for i in range(3, 32) if i != 7} + lfa_block_msg["COUNTER"] = 0 + cs = SimpleNamespace(stock_lfa_msg=None, stock_lkas_msg={}, lfa_block_msg=lfa_block_msg, out=SimpleNamespace(steeringAngleDeg=-201.0)) msgs = controller.create_canfd_msgs(0, False, 0.0, -201.0, 0.0, 0.0, False, cc.hudControl, cs, cc, @@ -1439,6 +1441,35 @@ class TestHyundaiFingerprint: assert parser.vl["LKAS_ALT"]["STEER_MODE"] == 2 assert parser.vl["LKAS_ALT"]["NEW_SIGNAL_2"] == 3 + def test_ev9_inactive_angle_steering_still_suppresses_stock_lfa(self): + CP = CarParams.new_message() + CP.carFingerprint = CAR.KIA_EV9 + CP.flags = int(HyundaiFlags.CANFD | HyundaiFlags.EV | HyundaiFlags.CANFD_ANGLE_STEERING | + HyundaiFlags.CANFD_LKA_STEERING | HyundaiFlags.CANFD_LKA_STEERING_ALT) + CP.openpilotLongitudinalControl = False + + controller = CarController(DBC[CP.carFingerprint], CP) + controller.frame = 5 + can_bus = CanBus(CP) + parser = CANParser(DBC[CP.carFingerprint][Bus.pt], [("CAM_0x362", 0)], can_bus.ECAN) + cc = SimpleNamespace(enabled=False, latActive=False, actuators=SimpleNamespace(longControlState=LongCtrlState.off), + leftBlinker=False, rightBlinker=False, hudControl=SimpleNamespace()) + lfa_block_msg = {f"BYTE{i}": 0 for i in range(3, 32) if i != 7} + lfa_block_msg["COUNTER"] = 0 + cs = SimpleNamespace(stock_lfa_msg=None, stock_lkas_msg={}, lfa_block_msg=lfa_block_msg, + out=SimpleNamespace(steeringAngleDeg=0.0)) + + msgs = controller.create_canfd_msgs(0, False, 0.0, 0.0, 0.0, 0.0, False, cc.hudControl, cs, cc, + get_test_toggles(), lka_icon=1, lfa_icon=1) + suppress_msgs = [msg for msg in msgs if msg[0] == 0x362] + assert len(suppress_msgs) == 1 + + parser.update([(1, suppress_msgs)]) + + assert parser.can_valid + assert parser.vl["CAM_0x362"]["LEFT_LANE_LINE"] == 0 + assert parser.vl["CAM_0x362"]["RIGHT_LANE_LINE"] == 0 + def test_ev9_high_steering_angle_keeps_active_status_and_gain(self): CP = CarParams.new_message() CP.carFingerprint = CAR.KIA_EV9