#ifndef EspNowLightControlServer_cpp #define EspNowLightControlServer_cpp #include #include #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