diff --git a/selfdrive/debug/can_printer.py b/selfdrive/debug/can_printer.py index 7ea26d62fc..935065b804 100755 --- a/selfdrive/debug/can_printer.py +++ b/selfdrive/debug/can_printer.py @@ -1,25 +1,23 @@ #!/usr/bin/env python3 +import argparse import binascii -import os -import sys from collections import defaultdict import cereal.messaging as messaging from common.realtime import sec_since_boot -def can_printer(bus=0, max_msg=None, addr="127.0.0.1"): +def can_printer(bus, max_msg, addr): logcan = messaging.sub_sock('can', addr=addr) start = sec_since_boot() lp = sec_since_boot() msgs = defaultdict(list) - canbus = int(os.getenv("CAN", bus)) while 1: can_recv = messaging.drain_sock(logcan, wait_for_one=True) for x in can_recv: for y in x.can: - if y.src == canbus: + if y.src == bus: msgs[y.address].append(y.dat) if sec_since_boot() - lp > 0.1: @@ -32,11 +30,12 @@ def can_printer(bus=0, max_msg=None, addr="127.0.0.1"): lp = sec_since_boot() if __name__ == "__main__": - if len(sys.argv) > 3: - can_printer(int(sys.argv[1]), int(sys.argv[2]), sys.argv[3]) - elif len(sys.argv) > 2: - can_printer(int(sys.argv[1]), int(sys.argv[2])) - elif len(sys.argv) > 1: - can_printer(int(sys.argv[1])) - else: - can_printer() + parser = argparse.ArgumentParser(description="PlotJuggler plugin for reading openpilot logs", + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument("--bus", help="CAN bus to print out", default=0) + parser.add_argument("--max_msg", help="max addr ") + parser.add_argument("--addr", default="127.0.0.1") + + args = parser.parse_args() + can_printer(args.bus, args.max_msg, args.addr)