mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-06-24 23:02:06 +08:00
14ff1fb436
version: sunnypilot v2026.002.000 (dev)
date: 2026-06-09T06:39:10
master commit: 01a843e0ac
62 lines
1.6 KiB
Python
62 lines
1.6 KiB
Python
from cereal import car
|
|
from cereal import messaging
|
|
from cereal.messaging import SubMaster, PubMaster
|
|
from openpilot.selfdrive.ui.soundd import SELFDRIVE_STATE_TIMEOUT, check_selfdrive_timeout_alert
|
|
|
|
import time
|
|
|
|
AudibleAlert = car.CarControl.HUDControl.AudibleAlert
|
|
|
|
|
|
class TestSoundd:
|
|
def test_check_selfdrive_timeout_alert(self):
|
|
sm = SubMaster(['selfdriveState', 'selfdriveStateSP'])
|
|
pm = PubMaster(['selfdriveState', 'selfdriveStateSP'])
|
|
|
|
for _ in range(100):
|
|
cs = messaging.new_message('selfdriveState')
|
|
cs.selfdriveState.enabled = True
|
|
|
|
pm.send("selfdriveState", cs)
|
|
|
|
time.sleep(0.01)
|
|
|
|
sm.update(0)
|
|
|
|
assert not check_selfdrive_timeout_alert(sm)
|
|
|
|
for _ in range(SELFDRIVE_STATE_TIMEOUT * 110):
|
|
sm.update(0)
|
|
time.sleep(0.01)
|
|
|
|
assert check_selfdrive_timeout_alert(sm)
|
|
|
|
def test_check_selfdrive_timeout_alert_mads_lateral_only(self):
|
|
sm = SubMaster(['selfdriveState', 'selfdriveStateSP'])
|
|
pm = PubMaster(['selfdriveState', 'selfdriveStateSP'])
|
|
|
|
for _ in range(100):
|
|
cs = messaging.new_message('selfdriveState')
|
|
cs.selfdriveState.enabled = False
|
|
|
|
ss_sp = messaging.new_message('selfdriveStateSP')
|
|
ss_sp.selfdriveStateSP.mads.enabled = True
|
|
|
|
pm.send("selfdriveState", cs)
|
|
pm.send("selfdriveStateSP", ss_sp)
|
|
|
|
time.sleep(0.01)
|
|
|
|
sm.update(0)
|
|
|
|
assert not check_selfdrive_timeout_alert(sm)
|
|
|
|
for _ in range(SELFDRIVE_STATE_TIMEOUT * 110):
|
|
sm.update(0)
|
|
time.sleep(0.01)
|
|
|
|
assert check_selfdrive_timeout_alert(sm)
|
|
|
|
# TODO: add test with micd for checking that soundd actually outputs sounds
|
|
|