81 lines
3.5 KiB
C++
81 lines
3.5 KiB
C++
#pragma once
|
|
|
|
#include <ESP8266WiFi.h>
|
|
#include <IRremoteESP8266.h>
|
|
#include <IRsend.h>
|
|
#include <HALightColorTemperatureBrightness.hpp>
|
|
|
|
class IRLight: public HALightColorTemperatureBrightnessController {
|
|
private:
|
|
bool state;
|
|
short brightness;
|
|
byte color_temp;
|
|
|
|
IRsend *irsend;
|
|
|
|
const uint16_t RDOn[67] = {
|
|
8980, 4420, 580, 520, 630, 470, 630, 520, 580, 520, 630, 470,
|
|
630, 520, 580, 520, 630, 1570, 630, 1620, 580, 1620, 630, 1620,
|
|
580, 1570, 680, 1570, 630, 1570, 630, 1570, 630, 520, 630, 1570,
|
|
630, 470, 630, 520, 630, 470, 630, 470, 630, 470, 680, 470,
|
|
630, 470, 630, 520, 630, 1570, 630, 1570, 630, 1620, 630, 1570,
|
|
630, 1570, 630, 1570, 680, 1570, 630};
|
|
|
|
const uint16_t RDOff[67] = {
|
|
8980, 4370, 680, 420, 730, 420, 680, 420, 680, 420, 730, 420,
|
|
680, 420, 680, 420, 730, 1470, 730, 1520, 680, 1520, 730, 1470,
|
|
730, 1470, 730, 1520, 680, 1520, 730, 1470, 730, 420, 680, 470,
|
|
680, 1470, 730, 420, 680, 1520, 730, 1470, 730, 420, 680, 420,
|
|
680, 470, 580, 1620, 630, 470, 630, 1570, 630, 520, 580, 520,
|
|
630, 1570, 680, 1520, 730, 1520, 680};
|
|
|
|
const uint16_t RDButtonCenter[67] = {
|
|
9030, 4320, 680, 470, 630, 470, 680, 420, 680, 470, 630, 470,
|
|
680, 420, 680, 470, 630, 1570, 680, 1520, 680, 1520, 680, 1520,
|
|
730, 1520, 680, 1520, 680, 1520, 680, 1570, 680, 420, 680, 1520,
|
|
680, 470, 680, 1520, 680, 470, 630, 470, 680, 420, 680, 470,
|
|
630, 470, 630, 470, 680, 1520, 680, 470, 680, 1520, 630, 1570,
|
|
680, 1520, 680, 1570, 680, 1520, 680};
|
|
|
|
const uint16_t RDBrightnessUp[67] = {
|
|
9080,4270, 730,420, 680,420, 680,420, 730,420, 680,420, 680,420, 730,420,
|
|
680,1520, 680,1520, 730,1470, 730,1470, 730,1520, 680,1520, 730,1470,
|
|
730,1520, 680,420, 680,470, 580,1620, 580,520, 630,520, 580,1620, 580,520,
|
|
630,520, 580,520, 630,1570, 580,570, 580,1570, 630,1620, 630,520, 580,1570,
|
|
730,1520, 680,1520, 730};
|
|
|
|
const uint16_t RDBrightnessDown[67] = {
|
|
9030, 4320, 630, 520, 630, 470, 630, 470, 630, 520, 630, 470,
|
|
630, 470, 630, 520, 630, 1570, 630, 1570, 630, 1620, 630, 1570,
|
|
630, 1570, 630, 1620, 630, 1570, 630, 1570, 630, 470, 680, 470,
|
|
630, 1570, 630, 1570, 680, 1570, 630, 1570, 630, 470, 680, 470,
|
|
630, 470, 630, 1570, 680, 470, 630, 470, 630, 470, 680, 470,
|
|
630, 1570, 630, 1570, 680, 1570, 630};
|
|
|
|
const uint16_t RDButtonA[67] = {8980,4370, 630,470, 680,470, 630,470, 630,470, 630,520, 630,470, 630,470, 630,1620, 630,1570, 630,1620, 580,1570, 630,1620, 630,1570, 630,1570, 630,1570, 680,470, 630,1570, 630,1570, 630,1620, 630,470, 630,470, 630,470, 680,470, 630,470, 630,470, 680,470, 630,470, 630,1570, 630,1620, 630,1570, 630,1570, 630,1570, 630};
|
|
|
|
const uint16_t RDButtonB[67] = {9030,4320, 630,520, 580,520, 630,470, 630,470, 680,470, 580,520, 630,470, 680,1570, 630,1570, 630,1570, 630,1570, 630,1620, 580,1620, 630,1570, 630,1620, 580,520, 580,520, 630,470, 680,470, 630,1570, 630,470, 630,520, 580,520, 630,470, 630,1620, 630,1570, 630,1570, 630,470, 680,1570, 630,1570, 630,1570, 630,1570, 680};
|
|
|
|
public:
|
|
explicit IRLight(int pin);
|
|
explicit IRLight(IRsend *irsend);
|
|
|
|
void setState(bool state);
|
|
bool getState();
|
|
void on();
|
|
void off();
|
|
|
|
void setBrightness(int brightness);
|
|
int getBrightness();
|
|
|
|
void setColorTemperature(int color);
|
|
int getColorTemperature();
|
|
|
|
void brightnessUp();
|
|
void brightnessDown();
|
|
int getBrightnessScale();
|
|
|
|
void begin();
|
|
|
|
~IRLight();
|
|
}; |