diff --git a/selfdrive/controls/tests/test_starpilot_acceleration.py b/selfdrive/controls/tests/test_starpilot_acceleration.py index 93c6897bcf..c1b4fbdf45 100644 --- a/selfdrive/controls/tests/test_starpilot_acceleration.py +++ b/selfdrive/controls/tests/test_starpilot_acceleration.py @@ -102,7 +102,7 @@ def test_slc_coast_window_uses_effective_target_with_offset_and_cluster_diff(): assert accel.min_accel == pytest.approx(-0.02, abs=1e-3) -def test_slc_coast_window_disabled_when_set_speed_limit_is_off(): +def test_slc_coast_window_still_applies_when_set_speed_limit_is_off(): raw_target = 58.0 * CV.MPH_TO_MS slc_target = 45.0 * CV.MPH_TO_MS slc_offset = 3.0 * CV.MPH_TO_MS @@ -112,7 +112,7 @@ def test_slc_coast_window_disabled_when_set_speed_limit_is_off(): accel.update(v_ego, sm, make_toggles(deceleration_profile=DECELERATION_PROFILES["ECO"], set_speed_limit=False)) - assert accel.min_accel == pytest.approx(A_CRUISE_MIN_ECO) + assert accel.min_accel == pytest.approx(-0.02, abs=1e-3) def test_slc_coast_window_scales_by_profile_strength(): diff --git a/selfdrive/controls/tests/test_starpilot_vcruise.py b/selfdrive/controls/tests/test_starpilot_vcruise.py index 82738c3f97..4c96ad6e52 100644 --- a/selfdrive/controls/tests/test_starpilot_vcruise.py +++ b/selfdrive/controls/tests/test_starpilot_vcruise.py @@ -4,23 +4,21 @@ from openpilot.common.constants import CV from openpilot.starpilot.controls.lib.starpilot_vcruise import get_active_slc_control_target -def test_active_slc_control_target_requires_set_speed_limit(): +def test_active_slc_control_target_ignores_set_speed_limit_toggle(): + target = get_active_slc_control_target( + speed_limit_controller=True, + slc_target=45.0 * CV.MPH_TO_MS, + slc_offset=3.0 * CV.MPH_TO_MS, + overridden_speed=0.0, + v_ego_diff=0.4, + ) + + assert target == pytest.approx((48.0 * CV.MPH_TO_MS) - 0.4) + + +def test_active_slc_control_target_applies_offset_and_cluster_diff(): target = get_active_slc_control_target( speed_limit_controller=True, - set_speed_limit=False, - slc_target=45.0 * CV.MPH_TO_MS, - slc_offset=3.0 * CV.MPH_TO_MS, - overridden_speed=0.0, - v_ego_diff=0.4, - ) - - assert target == 0.0 - - -def test_active_slc_control_target_applies_offset_and_cluster_diff(): - target = get_active_slc_control_target( - speed_limit_controller=True, - set_speed_limit=True, slc_target=45.0 * CV.MPH_TO_MS, slc_offset=3.0 * CV.MPH_TO_MS, overridden_speed=0.0, diff --git a/selfdrive/ui/layouts/settings/starpilot/longitudinal.py b/selfdrive/ui/layouts/settings/starpilot/longitudinal.py index 834f655717..a8c898473d 100644 --- a/selfdrive/ui/layouts/settings/starpilot/longitudinal.py +++ b/selfdrive/ui/layouts/settings/starpilot/longitudinal.py @@ -945,7 +945,7 @@ class StarPilotSLCQOLLayout(StarPilotPanel): super().__init__() self.CATEGORIES = [ { - "title": tr_noop("Auto Match Speed Limits"), + "title": tr_noop("Match Speed Limit on Engage"), "type": "toggle", "get_state": lambda: self._params.get_bool("SetSpeedLimit"), "set_state": lambda s: self._params.put_bool("SetSpeedLimit", s), diff --git a/starpilot/controls/lib/starpilot_acceleration.py b/starpilot/controls/lib/starpilot_acceleration.py index 9f4a7266e1..7e693c8e1a 100644 --- a/starpilot/controls/lib/starpilot_acceleration.py +++ b/starpilot/controls/lib/starpilot_acceleration.py @@ -204,7 +204,6 @@ class StarPilotAcceleration: v_ego_diff = v_ego_cluster - v_ego effective_slc_target = get_active_slc_control_target( getattr(starpilot_toggles, "speed_limit_controller", False), - getattr(starpilot_toggles, "set_speed_limit", False), getattr(self.starpilot_planner.starpilot_vcruise, "slc_target", 0.0), getattr(self.starpilot_planner.starpilot_vcruise, "slc_offset", 0.0), getattr(getattr(self.starpilot_planner.starpilot_vcruise, "slc", None), "overridden_speed", 0.0), diff --git a/starpilot/controls/lib/starpilot_vcruise.py b/starpilot/controls/lib/starpilot_vcruise.py index 134659bb6a..fffa6254ba 100644 --- a/starpilot/controls/lib/starpilot_vcruise.py +++ b/starpilot/controls/lib/starpilot_vcruise.py @@ -27,8 +27,8 @@ OFFSET_FT_MIN = -20 OFFSET_FT_MAX = 20 -def get_active_slc_control_target(speed_limit_controller, set_speed_limit, slc_target, slc_offset, overridden_speed, v_ego_diff): - if not speed_limit_controller or not set_speed_limit: +def get_active_slc_control_target(speed_limit_controller, slc_target, slc_offset, overridden_speed, v_ego_diff): + if not speed_limit_controller: return 0.0 base_target = max(float(overridden_speed), float(slc_target) + float(slc_offset)) @@ -197,7 +197,6 @@ class StarPilotVCruise: targets = [self.csc_target, v_cruise] slc_control_target = get_active_slc_control_target( starpilot_toggles.speed_limit_controller, - getattr(starpilot_toggles, "set_speed_limit", False), self.slc_target, self.slc_offset, self.slc.overridden_speed,