49 lines
1.7 KiB
C++
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");
|
|
}
|
|
}
|
|
} |