pc:peak2socketcanlog
PEAK Traces in SocketCan umwandeln
Jedes CAN- Programm hat ja scheinbar sein eigenes Trace Format.
Um die Traces der PEAK CAN Programme unter Linux über die CAN- Tools abspielen zu können, hilft ein kleines Python Script:
- trc2socketcanlog.py
import sys import re regex = re.compile(r"^0+", re.IGNORECASE) with open(sys.argv[1], encoding="utf8") as fin: line="foo" while line: line = fin.readline() if line and line[:1]!=";": # remove comments line=line.rstrip() # remove CR f = filter(None, line.split(' ')) # suppress empty fields elements=list(f) id=elements[3] id = regex.sub("", id) # remove leading "0"s time=float(elements[1]) / 1000 print(f"({time:0.6f}) can0 {id}#{''.join(elements[5:])}")
Damit konvertiert man dann entweder den PEAK Trace in das Format, was vom canplayer
abgespielt werden kann
python3 trc2socketcanlog.py peak_trace.trc > playback.log canplayer playback.log
oder wenn's nur eine einmalige Ausgabe bleiben soll, kann man die Konvertierung auch ohne Umweg über eine Datei direkt auf den CAN-Bus schieben:
python3 trc2socketcanlog.py peak_trace.trc | canplayer
pc/peak2socketcanlog.txt · Zuletzt geändert: 2024/05/18 12:09 von admin