Go to the documentation of this file.
20 #ifndef IR_KELVINATOR_H_
21 #define IR_KELVINATOR_H_
23 #define __STDC_LIMIT_MACROS
31 #include "IRsend_test.h"
107 #define KELVINATOR_MIN_TEMP kKelvinatorMinTemp
108 #define KELVINATOR_MAX_TEMP kKelvinatorMaxTemp
109 #define KELVINATOR_HEAT kKelvinatorHeat
110 #define KELVINATOR_FAN_MAX kKelvinatorFanMax
111 #define KELVINATOR_FAN_AUTO kKelvinatorFanAuto
112 #define KELVINATOR_FAN kKelvinatorFan
113 #define KELVINATOR_DRY kKelvinatorDry
114 #define KELVINATOR_COOL kKelvinatorCool
115 #define KELVINATOR_BASIC_FAN_MAX kKelvinatorBasicFanMax
116 #define KELVINATOR_AUTO_TEMP kKelvinatorAutoTemp
117 #define KELVINATOR_AUTO kKelvinatorAuto
123 explicit IRKelvinatorAC(
const uint16_t pin,
const bool inverted =
false,
124 const bool use_modulation =
true);
133 #endif // SEND_KELVINATOR
139 void setTemp(
const uint8_t degrees);
141 void setFan(
const uint8_t speed);
142 uint8_t
getFan(
void)
const;
143 void setMode(
const uint8_t mode);
160 void setRaw(
const uint8_t new_code[]);
184 #endif // IR_KELVINATOR_H_
void setSwingHorizontal(const bool on)
Control the current horizontal swing setting.
Definition: ir_Kelvinator.cpp:292
void stateReset(void)
Reset the internals of the object to a known good state.
Definition: ir_Kelvinator.cpp:114
void setTurbo(const bool on)
Control the current Turbo setting.
Definition: ir_Kelvinator.cpp:358
const uint8_t kKelvinatorFanAuto
Definition: ir_Kelvinator.h:99
void on(void)
Set the internal state to have the power on.
Definition: ir_Kelvinator.cpp:196
const uint8_t kKelvinatorFanMax
Definition: ir_Kelvinator.h:101
const uint8_t kKelvinatorCool
Definition: ir_Kelvinator.h:94
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
void setLight(const bool on)
Control the current Light setting. i.e. The LED display on the A/C unit that shows the basic settings...
Definition: ir_Kelvinator.cpp:330
uint8_t IonFilter
Definition: ir_Kelvinator.h:51
uint8_t SwingV
Definition: ir_Kelvinator.h:59
uint8_t pad0[2]
Definition: ir_Kelvinator.h:64
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed to it's stdAc::fanspeed_t equivalent.
Definition: ir_Kelvinator.cpp:397
const uint8_t kKelvinatorAutoTemp
Definition: ir_Kelvinator.h:104
uint8_t VentSwing
Definition: ir_Kelvinator.h:42
uint8_t * getRaw(void)
Get the raw state of the object, suitable to be sent with the appropriate IRsend object method.
Definition: ir_Kelvinator.cpp:146
bool getLight(void) const
Is the Light (Display) setting on?
Definition: ir_Kelvinator.cpp:336
uint8_t XFan
Definition: ir_Kelvinator.h:52
void setIonFilter(const bool on)
Control the current Ion Filter setting.
Definition: ir_Kelvinator.cpp:317
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Kelvinator.cpp:223
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Kelvinator.cpp:229
Class for sending all basic IR protocols.
Definition: IRsend.h:182
const uint8_t kKelvinatorMinTemp
Definition: ir_Kelvinator.h:102
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Kelvinator.h:132
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
std::string String
Definition: IRremoteESP8266.h:1178
bool getSwingHorizontal(void) const
Is the horizontal swing setting on?
Definition: ir_Kelvinator.cpp:299
void setPower(const bool on)
Set the internal state to have the desired power.
Definition: ir_Kelvinator.cpp:203
void setMode(const uint8_t mode)
Set the desired operation mode.
Definition: ir_Kelvinator.cpp:257
void send(const uint16_t repeat=kKelvinatorDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Kelvinator.cpp:138
void setRaw(const uint8_t new_code[])
Set the raw state of the object.
Definition: ir_Kelvinator.cpp:153
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Kelvinator.cpp:121
static uint8_t calcBlockChecksum(const uint8_t *block, const uint16_t length=kKelvinatorStateLength/2)
Calculate the checksum for a given block of state.
Definition: ir_Kelvinator.cpp:162
uint8_t Power
Definition: ir_Kelvinator.h:40
IRsend _irsend
Instance of the IR send class.
Definition: ir_Kelvinator.h:173
uint8_t Light
Definition: ir_Kelvinator.h:50
uint8_t raw[kKelvinatorStateLength]
The state in IR code form.
Definition: ir_Kelvinator.h:36
bool getPower(void) const
Get the power setting from the internal state.
Definition: ir_Kelvinator.cpp:209
static bool validChecksum(const uint8_t state[], const uint16_t length=kKelvinatorStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Kelvinator.cpp:184
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:121
const uint8_t kKelvinatorMaxTemp
Definition: ir_Kelvinator.h:103
bool getSwingVertical(void) const
Is the vertical swing setting on?
Definition: ir_Kelvinator.cpp:286
uint8_t Mode
Definition: ir_Kelvinator.h:39
uint8_t Sum1
Definition: ir_Kelvinator.h:67
void checksum(void)
Calculate the checksum for the internal state.
Definition: ir_Kelvinator.cpp:175
void fixup(void)
Fix up any odd conditions for the current state.
Definition: ir_Kelvinator.cpp:124
uint8_t pad1[3]
Definition: ir_Kelvinator.h:71
const uint16_t kKelvinatorStateLength
Definition: IRremoteESP8266.h:979
stdAc::state_t toCommon(void) const
Convert the internal A/C object state to it's stdAc::state_t equivalent.
Definition: ir_Kelvinator.cpp:403
void setQuiet(const bool on)
Control the current Quiet setting.
Definition: ir_Kelvinator.cpp:305
void setXFan(const bool on)
Control the current XFan setting. This setting will cause the unit blow air after power off to dry ou...
Definition: ir_Kelvinator.cpp:345
uint8_t SwingH
Definition: ir_Kelvinator.h:61
const uint8_t kKelvinatorFan
Definition: ir_Kelvinator.h:96
String toString(void) const
Convert the internal settings into a human readable string.
Definition: ir_Kelvinator.cpp:429
void setTemp(const uint8_t degrees)
Set the temperature setting.
Definition: ir_Kelvinator.cpp:215
uint8_t Sum2
Definition: ir_Kelvinator.h:88
const uint8_t kKelvinatorBasicFanMax
Definition: ir_Kelvinator.h:98
const uint8_t kKelvinatorFanMin
Definition: ir_Kelvinator.h:100
bool getTurbo(void) const
Is the Turbo setting on?
Definition: ir_Kelvinator.cpp:364
KelvinatorProtocol _
Definition: ir_Kelvinator.h:179
uint8_t getMode(void) const
Get the current operation mode setting.
Definition: ir_Kelvinator.cpp:251
uint8_t BasicFan
Definition: ir_Kelvinator.h:41
const uint8_t kKelvinatorHeat
Definition: ir_Kelvinator.h:97
bool getQuiet(void) const
Is the Quiet setting on?
Definition: ir_Kelvinator.cpp:311
IRKelvinatorAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Kelvinator.cpp:109
void off(void)
Set the internal state to have the power off.
Definition: ir_Kelvinator.cpp:199
const uint16_t kKelvinatorDefaultRepeat
Definition: IRremoteESP8266.h:981
void setSwingVertical(const bool on)
Control the current vertical swing setting.
Definition: ir_Kelvinator.cpp:279
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Kelvinator.cpp:245
const uint8_t kKelvinatorDry
Definition: ir_Kelvinator.h:95
uint8_t Quiet
Definition: ir_Kelvinator.h:80
bool getXFan(void) const
Is the XFan setting on?
Definition: ir_Kelvinator.cpp:351
Native representation of a Kelvinator A/C message.
Definition: ir_Kelvinator.h:35
bool getIonFilter(void) const
Is the Ion Filter setting on?
Definition: ir_Kelvinator.cpp:323
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode to it's stdAc::opmode_t equivalent.
Definition: ir_Kelvinator.cpp:384
Structure to hold a common A/C state.
Definition: IRsend.h:97
uint8_t Turbo
Definition: ir_Kelvinator.h:49
uint8_t Temp
Definition: ir_Kelvinator.h:45
uint8_t Fan
Definition: ir_Kelvinator.h:85
const uint8_t kKelvinatorAuto
Definition: ir_Kelvinator.h:93
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a standard A/C mode (stdAc::opmode_t) into it a native mode.
Definition: ir_Kelvinator.cpp:371
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46