Files
OpenDTU/include/WebApi_ws_live.h

34 lines
1.1 KiB
C
Raw Normal View History

// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
2022-12-14 22:13:03 +01:00
#include <ArduinoJson.h>
#include <ESPAsyncWebServer.h>
#include <Hoymiles.h>
#include <TaskSchedulerDeclarations.h>
class WebApiWsLiveClass {
public:
2022-07-20 19:36:07 +02:00
WebApiWsLiveClass();
void init(AsyncWebServer& server, Scheduler& scheduler);
private:
void generateJsonResponse(JsonVariant& root);
2024-01-20 23:12:59 +01:00
void addField(JsonObject& root, std::shared_ptr<InverterAbstract> inv, const ChannelType_t type, const ChannelNum_t channel, const FieldId_t fieldId, String topic = "");
2023-12-12 00:21:14 +01:00
void addTotalField(JsonObject& root, const String& name, const float value, const String& unit, const uint8_t digits);
void onLivedataStatus(AsyncWebServerRequest* request);
2022-07-20 19:36:07 +02:00
void onWebsocketEvent(AsyncWebSocket* server, AsyncWebSocketClient* client, AwsEventType type, void* arg, uint8_t* data, size_t len);
AsyncWebSocket _ws;
2022-06-17 13:29:21 +02:00
uint32_t _lastWsPublish = 0;
uint32_t _newestInverterTimestamp = 0;
std::mutex _mutex;
Task _wsCleanupTask;
void wsCleanupTaskCb();
Task _sendDataTask;
void sendDataTaskCb();
};