Add openpilot tests
This commit is contained in:
62
panda/tests/debug_console.py
Normal file
62
panda/tests/debug_console.py
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import select
|
||||
import codecs
|
||||
|
||||
from panda import Panda
|
||||
|
||||
setcolor = ["\033[1;32;40m", "\033[1;31;40m"]
|
||||
unsetcolor = "\033[00m"
|
||||
|
||||
port_number = int(os.getenv("PORT", "0"))
|
||||
claim = os.getenv("CLAIM") is not None
|
||||
no_color = os.getenv("NO_COLOR") is not None
|
||||
no_reconnect = os.getenv("NO_RECONNECT") is not None
|
||||
|
||||
if __name__ == "__main__":
|
||||
while True:
|
||||
try:
|
||||
serials = Panda.list()
|
||||
if os.getenv("SERIAL"):
|
||||
serials = [x for x in serials if x == os.getenv("SERIAL")]
|
||||
|
||||
pandas = [Panda(x, claim=claim) for x in serials]
|
||||
decoders = [codecs.getincrementaldecoder('utf-8')() for _ in pandas]
|
||||
|
||||
if not len(pandas):
|
||||
print("no pandas found")
|
||||
if no_reconnect:
|
||||
sys.exit(0)
|
||||
time.sleep(1)
|
||||
continue
|
||||
|
||||
if os.getenv("BAUD") is not None:
|
||||
for panda in pandas:
|
||||
panda.set_uart_baud(port_number, int(os.getenv("BAUD"))) # type: ignore
|
||||
|
||||
while True:
|
||||
for i, panda in enumerate(pandas):
|
||||
while True:
|
||||
ret = panda.serial_read(port_number)
|
||||
if len(ret) > 0:
|
||||
decoded = decoders[i].decode(ret)
|
||||
if no_color:
|
||||
sys.stdout.write(decoded)
|
||||
else:
|
||||
sys.stdout.write(setcolor[i] + decoded + unsetcolor)
|
||||
sys.stdout.flush()
|
||||
else:
|
||||
break
|
||||
if select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []):
|
||||
ln = sys.stdin.readline()
|
||||
if claim:
|
||||
panda.serial_write(port_number, ln)
|
||||
time.sleep(0.01)
|
||||
except KeyboardInterrupt:
|
||||
break
|
||||
except Exception:
|
||||
print("panda disconnected!")
|
||||
time.sleep(0.5)
|
||||
Reference in New Issue
Block a user