From 8040abb103aa4bf861142933e67140943365e346 Mon Sep 17 00:00:00 2001 From: Stefan Koelle Date: Sun, 2 Aug 2026 11:03:43 +0200 Subject: [PATCH] README.md --- README.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2b4b4f2..a088d54 100644 --- a/README.md +++ b/README.md @@ -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: