Merge pull request #35 from sharandac/experimental

Experimental
This commit is contained in:
Dirk Broßwick
2020-08-10 13:57:50 +02:00
committed by GitHub
18 changed files with 115 additions and 25 deletions

View File

@@ -14,11 +14,11 @@ board = ttgo-t-watch
framework = arduino framework = arduino
board_build.f_flash = 80000000L board_build.f_flash = 80000000L
monitor_speed = 115200 monitor_speed = 115200
monitor_filters = default, esp32_exception_decoder monitor_filters =
default
esp32_exception_decoder
build_flags = build_flags =
; -DCORE_DEBUG_LEVEL=3 -DCORE_DEBUG_LEVEL=3
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue
src_filter = src_filter =
+<*> +<*>
lib_deps = lib_deps =

View File

@@ -36,6 +36,7 @@
#include "gui/statusbar.h" #include "gui/statusbar.h"
#include "gui/keyboard.h" #include "gui/keyboard.h"
#include "hardware/motor.h" #include "hardware/motor.h"
#include "hardware/powermgm.h"
EventGroupHandle_t weather_widget_event_handle = NULL; EventGroupHandle_t weather_widget_event_handle = NULL;
TaskHandle_t _weather_widget_sync_Task; TaskHandle_t _weather_widget_sync_Task;

View File

@@ -33,6 +33,8 @@
#include "gui/statusbar.h" #include "gui/statusbar.h"
#include "gui/keyboard.h" #include "gui/keyboard.h"
#include "hardware/powermgm.h"
EventGroupHandle_t weather_forecast_event_handle = NULL; EventGroupHandle_t weather_forecast_event_handle = NULL;
TaskHandle_t _weather_forecast_sync_Task; TaskHandle_t _weather_forecast_sync_Task;
void weather_forecast_sync_Task( void * pvParameters ); void weather_forecast_sync_Task( void * pvParameters );

View File

@@ -32,6 +32,6 @@
/* /*
* firmeware version string * firmeware version string
*/ */
#define __FIRMWARE__ "2020081001" #define __FIRMWARE__ "2020081004"
#endif // _CONFIG_H #endif // _CONFIG_H

View File

