diff --git a/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py b/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py index b7c8c1520..f1fec6c37 100644 --- a/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py +++ b/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py @@ -132,8 +132,8 @@ def create_steering_messages(packer, CP, CAN, enabled, lat_active, apply_torque, ret = [] if CP.flags & HyundaiFlags.CANFD_LKA_STEERING: lkas_msg = "LKAS_ALT" if CP.flags & HyundaiFlags.CANFD_LKA_STEERING_ALT else "LKAS" - # Keep the direct LFA packet shape aligned across stock-long and OP-long paths. - ret.append(packer.make_can_msg("LFA", CAN.ECAN, lfa_values)) + if CP.openpilotLongitudinalControl: + ret.append(packer.make_can_msg("LFA", CAN.ECAN, lfa_values)) ret.append(packer.make_can_msg(lkas_msg, CAN.ACAN, lkas_values)) else: if CP.flags & HyundaiFlags.CANFD_ANGLE_STEERING: diff --git a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py index e324f16d3..ecec704f4 100644 --- a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py +++ b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py @@ -1394,7 +1394,6 @@ class TestHyundaiFingerprint: packer = CANPacker(DBC[CP.carFingerprint][Bus.pt]) can_bus = CanBus(CP) - parser = CANParser(DBC[CP.carFingerprint][Bus.pt], [("LFA", 0)], can_bus.ECAN) stock_lfa = { "CHECKSUM": 1234, @@ -1416,24 +1415,9 @@ class TestHyundaiFingerprint: msgs = hyundaicanfd.create_steering_messages(packer, CP, can_bus, True, True, 123, 0.0, stock_lfa) assert [(packer.dbc.addr_to_msg[addr].name, bus) for addr, _, bus in msgs] == [ - ("LFA", can_bus.ECAN), ("LKAS", can_bus.ACAN), ] - lfa_msgs = [msg for msg in msgs if msg[0] == 0x12A] - assert len(lfa_msgs) == 1 - - parser.update([(1, lfa_msgs)]) - - assert parser.can_valid - assert parser.vl["LFA"]["NEW_SIGNAL_1"] == 3 - assert parser.vl["LFA"]["NEW_SIGNAL_2"] == 2 - assert parser.vl["LFA"]["HAS_LANE_SAFETY"] == 1 - assert parser.vl["LFA"]["DAMP_FACTOR"] == 0x77 - assert parser.vl["LFA"]["TORQUE_REQUEST"] == 123 - assert parser.vl["LFA"]["STEER_REQ"] == 1 - assert parser.vl["LFA"]["LKA_ICON"] == 2 - def test_kia_ev6_lkas_helper_preserves_stock_camera_fields_with_stock_long(self): CP = CarParams.new_message() CP.carFingerprint = CAR.KIA_EV6 diff --git a/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h b/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h index 4380f9e09..f589cbf5a 100644 --- a/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h +++ b/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h @@ -8,13 +8,11 @@ #define HYUNDAI_CANFD_LKA_STEERING_COMMON_TX_MSGS(a_can, e_can) \ HYUNDAI_CANFD_CRUISE_BUTTON_TX_MSGS(e_can) \ - {0x12A, e_can, 16, .check_relay = (e_can) == 0}, /* LFA */ \ {0x50, a_can, 16, .check_relay = (a_can) == 0}, /* LKAS */ \ {0x2A4, a_can, 24, .check_relay = (a_can) == 0}, /* CAM_0x2A4 */ \ #define HYUNDAI_CANFD_LKA_STEERING_ALT_COMMON_TX_MSGS(a_can, e_can) \ HYUNDAI_CANFD_CRUISE_BUTTON_TX_MSGS(e_can) \ - {0x12A, e_can, 16, .check_relay = (e_can) == 0}, /* LFA */ \ {0x110, a_can, 32, .check_relay = (a_can) == 0}, /* LKAS_ALT */ \ {0x362, a_can, 32, .check_relay = (a_can) == 0}, /* CAM_0x362 */ \ @@ -223,9 +221,8 @@ static bool hyundai_canfd_tx_hook(const CANPacket_t *msg) { } // steering - const bool stock_lka_steering = hyundai_canfd_lka_steering && !hyundai_longitudinal; - const bool steer_msg = (msg->addr == 0x12aU) || (stock_lka_steering && (msg->addr == hyundai_canfd_get_lka_addr())); - if (steer_msg) { + const unsigned int steer_addr = (hyundai_canfd_lka_steering && !hyundai_longitudinal) ? hyundai_canfd_get_lka_addr() : 0x12aU; + if (msg->addr == steer_addr) { if (hyundai_canfd_angle_steering) { const int lkas_angle_active = (msg->data[9] >> 4U) & 0x3U; const bool steer_angle_req = lkas_angle_active != 1; diff --git a/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py b/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py index 1d8f90785..77d367d0a 100755 --- a/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py +++ b/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py @@ -470,7 +470,7 @@ class TestHyundaiCanfdCCNCSupportFrames(common.SafetyTestBase): class TestHyundaiCanfdLKASteeringEV(TestHyundaiCanfdBase): - TX_MSGS = [[0x50, 0], [0x12A, 1], [0x1CF, 1], [0x2A4, 0]] + TX_MSGS = [[0x50, 0], [0x1CF, 1], [0x2A4, 0]] RELAY_MALFUNCTION_ADDRS = {0: (0x50, 0x2a4)} # LKAS, CAM_0x2A4 FWD_BLACKLISTED_ADDRS = {2: [0x50, 0x2a4]} @@ -507,7 +507,7 @@ class TestHyundaiCanfdLKASteeringEV(TestHyundaiCanfdBase): # TODO: Handle ICE and HEV configurations once we see cars that use the new messages class TestHyundaiCanfdLKASteeringAltEV(TestHyundaiCanfdBase): - TX_MSGS = [[0x110, 0], [0x12A, 1], [0x1CF, 1], [0x362, 0]] + TX_MSGS = [[0x110, 0], [0x1CF, 1], [0x362, 0]] RELAY_MALFUNCTION_ADDRS = {0: (0x110, 0x362)} # LKAS_ALT, CAM_0x362 FWD_BLACKLISTED_ADDRS = {2: [0x110, 0x362]}