diff options
Diffstat (limited to 'cc3200/serverstask.c')
| -rw-r--r-- | cc3200/serverstask.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/cc3200/serverstask.c b/cc3200/serverstask.c index 355966420..82c43bf8e 100644 --- a/cc3200/serverstask.c +++ b/cc3200/serverstask.c @@ -39,7 +39,8 @@ #include "pybwdt.h" #include "modusocket.h" #include "mpexception.h" - +#include "modnetwork.h" +#include "modwlan.h" /****************************************************************************** DEFINE PRIVATE TYPES @@ -50,13 +51,13 @@ typedef struct { bool do_disable; bool do_enable; bool do_reset; + bool do_wlan_cycle_power; } servers_data_t; /****************************************************************************** DECLARE PRIVATE DATA ******************************************************************************/ -static servers_data_t servers_data = {.timeout = SERVERS_DEF_TIMEOUT_MS, .enabled = false, .do_disable = false, - .do_enable = false, .do_reset = false}; +static servers_data_t servers_data = {.timeout = SERVERS_DEF_TIMEOUT_MS}; static volatile bool sleep_sockets = false; /****************************************************************************** @@ -120,10 +121,16 @@ void TASK_Servers (void *pvParameters) { } if (sleep_sockets) { - sleep_sockets = false; pybwdt_srv_sleeping(true); modusocket_enter_sleep(); pybwdt_srv_sleeping(false); + mp_hal_delay_ms(SERVERS_CYCLE_TIME_MS * 2); + if (servers_data.do_wlan_cycle_power) { + servers_data.do_wlan_cycle_power = false; + wlan_off_on(); + } + sleep_sockets = false; + } // set the alive flag for the wdt @@ -152,6 +159,10 @@ void servers_reset (void) { servers_data.do_reset = true; } +void servers_wlan_cycle_power (void) { + servers_data.do_wlan_cycle_power = true; +} + bool servers_are_enabled (void) { return servers_data.enabled; } |
