/// © MiroZ 2024 #ifndef __LED_H__ #define __LED_H__ #include #include #include "TaskFactory.h" class Led { struct LED_QUEUE { uint8_t program; uint8_t r; uint8_t g; uint8_t b; }; public: enum PROGRAM{ STEADY, PULSATING }; protected: Adafruit_NeoPixel *m_strip; TaskHandle_t m_task = nullptr; QueueHandle_t m_queue = nullptr; uint8_t m_brightness = 100; uint8_t scale(uint8_t val){ return (uint8_t)((int)val*m_brightness/100); } protected: void run(); void steady(uint8_t r, uint8_t g, uint8_t b, uint8_t delay); public: Led(uint32_t led_pin); virtual ~Led(); public: void setBrightness(uint8_t brightness); void setColor(uint8_t r, uint8_t g, uint8_t b); void setPulse(uint8_t r, uint8_t g, uint8_t b); }; #endif /* __LED_H__ */