- Auto-scroll standard aktiv
- Tag-Filter wird gespeichert - Tag Monitor kann bei einem Tag jetzt pro Key mehrere Werte in einer Tabelle anzeigen - Bug für Clear behoben
This commit is contained in:
48
README.md
48
README.md
@@ -10,19 +10,21 @@ Ein moderner UART-Monitor für Linux mit Qt6-Oberfläche. Gebaut als vollwertige
|
||||
|---|---|
|
||||
| **Unbegrenzter Verlauf** | Kein Zeilenlimit – keine Daten gehen verloren, egal wie viel der Pi sendet |
|
||||
| **Timestamps** | Jede Zeile im Raw-View bekommt automatisch einen `hh:mm:ss.zzz`-Timestamp |
|
||||
| **Auto-Scroll** | Standardmäßig aktiv – springt automatisch ans Ende neuer Ausgaben |
|
||||
| **H + V Scrolling** | Kein Zeilenumbruch, voller horizontaler Scrollbalken |
|
||||
| **Live-Logging** | Alle empfangenen Zeilen werden mit Timestamp in eine Datei geschrieben |
|
||||
| **Tag-Monitor** | Zeilen mit `[TAG]` werden in eigenen Panels angezeigt und aktualisiert |
|
||||
| **Tag-Filter** | Tags können aus dem Raw-View ausgeblendet werden (nur im Tag-Monitor sichtbar) |
|
||||
| **Listen-Werte** | `;`-getrennte Werte in einem Tag werden als mehrzeilige Liste dargestellt |
|
||||
| **Tag-Filter** | Tags können aus dem Raw-View ausgeblendet werden – wird dauerhaft gespeichert |
|
||||
| **Tabellenansicht** | CSV-formatierte UART-Zeilen werden in einer Tabelle dargestellt |
|
||||
| **Suche** | Inkrementelle Volltextsuche im Raw-View |
|
||||
| **Auto-Reconnect** | Bei Verbindungsabbruch wird automatisch neu verbunden (Intervall einstellbar) |
|
||||
| **ANSI Clear-Screen** | `\033[2J\033[H` aus der Firmware leert alle Views gleichzeitig |
|
||||
| **ANSI Clear-Screen** | `\033[2J\033[H` aus der Firmware leert Raw-View, Tabelle, Tag-Monitor und Video-Vorschau gleichzeitig |
|
||||
| **Copy-Buttons** | Raw-View und jedes Tag-Panel haben einen „📋 Copy"-Button |
|
||||
| **V4L2 Live Video** | HDMI-Grabber direkt eingebunden – Live-Vorschau unter dem Tag-Monitor |
|
||||
| **Screenshot** | Aktuellen Frame des HDMI-Grabbers als PNG/JPG speichern |
|
||||
| **Format-Referenz** | Eingebauter Guide (mit Kopieren-Button) für KI-kompatible UART-Formatierung |
|
||||
| **Fensterlayout** | Fenstergröße, Position und alle Splitter-Positionen werden beim Beenden gespeichert |
|
||||
| **Fensterlayout** | Fenstergröße, Position, Splitter-Positionen und Tag-Filter werden beim Beenden gespeichert |
|
||||
|
||||
---
|
||||
|
||||
@@ -86,34 +88,48 @@ v4l2-ctl -d /dev/video0 --list-formats-ext # unterstützte Formate & Auflösung
|
||||
|
||||
Jede UART-Zeile erscheint im Raw-View mit Timestamp. Keine besondere Formatierung nötig.
|
||||
|
||||
**Screen leeren** – von der Firmware aus alle Views gleichzeitig leeren:
|
||||
**Screen leeren** – von der Firmware aus Raw-View, Tabelle, Tag-Monitor und Video-Vorschau gleichzeitig leeren:
|
||||
```c
|
||||
uart_printf("\033[2J\033[H");
|
||||
```
|
||||
|
||||
### Tag-Monitor
|
||||
|
||||
Zeilen mit `[TAGNAME]` werden im Tag-Monitor-Panel angezeigt **und** im Raw-View hervorgehoben (cyan). Über „Tag filter…" in der Toolbar können Tags vollständig aus dem Raw-View ausgeblendet werden, sodass sie nur noch im Tag-Monitor erscheinen.
|
||||
Zeilen mit `[TAGNAME]` werden im Tag-Monitor-Panel angezeigt **und** im Raw-View hervorgehoben (cyan), sofern der Tag nicht über den Tag-Filter ausgeblendet wurde.
|
||||
|
||||
**Format:** `[TAGNAME] key1=value1 key2=value2 ...`
|
||||
|
||||
- Tag-Name: Buchstaben, Ziffern, Underscore – z.B. `WDG`, `VIDEO`, `I2C_BUS`
|
||||
- Tag-Name: Buchstaben, Ziffern, Underscore – z.B. `WDG`, `VIDEO`, `KICKSTART`
|
||||
- Key=Value-Paare: Leerzeichen-getrennt, Werte ohne Leerzeichen
|
||||
- Ohne Key=Value-Paare wird der rohe String angezeigt
|
||||
|
||||
**Listen-Werte:** Ein Wert mit `;`-getrennten Einträgen wird als mehrzeilige Liste unter dem Key dargestellt:
|
||||
|
||||
```c
|
||||
uart_printf("[KICKSTART] Devs=trackdisk.device;input.device\n");
|
||||
```
|
||||
|
||||
Im Tag-Monitor erscheint das als:
|
||||
|
||||
```
|
||||
Devs trackdisk.device
|
||||
input.device
|
||||
```
|
||||
|
||||
Jeder weitere Eintrag bekommt seine eigene Tabellenzeile, der Key wird nur einmal angezeigt.
|
||||
|
||||
**Beispiele:**
|
||||
```c
|
||||
uart_printf("[WDG] uptime=%lu free_heap=%lu temp=%d\n",
|
||||
HAL_GetTick(), xPortGetFreeHeapSize(), core_temp);
|
||||
|
||||
uart_printf("[KICKSTART] Libs=graphics.library;intuition.library;dos.library\n");
|
||||
|
||||
uart_printf("[VIDEO] line=%d hblank=%d vblank=%d copper=%d\n",
|
||||
scanline, hblank_ticks, vblank_ticks, copper_dma);
|
||||
|
||||
uart_printf("[AUDIO] ch=%d buf=%d underruns=%lu\n",
|
||||
active_channels, buffer_fill, underruns);
|
||||
```
|
||||
|
||||
Jeder einzigartige Tag bekommt automatisch ein eigenes Panel. Panels aktualisieren sich in-place – kein Scrollen nötig.
|
||||
Jeder einzigartige Tag bekommt automatisch ein eigenes Panel. Panels aktualisieren sich in-place – kein Scrollen nötig. Listen-Längen können sich von Update zu Update ändern, die Tabelle passt sich automatisch an.
|
||||
|
||||
### Tabellenansicht
|
||||
|
||||
@@ -129,6 +145,12 @@ Delimiter per Dropdown umschaltbar: `,` `;` `\t` `|` `Space`
|
||||
|
||||
---
|
||||
|
||||
## Tag-Filter
|
||||
|
||||
Über „Tag filter…" in der Toolbar lassen sich Tags aus dem Raw-View ausblenden, sodass sie nur noch im Tag-Monitor erscheinen. Ein Tag pro Zeile, ohne Klammern (z.B. `WDG`). Groß-/Kleinschreibung spielt keine Rolle. Der Filter wird sofort beim Schließen des Dialogs gespeichert und beim nächsten Programmstart automatisch wiederhergestellt.
|
||||
|
||||
---
|
||||
|
||||
## Einstellungen
|
||||
|
||||
Beim Beenden werden folgende Einstellungen automatisch gespeichert und beim nächsten Start wiederhergestellt:
|
||||
@@ -148,14 +170,16 @@ Gespeichert unter `~/.config/ChicaDev/UARTScope.conf` (via `QSettings`).
|
||||
uartscope/
|
||||
├── CMakeLists.txt
|
||||
├── README.md
|
||||
├── resources.qrc
|
||||
├── UartscopeLogo.png
|
||||
├── uartscope.desktop.in
|
||||
├── include/
|
||||
│ ├── mainwindow.h ← Hauptfenster, koordiniert alle Komponenten
|
||||
│ ├── serialworker.h ← UART-Empfang im eigenen QThread, Auto-Reconnect
|
||||
│ ├── serialworker.h ← UART-Empfang im eigenen QThread, Auto-Reconnect, ANSI-Erkennung
|
||||
│ ├── rawview.h ← Unbegrenzter Log mit Timestamps, Suche, Copy
|
||||
│ ├── tableview.h ← CSV-Parser → QTableWidget
|
||||
│ ├── tagwidget.h ← Container für Tag-Panels
|
||||
│ ├── tagpanel.h ← Ein Panel pro [TAG], Key=Value-Tabelle, Copy
|
||||
│ ├── tagpanel.h ← Ein Panel pro [TAG], Key=Value-Tabelle mit Listen-Support, Copy
|
||||
│ ├── connectdialog.h ← Port-Konfiguration (Port, Baud, Log-Datei)
|
||||
│ ├── v4l2worker.h ← V4L2-Capture in std::thread, MJPEG/YUYV/NV12
|
||||
│ └── videowidget.h ← Live-Vorschau, Freeze, Screenshot
|
||||
|
||||
Reference in New Issue
Block a user