Stairs/src/stairs.h

41 lines
631 B
C++

#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