squeak squeak

This commit is contained in:
firestar5683
2026-08-23 09:19:58 -05:00
parent 5f65219aed
commit 28ec3ccb80
2 changed files with 39 additions and 11 deletions
@@ -29,11 +29,14 @@ class FakeDetector:
self.slow_lead_detected = False
self.stop_light_detected = False
self.stop_light_model_detected = False
self.toggle_objects = []
def curve_detection(self, *_args, **_kwargs):
def curve_detection(self, _v_ego, toggles):
self.toggle_objects.append(toggles)
return None
def slow_lead(self, *_args, **_kwargs):
def slow_lead(self, toggles, _v_ego):
self.toggle_objects.append(toggles)
return None
def stop_sign_and_light(self, *_args, **_kwargs):
@@ -114,6 +117,23 @@ def test_ccm_stays_experimental_when_no_chill_condition_matches(monkeypatch):
assert ccm.status_value == CCStatus["OFF"]
def test_ccm_reuses_detector_toggles(monkeypatch):
_planner, detector, ccm = make_ccm()
sm = make_sm()
toggles = make_toggles()
monkeypatch.setattr("openpilot.starpilot.controls.lib.conditional_chill_mode.time.monotonic", lambda: 1.0)
ccm.update(20 * CV.MPH_TO_MS, 21 * CV.MPH_TO_MS, sm, toggles)
first_curve_toggles, first_slow_lead_toggles = detector.toggle_objects
detector.toggle_objects.clear()
ccm.update(20 * CV.MPH_TO_MS, 21 * CV.MPH_TO_MS, sm, toggles)
second_curve_toggles, second_slow_lead_toggles = detector.toggle_objects
assert first_curve_toggles is first_slow_lead_toggles
assert second_curve_toggles is second_slow_lead_toggles
assert first_curve_toggles is second_curve_toggles
def test_ccm_enters_chill_for_open_road_speed_recovery(monkeypatch):
planner, _detector, ccm = make_ccm()
sm = make_sm()
@@ -10,6 +10,21 @@ from openpilot.starpilot.common.experimental_state import (
)
class DetectorToggles:
"""Fixed detector configuration used by Conditional Chill."""
__slots__ = ()
conditional_curves = True
conditional_curves_lead = True
conditional_lead = True
conditional_slower_lead = True
conditional_stopped_lead = True
DETECTOR_TOGGLES = DetectorToggles()
class ConditionalChillMode:
CCM_STOP_MODEL_TIME = 7.0
CHILL_SPEED_ENTRY_CONFIRM_TIME = 0.35
@@ -132,15 +147,8 @@ class ConditionalChillMode:
self._launch_forced_exit = False
def _refresh_detector(self, v_ego, sm):
detector_toggles = type("DetectorToggles", (), {
"conditional_curves": True,
"conditional_curves_lead": True,
"conditional_lead": True,
"conditional_slower_lead": True,
"conditional_stopped_lead": True,
})()
self.detector.curve_detection(v_ego, detector_toggles)
self.detector.slow_lead(detector_toggles, v_ego)
self.detector.curve_detection(v_ego, DETECTOR_TOGGLES)
self.detector.slow_lead(DETECTOR_TOGGLES, v_ego)
self.detector.stop_sign_and_light(v_ego, sm, self.CCM_STOP_MODEL_TIME)
def _has_hard_veto(self, v_ego, sm, allow_launch=False):