Commit Graph
18 Commits
Author SHA1 Message Date
Michael Sauer 4c2f9e5374 feat: WLAN-Treiber mit Onboarding-AP, Build-Credentials und Befehl net 2026-09-11 22:50:43 +02:00
Michael Sauer 2f7cadaeee fix: Verbindungs-Timeout im WLAN-Zustandsautomaten 2026-09-11 22:42:49 +02:00
Michael Sauer 2bdeaed98d feat: WLAN-Zustandsautomat mit Onboarding, Backoff und AP-Fallback 2026-09-11 22:35:30 +02:00
Michael Sauer dc23d3d887 feat: REST-API mit Routing, Auth und Handlern 2026-09-11 22:24:24 +02:00
Michael Sauer 4a23df1b8d feat: cJSON, Gerätenamen und HTTP-Parser 2026-09-11 22:18:14 +02:00
Michael Sauer 4f270ad79b fix: Watchdog wirksam machen, Factory-Reset im App-Task, Resetzähler-Retry
- vApplicationIdleHook() füttert den Watchdog nicht mehr (sdk/Platform/Sys/wm_main.c,
  dokumentiert als Patch 4 in sdk/PATCHES.md). Bisher fütterte der Idle-Task den
  Watchdog bei jedem Leerlauf, auch wenn ein Task deadlockt (z.B. nl_app_lock() hält
  und nie freigibt) - der Watchdog konnte so nie greifen.
- Neues Konsolenkommando `wdtest` (Parser in nl_console_cmd.c/.h, Ausführung in
  nl_console.c, Host-Test in test_console_cmd.c): hält nl_app_lock() für immer, damit
  light_task und app_task blockieren und nur der Watchdog-Reset den Chip retten kann.
- nl_app_request_factory_reset() (nl_app.h) setzt nur ein volatile Flag; app_task
  prüft es in der Hauptschleife und ruft nl_app_factory_reset() selbst auf, da nur der
  App-Task die Flash-Stores besitzt. Das Konsolenkommando `factory` ruft jetzt diese
  Funktion statt nl_app_factory_reset() direkt aufzurufen, um die Race mit
  nl_state_log_append()/nl_resetcnt_clear() im App-Task zu vermeiden. Der Bootpfad
  (Bootzähler >= 5) ruft weiterhin direkt nl_app_factory_reset() auf.
- nl_resetcnt_clear() wird nur noch als erledigt markiert, wenn es 0 zurückgibt, damit
  ein fehlgeschlagener Clear in der nächsten Schleifeniteration erneut versucht wird.
2026-09-11 20:53:25 +02:00
Michael Sauer 7502f4f022 fix: Flash-Mutex beim Boot statt im kritischen Abschnitt anlegen 2026-09-11 16:14:15 +02:00
Michael Sauer 1074a8f034 feat: Parser für die UART-Testkonsole 2026-09-11 13:43:08 +02:00
Michael Sauer 663825c165 feat: Power-Cycle-Zähler für den Werksreset 2026-09-11 13:39:01 +02:00
Michael Sauer 35b59a64ed fix: Zustands-Log bei fehlgeschlagenem Löschen neu einlesen 2026-09-11 13:35:56 +02:00
Michael Sauer b1b4ec214b feat: Ring-Log für den Lichtzustand 2026-09-11 13:30:26 +02:00
Michael Sauer 91721ac47d feat: Flash-HAL-Interface und Settings-Store mit A/B-Slots
Implementiert:
- Flash HAL (nl_flash_read/write/erase_sector) Interfaces
- Flash Layout mit A/B-Settings Slots und weiteren Regions
- Test-Fake für Flash mit Fehlerinjection (Stromausfall-Simulation)
- Settings-Store mit CRC32 Recovery und Slot-Alternierung
- Vollständige Test-Suite mit Corruption/Power-Loss-Tests
2026-09-11 13:24:52 +02:00
Michael Sauer e0bde7bee3 feat: Licht-Steuerung mit Fade-Regeln und Einschaltverhalten 2026-09-11 13:20:49 +02:00
Michael Sauer 472d2398ac fix: Engine-Grenzen für Segmente und Blink-Anzahl 2026-09-11 13:17:21 +02:00
Michael Sauer 73a7f31cb6 feat: Licht-Engine mit Transitionen, Moduswechsel und Effekten 2026-09-11 13:11:23 +02:00
Michael Sauer 42eeb0e0eb feat: Farbrechnung mit CIE-Helligkeit und CW/WW-Mischung 2026-09-11 13:06:19 +02:00
Michael Sauer 6e6cfeaf3a feat: Board-Tabelle für alle acht Gerätetypen 2026-09-11 13:00:02 +02:00
Michael Sauer 4e7ff78fc6 test: Host-Testumgebung mit Unity, SHA256 und CRC 2026-09-11 12:23:04 +02:00