Move ESP-NOW lighting control to lib

This commit is contained in:
Robert Marshall 2022-09-09 10:48:19 +01:00
parent 5b69f482c3
commit 76b8fed961
5 changed files with 33 additions and 34 deletions

View file

@ -0,0 +1,35 @@
#ifndef EspNowLightControlServer_cpp
#define EspNowLightControlServer_cpp
#include <esp_now.h>
#include <WiFi.h>
#include "LedManager.cpp"
#include "LightControlPayload.cpp"
class EspNowLightControlServer {
static LedManager *_leds;
static void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
LightControlPayload data;
memcpy(&data, incomingData, sizeof(data));
_leds->setLedProperties(data.id, data.on, data.brightness, data.timer);
}
EspNowLightControlServer();
public:
static bool init(LedManager *leds) {
_leds = leds;
WiFi.mode(WIFI_STA);
if (esp_now_init() != ESP_OK)
return false;
esp_now_register_recv_cb(OnDataRecv);
return true;
}
};
#endif