From 6c06233dd6fe13ad6ceb69543837d39508ddabe3 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Sun, 1 Sep 2019 21:35:52 +0200 Subject: [PATCH] Reworked the reset and restart api calls --- src/app/webApi.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) 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)