diff --git a/src/app/webApi.cpp b/src/app/webApi.cpp index 5ae4818..761da69 100644 --- a/src/app/webApi.cpp +++ b/src/app/webApi.cpp @@ -1,5 +1,6 @@ #include "SAB.h" #include "webApi.h" +#include "tasks.h" boolean apiTesterApi(WEBServerManager::HttpRequestData &HRD, WiFiClient* wc, void* pData) { @@ -134,16 +135,28 @@ boolean sdCardMountApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, v boolean espRestartApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) { - ESP.restart(); + SAB *sab = (SAB*)pData; + char buffer[200]; + + sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"message\" : \"module restarting in 10 seconds\" }"); + wc->print(buffer); + + unsigned int id = sab->getTaskSchedulerManager().taskCount()+1; + + sab->getTaskSchedulerManager().addTask(id, TaskSchedulerManagerHelper::Schedule::scheduleBuilder() + ->setSeconds(10) + ->setTriggerType(TaskSchedulerManagerHelper::Schedule::TRIGGER_ONCE_AND_DELETE) + ->setTriggerRightAway(false), &(task_esp_reset_restart), NULL); + + Serial.print(F("Task id : "));Serial.println(id); + return true; } boolean espResetApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData) { - ESP.restart(); - - return true; + return espRestartApi(HRD, wc, pData); } boolean sdCardSizeApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, void *pData)