104 lines
1.8 KiB
C++
104 lines
1.8 KiB
C++
#ifndef LEDH
|
|
#define LEDH
|
|
|
|
#include "Arduino.h"
|
|
#include "vector"
|
|
#include "board.h"
|
|
|
|
enum e_ledcolor
|
|
{
|
|
YELLOW,
|
|
RED,
|
|
GREEN,
|
|
YELLOW2,
|
|
RED2,
|
|
GREEN2,
|
|
NONE
|
|
};
|
|
|
|
class c_ledport
|
|
{
|
|
const uint32_t _pin;
|
|
const uint32_t _analogPin;
|
|
const uint16_t _index;
|
|
const bool _invert;
|
|
bool _state;
|
|
|
|
public:
|
|
c_ledport(uint32_t pin, uint32_t analogpin, uint16_t index, bool invert = false)
|
|
: _pin(pin), _analogPin(analogpin), _index(index), _invert(invert){};
|
|
|
|
void begin(void);
|
|
|
|
void turnOn(void);
|
|
|
|
void turnOff(void);
|
|
|
|
void writeLed(bool state);
|
|
|
|
bool getLedState( void ) {return _state; }
|
|
|
|
uint16_t ledRead(void);
|
|
|
|
uint16_t getIndex(void) { return _index; }
|
|
};
|
|
|
|
class c_led
|
|
{
|
|
const e_ledcolor _color;
|
|
const uint16_t _value;
|
|
const uint16_t _index;
|
|
|
|
public:
|
|
c_led(e_ledcolor color, uint16_t value, uint16_t index)
|
|
: _color(color), _value(value), _index(index){};
|
|
|
|
bool checkThreshold(uint16_t value);
|
|
bool checkcolor(e_ledcolor color);
|
|
bool checkIndex(uint16_t index);
|
|
};
|
|
|
|
class c_leds
|
|
{
|
|
std::vector<c_ledport> v_ledports;
|
|
std::vector<c_led> v_leds;
|
|
|
|
public:
|
|
c_leds(){};
|
|
|
|
void init();
|
|
|
|
void AddLed(uint32_t pin, uint32_t analogpin, uint16_t index, uint16_t value, e_ledcolor color, bool invert);
|
|
void begin(void);
|
|
|
|
void turnOnLed(e_ledcolor color);
|
|
void turnOnLed(uint16_t index);
|
|
void turnOffLed(e_ledcolor color);
|
|
void turnOffLed(uint16_t index);
|
|
|
|
c_ledport *getLed(e_ledcolor color);
|
|
c_ledport *getLed(uint16_t index);
|
|
|
|
bool verifyLed(e_ledcolor color);
|
|
bool verifyLed(uint16_t index);
|
|
|
|
|
|
void turnAllOff(void);
|
|
void turnAllOn(void);
|
|
void setAllLeds(bool state);
|
|
};
|
|
|
|
c_leds *getledlist(void);
|
|
void initLeds(void);
|
|
|
|
void turnOnLed(e_ledcolor color);
|
|
void turnOffLed(e_ledcolor color);
|
|
void turnOffLed(uint16_t index);
|
|
void turnOnLed(uint16_t index);
|
|
void turnOffAllLed();
|
|
void turnOnAllLed();
|
|
|
|
|
|
#endif //LEDH
|
|
|