Public Access
Add a web UI to the clock firmware
- Web UI on port 80: live view of the display, choose the page (clock or a bitmap), bitmaps (list, show, live, edit, delete), draw / image upload with conversion in the browser, live mode, settings, Home Assistant - Live view from a shadow buffer in the BROSE9323 driver (shownPixel) - Settings in NVS with the original behaviour as defaults: schedule times, quarter hours, yawning Pikachu, No WiFi screen, flip time, status LED, Home Assistant broker (restart on change) - Bitmaps on LittleFS; new 320 KB partition, ota slots now 1.31 MB - DisplayController: pages, live mode, settings; app.cpp holds the objects - README for the recovery app; docs for the web UI - Tests: settings, time parsing, bitmap format and names, schedule with settings, pages and live mode (95 total) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c9e0800e36
commit
2b1ac12ed7
34 files changed
+1989
-117
No files matched your search
@@ -126,6 +126,21 @@ See README.md for the overview.
|
||||
- Arduino's `esp_app_desc_t` version and date come from the precompiled core, so the
|
||||
clock firmware stores `FIRMWARE_VERSION` per slot in NVS for the recovery page.
|
||||
|
||||
## ESP32 web UI
|
||||
|
||||
- `app.cpp` owns the objects and the actions (settings, page, live mode, restart);
|
||||
`web/web_ui.cpp` is the JSON API (endpoints listed in `web_ui.h`), `web/web_page.h` the
|
||||
single HTML/JS page (raw string literal in PROGMEM). Keep image work in the browser; the
|
||||
ESP32 only handles 418-character hex bitmaps (`logic/bitmap_format.h`, MSB = left dot).
|
||||
- Settings: `logic/settings.h` struct with defaults = original behaviour, stored as an NVS
|
||||
blob with a version (`system/settings_store.cpp`). When the struct changes, bump
|
||||
`VERSION` there (old records then fall back to defaults).
|
||||
- Bitmaps on LittleFS in the `spiffs` partition (`/bitmaps/<name>.bin`, 209 bytes). Names
|
||||
are restricted (`validBitmapName`), which also makes them safe in paths and JSON.
|
||||
- The display mirror comes from the driver's shadow buffer (`BROSE9323::shownPixel`).
|
||||
- Check the page's JavaScript after changes: extract the `<script>` part and run
|
||||
`node --check` on it (node is installed).
|
||||
|
||||
## Git
|
||||
|
||||
- Remote: https://mangavalk.com/mangavalk/Flipdot-display.git, branch `main`.
|
||||
Reference in new issue
Block a user