d1_mini_pro-sensor-mqtt/include/IRLight.h

71 lines
3.3 KiB
C
Raw Normal View History

#pragma once
2022-12-30 18:31:20 +03:00
#include <ESP8266WiFi.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <HALightColorTemperatureBrightness.hpp>
class IRLight: public HALightColorTemperatureBrightnessController {
private:
bool state;
2022-12-30 18:31:20 +03:00
short brightness;
byte color_temp;
2022-12-30 18:31:20 +03:00
IRsend *irsend;
2022-12-30 18:31:20 +03:00
const uint16_t RDOn[67] = {
9080,4270, 680,470, 680,420, 680,420, 680,470, 680,420, 680,420, 680,420, 730,1470, 730,1520, 680,1520, 730,1470, 730,1470, 730,1520, 680,1520, 730,1470, 730,420, 680,1520, 730,420, 680,420, 680,420, 730,420, 680,420, 680,420, 730,420, 680,420, 680,1520, 680,1520, 730,1470, 730,1470, 730,1520, 730,1470, 730,1470, 730};
2022-12-30 18:31:20 +03:00
const uint16_t RDOff[67] = {
9030,4320, 630,470, 680,420, 680,470, 630,470, 680,420, 680,470, 630,470, 680,1520, 680,1570, 630,1570, 630,1570, 680,1520, 680,1570, 630,1570, 680,1520, 680,470, 630,470, 680,1520, 680,370, 730,1570, 630,1570, 680,420, 680,470, 630,470, 680,1520, 680,470, 630,1570, 680,420, 680,470, 630,1570, 680,1520, 680,1570, 630};
const uint16_t RDButtonCenter[67] = {
2022-12-30 18:31:20 +03:00
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);
2022-12-30 18:31:20 +03:00
void setState(bool state);
bool getState();
void on();
void off();
2022-12-30 18:31:20 +03:00
void setBrightness(int brightness);
int getBrightness();
void setColorTemperature(int color);
int getColorTemperature();
2022-12-30 18:31:20 +03:00
void brightnessUp();
void brightnessDown();
int getBrightnessScale();
void begin();
~IRLight();
};