summaryrefslogtreecommitdiff
path: root/cc3200/serverstask.c
diff options
context:
space:
mode:
Diffstat (limited to 'cc3200/serverstask.c')
-rw-r--r--cc3200/serverstask.c19
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;
}