parent
6cbe5ff2fb
commit
41de03aa6e
1 changed files with 39 additions and 0 deletions
@ -0,0 +1,39 @@ |
||||
#!/usr/bin/env python3 |
||||
import argparse |
||||
import pandas as pd # pylint: disable=import-error |
||||
|
||||
import cereal.messaging as messaging |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
parser = argparse.ArgumentParser(description="Cabana-like table of bits for your terminal", |
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter) |
||||
parser.add_argument("addr", type=str, nargs=1) |
||||
parser.add_argument("bus", type=int, default=0, nargs='?') |
||||
|
||||
args = parser.parse_args() |
||||
|
||||
addr = int(args.addr[0], 0) |
||||
can = messaging.sub_sock('can', conflate=False, timeout=None) |
||||
|
||||
print(f"waiting for {hex(addr)} ({addr}) on bus {args.bus}...") |
||||
|
||||
latest = None |
||||
while True: |
||||
for msg in messaging.drain_sock(can, wait_for_one=True): |
||||
for m in msg.can: |
||||
if m.address == addr and m.src == args.bus: |
||||
latest = m |
||||
|
||||
if latest is None: |
||||
continue |
||||
|
||||
rows = [] |
||||
for b in latest.dat: |
||||
r = list(bin(b).lstrip('0b').zfill(8)) |
||||
r += [hex(b)] |
||||
rows.append(r) |
||||
|
||||
df = pd.DataFrame(data=rows) |
||||
table = df.to_markdown(tablefmt='grid') |
||||
print(f"\n\n{hex(addr)} ({addr}) on bus {args.bus}\n{table}") |
Loading…
Reference in new issue