You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							32 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							32 lines
						
					
					
						
							1.0 KiB
						
					
					
				| #!/usr/bin/env python3
 | |
| 
 | |
| # simple script to get a vehicle fingerprint.
 | |
| 
 | |
| # Instructions:
 | |
| # - connect to a Panda
 | |
| # - run selfdrive/boardd/boardd
 | |
| # - launching this script
 | |
| # - turn on the car in STOCK MODE (set giraffe switches properly).
 | |
| #   Note: it's very important that the car is in stock mode, in order to collect a complete fingerprint
 | |
| # - since some messages are published at low frequency, keep this script running for at least 30s,
 | |
| #   until all messages are received at least once
 | |
| 
 | |
| import cereal.messaging as messaging
 | |
| 
 | |
| logcan = messaging.sub_sock('can')
 | |
| msgs = {}
 | |
| while True:
 | |
|   lc = messaging.recv_sock(logcan, True)
 | |
|   if lc is None:
 | |
|     continue
 | |
| 
 | |
|   for c in lc.can:
 | |
|     # read also msgs sent by EON on CAN bus 0x80 and filter out the
 | |
|     # addr with more than 11 bits
 | |
|     if c.src in [0, 2] 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))
 | |
| 
 |