diff --git a/include/Utils.h b/include/Utils.h index 33887ff9..6de962b0 100644 --- a/include/Utils.h +++ b/include/Utils.h @@ -8,4 +8,5 @@ public: static uint32_t getChipId(); static uint64_t generateDtuSerial(); static int getTimezoneOffset(); + static void restartDtu(); }; diff --git a/src/Utils.cpp b/src/Utils.cpp index db8363ad..997519d0 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -52,4 +52,12 @@ int Utils::getTimezoneOffset() gmt = mktime(ptm); return static_cast(difftime(rawtime, gmt)); -} \ No newline at end of file +} + +void Utils::restartDtu() +{ + yield(); + delay(1000); + yield(); + ESP.restart(); +} diff --git a/src/WebApi_config.cpp b/src/WebApi_config.cpp index d936be58..08b86d65 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_config.cpp @@ -4,6 +4,7 @@ */ #include "WebApi_config.h" #include "Configuration.h" +#include "Utils.h" #include "WebApi.h" #include "WebApi_errors.h" #include @@ -114,7 +115,7 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) request->send(response); LittleFS.remove(CONFIG_FILENAME); - ESP.restart(); + Utils::restartDtu(); } void WebApiConfigClass::onConfigListGet(AsyncWebServerRequest* request) @@ -157,10 +158,7 @@ void WebApiConfigClass::onConfigUploadFinish(AsyncWebServerRequest* request) response->addHeader("Connection", "close"); response->addHeader("Access-Control-Allow-Origin", "*"); request->send(response); - yield(); - delay(1000); - yield(); - ESP.restart(); + Utils::restartDtu(); } void WebApiConfigClass::onConfigUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final) diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index 26331ee1..507a7e16 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -6,6 +6,7 @@ #include "Configuration.h" #include "Display_Graphic.h" #include "PinMapping.h" +#include "Utils.h" #include "WebApi.h" #include "WebApi_errors.h" #include "helper.h" @@ -169,9 +170,6 @@ void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) request->send(response); if (performRestart) { - yield(); - delay(1000); - yield(); - ESP.restart(); + Utils::restartDtu(); } } \ No newline at end of file diff --git a/src/WebApi_firmware.cpp b/src/WebApi_firmware.cpp index 798264a0..62cf5615 100644 --- a/src/WebApi_firmware.cpp +++ b/src/WebApi_firmware.cpp @@ -5,6 +5,7 @@ #include "WebApi_firmware.h" #include "Configuration.h" #include "Update.h" +#include "Utils.h" #include "WebApi.h" #include "helper.h" #include @@ -42,10 +43,7 @@ void WebApiFirmwareClass::onFirmwareUpdateFinish(AsyncWebServerRequest* request) response->addHeader("Connection", "close"); response->addHeader("Access-Control-Allow-Origin", "*"); request->send(response); - yield(); - delay(1000); - yield(); - ESP.restart(); + Utils::restartDtu(); } void WebApiFirmwareClass::onFirmwareUpdateUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final) diff --git a/src/WebApi_maintenance.cpp b/src/WebApi_maintenance.cpp index b59ed34e..ed2d6867 100644 --- a/src/WebApi_maintenance.cpp +++ b/src/WebApi_maintenance.cpp @@ -4,6 +4,7 @@ */ #include "WebApi_maintenance.h" +#include "Utils.h" #include "WebApi.h" #include "WebApi_errors.h" #include @@ -75,10 +76,7 @@ void WebApiMaintenanceClass::onRebootPost(AsyncWebServerRequest* request) response->setLength(); request->send(response); - yield(); - delay(1000); - yield(); - ESP.restart(); + Utils::restartDtu(); } else { retMsg["message"] = "Reboot cancled!"; retMsg["code"] = WebApiError::MaintenanceRebootCancled;