LIN Logs (Busmaster) analysieren

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
slook
User
Beiträge: 25
Registriert: Mittwoch 5. Juni 2019, 20:09

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 :shock:

Welche Methode wäre hier vielleicht zielführender?

lg slook
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Mehr Kontext.

Wie liegen die Daten vor?
Wo kommen sie her?
Über welche Menge von Daten reden wir?
Wie oft wird das auf die selben Daten gemacht? Mehrmals? Einmalig?
slook
User
Beiträge: 25
Registriert: Mittwoch 5. Juni 2019, 20:09

Es sind .log Files die aus dem Programm Busmaster kommen.
Jedes log-File 1mal analysieren. Insgesamt habe ich Daten von über 60gb
slook
User
Beiträge: 25
Registriert: Mittwoch 5. Juni 2019, 20:09

***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]***
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

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.
slook
User
Beiträge: 25
Registriert: Mittwoch 5. Juni 2019, 20:09

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.
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Erklär doch mal, was du prüfen möchtest.
slook
User
Beiträge: 25
Registriert: Mittwoch 5. Juni 2019, 20:09

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.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was unterschneidet denn das erste vom zweiten Prädikat? Jenseits der Position natürlich. Wenn du über die Daten läufst, kannst du doch mehrere Bedingungen abprüfen.
Antworten