2020-06-09 13:35:30 +02:00

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;
};