Benutzer-Werkzeuge

Webseiten-Werkzeuge


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