From c1804b1fd8e047d3617e48fd3584cf4443fc6acf Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Thu, 7 May 2026 11:03:37 -0500 Subject: [PATCH] kia --- opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py | 3 +++ .../opendbc/car/hyundai/tests/test_hyundai.py | 11 ++++++++--- opendbc_repo/opendbc/car/hyundai/values.py | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py b/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py index 282e2df03..a2a2042eb 100644 --- a/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py +++ b/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py @@ -134,6 +134,9 @@ def create_steering_messages(packer, CP, CAN, enabled, lat_active, apply_torque, else: if CP.flags & HyundaiFlags.CANFD_ANGLE_STEERING: if CP.flags & HyundaiFlags.SEND_LFA: + # Some CAN-FD angle-steering trims still expect the stock-style LFA status/UI + # message to remain present even though angle actuation comes through ADAS_CMD. + ret.append(packer.make_can_msg("LFA", CAN.ECAN, lfa_values)) ret.append(_create_angle_adas_cmd_msg(packer, CAN, apply_angle, lat_active, apply_torque)) else: ret.append(_create_angle_lfa_msg(packer, CAN, lfa_values, apply_angle, lat_active, apply_torque)) diff --git a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py index c51dce8bd..95d465fea 100644 --- a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py +++ b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py @@ -787,7 +787,7 @@ class TestHyundaiFingerprint: assert parser.vl["FCA12"]["FCA_DrvSetState"] == 2 assert parser.vl["FCA12"]["FCA_USM"] == 2 - def test_sportage_angle_steering_uses_adas_cmd_with_send_lfa(self): + def test_sportage_angle_steering_uses_lfa_and_adas_cmd_with_send_lfa(self): fingerprint = gen_empty_fingerprint() cam_can = CanBus(None, fingerprint).CAM fingerprint[cam_can][0xCB] = 24 @@ -797,8 +797,12 @@ class TestHyundaiFingerprint: assert CP.flags & HyundaiFlags.CANFD_ANGLE_STEERING packer = CANPacker(DBC[CP.carFingerprint][Bus.pt]) - msgs = hyundaicanfd.create_steering_messages(packer, CP, CanBus(CP), True, True, 1.0, 12.3) - assert [(addr, bus) for addr, _, bus in msgs] == [(0xCB, CanBus(CP).ECAN)] + can_bus = CanBus(CP) + msgs = hyundaicanfd.create_steering_messages(packer, CP, can_bus, True, True, 1.0, 12.3) + assert [(packer.dbc.addr_to_msg[addr].name, bus) for addr, _, bus in msgs] == [ + ("LFA", can_bus.ECAN), + ("ADAS_CMD_35_10ms", can_bus.ECAN), + ] def test_ioniq_6_lfa_helper_preserves_stock_ui_fields(self): CP = CarParams.new_message() @@ -1040,6 +1044,7 @@ class TestHyundaiFingerprint: assert sportage_high_speed_params.ANGLE_LIMITS.MAX_LATERAL_JERK == sportage_params.ANGLE_LIMITS.MAX_LATERAL_JERK assert sportage_low_speed_params.ANGLE_LIMITS.MAX_LATERAL_JERK > sportage_high_speed_params.ANGLE_LIMITS.MAX_LATERAL_JERK assert sportage_low_speed_params.ANGLE_LIMITS.MAX_LATERAL_JERK < comparison_params.ANGLE_LIMITS.MAX_LATERAL_JERK + assert sportage_params.ANGLE_LIMITS.STEER_ANGLE_MAX > comparison_params.ANGLE_LIMITS.STEER_ANGLE_MAX assert sportage_params.ANGLE_LIMITS.MAX_LATERAL_ACCEL > comparison_params.ANGLE_LIMITS.MAX_LATERAL_ACCEL assert sportage_params.ANGLE_LIMITS.MAX_ANGLE_RATE > comparison_params.ANGLE_LIMITS.MAX_ANGLE_RATE assert comparison_params.ANGLE_LIMITS.MAX_LATERAL_JERK == ioniq6_params.ANGLE_LIMITS.MAX_LATERAL_JERK diff --git a/opendbc_repo/opendbc/car/hyundai/values.py b/opendbc_repo/opendbc/car/hyundai/values.py index 74e48e366..0a5724d06 100644 --- a/opendbc_repo/opendbc/car/hyundai/values.py +++ b/opendbc_repo/opendbc/car/hyundai/values.py @@ -17,6 +17,7 @@ SPORTAGE_HEV_2026_LOW_SPEED_JERK_BOOST = 0.75 SPORTAGE_HEV_2026_LOW_SPEED_JERK_SPEED = 12.0 SPORTAGE_HEV_2026_LOW_SPEED_JERK_WIDTH = 6.0 SPORTAGE_HEV_2026_MAX_ANGLE_RATE = 6.0 +SPORTAGE_HEV_2026_STEER_ANGLE_MAX = 220.0 class CarControllerParams: @@ -69,6 +70,7 @@ class CarControllerParams: sportage_low_speed_weight = min(max((SPORTAGE_HEV_2026_LOW_SPEED_JERK_SPEED - vEgoRaw) / SPORTAGE_HEV_2026_LOW_SPEED_JERK_WIDTH, 0.0), 1.0) sportage_lateral_jerk = SPORTAGE_HEV_2026_BASE_LATERAL_JERK + (SPORTAGE_HEV_2026_LOW_SPEED_JERK_BOOST * sportage_low_speed_weight) self.ANGLE_LIMITS = replace(self.ANGLE_LIMITS, + STEER_ANGLE_MAX=SPORTAGE_HEV_2026_STEER_ANGLE_MAX, MAX_LATERAL_ACCEL=SPORTAGE_HEV_2026_MAX_LATERAL_ACCEL + (ACCELERATION_DUE_TO_GRAVITY * AVERAGE_ROAD_ROLL), MAX_LATERAL_JERK=sportage_lateral_jerk + (ACCELERATION_DUE_TO_GRAVITY * AVERAGE_ROAD_ROLL), MAX_ANGLE_RATE=SPORTAGE_HEV_2026_MAX_ANGLE_RATE)