Public Access
Add HA dropdowns, off image, flip fixes and refresh effects
Home Assistant: remove the Clock switch (its entity is deleted on connect), add an IP sensor and Mode / Off image dropdowns whose options follow the saved bitmaps. Remove the built-in "Nintendo border" bitmap. Off image: a bitmap (or blank) left on the dots when the display switches off. Nano: pause after each flip pulse and repeat pulses for changed dots, both stored in EEPROM (G/N commands). Refresh effects (E command): instant, sparkle, wipe, rain, from the middle out, diagonal, spiral, flip all then reveal, push and random, optionally only for small changes. Effects run in steps from loop() so serial input keeps flowing. Web UI: flip settings, refresh effect and test patterns under Settings; the System tab shows why the ESP32 last restarted. Settings records from versions 1 and 2 are migrated. Firmware 2.3.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4a5f6a8b5d
commit
1d3b084de1
42 files changed
+1631
-230
No files matched your search
@@ -26,8 +26,8 @@ public:
|
||||
virtual void page() = 0;
|
||||
// The image sent from the web UI's live mode
|
||||
virtual void live() = 0;
|
||||
virtual void logo() = 0;
|
||||
virtual void blank() = 0;
|
||||
// Left on the dots when the display switches off: blank or the off bitmap
|
||||
virtual void off() = 0;
|
||||
};
|
||||
|
||||
enum class Page : uint8_t
|
||||
@@ -45,8 +45,12 @@ public:
|
||||
DisplayController(DisplayPower &power, Frames &frames);
|
||||
|
||||
void setSettings(const ScheduleSettings &schedule, const ClockSettings &clock);
|
||||
// How long the Nano takes to show a frame with the refresh effect (ms, 0 = instant).
|
||||
// The power stays on that much longer after the last frame.
|
||||
void setEffectTime(uint32_t ms);
|
||||
|
||||
// What is shown during the day. Call pageChanged() when the bitmap itself changed.
|
||||
// What is shown during the day. Call pageChanged() when the page or off bitmap
|
||||
// itself changed.
|
||||
void setPage(Page page);
|
||||
void pageChanged();
|
||||
|
||||
@@ -56,12 +60,9 @@ public:
|
||||
void stopLive();
|
||||
bool liveActive() const;
|
||||
|
||||
// Home Assistant "FlipDot Display Clock" switch: off shows the logo instead of the page
|
||||
void setClockEnabled(bool enabled);
|
||||
// Home Assistant "FlipDot Display Power" switch: off clears the display and powers it off
|
||||
void setPowerEnabled(bool enabled);
|
||||
|
||||
bool clockEnabled() const;
|
||||
bool powerEnabled() const;
|
||||
|
||||
// Call often (every loop). time_valid is false until the time is synced over NTP.
|
||||
@@ -76,8 +77,7 @@ private:
|
||||
NoWifi,
|
||||
Page,
|
||||
Live,
|
||||
Logo,
|
||||
Blank,
|
||||
Off, // blank or the off bitmap
|
||||
};
|
||||
|
||||
DisplayPower &_power;
|
||||
@@ -87,8 +87,8 @@ private:
|
||||
ScheduleSettings _schedule;
|
||||
ClockSettings _clock;
|
||||
Page _page = Page::Clock;
|
||||
uint32_t _effect_time = 0;
|
||||
|
||||
bool _clock_enabled = true;
|
||||
bool _power_enabled = true;
|
||||
|
||||
Screen _screen = Screen::Unknown;
|
||||
|
||||
Reference in new issue
Block a user