Hi,
ich möchte mir ein Script schreiben mit dem ich LIN Logs leicht anaylsieren kann.
Bsp.: 12:28:13:3842 Rx 1 0x011 8 DE 7F FF FF FF FF FF FF 0x90 (Enhanced)
Ziel ist zB. alle Zeilen an der Stelle "7F" zu untersuchen, wenn "0x011" auch auftaucht
Meine erste Idee war jetzt alles in eine sql Tabelle zu schreiben und dann Zeilen die von Wert "x" als Fehler zu werten. Das Übertragen der .logs in eine sql Tabelle scheint jedoch recht langsam zu sein
Welche Methode wäre hier vielleicht zielführender?
lg slook
LIN Logs (Busmaster) analysieren
***BUSMASTER Ver 3.2.2***
***PROTOCOL LIN***
***NOTE: PLEASE DO NOT EDIT THIS DOCUMENT***
***[START LOGGING SESSION]***
***START DATE AND TIME 20:9:2019 12:28:13:322***
***HEX***
Der Aufbau sieht wie folgt aus
***SYSTEM MODE***
***START CHANNEL BAUD RATE***
***CHANNEL 1 - Protocol Version LIN 2.0 - Hardware - BaudRate 19200 bps***
***END CHANNEL BAUD RATE***
***START DATABASE FILES***
***C:\Users\xxxx\ein.ldf***
***END DATABASE FILES***
***<Time><Tx/Rx><Channel><ID><DLC><DataBytes><Checksum>***
12:28:13:3488 Error - Slave Not Responding 1 0x001 0x00 ((null))
12:28:13:3668 Tx 1 0x010 8 D5 FF FF FF FF FF FF FF 0xD9 (Enhanced)
12:28:13:3842 Rx 1 0x011 8 DE 7F FF FF FF FF FF FF 0x90 (Enhanced)
12:28:13:4026 Error - Slave Not Responding 1 0x012 0x00 ((null))
12:28:13:4195 Error - Slave Not Responding 1 0x002 0x00 ((null))
12:28:13:4363 Error - Slave Not Responding 1 0x001 0x00 ((null))
12:28:13:4516 Tx 1 0x010 8 D5 FF FF FF FF FF FF FF 0xD9 (Enhanced)
Hier kommen dann ewig viele Zeilen
12:28:48:4110 Error - Slave Not Responding 1 0x001 0x00 ((null))
12:28:48:4229 Tx 1 0x010 8 D5 FF FF FF FF FF FF FF 0xD9 (Enhanced)
12:28:48:4400 Error - Slave Not Responding 1 0x013 0x00 ((null))
12:28:48:4596 Error - Slave Not Responding 1 0x014 0x00 ((null))
***END DATE AND TIME 20:9:2019 12:28:48:476***
***[STOP LOGGING SESSION]***
***PROTOCOL LIN***
***NOTE: PLEASE DO NOT EDIT THIS DOCUMENT***
***[START LOGGING SESSION]***
***START DATE AND TIME 20:9:2019 12:28:13:322***
***HEX***
Der Aufbau sieht wie folgt aus
***SYSTEM MODE***
***START CHANNEL BAUD RATE***
***CHANNEL 1 - Protocol Version LIN 2.0 - Hardware - BaudRate 19200 bps***
***END CHANNEL BAUD RATE***
***START DATABASE FILES***
***C:\Users\xxxx\ein.ldf***
***END DATABASE FILES***
***<Time><Tx/Rx><Channel><ID><DLC><DataBytes><Checksum>***
12:28:13:3488 Error - Slave Not Responding 1 0x001 0x00 ((null))
12:28:13:3668 Tx 1 0x010 8 D5 FF FF FF FF FF FF FF 0xD9 (Enhanced)
12:28:13:3842 Rx 1 0x011 8 DE 7F FF FF FF FF FF FF 0x90 (Enhanced)
12:28:13:4026 Error - Slave Not Responding 1 0x012 0x00 ((null))
12:28:13:4195 Error - Slave Not Responding 1 0x002 0x00 ((null))
12:28:13:4363 Error - Slave Not Responding 1 0x001 0x00 ((null))
12:28:13:4516 Tx 1 0x010 8 D5 FF FF FF FF FF FF FF 0xD9 (Enhanced)
Hier kommen dann ewig viele Zeilen
12:28:48:4110 Error - Slave Not Responding 1 0x001 0x00 ((null))
12:28:48:4229 Tx 1 0x010 8 D5 FF FF FF FF FF FF FF 0xD9 (Enhanced)
12:28:48:4400 Error - Slave Not Responding 1 0x013 0x00 ((null))
12:28:48:4596 Error - Slave Not Responding 1 0x014 0x00 ((null))
***END DATE AND TIME 20:9:2019 12:28:48:476***
***[STOP LOGGING SESSION]***
Wenn die Daten nur 1 Mal ausgewertet werden, dann mach es keinen Sinn, diese in eine Datenbank zu schreiben. Um sie dorthin zu bringen, müsstest du sie ja 1 Mal einlesen. Wenn du das eh schon tust, kannst du sie dabei auch auswerten.
Man kann da jetzt Schwergewichte drauf loslassen oder die Datei Zeile für Zeile durch gehen. Was genau möchtest du denn Auswerten? Davon würde jetzt abhängen, wie genau man dort vorgeht.
Wenn es nur darum geht die Zeilen zu finden und/oder zu zählen würde ich die einzeln durchgehen, gucken ob die beiden geforderten Werte enthalten sind, und das entsprechend verwerten.
Man kann da jetzt Schwergewichte drauf loslassen oder die Datei Zeile für Zeile durch gehen. Was genau möchtest du denn Auswerten? Davon würde jetzt abhängen, wie genau man dort vorgeht.
Wenn es nur darum geht die Zeilen zu finden und/oder zu zählen würde ich die einzeln durchgehen, gucken ob die beiden geforderten Werte enthalten sind, und das entsprechend verwerten.
Ich habe mich unverständlich ausgedrückt. Um eine Auswertung zu machen, überpürfe ich mehrere Punkte. Also denke ich wäre es jedesmal wieder ein neuer Lesevorgang.
Ich denke ich versuche es mal mit einer Kombination, sodass nur Fehlerhafte einträge in die sql kommen.
Ich denke ich versuche es mal mit einer Kombination, sodass nur Fehlerhafte einträge in die sql kommen.
Ich möchte die Daten (zB DE 7F FF FF FF FF FF FF) auf bestimmte Werte pürfen, zb. dass an zweiter Position immer 00 stehen soll, dass ganze aber nur in den Zeilen wo die Adresse mit zB.:"0x011" übereinstimmt.
12:28:13:3842 Rx 1 0x011 8 DE 7F FF FF FF FF FF FF 0x90 (Enhanced)
Meine erste Idee war alle Zeilen zu speichern und dann eine grafische Auswertung zu machen.
Da der Vorgang schon etwas Zeit in Anspruch nimmt, würde ich jetzt einfach die betroffenen Zeilen in ein extra File oder in eine Datenbank/Excel speichern, dann könnte das noch leichter per Hand analysiert werden.
12:28:13:3842 Rx 1 0x011 8 DE 7F FF FF FF FF FF FF 0x90 (Enhanced)
Meine erste Idee war alle Zeilen zu speichern und dann eine grafische Auswertung zu machen.
Da der Vorgang schon etwas Zeit in Anspruch nimmt, würde ich jetzt einfach die betroffenen Zeilen in ein extra File oder in eine Datenbank/Excel speichern, dann könnte das noch leichter per Hand analysiert werden.