#!/usr/bin/env python3 # type: ignore import sys from tools.lib.logreader import MultiLogIterator from xx.chffr.lib.route import Route # pylint: disable=import-error def get_fingerprint(lr): can_msgs = [m for m in lr if m.which() == 'can'] msgs = {} for msg in can_msgs: for c in msg.can: # read also msgs sent by EON on CAN bus 0x80 and filter out the # addr with more than 11 bits if c.src % 0x80 == 0 and c.address < 0x800: msgs[c.address] = len(c.dat) fingerprint = ', '.join("%d: %d" % v for v in sorted(msgs.items())) print("number of messages {0}:".format(len(msgs))) print("fingerprint {0}".format(fingerprint)) if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: ./get_fingerprint_internal.py ") sys.exit(1) route = sys.argv[1] route = Route(route) lr = MultiLogIterator(route.log_paths()[:5], wraparound=False) get_fingerprint(lr)