2023-04-17 06:08:46 +08:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
import os
|
|
|
|
import subprocess
|
2024-09-25 07:37:23 +08:00
|
|
|
import argparse
|
2023-04-17 06:08:46 +08:00
|
|
|
|
|
|
|
from panda import Panda
|
|
|
|
|
|
|
|
board_path = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2024-09-25 07:37:23 +08:00
|
|
|
parser = argparse.ArgumentParser()
|
|
|
|
parser.add_argument("--all", action="store_true", help="Recover all Panda devices")
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
2023-04-17 06:08:46 +08:00
|
|
|
subprocess.check_call(f"scons -C {board_path}/.. -j$(nproc) {board_path}", shell=True)
|
|
|
|
|
2024-09-25 07:37:23 +08:00
|
|
|
if args.all:
|
|
|
|
serials = Panda.list()
|
|
|
|
print(f"found {len(serials)} panda(s) - {serials}")
|
|
|
|
else:
|
|
|
|
serials = [None]
|
|
|
|
|
2023-04-17 06:08:46 +08:00
|
|
|
for s in serials:
|
|
|
|
with Panda(serial=s) as p:
|
2024-09-25 07:37:23 +08:00
|
|
|
print("flashing", p.get_usb_serial())
|
2023-04-17 06:08:46 +08:00
|
|
|
p.flash()
|
2024-03-22 04:04:45 +08:00
|
|
|
exit(1 if len(serials) == 0 else 0)
|