replay many update

pull/1412/head
Willem Melching 5 years ago
parent 8590969c1b
commit 559e3aa8a0
  1. 54
      selfdrive/boardd/tests/replay_many.py

@ -5,7 +5,7 @@ import time
import signal import signal
import traceback import traceback
import usb1 import usb1
from panda import Panda from panda import Panda, PandaDFU
from multiprocessing import Pool from multiprocessing import Pool
jungle = "JUNGLE" in os.environ jungle = "JUNGLE" in os.environ
@ -22,31 +22,31 @@ def initializer():
def send_thread(sender_serial): def send_thread(sender_serial):
global jungle global jungle
try: while True:
if jungle: try:
sender = PandaJungle(sender_serial) if jungle:
else: sender = PandaJungle(sender_serial)
sender = Panda(sender_serial) else:
sender.set_safety_mode(Panda.SAFETY_ALLOUTPUT) sender = Panda(sender_serial)
sender.set_can_loopback(False) sender.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
can_sock = messaging.sub_sock('can') sender.set_can_loopback(False)
can_sock = messaging.sub_sock('can')
while True: while True:
# Send messages one bus 0 and 1 tsc = messaging.recv_one(can_sock)
tsc = messaging.recv_one(can_sock) snd = can_capnp_to_can_list(tsc.can)
snd = can_capnp_to_can_list(tsc.can)
snd = list(filter(lambda x: x[-1] <= 2, snd))
try: try:
sender.can_send_many(snd) sender.can_send_many(snd)
except usb1.USBErrorTimeout: except usb1.USBErrorTimeout:
print("Can TX overflow", sender_serial) pass
# Drain panda message buffer # Drain panda message buffer
sender.can_recv() sender.can_recv()
except Exception: except Exception:
traceback.print_exc() traceback.print_exc()
time.sleep(1)
if __name__ == "__main__": if __name__ == "__main__":
if jungle: if jungle:
@ -55,12 +55,22 @@ if __name__ == "__main__":
serials = Panda.list() serials = Panda.list()
num_senders = len(serials) num_senders = len(serials)
if num_senders == 0: if num_senders == 0:
print("No senders found. Exiting") print("No senders found. Exiting")
sys.exit(1) sys.exit(1)
else: else:
print("%d senders found. Starting broadcast" % num_senders) print("%d senders found. Starting broadcast" % num_senders)
if "FLASH" in os.environ:
for s in PandaDFU.list():
PandaDFU(s).recover()
time.sleep(1)
for s in serials:
Panda(s).recover()
Panda(s).flash()
pool = Pool(num_senders, initializer=initializer) pool = Pool(num_senders, initializer=initializer)
pool.map_async(send_thread, serials) pool.map_async(send_thread, serials)

Loading…
Cancel
Save