diff --git a/opendbc_repo/opendbc/car/hyundai/carcontroller.py b/opendbc_repo/opendbc/car/hyundai/carcontroller.py index 7fd8a15a4..f5bddf434 100644 --- a/opendbc_repo/opendbc/car/hyundai/carcontroller.py +++ b/opendbc_repo/opendbc/car/hyundai/carcontroller.py @@ -57,15 +57,6 @@ IONIQ_6_STOP_RELEASE_JERK_BP = [0.0, 0.15, 0.5] IONIQ_6_STOP_RELEASE_JERK_V = [3.6 * IONIQ_6_RESPONSE_MULTIPLIER, 4.2 * IONIQ_6_RESPONSE_MULTIPLIER, 4.8 * IONIQ_6_RESPONSE_MULTIPLIER] -def get_canfd_lead_distance_setting(lead_distance: float | None, default_setting: int) -> int: - default = int(np.clip(default_setting, 0, 3)) - if lead_distance is None or lead_distance <= CANFD_LEAD_MIN_DISTANCE: - return default - if lead_distance < 20.0: - return 1 - if lead_distance < 30.0: - return 2 - return 3 @dataclass @@ -266,7 +257,6 @@ class CarController(CarControllerBase): return lka_icon, lfa_icon def _get_canfd_scc_lead_state(self, CC, CS, now_nanos): - default_distance_setting = int(np.clip(getattr(CC.hudControl, "leadDistanceBars", 0), 0, 3)) openpilot_lead_visible = bool(getattr(CS, "openpilot_lead_visible", False) or CC.hudControl.leadVisible) openpilot_lead_distance = float(np.clip(getattr(CS, "openpilot_lead_distance", 0.0), 0.0, 204.7)) openpilot_lead_rel_speed = float(np.clip(getattr(CS, "openpilot_lead_rel_speed", 0.0), -16.4, 34.7)) @@ -274,15 +264,15 @@ class CarController(CarControllerBase): stock_camera_lead_visible = stock_camera_lead_fresh and getattr(CS, "stock_camera_lead_visible", False) if openpilot_lead_visible and openpilot_lead_distance > CANFD_LEAD_MIN_DISTANCE: - return True, openpilot_lead_distance, openpilot_lead_rel_speed, get_canfd_lead_distance_setting(openpilot_lead_distance, default_distance_setting) + return True, openpilot_lead_distance, openpilot_lead_rel_speed if stock_camera_lead_visible: lead_distance = float(np.clip(getattr(CS, "stock_camera_lead_distance", 0.0), 0.0, 204.7)) lead_rel_speed = float(np.clip(getattr(CS, "stock_camera_lead_rel_speed", 0.0), -16.4, 34.7)) - return True, lead_distance, lead_rel_speed, get_canfd_lead_distance_setting(lead_distance, default_distance_setting) + return True, lead_distance, lead_rel_speed if openpilot_lead_visible: - return True, CANFD_FALLBACK_LEAD_DISTANCE, 0.0, default_distance_setting + return True, CANFD_FALLBACK_LEAD_DISTANCE, 0.0 - return False, 0.0, 0.0, default_distance_setting + return False, 0.0, 0.0 def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators @@ -559,13 +549,12 @@ class CarController(CarControllerBase): CC.leftBlinker, CC.rightBlinker)) if self.frame % 2 == 0: - lead_visible, lead_distance, lead_rel_speed, lead_distance_setting = self._get_canfd_scc_lead_state(CC, CS, now_nanos) + lead_visible, lead_distance, lead_rel_speed = self._get_canfd_scc_lead_state(CC, CS, now_nanos) acc_kwargs = { "main_mode_acc": int(CS.out.cruiseState.available), "direct_accel": True, "jerk_lower": 5.0, "jerk_upper": 3.0 if CC.actuators.longControlState == LongCtrlState.pid else 1.0, - "distance_setting": lead_distance_setting, "lead_distance": lead_distance, "lead_rel_speed": lead_rel_speed, "lead_visible": lead_visible, diff --git a/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py b/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py index ba3648d83..a2b52b49d 100644 --- a/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py +++ b/opendbc_repo/opendbc/car/hyundai/hyundaicanfd.py @@ -333,7 +333,6 @@ def create_ioniq_6_cluster_lane_change_messages(CAN, frame, side=None, trigger=F def create_acc_control(packer, CAN, enabled, accel_last, accel, stopping, gas_override, set_speed, hud_control, main_mode_acc=1, jerk_lower=None, jerk_upper=None, direct_accel=False, - distance_setting=None, lead_distance=None, lead_rel_speed=None, lead_visible=None): jerk = 5 jn = jerk / 50 @@ -375,7 +374,7 @@ def create_acc_control(packer, CAN, enabled, accel_last, accel, stopping, gas_ov "SET_ME_2": 0x4, "SET_ME_3": 0x3, "SET_ME_TMP_64": 0x64, - "DISTANCE_SETTING": int(np.clip(hud_control.leadDistanceBars if distance_setting is None else distance_setting, 0, 3)), + "DISTANCE_SETTING": hud_control.leadDistanceBars, } return packer.make_can_msg("SCC_CONTROL", CAN.ECAN, values) diff --git a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py index ffe8da261..86f7e4c14 100644 --- a/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py +++ b/opendbc_repo/opendbc/car/hyundai/tests/test_hyundai.py @@ -8,7 +8,6 @@ from opendbc.car import Bus, ButtonType, gen_empty_fingerprint, structs from opendbc.car.structs import CarControl, CarParams from opendbc.car.fw_versions import build_fw_dict, match_fw_to_car from opendbc.car.hyundai.carcontroller import CarController, Ioniq6LongitudinalTuningState, GenesisG90LongitudinalTuningState, \ - get_canfd_lead_distance_setting, \ update_ioniq_6_longitudinal_tuning, \ update_genesis_g90_longitudinal_tuning from opendbc.car.hyundai.carstate import CarState, decode_canfd_camera_lead, decode_ioniq_6_blindspot_radar_state @@ -508,32 +507,6 @@ class TestHyundaiFingerprint: assert parser.vl["SCC_CONTROL"]["ObjValid"] == 1 assert parser.vl["SCC_CONTROL"]["OBJ_STATUS"] == 0 - def test_canfd_acc_control_allows_distance_setting_override(self): - CP = CarParams.new_message() - CP.carFingerprint = CAR.KIA_EV6 - CP.flags = int(HyundaiFlags.CANFD) - - packer = CANPacker(DBC[CP.carFingerprint][Bus.pt]) - can_bus = CanBus(CP) - parser = CANParser(DBC[CP.carFingerprint][Bus.pt], [("SCC_CONTROL", 0)], can_bus.ECAN) - - msg = hyundaicanfd.create_acc_control(packer, can_bus, enabled=True, accel_last=0.0, accel=0.1, stopping=False, - gas_override=False, set_speed=42, hud_control=SimpleNamespace(leadDistanceBars=1), - direct_accel=True, distance_setting=3, - lead_distance=41.0, lead_rel_speed=-0.5, lead_visible=True) - parser.update([(1, [msg])]) - - assert parser.can_valid - assert parser.vl["SCC_CONTROL"]["DISTANCE_SETTING"] == 3 - assert parser.vl["SCC_CONTROL"]["ACC_ObjDist"] == pytest.approx(41.0) - - def test_canfd_lead_distance_setting_uses_detected_range(self): - assert get_canfd_lead_distance_setting(None, 2) == 2 - assert get_canfd_lead_distance_setting(0.0, 2) == 2 - assert get_canfd_lead_distance_setting(12.0, 3) == 1 - assert get_canfd_lead_distance_setting(24.0, 1) == 2 - assert get_canfd_lead_distance_setting(38.0, 1) == 3 - def test_canfd_scc_lead_state_prefers_openpilot_lead_distance(self): CP = CarParams.new_message() CP.carFingerprint = CAR.KIA_EV6 @@ -551,12 +524,11 @@ class TestHyundaiFingerprint: stock_camera_lead_rel_speed=0.0, ) - lead_visible, lead_distance, lead_rel_speed, distance_setting = controller._get_canfd_scc_lead_state(cc, cs, now_nanos=1_000_000_000) + lead_visible, lead_distance, lead_rel_speed = controller._get_canfd_scc_lead_state(cc, cs, now_nanos=1_000_000_000) assert lead_visible assert lead_distance == pytest.approx(37.5) assert lead_rel_speed == pytest.approx(-1.3) - assert distance_setting == 3 def test_canfd_scc_lead_state_falls_back_to_hud_lead_when_no_distance_available(self): CP = CarParams.new_message() @@ -575,12 +547,11 @@ class TestHyundaiFingerprint: stock_camera_lead_rel_speed=0.0, ) - lead_visible, lead_distance, lead_rel_speed, distance_setting = controller._get_canfd_scc_lead_state(cc, cs, now_nanos=1_000_000_000) + lead_visible, lead_distance, lead_rel_speed = controller._get_canfd_scc_lead_state(cc, cs, now_nanos=1_000_000_000) assert lead_visible assert lead_distance == pytest.approx(20.0) assert lead_rel_speed == pytest.approx(0.0) - assert distance_setting == 2 def test_can_acc_commands_use_default_values(self): CP = CarParams.new_message()