|
|
|
@ -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) |
|
|
|
|