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.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				| #!/usr/bin/env python3
 | |
| 
 | |
| import csv
 | |
| import time
 | |
| from panda import Panda
 | |
| 
 | |
| def can_logger():
 | |
|   p = Panda()
 | |
| 
 | |
|   try:
 | |
|     outputfile = open('output.csv', 'w')
 | |
|     csvwriter = csv.writer(outputfile)
 | |
|     # Write Header
 | |
|     csvwriter.writerow(['Bus', 'MessageID', 'Message', 'MessageLength', 'Time'])
 | |
|     print("Writing csv file output.csv. Press Ctrl-C to exit...\n")
 | |
| 
 | |
|     bus0_msg_cnt = 0
 | |
|     bus1_msg_cnt = 0
 | |
|     bus2_msg_cnt = 0
 | |
| 
 | |
|     start_time = time.time()
 | |
|     while True:
 | |
|       can_recv = p.can_recv()
 | |
| 
 | |
|       for address, dat, src in can_recv:
 | |
|         csvwriter.writerow(
 | |
|           [str(src), str(hex(address)), f"0x{dat.hex()}", len(dat), str(time.time() - start_time)])
 | |
| 
 | |
|         if src == 0:
 | |
|           bus0_msg_cnt += 1
 | |
|         elif src == 1:
 | |
|           bus1_msg_cnt += 1
 | |
|         elif src == 2:
 | |
|           bus2_msg_cnt += 1
 | |
| 
 | |
|         print(f"Message Counts... Bus 0: {bus0_msg_cnt} Bus 1: {bus1_msg_cnt} Bus 2: {bus2_msg_cnt}", end='\r')
 | |
| 
 | |
|   except KeyboardInterrupt:
 | |
|     print(f"\nNow exiting. Final message Counts... Bus 0: {bus0_msg_cnt} Bus 1: {bus1_msg_cnt} Bus 2: {bus2_msg_cnt}")
 | |
|     outputfile.close()
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|   can_logger()
 | |
| 
 |