55 lines
1.0 KiB
C++
55 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include <Adafruit_NeoPixel.h>
|
|
|
|
class MyLed {
|
|
public:
|
|
MyLed(int ledPin, int ledCount, bool effects = false);
|
|
|
|
void initialize();
|
|
|
|
void setOnState(bool);
|
|
|
|
bool getOnState();
|
|
|
|
void toggle();
|
|
|
|
//! @param state Json package
|
|
//! {
|
|
//! "brightness": 255,
|
|
//! "color": {
|
|
//! "r": 255,
|
|
//! "g": 180,
|
|
//! "b": 200,
|
|
//! },
|
|
//! "state": "ON"
|
|
//! }
|
|
void set(String jsonState);
|
|
|
|
String get();
|
|
|
|
//! @param brightness in [0, 1]
|
|
void setBrightness(float brightness);
|
|
|
|
//! @param diff in [-1, 1]
|
|
void adjustBrightness(float diff);
|
|
|
|
void setColor(uint8_t r, uint8_t g, uint8_t b);
|
|
|
|
void run();
|
|
|
|
private:
|
|
void _apply();
|
|
|
|
bool _useEffects;
|
|
|
|
Adafruit_NeoPixel _strip;
|
|
|
|
float _brightness, _targetBrightness;
|
|
|
|
bool _isOn;
|
|
|
|
const std::array<float, 3> _defColor;
|
|
|
|
std::array<float, 3> _color;
|
|
}; |