parent
							
								
									d468d6e890
								
							
						
					
					
						commit
						768bea48d0
					
				
				 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