From eaf5d440372e5aa970ddc564bc3a533b20e7a2d9 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Wed, 10 Jun 2026 15:54:35 -0500 Subject: [PATCH] forte he --- starpilot/controls/starpilot_card.py | 9 +++++-- .../controls/tests/test_starpilot_card.py | 25 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/starpilot/controls/starpilot_card.py b/starpilot/controls/starpilot_card.py index 51b1cc09f..e6b7f2f4f 100644 --- a/starpilot/controls/starpilot_card.py +++ b/starpilot/controls/starpilot_card.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 from opendbc.car.chrysler.values import pacifica_hybrid_aol_requires_set_press -from opendbc.car.hyundai.values import HyundaiFlags +from opendbc.car.hyundai.values import CAR as HYUNDAI_CAR, HyundaiFlags from opendbc.safety import ALTERNATIVE_EXPERIENCE from openpilot.common.params import Params from openpilot.selfdrive.car.cruise import CRUISE_LONG_PRESS, ButtonType @@ -26,7 +26,12 @@ class StarPilotCard: self.accel_pressed = False self.always_on_lateral_allowed = False - self.hyundai_aol_needs_engagement = self.CP.brand == "hyundai" and not (getattr(self.CP, "flags", 0) & HyundaiFlags.CANFD) + hyundai_flags = getattr(self.CP, "flags", 0) + kia_forte_non_scc = ( + getattr(self.CP, "carFingerprint", None) in (HYUNDAI_CAR.KIA_FORTE_2019_NON_SCC, HYUNDAI_CAR.KIA_FORTE_2021_NON_SCC) and + bool(hyundai_flags & HyundaiFlags.NON_SCC) + ) + self.hyundai_aol_needs_engagement = self.CP.brand == "hyundai" and not (hyundai_flags & HyundaiFlags.CANFD) and not kia_forte_non_scc self.hyundai_aol_ready = False self.prev_active = False self.prev_cruise_enabled = False diff --git a/starpilot/controls/tests/test_starpilot_card.py b/starpilot/controls/tests/test_starpilot_card.py index 1adc2b18f..2a2e67447 100644 --- a/starpilot/controls/tests/test_starpilot_card.py +++ b/starpilot/controls/tests/test_starpilot_card.py @@ -156,6 +156,31 @@ def test_hyundai_canfd_lkas_button_can_toggle_aol_before_engagement(monkeypatch, assert ret.alwaysOnLateralEnabled is True +def test_kia_forte_non_scc_main_cruise_button_can_toggle_aol_before_engagement(monkeypatch, tmp_path): + monkeypatch.setattr(spc, "Params", FakeParams) + monkeypatch.setattr(spc, "is_FrogsGoMoo", lambda: False) + monkeypatch.setattr(spc, "ERROR_LOGS_PATH", tmp_path) + + card = spc.StarPilotCard( + SimpleNamespace( + brand="hyundai", + carFingerprint=spc.HYUNDAI_CAR.KIA_FORTE_2021_NON_SCC, + flags=spc.HyundaiFlags.NON_SCC, + ), + SimpleNamespace(alternativeExperience=spc.ALTERNATIVE_EXPERIENCE.ALWAYS_ON_LATERAL), + ) + + car_state = make_car_state(available=True, button_events=[SimpleNamespace(type=spc.ButtonType.mainCruise, pressed=True)]) + starpilot_car_state = SimpleNamespace(distancePressed=False) + sm = make_sm() + toggles = make_toggles(always_on_lateral=True, main_cruise_aol_toggle=True) + + ret = card.update(car_state, starpilot_car_state, sm, toggles) + + assert ret.alwaysOnLateralAllowed is True + assert ret.alwaysOnLateralEnabled is True + + def test_hyundai_main_cruise_button_toggles_aol_when_assigned_to_aol(monkeypatch, tmp_path): monkeypatch.setattr(spc, "Params", FakeParams) monkeypatch.setattr(spc, "is_FrogsGoMoo", lambda: False)