Forum: Mikrocontroller und Digitale Elektronik (Automatische) Farbliche Formatierung von Debugausgaben


von Michael Neumann (Gast)


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!

von Michael (Gast)


Lesenswert?

Fürs nachträgliche Highlighting per txt-File kann ich z.B. Notepad++ 
empfehlen mit User-defined Syntax-Highlighting.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

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.

: Bearbeitet durch Moderator
von Jasch (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.