Public Access
Fix shifted pictures: non-blocking Nano drawing, frame check, refresh settings
The Nano's periodic full redraw blocked for ~0.8 s. A frame that arrived meanwhile overflowed its 64-byte serial buffer; lost bytes in a bitmap shift the rest of the image (picture moved up), and diff frames never repaired it. - Nano: all drawing (frames, effects, the dot refresh) runs from update() in ~1 ms slices; the refresh pauses while a frame is received or shown - New commands: C (reply with the image checksum) and I (refresh minutes, EEPROM) - ESP32: NanoMonitor asks for the checksum after frames and sends the whole image again on a mismatch, missing answer or Nano restart; counts ERR replies. Periodic whole-image resync. - Settings: "Dot refresh" and "Image resync" intervals (settings v5, v4 records are migrated) - System tab: loop timing, free memory, frame check counts - test_driver: the real driver against a simulated panel Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
58a7cb03c2
commit
090c2bf8ae
45 files changed
+1265
-157
No files matched your search
@@ -19,6 +19,8 @@ public:
|
||||
std::vector<DisplayCall> calls;
|
||||
bool direct = false;
|
||||
bool effect_running = false; // what busy() returns
|
||||
bool refresh_running = false; // what refreshing() returns
|
||||
uint16_t crc_value = 0; // what crc() returns
|
||||
|
||||
BROSE9323(uint8_t, uint8_t, uint8_t, uint16_t) {}
|
||||
|
||||
@@ -33,6 +35,9 @@ public:
|
||||
void setEffect(uint8_t effect, uint16_t time_ms, uint8_t flags = 0) { log("effect", effect, time_ms, flags); }
|
||||
bool update() { return effect_running; }
|
||||
bool busy() const { return effect_running; }
|
||||
void startRefresh() { log("refresh"); }
|
||||
bool refreshing() const { return refresh_running; }
|
||||
uint16_t crc() const { return crc_value; }
|
||||
void printBuffer() { log("printBuffer"); }
|
||||
void setCursor(int16_t x, int16_t y) { log("cursor", x, y); }
|
||||
void setTextColor(uint16_t color, uint16_t background) { log("textColor", color, background); }
|
||||
|
||||
Reference in new issue
Block a user