README.md

This commit is contained in:
2026-08-02 11:03:43 +02:00
parent fedeccc148
commit 8040abb103
+33 -2
View File
@@ -33,19 +33,32 @@ Migrationsplan, Task-Liste) liegt unter [`docs/`](docs/).
## Build & Flash
**Linux/macOS:**
```
./scripts/deploy.sh
```
**Windows:**
```
scripts\deploy.cmd
```
Falls mehrere serielle Geräte angeschlossen sind und die automatische
Port-Erkennung fehlschlägt, kann der Port explizit übergeben werden:
```
./scripts/deploy.sh /dev/ttyUSB0
scripts\deploy.cmd COM3
```
Das Skript baut nur und flasht, es öffnet keinen seriellen Monitor.
Nur Build (ohne Flash):
```
./scripts/build.sh
scripts\build.cmd
```
Falls du den Monitor separat sehen willst:
```
@@ -66,6 +79,14 @@ Nach 5 Minuten ohne Touch-Eingabe springt das Gerät automatisch zurück
zur Hauptseite. Die Hauptseite aktualisiert sich alle 10 Minuten, die
MVG-Seite jede Minute.
## Fehlerbehandlung
Wenn eine API nicht erreichbar ist, wird auf der betroffenen Kachel bzw. dem Screen eine Fehleranzeige gezeigt (Text + ggf. Retry-Icon). Es wird kein "letzter bekannter Wert" angezeigt.
**Retry:**
- Automatisch beim nächsten regulären Refresh-Intervall (10 Min. bzw. 1 Min.)
- Manuell durch erneutes Antippen der Kachel im Fehlerzustand
## Projektstruktur
```
@@ -91,11 +112,21 @@ MVG-Seite jede Minute.
│ ├── api/ HTTP-Clients (1:1 aus m5stack-dashboard)
│ └── icons/ prozedurale LVGL-Canvas-Icons
├── scripts/
│ ├── deploy.sh Build + Flash
│ └── build.sh Nur Build
│ ├── deploy.sh / deploy.cmd Build + Flash
│ └── build.sh / build.cmd Nur Build
└── docs/ Migrationshistorie (SPEC-old, PLAN, TODO)
```
## Utilities
- **`text_utils.h`** Transliteriert deutsche Umlaute und Sonderzeichen von UTF-8 nach ASCII, damit LVGL-Labels Sonderzeichen korrekt darstellen können.
- **`date_utils.h`** Datumsformatierung ohne NTP-Abhängigkeit. Formatiert Zeitstempel aus den API-Responses in lesbare deutsche Strings.
- **`theme.h`** Dark-Mode-Farbschema für LVGL: sehr dunkler Hintergrund (`#000000`/`#0B0B0D`), heller Text, dezente Akzentfarben pro Kachel.
## Icons
Icons werden prozedural als LVGL-Canvas-Objekte gezeichnet (keine externen Bitmap-Dateien). Das `src/icons/`-Verzeichnis enthält Funktionen, die Icon-Shapes direkt im Code erzeugen u.a. Wetter-Icons (Sonne, Wolken, Regen), U-Bahn/S-Bahn-Symbole, Kalender-Icon, Zurück-Pfeil und Retry-Icon. Vorteil: Kein Nachladen von SD-Karte, keine .bin-Abhängigkeit, Icon-Pixel sind im Flash gespeichert.
## Referenzprojekt
Vorgängerprojekt mit M5Stack Core: <https://github.com/skoelle/m5stack-dashboard>