Skip to content

Commit 5f026d7

Browse files
authored
Merge pull request commaai#70 from adhintz/master
update can_unique.py for new can_logger.py format
2 parents 8863433 + a5f99b5 commit 5f026d7

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

examples/can_logger.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
from panda import Panda
77

88
def can_logger():
9-
9+
1010
try:
1111
print("Trying to connect to Panda over USB...")
1212
p = Panda()
13-
13+
1414
except AssertionError:
1515
print("USB connection failed. Trying WiFi...")
16-
16+
1717
try:
1818
p = Panda("WIFI")
1919
except:
@@ -26,24 +26,24 @@ def can_logger():
2626
#Write Header
2727
csvwriter.writerow(['Bus', 'MessageID', 'Message', 'MessageLength'])
2828
print("Writing csv file output.csv. Press Ctrl-C to exit...\n")
29-
29+
3030
bus0_msg_cnt = 0
3131
bus1_msg_cnt = 0
3232
bus2_msg_cnt = 0
33-
33+
3434
while True:
3535
can_recv = p.can_recv()
3636

3737
for address, _, dat, src in can_recv:
3838
csvwriter.writerow([str(src), str(hex(address)), "0x" + binascii.hexlify(dat), len(dat)])
39-
39+
4040
if src == 0:
4141
bus0_msg_cnt += 1
4242
elif src == 1:
4343
bus1_msg_cnt += 1
4444
elif src == 2:
4545
bus2_msg_cnt += 1
46-
46+
4747
print("Message Counts... Bus 0: " + str(bus0_msg_cnt) + " Bus 1: " + str(bus1_msg_cnt) + " Bus 2: " + str(bus2_msg_cnt), end='\r')
4848

4949
except KeyboardInterrupt:

examples/can_unique.py

100644100755
+16-5
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@
55
# in the background files.
66

77
# Expects the CSV file to be in the format from can_logger.py
8+
# Bus,MessageID,Message,MessageLength
9+
# 0,0x292,0x040000001068,6
10+
11+
# The old can_logger.py format is also supported:
812
# Bus,MessageID,Message
913
# 0,344,c000c00000000000
1014

15+
1116
import binascii
1217
import csv
1318
import sys
@@ -32,7 +37,7 @@ def printBitDiff(self, other):
3237
if new_zeros:
3338
print 'id %s new zero at byte %d bitmask %d' % (
3439
self.message_id, i, new_zeros)
35-
40+
3641

3742
class Info():
3843
"""A collection of Messages."""
@@ -46,8 +51,14 @@ def load(self, filename):
4651
reader = csv.reader(input)
4752
next(reader, None) # skip the CSV header
4853
for row in reader:
49-
message_id = row[1]
50-
data = row[2]
54+
if row[1].startswith('0x'):
55+
message_id = row[1][2:] # remove leading '0x'
56+
else:
57+
message_id = hex(int(row[1]))[2:] # old message IDs are in decimal
58+
if row[1].startswith('0x'):
59+
data = row[2][2:] # remove leading '0x'
60+
else:
61+
data = row[2]
5162
if message_id not in self.messages:
5263
self.messages[message_id] = Message(message_id)
5364
message = self.messages[message_id]
@@ -71,8 +82,8 @@ def PrintUnique(interesting_file, background_files):
7182
else:
7283
interesting.messages[message_id].printBitDiff(
7384
background.messages[message_id])
74-
75-
85+
86+
7687
if __name__ == "__main__":
7788
if len(sys.argv) < 3:
7889
print 'Usage:\n%s interesting.csv background*.csv' % sys.argv[0]

0 commit comments

Comments
 (0)