Source code for can.io.csv

from can.listener import Listener

import base64


[docs]class CSVWriter(Listener): """Writes a comma separated text file of timestamp, arbitration id, flags, dlc, data for each messages received. """ def __init__(self, filename): self.csv_file = open(filename, 'wt') # Write a header row self.csv_file.write("timestamp, arbitration id, extended, remote, error, dlc, data\n") def on_message_received(self, msg): row = ','.join([ str(msg.timestamp), hex(msg.arbitration_id), '1' if msg.id_type else '0', '1' if msg.is_remote_frame else '0', '1' if msg.is_error_frame else '0', str(msg.dlc), base64.b64encode(msg.data).decode('utf8') ]) self.csv_file.write(row + '\n') def stop(self): self.csv_file.flush() self.csv_file.close()