calculate elapsed time rather than storing next fire time - avoids overflow issues
This commit is contained in:
parent
ec829173f9
commit
b197ee8a80
@ -1,15 +1,17 @@
|
||||
#include <APSettingsService.h>
|
||||
|
||||
APSettingsService::APSettingsService(AsyncWebServer* server, FS* fs) : SettingsService(server, fs, AP_SETTINGS_SERVICE_PATH, AP_SETTINGS_FILE) {
|
||||
onConfigUpdated();
|
||||
}
|
||||
|
||||
APSettingsService::~APSettingsService() {}
|
||||
|
||||
void APSettingsService::loop() {
|
||||
unsigned long now = millis();
|
||||
if (_manageAtMillis <= now){
|
||||
manageAP();
|
||||
_manageAtMillis = now + MANAGE_NETWORK_DELAY;
|
||||
unsigned long currentMillis = millis();
|
||||
unsigned long manageElapsed = (unsigned long)(currentMillis - _lastManaged);
|
||||
if (manageElapsed >= MANAGE_NETWORK_DELAY){
|
||||
_lastManaged = currentMillis;
|
||||
manageAP();
|
||||
}
|
||||
handleDNS();
|
||||
}
|
||||
@ -78,5 +80,5 @@ void APSettingsService::writeToJsonObject(JsonObject& root) {
|
||||
}
|
||||
|
||||
void APSettingsService::onConfigUpdated() {
|
||||
_manageAtMillis = 0;
|
||||
_lastManaged = millis() - MANAGE_NETWORK_DELAY;
|
||||
}
|
@ -42,7 +42,7 @@ class APSettingsService : public SettingsService {
|
||||
String _password;
|
||||
|
||||
// for the mangement delay loop
|
||||
unsigned long _manageAtMillis;
|
||||
unsigned long _lastManaged;
|
||||
|
||||
// for the captive portal
|
||||
DNSServer *_dnsServer;
|
||||
|
Loading…
Reference in New Issue
Block a user