35 lines
713 B
C++
35 lines
713 B
C++
#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
|