LoRa_APRS_Tracker111/src/wifi_utils.cpp

49 lines
1.7 KiB
C++

#include <logger.h>
#include <WiFi.h>
#include "configuration.h"
#include "web_utils.h"
#include "display.h"
extern Configuration Config;
extern logging::Logger logger;
uint32_t noClientsTime = 0;
namespace WIFI_Utils {
void startAutoAP() {
WiFi.mode(WIFI_MODE_NULL);
WiFi.mode(WIFI_AP);
WiFi.softAP("LoRaTracker-AP", Config.wifiAP.password);
}
void checkIfWiFiAP() {
if (Config.wifiAP.active || Config.beacons[0].callsign == "NOCALL-7"){
displayShow(" LoRa APRS", " ** WEB-CONF **","", "WiFiAP:LoRaTracker-AP", "IP : 192.168.4.1","");
logger.log(logging::LoggerLevel::LOGGER_LEVEL_WARN, "Main", "WebConfiguration Started!");
startAutoAP();
WEB_Utils::setup();
while (true) {
if (WiFi.softAPgetStationNum() > 0) {
noClientsTime = 0;
} else {
if (noClientsTime == 0) {
noClientsTime = millis();
} else if ((millis() - noClientsTime) > 2 * 60 * 1000) {
logger.log(logging::LoggerLevel::LOGGER_LEVEL_WARN, "Main", "WebConfiguration Stopped!");
displayShow("", "", " STOPPING WiFi AP", 2000);
Config.wifiAP.active = false;
Config.writeFile();
WiFi.softAPdisconnect(true);
ESP.restart();
}
}
}
} else {
WiFi.mode(WIFI_OFF);
logger.log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, "Main", "WiFi controller stopped");
}
}
}