Migrate WebApi to TaskScheduler

This commit is contained in:
Thomas Basler 2023-11-20 22:07:07 +01:00
parent ab8679e7b9
commit 80d534e045
3 changed files with 13 additions and 7 deletions

View File

@ -22,12 +22,12 @@
#include "WebApi_ws_console.h"
#include "WebApi_ws_live.h"
#include <ESPAsyncWebServer.h>
#include <TaskSchedulerDeclarations.h>
class WebApiClass {
public:
WebApiClass();
void init();
void loop();
void init(Scheduler* scheduler);
static bool checkCredentials(AsyncWebServerRequest* request);
static bool checkCredentialsReadonly(AsyncWebServerRequest* request);
@ -35,6 +35,10 @@ public:
static void sendTooManyRequests(AsyncWebServerRequest* request);
private:
void loop();
Task _loopTask;
AsyncWebServer _server;
AsyncEventSource _events;

View File

@ -13,7 +13,7 @@ WebApiClass::WebApiClass()
{
}
void WebApiClass::init()
void WebApiClass::init(Scheduler* scheduler)
{
_server.addHandler(&_events);
@ -39,6 +39,11 @@ void WebApiClass::init()
_webApiWsLive.init(&_server);
_server.begin();
scheduler->addTask(_loopTask);
_loopTask.setCallback(std::bind(&WebApiClass::loop, this));
_loopTask.setIterations(TASK_FOREVER);
_loopTask.enable();
}
void WebApiClass::loop()

View File

@ -108,7 +108,7 @@ void setup()
// Initialize WebApi
MessageOutput.print("Initialize WebApi... ");
WebApi.init();
WebApi.init(&scheduler);
MessageOutput.println("done");
// Initialize Display
@ -154,7 +154,4 @@ void setup()
void loop()
{
scheduler.execute();
WebApi.loop();
yield();
}