replay many update
parent
8590969c1b
commit
559e3aa8a0
|
@ -5,7 +5,7 @@ import time
|
|||
import signal
|
||||
import traceback
|
||||
import usb1
|
||||
from panda import Panda
|
||||
from panda import Panda, PandaDFU
|
||||
from multiprocessing import Pool
|
||||
|
||||
jungle = "JUNGLE" in os.environ
|
||||
|
@ -22,31 +22,31 @@ def initializer():
|
|||
|
||||
def send_thread(sender_serial):
|
||||
global jungle
|
||||
try:
|
||||
if jungle:
|
||||
sender = PandaJungle(sender_serial)
|
||||
else:
|
||||
sender = Panda(sender_serial)
|
||||
sender.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
sender.set_can_loopback(False)
|
||||
while True:
|
||||
try:
|
||||
if jungle:
|
||||
sender = PandaJungle(sender_serial)
|
||||
else:
|
||||
sender = Panda(sender_serial)
|
||||
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:
|
||||
# Send messages one bus 0 and 1
|
||||
tsc = messaging.recv_one(can_sock)
|
||||
snd = can_capnp_to_can_list(tsc.can)
|
||||
snd = list(filter(lambda x: x[-1] <= 2, snd))
|
||||
while True:
|
||||
tsc = messaging.recv_one(can_sock)
|
||||
snd = can_capnp_to_can_list(tsc.can)
|
||||
|
||||
try:
|
||||
sender.can_send_many(snd)
|
||||
except usb1.USBErrorTimeout:
|
||||
print("Can TX overflow", sender_serial)
|
||||
try:
|
||||
sender.can_send_many(snd)
|
||||
except usb1.USBErrorTimeout:
|
||||
pass
|
||||
|
||||
# Drain panda message buffer
|
||||
sender.can_recv()
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
# Drain panda message buffer
|
||||
sender.can_recv()
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
if jungle:
|
||||
|
@ -55,12 +55,22 @@ if __name__ == "__main__":
|
|||
serials = Panda.list()
|
||||
num_senders = len(serials)
|
||||
|
||||
|
||||
if num_senders == 0:
|
||||
print("No senders found. Exiting")
|
||||
sys.exit(1)
|
||||
else:
|
||||
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.map_async(send_thread, serials)
|
||||
|
||||
|
|
Loading…
Reference in New Issue