fixed changes in the scheduler

This commit is contained in:
Ralf Bauer 2024-02-21 18:05:07 +01:00
parent b5a526c9c4
commit 0ea19c3685
2 changed files with 15 additions and 3 deletions

View File

@ -9,8 +9,8 @@
class WebApiDatabaseClass { class WebApiDatabaseClass {
public: public:
WebApiDatabaseClass();
void init(AsyncWebServer& server, Scheduler& scheduler); void init(AsyncWebServer& server, Scheduler& scheduler);
void loop();
bool write(float energy); bool write(float energy);
struct pvData { struct pvData {
@ -31,4 +31,7 @@ private:
static size_t readchunkDay(uint8_t* buffer, size_t maxLen, size_t index); static size_t readchunkDay(uint8_t* buffer, size_t maxLen, size_t index);
AsyncWebServer* _server; AsyncWebServer* _server;
Task _sendDataTask;
void sendDataTaskCb();
}; };

View File

@ -9,6 +9,12 @@
#include <AsyncJson.h> #include <AsyncJson.h>
#include <LittleFS.h> #include <LittleFS.h>
WebApiDatabaseClass::WebApiDatabaseClass()
: _sendDataTask(1 * TASK_MINUTE, TASK_FOREVER, std::bind(&WebApiDatabaseClass::sendDataTaskCb, this))
{
}
void WebApiDatabaseClass::init(AsyncWebServer& server, Scheduler& scheduler) void WebApiDatabaseClass::init(AsyncWebServer& server, Scheduler& scheduler)
{ {
using std::placeholders::_1; using std::placeholders::_1;
@ -16,9 +22,12 @@ void WebApiDatabaseClass::init(AsyncWebServer& server, Scheduler& scheduler)
server.on("/api/database", HTTP_GET, std::bind(&WebApiDatabaseClass::onDatabase, this, _1)); server.on("/api/database", HTTP_GET, std::bind(&WebApiDatabaseClass::onDatabase, this, _1));
server.on("/api/databaseHour", HTTP_GET, std::bind(&WebApiDatabaseClass::onDatabaseHour, this, _1)); server.on("/api/databaseHour", HTTP_GET, std::bind(&WebApiDatabaseClass::onDatabaseHour, this, _1));
server.on("/api/databaseDay", HTTP_GET, std::bind(&WebApiDatabaseClass::onDatabaseDay, this, _1)); server.on("/api/databaseDay", HTTP_GET, std::bind(&WebApiDatabaseClass::onDatabaseDay, this, _1));
scheduler.addTask(_sendDataTask);
_sendDataTask.enable();
} }
void WebApiDatabaseClass::loop() void WebApiDatabaseClass::sendDataTaskCb()
{ {
if (!Hoymiles.isAllRadioIdle()) { if (!Hoymiles.isAllRadioIdle()) {
return; return;