#!/usr/bin/awk -f # (c)2019 by Geier99 - Alle Rechte vorbehalten BEGIN { printf("\nKonvertiere CANHACKER Trace in das ASC- Logformatlog\n-----------------cut here---------------------------"); lastsekunde = 0; faktorSekunde = 0; startime = systime(); # aktuelle Uhrzeit als Startzeit nehmen rxcount = 0; candelta = 60; } $2 ~ /([0-9A-F]){3,8}/ { rxcount +=1; gsub(",",".",$1); # falls aus USA, Punkte in der Zeitangabe ersetzen. split($1, zeit, "."); # Sekunden und Mili trennen if (zeit[1] < lastsekunde) { # CAN-Hacker überlauf nur 60s abfangen bzw. 100 von meinem CAN-Logger faktorSekunde += 1; if (lastsekunde > 60) { candelta = 100; } } printf("\n(%ld.%06d) can0 %s#",(startime + zeit[1] + (faktorSekunde*candelta)), zeit[2]*1000, $2 ); for(i=0;i<$3;i++){ printf("%s",$(i+4)); } lastsekunde = zeit[1]; } END { printf ("\n------------------- end cut here-----------------------------\n Ende konvertiertes logfile\n %d Messages konvertiert",rxcount); print "\n\n Date:", strftime("%Y-%m-%d %H:%M:%S", startime); printf(" (c)2019 by Geier99 - Alle Rechte vorbehalten "); }