(Automatische) Farbliche Formatierung von Debugausgaben

Gast #3559885
Lesenswert?

Hallo!

Wir nutzen eine UART für Debugausgaben an einem µC. Dort geben wir Infos 
zu verschiedenen Schnittstellen aus. Z.B.

[HF-UART] TX: 0x00 0x01 0x02 0x03
[HF-UART] RX: 0x04 0x05 0x06
[TCP] TX: 0xAA 0xBB 0xCC
[TCP] RX: 0xFF 0x00 0x11

sehr schön wäre, wenn wir eine Interpretation der Logausgaben hätten:

z.B. wenn ein Programm den Zeilenanfang [TCP] erkennen würde und diese 
Zeile dann farblich markieren würde. Die anderen Zeilen entsprechend in 
einer anderen Farbe.

Wir nutzen zum Debuggen Realterm. Es würde auch ausreichen, eine Logfile 
mit zu schneiden und nachträglich zu formatieren. Noch besser wäre es 
"live" also währende dem UART-Mitschnitt der Debugausgaben in einem 
seriellen Terminal.

Tausend Dank für eure Hilfe!
Moderator #3559983
Lesenswert?

Du kannst den Datenstrom durch folgendes Sed-Skript pipen, das die
entsprechenden ANSI-Steuersequenzen zur Einfärbung einsetzt:

colorize.sed:
1
s/\(^\[TCP\].*$\)/\x1b[31m\1\x1b[0m/
2
s/\(^\[HF-UART\].*$\)/\x1b[32m\1\x1b[0m/

Aufruf, wenn der Log in einer Datei steht:
1
sed -f colorize.sed log.txt

Aufruf, wenn die Daten direkt von der Schnittstelle gelesen werden
sollen (vorher müssen natürlich die Schnittstellenparameter richtig
gesetzt werden):
1
sed -f colorize.sed /dev/ttyS0

Ein Screenshot vom Ergebnis ist im Anhang zu sehen.

Informationen zu Sed:

  http://unixhelp.ed.ac.uk/CGI/man-cgi?sed

Informationen zu ANSI-Steuersequenzen:

  http://en.wikipedia.org/wiki/ANSI_escape_code

Die Konsole, in der das Skript verwendet wird, muss natürlich die
ANSI-Steuersequenzen richtig interpretieren.
Angehängte Dateien:
Gast #3561400
Lesenswert?

Michael Neumann schrieb:
> Hallo!
>
> Wir nutzen eine UART für Debugausgaben an einem µC. Dort geben wir Infos
> zu verschiedenen Schnittstellen aus. Z.B.
>
> [HF-UART] TX: 0x00 0x01 0x02 0x03
> [HF-UART] RX: 0x04 0x05 0x06
> [TCP] TX: 0xAA 0xBB 0xCC
> [TCP] RX: 0xFF 0x00 0x11
>
> sehr schön wäre, wenn wir eine Interpretation der Logausgaben hätten:
>
> z.B. wenn ein Programm den Zeilenanfang [TCP] erkennen würde und diese
> Zeile dann farblich markieren würde. Die anderen Zeilen entsprechend in
> einer anderen Farbe.

Wenn Du die Daten "live" in ein File schreiben lassen kannst, könntest 
Du das File mit "BareTail" beobachten, da kann man sowas einstellen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren