mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-30 12:43:46 +08:00
squeak squeak
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user