Sentry and Tunes

This commit is contained in:
firestar5683
2026-08-14 12:05:45 -05:00
parent 8e1caf8fe4
commit cdfd5d1d66
19 changed files with 621 additions and 9 deletions
View File
+46
View File
@@ -0,0 +1,46 @@
from openpilot.system.sentryd.detector import MotionDetector
def test_motion_detector_ignores_small_changes():
detector = MotionDetector(sensitivity=0.1)
assert detector.update((0.0, 0.0, 9.8), now=0.0) is None
assert detector.update((0.0, 0.0, 9.85), now=0.1) is None
assert detector.trigger_count == 0
def test_motion_detector_warns_once_after_sustained_motion():
detector = MotionDetector(sensitivity=0.1, warning_trigger_count=3)
detector.update((0.0, 0.0, 9.8), now=0.0)
assert detector.update((0.0, 0.0, 10.0), now=0.1) is None
assert detector.update((0.0, 0.0, 9.8), now=0.2) is None
assert detector.update((0.0, 0.0, 10.0), now=0.3) == "warning"
assert detector.update((0.0, 0.0, 9.8), now=0.4) is None
def test_motion_detector_alarms_after_time_threshold():
detector = MotionDetector(
sensitivity=0.1,
warning_trigger_count=2,
alarm_trigger_count=3,
alarm_time=1.0,
)
detector.update((0.0, 0.0, 9.8), now=0.0)
detector.update((0.0, 0.0, 10.0), now=0.1)
assert detector.update((0.0, 0.0, 9.8), now=0.2) == "warning"
assert detector.update((0.0, 0.0, 10.0), now=0.5) is None
assert detector.update((0.0, 0.0, 9.8), now=1.0) is None
assert detector.update((0.0, 0.0, 10.0), now=1.1) == "alarm"
assert detector.update((0.0, 0.0, 9.8), now=1.2) is None
def test_motion_detector_resets_after_quiet_period():
detector = MotionDetector(sensitivity=0.1, warning_trigger_count=2, reset_time=1.0)
detector.update((0.0, 0.0, 9.8), now=0.0)
detector.update((0.0, 0.0, 10.0), now=0.1)
detector.update((0.0, 0.0, 9.8), now=0.2)
detector.update((0.0, 0.0, 9.8), now=1.3)
assert detector.trigger_count == 0
assert detector.trigger_started_at is None