mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-10 18:24:27 +05:00
refactor: some changes
This commit is contained in:
@@ -73,8 +73,20 @@ protected:
|
||||
}
|
||||
|
||||
if (vars.actions.restart) {
|
||||
vars.actions.restart = false;
|
||||
this->restartSignalTime = millis();
|
||||
vars.actions.restart = false;
|
||||
vars.states.restarting = true;
|
||||
|
||||
// save settings
|
||||
fsSettings.updateNow();
|
||||
|
||||
// save sensors settings
|
||||
fsSensorsSettings.updateNow();
|
||||
|
||||
// force save network settings
|
||||
if (fsNetworkSettings.updateNow() == FD_FILE_ERR && LittleFS.begin()) {
|
||||
fsNetworkSettings.write();
|
||||
}
|
||||
|
||||
Log.sinfoln(FPSTR(L_MAIN), F("Restart signal received. Restart after 10 sec."));
|
||||
}
|
||||
@@ -148,20 +160,9 @@ protected:
|
||||
|
||||
|
||||
// restart
|
||||
if (this->restartSignalTime > 0 && millis() - this->restartSignalTime > 10000) {
|
||||
// save settings
|
||||
fsSettings.updateNow();
|
||||
if (vars.states.restarting && millis() - this->restartSignalTime > 10000) {
|
||||
vars.states.restarting = false;
|
||||
|
||||
// save sensors settings
|
||||
fsSensorsSettings.updateNow();
|
||||
|
||||
// force save network settings
|
||||
if (fsNetworkSettings.updateNow() == FD_FILE_ERR && LittleFS.begin()) {
|
||||
fsNetworkSettings.write();
|
||||
}
|
||||
|
||||
this->restartSignalTime = 0;
|
||||
this->delay(500);
|
||||
ESP.restart();
|
||||
}
|
||||
}
|
||||
@@ -170,8 +171,10 @@ protected:
|
||||
unsigned int freeHeap = getFreeHeap();
|
||||
unsigned int maxFreeBlockHeap = getMaxFreeBlockHeap();
|
||||
|
||||
if (!this->restartSignalTime && (freeHeap < 2048 || maxFreeBlockHeap < 2048)) {
|
||||
// critical heap
|
||||
if (!vars.states.restarting && (freeHeap < 2048 || maxFreeBlockHeap < 2048)) {
|
||||
this->restartSignalTime = millis();
|
||||
vars.states.restarting = true;
|
||||
}
|
||||
|
||||
if (settings.system.logLevel < TinyLogger::Level::VERBOSE) {
|
||||
|
||||
@@ -184,6 +184,10 @@ protected:
|
||||
}
|
||||
|
||||
void loop() {
|
||||
if (vars.states.restarting || vars.states.upgrading) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this->connected && !this->client->connected()) {
|
||||
this->connected = false;
|
||||
this->onDisconnect();
|
||||
|
||||
@@ -106,6 +106,10 @@ protected:
|
||||
}
|
||||
|
||||
void loop() {
|
||||
if (vars.states.restarting || vars.states.upgrading) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this->instanceInGpio != settings.opentherm.inGpio || this->instanceOutGpio != settings.opentherm.outGpio) {
|
||||
this->setup();
|
||||
|
||||
|
||||
@@ -189,6 +189,11 @@ protected:
|
||||
|
||||
return true;
|
||||
})->setBeforeUpgradeCallback([](UpgradeHandler::UpgradeType type) -> bool {
|
||||
if (vars.states.restarting) {
|
||||
return false;
|
||||
}
|
||||
|
||||
vars.states.upgrading = true;
|
||||
return true;
|
||||
})->setAfterUpgradeCallback([this](const UpgradeHandler::UpgradeResult& fwResult, const UpgradeHandler::UpgradeResult& fsResult) {
|
||||
unsigned short status = 200;
|
||||
@@ -209,6 +214,8 @@ protected:
|
||||
response.concat(fsResult.error);
|
||||
response.concat(F("\"}}"));
|
||||
this->webServer->send(status, F("application/json"), response);
|
||||
|
||||
vars.states.upgrading = false;
|
||||
});
|
||||
this->webServer->addHandler(upgradeHandler);
|
||||
|
||||
@@ -247,6 +254,10 @@ protected:
|
||||
}
|
||||
}
|
||||
|
||||
if (vars.states.restarting) {
|
||||
return this->webServer->send(503);
|
||||
}
|
||||
|
||||
const String& plain = this->webServer->arg(0);
|
||||
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Request /api/backup/restore %d bytes: %s"), plain.length(), plain.c_str());
|
||||
|
||||
@@ -338,6 +349,10 @@ protected:
|
||||
}
|
||||
}
|
||||
|
||||
if (vars.states.restarting) {
|
||||
return this->webServer->send(503);
|
||||
}
|
||||
|
||||
const String& plain = this->webServer->arg(0);
|
||||
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Request /api/network/settings %d bytes: %s"), plain.length(), plain.c_str());
|
||||
|
||||
@@ -453,6 +468,10 @@ protected:
|
||||
}
|
||||
}
|
||||
|
||||
if (vars.states.restarting) {
|
||||
return this->webServer->send(503);
|
||||
}
|
||||
|
||||
const String& plain = this->webServer->arg(0);
|
||||
Log.straceln(FPSTR(L_PORTAL_WEBSERVER), F("Request /api/settings %d bytes: %s"), plain.length(), plain.c_str());
|
||||
|
||||
@@ -558,6 +577,10 @@ protected:
|
||||
}
|
||||
}
|
||||
|
||||
if (vars.states.restarting) {
|
||||
return this->webServer->send(503);
|
||||
}
|
||||
|
||||
#ifdef ARDUINO_ARCH_ESP8266
|
||||
if (!this->webServer->hasArg(F("id")) || this->webServer->args() != 1) {
|
||||
return this->webServer->send(400);
|
||||
|
||||
@@ -32,6 +32,10 @@ protected:
|
||||
#endif
|
||||
|
||||
void loop() {
|
||||
if (vars.states.restarting || vars.states.upgrading) {
|
||||
return;
|
||||
}
|
||||
|
||||
this->indoorSensorsConnected = Sensors::existsConnectedSensorsByPurpose(Sensors::Purpose::INDOOR_TEMP);
|
||||
//this->outdoorSensorsConnected = Sensors::existsConnectedSensorsByPurpose(Sensors::Purpose::OUTDOOR_TEMP);
|
||||
|
||||
|
||||
@@ -59,6 +59,10 @@ protected:
|
||||
#endif
|
||||
|
||||
void loop() {
|
||||
if (vars.states.restarting || vars.states.upgrading) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isPollingDallasSensors()) {
|
||||
pollingDallasSensors(false);
|
||||
this->yield();
|
||||
|
||||
@@ -366,4 +366,9 @@ struct Variables {
|
||||
bool resetFault = false;
|
||||
bool resetDiagnostic = false;
|
||||
} actions;
|
||||
|
||||
struct {
|
||||
bool restarting = false;
|
||||
bool upgrading = false;
|
||||
} states;
|
||||
} vars;
|
||||
Reference in New Issue
Block a user