mirror of
https://github.com/ALLFATHER-BV/wadamesh.git
synced 2026-10-23 15:02:32 +00:00
touch: idle power-save — loop-throttle + downclock when parked (#19)
Opt-in Idle power-save for the T-Deck: when parked (screen off, on battery, no companion client, Wi-Fi+BLE off, mesh idle) the main loop is throttled with vTaskDelay so the FreeRTOS idle task can halt the CPU between ticks, on top of the existing 80 MHz screen-off downclock — without ever stopping mesh RX. Default OFF (Settings -> Lock, persisted TouchCfg v8 sleep_idle); status-bar moon indicator + idle stats. Heltec V4 compiles (gate never passes there). A plain scheduler throttle rather than esp_light_sleep_start(), which trips INT_WDT in this build. Co-authored-by: Dan Vybiral <dan.vybiral@greencode.cz>
This commit is contained in:
1 parent
c16b5230a6
commit
11b31e1cdd
8 files changed
+630
-12
No files matched your search
@@ -12,6 +12,7 @@
|
||||
#include "helpers/esp32/SdNvsPrefs.h" // route prefs to file storage (SD/SPIFFS), off NVS
|
||||
// (quoted: use wadamesh's src/ copy, not the lib's stale one)
|
||||
#include "wadamesh_mark_rgb.h" // anti-aliased mesh-mark (RGB565) for the pre-LVGL boot screen
|
||||
#include "ui-touch/TouchSleep.h" // idle light-sleep controller (loopEnd called at end of loop())
|
||||
#endif
|
||||
|
||||
// Believe it or not, this std C function is busted on some platforms!
|
||||
@@ -672,4 +673,11 @@ void loop() {
|
||||
#if defined(ESP32_PLATFORM)
|
||||
board.pollHttpOtaReboot();
|
||||
#endif
|
||||
|
||||
#if defined(HAS_TOUCH_UI)
|
||||
// Idle light-sleep gate: evaluated every loop tick. g_enabled is false by
|
||||
// default (Task 1 is inert); Task 2 sets it from the NVS pref and wires
|
||||
// the real predicates so the gate can actually pass and arm light sleep.
|
||||
touchSleep::loopEnd(millis());
|
||||
#endif
|
||||
}
|
||||
Reference in new issue
Block a user