Major update/rewrite/recombine to get SSDP, and GrowController UI and application shell.
This commit is contained in:
103
Firmware/WiFiStateHandler.cpp
Normal file
103
Firmware/WiFiStateHandler.cpp
Normal file
@@ -0,0 +1,103 @@
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
#include "ProjGlobals.h"
|
||||
#include "WiFiStateHandler.h"
|
||||
|
||||
WiFiConnectState wifiConState; ///< Track the current WiFi state
|
||||
|
||||
|
||||
void WiFiStateSet(WiFiConnectState newState) {
|
||||
wifiConState = newState;
|
||||
}
|
||||
|
||||
WiFiConnectState WiFiStateGet() {
|
||||
return wifiConState;
|
||||
}
|
||||
|
||||
WiFiConnectState WiFiStateHandler() {
|
||||
static unsigned long timeStateChange = 0;
|
||||
// @todo static unsigned long timeLEDControl;
|
||||
// @todo unsigned long timeLEDCycle;
|
||||
String ssid = wifiConfig.getSSID();
|
||||
String pass = wifiConfig.getPassword();
|
||||
IPAddress myIP;
|
||||
|
||||
// @todo
|
||||
#if 0
|
||||
timeLEDCycle = millis() - timeLEDControl;
|
||||
if (timeLEDCycle >= LED_PERIOD__MS) {
|
||||
timeLEDControl = millis();
|
||||
timeLEDCycle = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
switch (wifiConState) {
|
||||
case WFC_ConnectToAP:
|
||||
// @todo isStationMode = true;
|
||||
WiFi.mode(WIFI_STA);
|
||||
wifi_set_sleep_type(NONE_SLEEP_T); // rumor is that this fixes multicast receive
|
||||
//ssid = wifiConfig.getSSID();
|
||||
//pass = wifiConfig.getPassword();
|
||||
WiFi.begin(ssid.c_str(), pass.c_str());
|
||||
timeStateChange = millis();
|
||||
// @todo timeLEDControl = timeStateChange;
|
||||
wifiConState = WFC_JoiningAP;
|
||||
break;
|
||||
case WFC_JoiningAP:
|
||||
// @todo if (timeLEDCycle <= LED_JOINING_MS) {
|
||||
// @todo SetLED(LED_WIFI, 1);
|
||||
// @todo } else {
|
||||
// @todo SetLED(LED_WIFI, 0);
|
||||
// @todo }
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
myIP = WiFi.localIP();
|
||||
Serial.printf("IP Address: %s\n", myIP.toString().c_str());
|
||||
timeStateChange = millis();
|
||||
//StartWebServer();
|
||||
wifiConState = WFC_JoinedAP;
|
||||
} else if (millis() - timeStateChange > 30000) {
|
||||
timeStateChange = millis();
|
||||
wifiConState = WFC_CreateAP; // failed for 30 sec, now what. retry or CreateAP?
|
||||
}
|
||||
break;
|
||||
case WFC_CreateAP:
|
||||
// @todo if (timeLEDCycle <= LED_APMODE__MS) {
|
||||
// @todo SetLED(LED_WIFI, 1);
|
||||
// @todo } else {
|
||||
// @todo SetLED(LED_WIFI, 0);
|
||||
// @todo }
|
||||
// @todo isStationMode = false;
|
||||
Serial.printf("Starting Access Point %s\n", AP_NAME.c_str());
|
||||
WiFi.softAP(AP_NAME.c_str());
|
||||
myIP = WiFi.softAPIP();
|
||||
Serial.printf("IP Address: %s\n", myIP.toString().c_str());
|
||||
// @todo dnsServer.start(DNS_PORT, "*", apIP);
|
||||
timeStateChange = millis();
|
||||
//StartWebServer();
|
||||
wifiConState = WFC_HostingAP;
|
||||
break;
|
||||
case WFC_JoinedAP:
|
||||
// @todo if (timeLEDCycle <= LED_JOINED__MS) {
|
||||
// @todo SetLED(LED_WIFI, 1);
|
||||
// @todo } else {
|
||||
// @todo SetLED(LED_WIFI, 0);
|
||||
// @todo }
|
||||
// @todo server.handleClient();
|
||||
break;
|
||||
case WFC_HostingAP:
|
||||
// @todo if (timeLEDCycle <= LED_APMODE__MS) {
|
||||
// @todo SetLED(LED_WIFI, 1);
|
||||
// @todo } else {
|
||||
// @todo SetLED(LED_WIFI, 0);
|
||||
// @todo }
|
||||
// @todo server.handleClient();
|
||||
// @todo dnsServer.processNextRequest();
|
||||
break;
|
||||
default:
|
||||
case WFC_Idle:
|
||||
break;
|
||||
}
|
||||
return wifiConState;
|
||||
}
|
||||
Reference in New Issue
Block a user