From cb3478f0d5d85375749dd3550aa03711c5aa33e4 Mon Sep 17 00:00:00 2001 From: sharandac Date: Mon, 10 Aug 2020 13:11:34 +0200 Subject: [PATCH] testing code --- src/app/weather/weather.cpp | 6 ++++++ src/app/weather/weather_forecast.cpp | 7 +++++++ src/gui/mainbar/setup_tile/update/update.cpp | 6 ++++++ src/hardware/pmu.cpp | 5 +++++ src/hardware/timesync.cpp | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/src/app/weather/weather.cpp b/src/app/weather/weather.cpp index 5ed1beb..be34f34 100644 --- a/src/app/weather/weather.cpp +++ b/src/app/weather/weather.cpp @@ -36,6 +36,7 @@ #include "gui/statusbar.h" #include "gui/keyboard.h" #include "hardware/motor.h" +#include "hardware/powermgm.h" EventGroupHandle_t weather_widget_event_handle = NULL; TaskHandle_t _weather_widget_sync_Task; @@ -169,6 +170,11 @@ weather_config_t *weather_get_config( void ) { } void weather_widget_sync_Task( void * pvParameters ) { + if ( powermgm_get_event( POWERMGM_STANDBY | POWERMGM_STANDBY_REQUEST ) ) { + log_i("block weather widget task"); + xEventGroupClearBits( weather_widget_event_handle, WEATHER_WIDGET_SYNC_REQUEST ); + vTaskDelete( NULL ); + } log_i("start weather widget task"); vTaskDelay( 250 ); diff --git a/src/app/weather/weather_forecast.cpp b/src/app/weather/weather_forecast.cpp index 0c220db..24544f1 100644 --- a/src/app/weather/weather_forecast.cpp +++ b/src/app/weather/weather_forecast.cpp @@ -33,6 +33,8 @@ #include "gui/statusbar.h" #include "gui/keyboard.h" +#include "hardware/powermgm.h" + EventGroupHandle_t weather_forecast_event_handle = NULL; TaskHandle_t _weather_forecast_sync_Task; void weather_forecast_sync_Task( void * pvParameters ); @@ -182,6 +184,11 @@ void weather_forecast_sync_Task( void * pvParameters ) { weather_config_t *weather_config = weather_get_config(); int32_t retval = -1; + if ( powermgm_get_event( POWERMGM_STANDBY | POWERMGM_STANDBY_REQUEST ) ) { + log_i("block weather forecast task"); + xEventGroupClearBits( weather_forecast_event_handle, WEATHER_FORECAST_SYNC_REQUEST ); + vTaskDelete( NULL ); + } log_i("start weather forecast task"); vTaskDelay( 250 ); diff --git a/src/gui/mainbar/setup_tile/update/update.cpp b/src/gui/mainbar/setup_tile/update/update.cpp index 80321a5..997f3c3 100644 --- a/src/gui/mainbar/setup_tile/update/update.cpp +++ b/src/gui/mainbar/setup_tile/update/update.cpp @@ -33,6 +33,7 @@ #include "gui/mainbar/setup_tile/setup.h" #include "gui/statusbar.h" #include "hardware/display.h" +#include "hardware/powermgm.h" EventGroupHandle_t update_event_handle = NULL; TaskHandle_t _update_Task; @@ -197,6 +198,11 @@ void update_check_version( void ) { } void update_Task( void * pvParameters ) { + if ( powermgm_get_event( POWERMGM_STANDBY | POWERMGM_STANDBY_REQUEST ) ) { + log_i("block update task"); + xEventGroupClearBits( update_event_handle, UPDATE_REQUEST | UPDATE_GET_VERSION_REQUEST ); + vTaskDelete( NULL ); + } log_i("start update task"); if ( xEventGroupGetBits( update_event_handle) & UPDATE_GET_VERSION_REQUEST ) { diff --git a/src/hardware/pmu.cpp b/src/hardware/pmu.cpp index e861ce1..e414313 100644 --- a/src/hardware/pmu.cpp +++ b/src/hardware/pmu.cpp @@ -171,6 +171,11 @@ void pmu_loop( TTGOClass *ttgo ) { */ if ( xEventGroupGetBitsFromISR( pmu_event_handle ) & PMU_EVENT_AXP_INT ) { setCpuFrequencyMhz(240); + if ( powermgm_get_event( POWERMGM_PMU_BATTERY | POWERMGM_PMU_BUTTON | POWERMGM_STANDBY_REQUEST ) ) { + ttgo->power->clearIRQ(); + xEventGroupClearBits( pmu_event_handle, PMU_EVENT_AXP_INT ); + return; + } ttgo->power->readIRQ(); if (ttgo->power->isVbusPlugInIRQ()) { diff --git a/src/hardware/timesync.cpp b/src/hardware/timesync.cpp index 9698b0e..984f082 100644 --- a/src/hardware/timesync.cpp +++ b/src/hardware/timesync.cpp @@ -23,6 +23,7 @@ #include #include "config.h" #include "timesync.h" +#include "powermgm.h" EventGroupHandle_t time_event_handle = NULL; TaskHandle_t _timesync_Task; @@ -123,6 +124,11 @@ void timesyncToRTC( void ) { } void timesync_Task( void * pvParameters ) { + if ( powermgm_get_event( POWERMGM_STANDBY | POWERMGM_STANDBY_REQUEST ) ) { + log_i("block time sync task"); + xEventGroupClearBits( time_event_handle, TIME_SYNC_REQUEST ); + vTaskDelete( NULL ); + } log_i("start time sync task"); if ( xEventGroupGetBits( time_event_handle ) & TIME_SYNC_REQUEST ) {