mirror of
https://github.com/richonguzman/LoRa_APRS_iGate.git
synced 2026-02-03 06:14:30 +01:00
Network manager use SoftAP logic from project
This commit is contained in:
parent
32de70ad8c
commit
1e3cb0c49e
|
|
@ -27,7 +27,6 @@ namespace WIFI_Utils {
|
|||
void checkWiFi();
|
||||
void startAutoAP();
|
||||
void startWiFi();
|
||||
void checkAutoAPTimeout();
|
||||
void setup();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ void setup() {
|
|||
Serial.begin(115200);
|
||||
networkManager = new NetworkManager();
|
||||
networkManager->setup();
|
||||
networkManager->setAPTimeout(Config.wifiAutoAP.timeout * 60 * 1000); // Convert minutes to milliseconds
|
||||
POWER_Utils::setup();
|
||||
Utils::setupDisplay();
|
||||
LoRa_Utils::setup();
|
||||
|
|
@ -137,7 +138,6 @@ void loop() {
|
|||
Utils::checkSleepByLowBatteryVoltage(1);
|
||||
SLEEP_Utils::startSleeping();
|
||||
} else {
|
||||
WIFI_Utils::checkAutoAPTimeout();
|
||||
networkManager->loop();
|
||||
|
||||
if (isUpdatingOTA) {
|
||||
|
|
|
|||
|
|
@ -25,21 +25,19 @@ void NetworkManager::loop() {
|
|||
// WiFi methods
|
||||
|
||||
void NetworkManager::_processAPTimeout() {
|
||||
if (!_wifiAPmode || _apTimeout == 0 || !_wifiSTAmode) {
|
||||
if (!_wifiAPmode || _apTimeout == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If any station is connected, reset the timer
|
||||
if (WiFi.softAPgetStationNum() > 0) {
|
||||
_apStartup = millis();
|
||||
return;
|
||||
}
|
||||
|
||||
if (millis() - _apStartup > _apTimeout) {
|
||||
// Time expired, switch to client mode if successfully connected
|
||||
if (isWiFiConnected()) {
|
||||
Serial.println("AP timeout reached. Switching to client mode only.");
|
||||
disableAP();
|
||||
}
|
||||
else {
|
||||
// Not connected as a client, keep AP running
|
||||
Serial.println("AP timeout reached but WiFi client still not connected. Keeping AP mode active.");
|
||||
_apStartup = millis(); // Reset timer
|
||||
}
|
||||
Serial.println("AP timeout reached. Disabling AP mode.");
|
||||
disableAP();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ extern int myWiFiAPSize;
|
|||
extern WiFi_AP *currentWiFi;
|
||||
extern bool backUpDigiMode;
|
||||
|
||||
uint32_t WiFiAutoAPTime = millis();
|
||||
uint32_t previousWiFiMillis = 0;
|
||||
uint8_t wifiCounter = 0;
|
||||
uint32_t lastBackupDigiTime = millis();
|
||||
|
|
@ -76,9 +75,7 @@ namespace WIFI_Utils {
|
|||
|
||||
void startAutoAP() {
|
||||
displayShow("", " Starting Auto AP", " Please connect to it " , " loading ...", 1000);
|
||||
|
||||
networkManager->setupAP(Config.callsign + "-AP", Config.wifiAutoAP.password);
|
||||
WiFiAutoAPTime = millis();
|
||||
}
|
||||
|
||||
void startWiFi() {
|
||||
|
|
@ -121,24 +118,6 @@ namespace WIFI_Utils {
|
|||
}
|
||||
}
|
||||
|
||||
void checkAutoAPTimeout() {
|
||||
if (networkManager->isWifiAPActive() && Config.wifiAutoAP.timeout > 0) {
|
||||
if (WiFi.softAPgetStationNum() > 0) {
|
||||
WiFiAutoAPTime = 0;
|
||||
} else {
|
||||
if (WiFiAutoAPTime == 0) {
|
||||
WiFiAutoAPTime = millis();
|
||||
} else if ((millis() - WiFiAutoAPTime) > Config.wifiAutoAP.timeout * 60 * 1000) {
|
||||
Serial.println("Stopping auto AP");
|
||||
|
||||
networkManager->disableAP();
|
||||
|
||||
Serial.println("Auto AP stopped (timeout)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setup() {
|
||||
if (Config.digi.ecoMode == 0) startWiFi();
|
||||
btStop();
|
||||
|
|
|
|||
Loading…
Reference in a new issue