Browse Source
Merge pull request #2643 from disq/companion-display-keep-on-when-powered
companion_radio: Add optional `KEEP_DISPLAY_ON_USB` flag to keep display on while powered 🤖🤖
pull/2105/merge
ripplebiz
4 days ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
27 additions and
0 deletions
-
examples/companion_radio/ui-new/UITask.cpp
-
examples/companion_radio/ui-orig/UITask.cpp
-
examples/companion_radio/ui-tiny/UITask.cpp
|
|
|
@ -809,6 +809,15 @@ void UITask::loop() { |
|
|
|
_display->endFrame(); |
|
|
|
} |
|
|
|
#if AUTO_OFF_MILLIS > 0 |
|
|
|
#ifdef KEEP_DISPLAY_ON_USB |
|
|
|
// Opt-in: refresh the auto-off deadline while externally powered, so the
|
|
|
|
// timer counts from the moment external power is removed. Off by default
|
|
|
|
// because OLED panels burn in quickly; only enable for LCD targets or
|
|
|
|
// where the display is replaceable.
|
|
|
|
if (board.isExternalPowered()) { |
|
|
|
_auto_off = millis() + AUTO_OFF_MILLIS; |
|
|
|
} |
|
|
|
#endif |
|
|
|
if (millis() > _auto_off) { |
|
|
|
_display->turnOff(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -342,6 +342,15 @@ void UITask::loop() { |
|
|
|
|
|
|
|
_next_refresh = millis() + 1000; // refresh every second
|
|
|
|
} |
|
|
|
#ifdef KEEP_DISPLAY_ON_USB |
|
|
|
// Opt-in: refresh the auto-off deadline while externally powered, so the
|
|
|
|
// timer counts from the moment external power is removed. Off by default
|
|
|
|
// because OLED panels burn in quickly; only enable for LCD targets or
|
|
|
|
// where the display is replaceable.
|
|
|
|
if (board.isExternalPowered()) { |
|
|
|
_auto_off = millis() + AUTO_OFF_MILLIS; |
|
|
|
} |
|
|
|
#endif |
|
|
|
if (millis() > _auto_off) { |
|
|
|
_display->turnOff(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -704,6 +704,15 @@ void UITask::loop() { |
|
|
|
_display->endFrame(); |
|
|
|
} |
|
|
|
#if AUTO_OFF_MILLIS > 0 |
|
|
|
#ifdef KEEP_DISPLAY_ON_USB |
|
|
|
// Opt-in: refresh the auto-off deadline while externally powered, so the
|
|
|
|
// timer counts from the moment external power is removed. Off by default
|
|
|
|
// because OLED panels burn in quickly; only enable for LCD targets or
|
|
|
|
// where the display is replaceable.
|
|
|
|
if (board.isExternalPowered()) { |
|
|
|
_auto_off = millis() + AUTO_OFF_MILLIS; |
|
|
|
} |
|
|
|
#endif |
|
|
|
if (millis() > _auto_off) { |
|
|
|
_display->turnOff(); |
|
|
|
} |
|
|
|
|