@@ -88,7 +88,12 @@ void gui_setup(void)
* *
*/ */
void gui_loop( TTGOClass *ttgo ) { void gui_loop( TTGOClass *ttgo ) {
// if we run in silence mode // if we run in silence mode
if ( powermgm_get_event( POWERMGM_SILENCE_WAKEUP ) &&!powermgm_get_event( POWERMGM_STANDBY ) ) {
log_e("error while silence standby");
while(1);
}
if ( powermgm_get_event( POWERMGM_SILENCE_WAKEUP ) ) { if ( powermgm_get_event( POWERMGM_SILENCE_WAKEUP ) ) {
if ( lv_disp_get_inactive_time(NULL) < display_get_timeout() * 1000 ) { if ( lv_disp_get_inactive_time(NULL) < display_get_timeout() * 1000 ) {
lv_task_handler(); lv_task_handler();

View File

@@ -33,6 +33,7 @@
#include "gui/mainbar/setup_tile/setup.h" #include "gui/mainbar/setup_tile/setup.h"
#include "gui/statusbar.h" #include "gui/statusbar.h"
#include "hardware/display.h" #include "hardware/display.h"
#include "hardware/powermgm.h"
EventGroupHandle_t update_event_handle = NULL; EventGroupHandle_t update_event_handle = NULL;
TaskHandle_t _update_Task; TaskHandle_t _update_Task;

View File

@@ -292,8 +292,10 @@ static void exit_wifi_password_event_cb( lv_obj_t * obj, lv_event_t event ) {
} }
lv_obj_t *wifi_autoon_onoff; lv_obj_t *wifi_autoon_onoff;
lv_obj_t *wifi_webserver_onoff;
static void wps_start_event_handler( lv_obj_t * obj, lv_event_t event ); static void wps_start_event_handler( lv_obj_t * obj, lv_event_t event );
static void wifi_autoon_onoff_event_handler( lv_obj_t * obj, lv_event_t event ); static void wifi_autoon_onoff_event_handler( lv_obj_t * obj, lv_event_t event );
static void wifi_webserver_onoff_event_handler( lv_obj_t * obj, lv_event_t event );
void wlan_setup_tile_setup( uint32_t wifi_setup_tile_num ) { void wlan_setup_tile_setup( uint32_t wifi_setup_tile_num ) {
// get an app tile and copy mainstyle // get an app tile and copy mainstyle
@@ -334,9 +336,25 @@ void wlan_setup_tile_setup( uint32_t wifi_setup_tile_num ) {
lv_label_set_text( wifi_autoon_label, "enable on wakeup"); lv_label_set_text( wifi_autoon_label, "enable on wakeup");
lv_obj_align( wifi_autoon_label, wifi_autoon_onoff_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 ); lv_obj_align( wifi_autoon_label, wifi_autoon_onoff_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
lv_obj_t *wifi_webserver_onoff_cont = lv_obj_create( wifi_setup_tile, NULL );
lv_obj_set_size(wifi_webserver_onoff_cont, LV_HOR_RES_MAX , 40);
lv_obj_add_style( wifi_webserver_onoff_cont, LV_OBJ_PART_MAIN, &wifi_setup_style );
lv_obj_align( wifi_webserver_onoff_cont, wifi_autoon_onoff_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 );
wifi_webserver_onoff = lv_switch_create( wifi_setup_tile, NULL );
lv_obj_add_protect( wifi_webserver_onoff, LV_PROTECT_CLICK_FOCUS);
lv_obj_add_style( wifi_webserver_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() );
lv_switch_off( wifi_webserver_onoff, LV_ANIM_ON );
lv_obj_align( wifi_webserver_onoff, wifi_webserver_onoff_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 );
lv_obj_set_event_cb( wifi_webserver_onoff, wifi_webserver_onoff_event_handler );
lv_obj_t *wifi_webserver_label = lv_label_create( wifi_webserver_onoff_cont, NULL);
lv_obj_add_style( wifi_webserver_label, LV_OBJ_PART_MAIN, &wifi_setup_style );
lv_label_set_text( wifi_webserver_label, "enable webserver");
lv_obj_align( wifi_webserver_label, wifi_webserver_onoff_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
lv_obj_t *wps_btn = lv_btn_create( wifi_setup_tile, NULL); lv_obj_t *wps_btn = lv_btn_create( wifi_setup_tile, NULL);
lv_obj_set_event_cb( wps_btn, wps_start_event_handler ); lv_obj_set_event_cb( wps_btn, wps_start_event_handler );
lv_obj_align( wps_btn, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -40); lv_obj_align( wps_btn, wifi_webserver_onoff_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
lv_obj_t *wps_btn_label = lv_label_create( wps_btn, NULL ); lv_obj_t *wps_btn_label = lv_label_create( wps_btn, NULL );
lv_label_set_text( wps_btn_label, "start WPS"); lv_label_set_text( wps_btn_label, "start WPS");
@@ -344,6 +362,11 @@ void wlan_setup_tile_setup( uint32_t wifi_setup_tile_num ) {
lv_switch_on( wifi_autoon_onoff, LV_ANIM_OFF); lv_switch_on( wifi_autoon_onoff, LV_ANIM_OFF);
else else
lv_switch_off( wifi_autoon_onoff, LV_ANIM_OFF); lv_switch_off( wifi_autoon_onoff, LV_ANIM_OFF);
if ( wifictl_get_webserver() )
lv_switch_on( wifi_webserver_onoff, LV_ANIM_OFF);
else
lv_switch_off( wifi_webserver_onoff, LV_ANIM_OFF);
} }
static void wps_start_event_handler( lv_obj_t * obj, lv_event_t event ) { static void wps_start_event_handler( lv_obj_t * obj, lv_event_t event ) {
@@ -372,4 +395,11 @@ static void wifi_autoon_onoff_event_handler( lv_obj_t * obj, lv_event_t event )
case (LV_EVENT_VALUE_CHANGED): wifictl_set_autoon( lv_switch_get_state( obj ) ); case (LV_EVENT_VALUE_CHANGED): wifictl_set_autoon( lv_switch_get_state( obj ) );
break; break;
} }
}
static void wifi_webserver_onoff_event_handler( lv_obj_t * obj, lv_event_t event ) {
switch (event) {
case (LV_EVENT_VALUE_CHANGED): wifictl_set_webserver( lv_switch_get_state( obj ) );
break;
}
} }

View File

@@ -28,6 +28,10 @@ static void screenshot_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *are
void screenshot_setup( void ) { void screenshot_setup( void ) {
png = (uint16_t*)ps_malloc( LV_HOR_RES_MAX * LV_VER_RES_MAX * sizeof( lv_color_t ) ); png = (uint16_t*)ps_malloc( LV_HOR_RES_MAX * LV_VER_RES_MAX * sizeof( lv_color_t ) );
if ( png == NULL ) {
log_e("error memory alloc");
while(1);
}
} }
void screenshot_take( void ) { void screenshot_take( void ) {

View File

@@ -72,7 +72,7 @@ void bma_setup( TTGOClass *ttgo ) {
void bma_standby( void ) { void bma_standby( void ) {
TTGOClass *ttgo = TTGOClass::getWatch(); TTGOClass *ttgo = TTGOClass::getWatch();
log_i("standby"); log_i("go standby");
if ( bma_get_config( BMA_STEPCOUNTER ) ) if ( bma_get_config( BMA_STEPCOUNTER ) )
ttgo->bma->enableStepCountInterrupt( false ); ttgo->bma->enableStepCountInterrupt( false );
@@ -82,7 +82,7 @@ void bma_standby( void ) {
void bma_wakeup( void ) { void bma_wakeup( void ) {
TTGOClass *ttgo = TTGOClass::getWatch(); TTGOClass *ttgo = TTGOClass::getWatch();
log_i("wakeup"); log_i("go wakeup");
if ( bma_get_config( BMA_STEPCOUNTER ) ) if ( bma_get_config( BMA_STEPCOUNTER ) )
ttgo->bma->enableStepCountInterrupt( true ); ttgo->bma->enableStepCountInterrupt( true );

View File

@@ -69,7 +69,7 @@ void display_loop( TTGOClass *ttgo ) {
void display_standby( void ) { void display_standby( void ) {
TTGOClass *ttgo = TTGOClass::getWatch(); TTGOClass *ttgo = TTGOClass::getWatch();
log_i("standby"); log_i("go standby");
ttgo->bl->adjust( 0 ); ttgo->bl->adjust( 0 );
ttgo->displaySleep(); ttgo->displaySleep();
ttgo->closeBL(); ttgo->closeBL();
@@ -82,7 +82,7 @@ void display_wakeup( void ) {
// normal wake up from standby // normal wake up from standby
if ( powermgm_get_event( POWERMGM_PMU_BUTTON | POWERMGM_PMU_BATTERY | POWERMGM_BMA_WAKEUP ) ) { if ( powermgm_get_event( POWERMGM_PMU_BUTTON | POWERMGM_PMU_BATTERY | POWERMGM_BMA_WAKEUP ) ) {
log_i("wakeup"); log_i("go wakeup");
ttgo->openBL(); ttgo->openBL();
ttgo->displayWakeup(); ttgo->displayWakeup();
ttgo->bl->adjust( 0 ); ttgo->bl->adjust( 0 );
@@ -92,7 +92,7 @@ void display_wakeup( void ) {
} }
// silence wakeup request from standby // silence wakeup request from standby
else if ( powermgm_get_event( POWERMGM_SILENCE_WAKEUP_REQUEST ) ) { else if ( powermgm_get_event( POWERMGM_SILENCE_WAKEUP_REQUEST ) ) {
log_i("silence wakeup"); log_i("go silence wakeup");
ttgo->openBL(); ttgo->openBL();
ttgo->displayWakeup(); ttgo->displayWakeup();
ttgo->bl->adjust( 0 ); ttgo->bl->adjust( 0 );

View File

@@ -81,11 +81,11 @@ void pmu_standby( void ) {
if ( pmu_get_experimental_power_save() ) { if ( pmu_get_experimental_power_save() ) {
ttgo->power->setDCDC3Voltage( 2700 ); ttgo->power->setDCDC3Voltage( 2700 );
log_i("enable 2.7V standby voltage"); log_i("go standby, enable 2.7V standby voltage");
} }
else { else {
ttgo->power->setDCDC3Voltage( 3000 ); 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 ); ttgo->power->setPowerOutPut(AXP202_LDO3, AXP202_OFF );
} }
@@ -95,11 +95,11 @@ void pmu_wakeup( void ) {
if ( pmu_get_experimental_power_save() ) { if ( pmu_get_experimental_power_save() ) {
ttgo->power->setDCDC3Voltage( 3000 ); ttgo->power->setDCDC3Voltage( 3000 );
log_i("enable 3.0V voltage"); log_i("go wakeup, enable 3.0V voltage");
} }
else { else {
ttgo->power->setDCDC3Voltage( 3300 ); ttgo->power->setDCDC3Voltage( 3300 );
log_i("enable 3.3V voltage"); log_i("go wakeup, enable 3.3V voltage");
} }
ttgo->power->clearTimerStatus(); ttgo->power->clearTimerStatus();
@@ -174,6 +174,11 @@ void pmu_loop( TTGOClass *ttgo ) {
*/ */
if ( xEventGroupGetBitsFromISR( pmu_event_handle ) & PMU_EVENT_AXP_INT ) { if ( xEventGroupGetBitsFromISR( pmu_event_handle ) & PMU_EVENT_AXP_INT ) {
setCpuFrequencyMhz(240); 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(); ttgo->power->readIRQ();
if (ttgo->power->isVbusPlugInIRQ()) { if (ttgo->power->isVbusPlugInIRQ()) {

View File

@@ -42,6 +42,7 @@
#include "gui/mainbar/mainbar.h" #include "gui/mainbar/mainbar.h"
EventGroupHandle_t powermgm_status = NULL; 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 ) { void powermgm_set_event( EventBits_t bits ) {
portENTER_CRITICAL_ISR(&powermgmMux);
xEventGroupSetBits( powermgm_status, bits ); xEventGroupSetBits( powermgm_status, bits );
portEXIT_CRITICAL_ISR(&powermgmMux);
} }
/* /*
* *
*/ */
void powermgm_clear_event( EventBits_t bits ) { void powermgm_clear_event( EventBits_t bits ) {
portENTER_CRITICAL_ISR(&powermgmMux);
xEventGroupClearBits( powermgm_status, bits ); xEventGroupClearBits( powermgm_status, bits );
portEXIT_CRITICAL_ISR(&powermgmMux);
} }
/* /*
* *
*/ */
EventBits_t powermgm_get_event( EventBits_t bits ) { 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 );
} }

View File

@@ -23,6 +23,7 @@
#include <WiFi.h> #include <WiFi.h>
#include "config.h" #include "config.h"
#include "timesync.h" #include "timesync.h"
#include "powermgm.h"
EventGroupHandle_t time_event_handle = NULL; EventGroupHandle_t time_event_handle = NULL;
TaskHandle_t _timesync_Task; TaskHandle_t _timesync_Task;

View File

@@ -124,7 +124,9 @@ void wifictl_setup( void ) {
// label.concat('\n'); // label.concat('\n');
// label.concat(WiFi.localIPv6().toString()); // label.concat(WiFi.localIPv6().toString());
statusbar_wifi_set_state( true, label.c_str() ); statusbar_wifi_set_state( true, label.c_str() );
asyncwebserver_setup(); if ( wifictl_config.webserver ) {
asyncwebserver_start();
}
lv_obj_invalidate( lv_scr_act() ); lv_obj_invalidate( lv_scr_act() );
}, WiFiEvent_t::SYSTEM_EVENT_STA_GOT_IP ); }, WiFiEvent_t::SYSTEM_EVENT_STA_GOT_IP );
@@ -144,10 +146,11 @@ void wifictl_setup( void ) {
}, WiFiEvent_t::SYSTEM_EVENT_WIFI_READY ); }, WiFiEvent_t::SYSTEM_EVENT_WIFI_READY );
WiFi.onEvent([](WiFiEvent_t event, WiFiEventInfo_t info) { 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_hide_icon( STATUSBAR_WIFI );
statusbar_wifi_set_state( false, "" ); statusbar_wifi_set_state( false, "" );
lv_obj_invalidate( lv_scr_act() ); 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 ); }, WiFiEvent_t::SYSTEM_EVENT_STA_STOP );
WiFi.onEvent([](WiFiEvent_t event, WiFiEventInfo_t info) { WiFi.onEvent([](WiFiEvent_t event, WiFiEventInfo_t info) {
@@ -222,6 +225,15 @@ void wifictl_set_autoon( bool autoon ) {
wifictl_config.autoon = autoon; wifictl_config.autoon = autoon;
wifictl_save_config(); 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 ) if ( wifi_init == false )
return; return;
log_i("request wifictl on");
if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST ) ) { if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST ) ) {
return; return;
} }
@@ -345,6 +358,7 @@ void wifictl_off( void ) {
if ( wifi_init == false ) if ( wifi_init == false )
return; return;
log_i("request wifictl off");
if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST )) { if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) || powermgm_get_event( POWERMGM_WIFI_ON_REQUEST )) {
return; return;
} }
@@ -355,15 +369,19 @@ void wifictl_off( void ) {
} }
void wifictl_standby( void ) { void wifictl_standby( void ) {
log_i("standby"); log_i("request wifictl standby");
if ( powermgm_get_event( POWERMGM_WIFI_ACTIVE ) ) wifictl_off(); 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 ) { void wifictl_wakeup( void ) {
if ( wifictl_config.autoon ) { if ( wifictl_config.autoon ) {
log_i("wakeup"); log_i("request wifictl wakeup");
wifictl_on(); wifictl_on();
log_i("request wifictl wakeup done");
} }
} }
@@ -411,6 +429,7 @@ void wifictl_Task( void * pvParameters ) {
lv_obj_invalidate( lv_scr_act() ); lv_obj_invalidate( lv_scr_act() );
WiFi.mode( WIFI_STA ); WiFi.mode( WIFI_STA );
powermgm_clear_event( POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_ON_REQUEST ); powermgm_clear_event( POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_ON_REQUEST );
log_i("request wifictl on done");
} }
else if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) ) { else if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) ) {
statusbar_wifi_set_state( false, "" ); statusbar_wifi_set_state( false, "" );
@@ -418,6 +437,7 @@ void wifictl_Task( void * pvParameters ) {
WiFi.mode( WIFI_OFF ); WiFi.mode( WIFI_OFF );
esp_wifi_stop(); esp_wifi_stop();
powermgm_clear_event( POWERMGM_WIFI_OFF_REQUEST | POWERMGM_WIFI_ACTIVE | POWERMGM_WIFI_CONNECTED | POWERMGM_WIFI_SCAN | POWERMGM_WIFI_ON_REQUEST ); 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 ); vTaskSuspend( _wifictl_Task );
} }

View File

@@ -40,6 +40,7 @@
typedef struct { typedef struct {
bool autoon = true; bool autoon = true;
bool webserver = true;
} wifictl_config_t; } wifictl_config_t;
/* /*
@@ -82,5 +83,7 @@
bool wifictl_get_autoon( void ); bool wifictl_get_autoon( void );
void wifictl_set_autoon( bool autoon ); void wifictl_set_autoon( bool autoon );
void wifictl_start_wps( void ); void wifictl_start_wps( void );
bool wifictl_get_webserver( void );
void wifictl_set_webserver( bool webserver );
#endif // _WIFICTL_H #endif // _WIFICTL_H

View File

@@ -91,6 +91,7 @@ void setup()
void loop() void loop()
{ {
delay(10);
gui_loop( ttgo ); gui_loop( ttgo );
powermgm_loop( ttgo ); powermgm_loop( ttgo );
} }

View File

@@ -77,7 +77,7 @@ void handleUpdate( AsyncWebServerRequest *request, const String& filename, size_
/* /*
* *
*/ */
void asyncwebserver_setup(void){ void asyncwebserver_start(void){
asyncserver.on("/info", HTTP_GET, [](AsyncWebServerRequest *request) { asyncserver.on("/info", HTTP_GET, [](AsyncWebServerRequest *request) {
String message("Firmwarestand: " __DATE__ " " __TIME__ "\nGCC-Version: " __VERSION__ "\n"); String message("Firmwarestand: " __DATE__ " " __TIME__ "\nGCC-Version: " __VERSION__ "\n");
@@ -217,4 +217,12 @@ void asyncwebserver_setup(void){
SSDP.begin(); SSDP.begin();
asyncserver.begin(); asyncserver.begin();
log_i("enable webserver and ssdp");
}
void asyncwebserver_end(void) {
SSDP.end();
asyncserver.end();
log_i("disable webserver and ssdp");
} }

View File

@@ -33,6 +33,7 @@
/* /*
* @brief setup builtin webserver, call after first wifi-connection. otherwise esp32 will crash * @brief setup builtin webserver, call after first wifi-connection. otherwise esp32 will crash
*/ */
void asyncwebserver_setup(void); void asyncwebserver_start(void);
void asyncwebserver_end(void);
#endif // _ASYNCWEBSERVER_H #endif // _ASYNCWEBSERVER_H