some fixes
This commit is contained in:
@@ -72,7 +72,7 @@ void bma_setup( TTGOClass *ttgo ) {
|
||||
void bma_standby( void ) {
|
||||
TTGOClass *ttgo = TTGOClass::getWatch();
|
||||
|
||||
log_i("standby");
|
||||
log_i("go standby");
|
||||
|
||||
if ( bma_get_config( BMA_STEPCOUNTER ) )
|
||||
ttgo->bma->enableStepCountInterrupt( false );
|
||||
@@ -82,7 +82,7 @@ void bma_standby( void ) {
|
||||
void bma_wakeup( void ) {
|
||||
TTGOClass *ttgo = TTGOClass::getWatch();
|
||||
|
||||
log_i("wakeup");
|
||||
log_i("go wakeup");
|
||||
|
||||
if ( bma_get_config( BMA_STEPCOUNTER ) )
|
||||
ttgo->bma->enableStepCountInterrupt( true );
|
||||
|
||||
@@ -69,7 +69,7 @@ void display_loop( TTGOClass *ttgo ) {
|
||||
|
||||
void display_standby( void ) {
|
||||
TTGOClass *ttgo = TTGOClass::getWatch();
|
||||
log_i("standby");
|
||||
log_i("go standby");
|
||||
ttgo->bl->adjust( 0 );
|
||||
ttgo->displaySleep();
|
||||
ttgo->closeBL();
|
||||
@@ -82,7 +82,7 @@ void display_wakeup( void ) {
|
||||
|
||||
// normal wake up from standby
|
||||
if ( powermgm_get_event( POWERMGM_PMU_BUTTON | POWERMGM_PMU_BATTERY | POWERMGM_BMA_WAKEUP ) ) {
|
||||
log_i("wakeup");
|
||||
log_i("go wakeup");
|
||||
ttgo->openBL();
|
||||
ttgo->displayWakeup();
|
||||
ttgo->bl->adjust( 0 );
|
||||
@@ -92,7 +92,7 @@ void display_wakeup( void ) {
|
||||
}
|
||||
// silence wakeup request from standby
|
||||
else if ( powermgm_get_event( POWERMGM_SILENCE_WAKEUP_REQUEST ) ) {
|
||||
log_i("silence wakeup");
|
||||
log_i("go silence wakeup");
|
||||
ttgo->openBL();
|
||||
ttgo->displayWakeup();
|
||||
ttgo->bl->adjust( 0 );
|
||||
|
||||
@@ -78,11 +78,11 @@ void pmu_standby( void ) {
|
||||
|
||||
if ( pmu_get_experimental_power_save() ) {
|
||||
ttgo->power->setDCDC3Voltage( 2700 );
|
||||
log_i("enable 2.7V standby voltage");
|
||||
log_i("go standby, enable 2.7V standby voltage");
|
||||
}
|
||||
else {
|
||||
ttgo->power->setDCDC3Voltage( 3000 );
|
||||
log_i("enable 3.0V standby voltage");
|
||||
log_i("go standby, enable 3.0V standby voltage");
|
||||
}
|
||||
ttgo->power->setPowerOutPut(AXP202_LDO3, AXP202_OFF );
|
||||
}
|
||||
@@ -92,11 +92,11 @@ void pmu_wakeup( void ) {
|
||||
|
||||
if ( pmu_get_experimental_power_save() ) {
|
||||
ttgo->power->setDCDC3Voltage( 3000 );
|
||||
log_i("enable 3.0V voltage");
|
||||
log_i("go wakeup, enable 3.0V voltage");
|
||||
}
|
||||
else {
|
||||
ttgo->power->setDCDC3Voltage( 3300 );
|
||||
log_i("enable 3.3V voltage");
|
||||
log_i("go wakeup, enable 3.3V voltage");
|
||||
}
|
||||
|
||||
ttgo->power->clearTimerStatus();
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "gui/mainbar/mainbar.h"
|
||||
|
||||
EventGroupHandle_t powermgm_status = NULL;
|
||||
portMUX_TYPE powermgmMux = portMUX_INITIALIZER_UNLOCKED;
|
||||
|
||||
/*
|
||||
*
|
||||
@@ -136,19 +137,26 @@ void powermgm_loop( TTGOClass *ttgo ) {
|
||||
*
|
||||
*/
|
||||
void powermgm_set_event( EventBits_t bits ) {
|
||||
portENTER_CRITICAL_ISR(&powermgmMux);
|
||||
xEventGroupSetBits( powermgm_status, bits );
|
||||
portEXIT_CRITICAL_ISR(&powermgmMux);
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
void powermgm_clear_event( EventBits_t bits ) {
|
||||
portENTER_CRITICAL_ISR(&powermgmMux);
|
||||
xEventGroupClearBits( powermgm_status, bits );
|
||||
portEXIT_CRITICAL_ISR(&powermgmMux);
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
EventBits_t powermgm_get_event( EventBits_t bits ) {
|
||||
return( xEventGroupGetBits( powermgm_status ) & bits );
|
||||
portENTER_CRITICAL_ISR(&powermgmMux);
|
||||
EventBits_t temp = xEventGroupGetBits( powermgm_status ) & bits;
|
||||
portEXIT_CRITICAL_ISR(&powermgmMux);
|
||||
return( temp );
|
||||
}
|
||||
|
||||
@@ -124,7 +124,9 @@ void wifictl_setup( void ) {
|
||||
// label.concat('\n');
|
||||
// label.concat(WiFi.localIPv6().toString());
|
||||
statusbar_wifi_set_state( true, label.c_str() );
|
||||
asyncwebserver_setup();
|
||||
if ( wifictl_config.webserver ) {
|
||||
asyncwebserver_start();
|
||||
}
|
||||
lv_obj_invalidate( lv_scr_act() );
|
||||
}, WiFiEvent_t::SYSTEM_EVENT_STA_GOT_IP );
|
||||
|
||||
@@ -144,10 +146,11 @@ void wifictl_setup( void ) {
|
||||
}, WiFiEvent_t::SYSTEM_EVENT_WIFI_READY );
|
||||
|
||||
WiFi.onEvent([](WiFiEvent_t event, WiFiEventInfo_t info) {
|
||||
powermgm_clear_event( POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ON_REQUEST | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_WPS_REQUEST );
|
||||
statusbar_hide_icon( STATUSBAR_WIFI );
|
||||
statusbar_wifi_set_state( false, "" );
|
||||
lv_obj_invalidate( lv_scr_act() );
|
||||
asyncwebserver_end();
|
||||
powermgm_clear_event( POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ON_REQUEST | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_WPS_REQUEST );
|
||||
}, WiFiEvent_t::SYSTEM_EVENT_STA_STOP );
|
||||
|
||||
WiFi.onEvent([](WiFiEvent_t event, WiFiEventInfo_t info) {
|
||||
@@ -222,6 +225,15 @@ void wifictl_set_autoon( bool autoon ) {
|
||||
wifictl_config.autoon = autoon;
|
||||
wifictl_save_config();
|
||||
}
|
||||
|
||||
bool wifictl_get_webserver( void ) {
|
||||
return( wifictl_config.webserver );
|
||||
}
|
||||
|
||||
void wifictl_set_webserver( bool webserver ) {
|
||||
wifictl_config.webserver = webserver;
|
||||
wifictl_save_config();
|
||||
}
|
||||
/*
|
||||
*
|
||||
*/
|
||||
@@ -329,6 +341,7 @@ void wifictl_on( void ) {
|
||||
if ( wifi_init == false )
|
||||
return;
|
||||
|
||||
log_i("request wifictl on");
|
||||
if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST ) ) {
|
||||
return;
|
||||
}
|
||||
@@ -345,6 +358,7 @@ void wifictl_off( void ) {
|
||||
if ( wifi_init == false )
|
||||
return;
|
||||
|
||||
log_i("request wifictl off");
|
||||
if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST )) {
|
||||
return;
|
||||
}
|
||||
@@ -355,15 +369,19 @@ void wifictl_off( void ) {
|
||||
}
|
||||
|
||||
void wifictl_standby( void ) {
|
||||
log_i("standby");
|
||||
log_i("request wifictl standby");
|
||||
if ( powermgm_get_event( POWERMGM_WIFI_ACTIVE ) ) wifictl_off();
|
||||
while( powermgm_get_event( POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ON_REQUEST | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_WPS_REQUEST ) ) { yield(); }
|
||||
while( powermgm_get_event( POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ON_REQUEST | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_WPS_REQUEST ) ) {
|
||||
yield();
|
||||
}
|
||||
log_i("request wifictl standby done");
|
||||
}
|
||||
|
||||
void wifictl_wakeup( void ) {
|
||||
if ( wifictl_config.autoon ) {
|
||||
log_i("wakeup");
|
||||
log_i("request wifictl wakeup");
|
||||
wifictl_on();
|
||||
log_i("request wifictl wakeup done");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -409,8 +427,9 @@ void wifictl_Task( void * pvParameters ) {
|
||||
if ( powermgm_get_event( POWERMGM_WIFI_ON_REQUEST ) ) {
|
||||
statusbar_wifi_set_state( true, "activate" );
|
||||
lv_obj_invalidate( lv_scr_act() );
|
||||
WiFi.mode( WIFI_STA );
|
||||
powermgm_clear_event( POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_ON_REQUEST );
|
||||
WiFi.mode( WIFI_STA );
|
||||
log_i("request wifictl on done");
|
||||
}
|
||||
else if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) ) {
|
||||
statusbar_wifi_set_state( false, "" );
|
||||
@@ -418,6 +437,7 @@ void wifictl_Task( void * pvParameters ) {
|
||||
WiFi.mode( WIFI_OFF );
|
||||
esp_wifi_stop();
|
||||
powermgm_clear_event( POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_ON_REQUEST );
|
||||
log_i("request wifictl off done");
|
||||
}
|
||||
vTaskSuspend( _wifictl_Task );
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
typedef struct {
|
||||
bool autoon = true;
|
||||
bool webserver = true;
|
||||
} wifictl_config_t;
|
||||
|
||||
/*
|
||||
@@ -82,5 +83,7 @@
|
||||
bool wifictl_get_autoon( void );
|
||||
void wifictl_set_autoon( bool autoon );
|
||||
void wifictl_start_wps( void );
|
||||
bool wifictl_get_webserver( void );
|
||||
void wifictl_set_webserver( bool webserver );
|
||||
|
||||
#endif // _WIFICTL_H
|
||||
Reference in New Issue
Block a user