Files
spore/examples/relay/RelayService.h
2025-10-14 18:01:37 +02:00

27 lines
710 B
C++

#pragma once
#include "spore/Service.h"
#include "spore/core/TaskManager.h"
#include "spore/core/NodeContext.h"
#include <ArduinoJson.h>
class RelayService : public Service {
public:
RelayService(NodeContext& ctx, TaskManager& taskMgr, int pin);
void registerEndpoints(ApiServer& api) override;
void registerTasks(TaskManager& taskManager) override;
const char* getName() const override { return "Relay"; }
void turnOn();
void turnOff();
void toggle();
private:
NodeContext& ctx;
TaskManager& taskManager;
int relayPin;
bool relayOn;
void handleStatusRequest(AsyncWebServerRequest* request);
void handleControlRequest(AsyncWebServerRequest* request);
};