You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
#!/usr/bin/env python3
|
|
import os
|
|
import time
|
|
import random
|
|
import contextlib
|
|
|
|
from panda import PandaJungle
|
|
from panda import Panda
|
|
|
|
PANDA_UNDER_TEST = Panda.HW_TYPE_UNO
|
|
|
|
panda_jungle = PandaJungle()
|
|
|
|
def silent_panda_connect():
|
|
with open(os.devnull, "w") as devnull:
|
|
with contextlib.redirect_stdout(devnull):
|
|
panda = Panda()
|
|
return panda
|
|
|
|
def reboot_panda(harness_orientation=PandaJungle.HARNESS_ORIENTATION_NONE, ignition=False):
|
|
print(f"Restarting panda with harness orientation: {harness_orientation} and ignition: {ignition}")
|
|
panda_jungle.set_panda_power(False)
|
|
panda_jungle.set_harness_orientation(harness_orientation)
|
|
panda_jungle.set_ignition(ignition)
|
|
time.sleep(2)
|
|
panda_jungle.set_panda_power(True)
|
|
time.sleep(2)
|
|
|
|
count = 0
|
|
if __name__ == "__main__":
|
|
while True:
|
|
ignition = random.randint(0, 1)
|
|
harness_orientation = random.randint(0, 2)
|
|
reboot_panda(harness_orientation, ignition)
|
|
|
|
p = silent_panda_connect()
|
|
assert p.get_type() == PANDA_UNDER_TEST
|
|
assert p.health()['car_harness_status'] == harness_orientation
|
|
if harness_orientation != PandaJungle.HARNESS_ORIENTATION_NONE:
|
|
assert p.health()['ignition_line'] == ignition
|
|
|
|
count += 1
|
|
print(f"Passed {count} loops")
|
|
|
|
|
|
|