From 29c13b5c3010eab695aaf608aef98cf7e4ecc35f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 11 Apr 2023 12:36:44 +0200 Subject: [PATCH] resolve #2364 - fix wrong debug print - change shutdown logic for t-beam if PMU is detected - wait for 10 seconds instead of 5 for shutdown and resurrect screen brightness adjust for @karamo --- src/ButtonThread.h | 14 ++++++-------- src/Power.cpp | 7 +++---- src/sleep.cpp | 6 +++++- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/ButtonThread.h b/src/ButtonThread.h index f35c53a46..9d7fd2ae5 100644 --- a/src/ButtonThread.h +++ b/src/ButtonThread.h @@ -123,14 +123,12 @@ class ButtonThread : public concurrency::OSThread static void userButtonPressedLong() { // LOG_DEBUG("Long press!\n"); - // If user button is held down for 5 seconds, shutdown the device. - if ((millis() - longPressTime > 5 * 1000) && (longPressTime > 0)) { -#ifdef HAS_PMU - if (pmu_found == true) { - setLed(false); - power->shutdown(); - } -#elif defined(ARCH_NRF52) || defined(ARCH_ESP32) + if (screen_found == true) { + screen->adjustBrightness(); + } + // If user button is held down for 10 seconds, shutdown the device. + if ((millis() - longPressTime > 10000) && (longPressTime > 0)) { +#if defined(ARCH_NRF52) || defined(ARCH_ESP32) // Do actual shutdown when button released, otherwise the button release // may wake the board immediatedly. if ((!shutdown_on_long_stop) && (millis() > 30 * 1000)) { diff --git a/src/Power.cpp b/src/Power.cpp index 6c4851c11..6b5bebe4d 100644 --- a/src/Power.cpp +++ b/src/Power.cpp @@ -277,12 +277,11 @@ void Power::shutdown() LOG_INFO("Shutting down\n"); #ifdef HAS_PMU - if (PMU) { + if (pmu_found == true) { PMU->setChargingLedMode(XPOWERS_CHG_LED_OFF); + PMU->shutdown(); } -#endif - -#if defined(ARCH_NRF52) || defined(ARCH_ESP32) +#elif defined(ARCH_NRF52) || defined(ARCH_ESP32) #ifdef PIN_LED1 ledOff(PIN_LED1); #endif diff --git a/src/sleep.cpp b/src/sleep.cpp index e3f042a27..5fdacb73e 100644 --- a/src/sleep.cpp +++ b/src/sleep.cpp @@ -203,7 +203,11 @@ void doGPSpowersave(bool on) void doDeepSleep(uint64_t msecToWake) { - LOG_INFO("Entering deep sleep for %lu seconds\n", msecToWake / 1000); + if (INCLUDE_vTaskSuspend && (msecToWake == portMAX_DELAY)) { + LOG_INFO("Entering deep sleep forever\n"); + } else { + LOG_INFO("Entering deep sleep for %u seconds\n", msecToWake / 1000); + } // not using wifi yet, but once we are this is needed to shutoff the radio hw // esp_wifi_stop();