decode some of 0x390 -- charger messages
[leaf-can-dissector.git] / pcap-to-canplayer-binary.py
1 #! /usr/bin/python3
2
3 import binascii
4 import sys
5 import struct
6
7 data = sys.stdin.buffer.read(24)
8 state = {}
9 counter = 0
10 while True:
11   data = sys.stdin.buffer.read(16)
12   if len(data) != 16:
13     break
14   (ts_sec, ts_usec, incl_len, orig_len) = struct.unpack("<LLLL", data)
15   #print(ts_sec, ts_usec, incl_len, orig_len)
16   data = sys.stdin.buffer.read(incl_len)
17   #print(binascii.hexlify(data))
18   parts = struct.unpack(">LBxxxBBBBBBBB", data)
19   can_id = parts[0]
20   length = parts[1]
21   data = parts[-8:len(parts) - 8 + length]
22   #print(str(ts_sec) + "." + str(ts_usec), "vcan0", hex(can_id) + "#" + " ".join("{:02x}".format(c) for c in data))
23   print("({}.{}) vcan0 {:x}#{}".format(ts_sec, ts_usec, can_id, "".join("{:02x}".format(c) for c in data)))
24   #print("({}.{}) vcan0 {:x}#{}".format(counter, 0, can_id, "".join("{:02x}".format(c) for c in data)))
25   counter = counter + 1