(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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.