feat: logging service
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
#include "RelayService.h"
|
||||
#include "spore/core/ApiServer.h"
|
||||
#include "spore/services/LoggingService.h"
|
||||
|
||||
RelayService::RelayService(TaskManager& taskMgr, int pin)
|
||||
: taskManager(taskMgr), relayPin(pin), relayOn(false) {
|
||||
RelayService::RelayService(NodeContext& ctx, TaskManager& taskMgr, int pin)
|
||||
: ctx(ctx), taskManager(taskMgr), relayPin(pin), relayOn(false) {
|
||||
pinMode(relayPin, OUTPUT);
|
||||
// Many relay modules are active LOW. Start in OFF state (relay de-energized).
|
||||
digitalWrite(relayPin, HIGH);
|
||||
@@ -64,13 +65,13 @@ void RelayService::turnOn() {
|
||||
relayOn = true;
|
||||
// Active LOW relay
|
||||
digitalWrite(relayPin, LOW);
|
||||
Serial.println("[RelayService] Relay ON");
|
||||
LOG_INFO(ctx, "RelayService", "Relay ON");
|
||||
}
|
||||
|
||||
void RelayService::turnOff() {
|
||||
relayOn = false;
|
||||
digitalWrite(relayPin, HIGH);
|
||||
Serial.println("[RelayService] Relay OFF");
|
||||
LOG_INFO(ctx, "RelayService", "Relay OFF");
|
||||
}
|
||||
|
||||
void RelayService::toggle() {
|
||||
@@ -83,7 +84,6 @@ void RelayService::toggle() {
|
||||
|
||||
void RelayService::registerTasks() {
|
||||
taskManager.registerTask("relay_status_print", 5000, [this]() {
|
||||
Serial.printf("[RelayService] Status - pin: %d, state: %s\n",
|
||||
relayPin, relayOn ? "ON" : "OFF");
|
||||
LOG_INFO(ctx, "RelayService", "Status - pin: " + String(relayPin) + ", state: " + (relayOn ? "ON" : "OFF"));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#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(TaskManager& taskMgr, int pin);
|
||||
RelayService(NodeContext& ctx, TaskManager& taskMgr, int pin);
|
||||
void registerEndpoints(ApiServer& api) override;
|
||||
const char* getName() const override { return "Relay"; }
|
||||
|
||||
@@ -16,6 +17,7 @@ public:
|
||||
private:
|
||||
void registerTasks();
|
||||
|
||||
NodeContext& ctx;
|
||||
TaskManager& taskManager;
|
||||
int relayPin;
|
||||
bool relayOn;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include <Arduino.h>
|
||||
#include "spore/Spore.h"
|
||||
#include "spore/services/LoggingService.h"
|
||||
#include "RelayService.h"
|
||||
|
||||
// Choose a default relay pin. For ESP-01 this is GPIO0. Adjust as needed for your board.
|
||||
@@ -22,13 +23,13 @@ void setup() {
|
||||
spore.setup();
|
||||
|
||||
// Create and add custom service
|
||||
relayService = new RelayService(spore.getTaskManager(), RELAY_PIN);
|
||||
relayService = new RelayService(spore.getContext(), spore.getTaskManager(), RELAY_PIN);
|
||||
spore.addService(relayService);
|
||||
|
||||
// Start the API server and complete initialization
|
||||
spore.begin();
|
||||
|
||||
Serial.println("[Main] Relay service registered and ready!");
|
||||
LOG_INFO(spore.getContext(), "Main", "Relay service registered and ready!");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
Reference in New Issue
Block a user