CAN_Reverse_Engineering/Pipeline/FromCanUtilsLog.py

30 lines
899 B
Python

import re
def canUtilsToTSV(filename):
outFileName = filename + ".tsv"
with open(outFileName, "w") as outFile:
with open(filename, "r") as file:
linePattern = re.compile(r"\((\d+.\d+)\)\s+[^\s]+\s+(.{3}|.{8})#([0-9A-F]+)")
while True:
line = file.readline()
if not line:
return outFileName
tokens = linePattern.search(line).groups()
# write delta time
writeLine = tokens[0]
# write arb id
writeLine += '\t' + tokens[1]
# write dlc
bytes = int(len(tokens[2]) / 2)
writeLine += '\t' + str(bytes)
# write bytes
for b in range(bytes):
writeLine += '\t' + tokens[2][b*2:b*2+2]
outFile.write(writeLine + '\n')