#include "WifiConfigManager.h"
#include "StatusLed.h"
#include "UserData.h"
#define SSID "Topuino"
#define WIFI_PASSWORD "vvzero.com"
extern StatusLed* statusLed;
extern WifiConfigManager* wifiConfigManager;
extern UserData* userdataManager;
static String configPage("\
\
\
\
Topuino\
\
\
\
\
Topuino Config Page
\
\
\
\
");
static void handleOnConnect()
{
wifiConfigManager->httpServer.send(200, "text/html", configPage);
}
static void handleOnCommit()
{
if (wifiConfigManager->httpServer.hasArg("ssid") && wifiConfigManager->httpServer.hasArg("psw")) {
userdataManager->SetWifiSsid(wifiConfigManager->httpServer.arg("ssid"));
userdataManager->SetWifiPasswd(wifiConfigManager->httpServer.arg("psw"));
userdataManager->ConfirmWifiData();
wifiConfigManager->httpServer.send(200, "text/html", "OK");
statusLed->SetBlinkRate(StatusLed::BlinkRate::RateAlwaysOn);
delay(200);
ESP.restart();
} else {
wifiConfigManager->httpServer.send(200, "text/html", "ERROR");
}
}
WifiConfigManager::WifiConfigManager() :
localIp(192,168,1,1),
gateway(192,168,1,1),
subnet(255,255,255,0),
httpServer(80)
{
statusLed->SetBlinkRate(StatusLed::BlinkRate::Rate0_5Hz);
WiFi.softAPConfig(localIp, gateway, subnet);
WiFi.softAP(SSID, WIFI_PASSWORD);
delay(100);
httpServer.on("/", handleOnConnect);
httpServer.on("/setup", handleOnCommit);
httpServer.begin();
}
void WifiConfigManager::ProcessConfig()
{
while (1) {
httpServer.handleClient();
}
}