#ifndef __Stairs #define __Stairs #include "components/PCA9685.h" #include "config.h" #include "mode.h" struct Range { uint16_t start; uint16_t end; }; class Stairs : public IStairs { private: PCA9685* pwmDriver; bool useScaling; Range ranges[16]; protected: void readRange(); void writeRange(); uint16_t getPWMValue(uint8_t step, uint16_t brightness); public: void init(PCA9685* pwmDriver); uint8_t getCount(); void set(uint8_t step, uint16_t brightness); void setAll(uint16_t brightness); void getRange(Stream* stream); void setRange(uint8_t* data); }; #endif