Go to the documentation of this file.
24 #define __STDC_LIMIT_MACROS
32 #include "IRsend_test.h"
114 explicit IRCoolixAC(
const uint16_t pin,
const bool inverted =
false,
115 const bool use_modulation =
true);
124 #endif // SEND_COOLIX
130 void setTemp(
const uint8_t temp);
135 void setFan(
const uint8_t speed,
const bool modecheck =
true);
136 uint8_t
getFan(
void)
const;
137 void setMode(
const uint8_t mode);
152 uint32_t
getRaw(
void)
const;
153 void setRaw(
const uint32_t new_code);
192 #endif // IR_COOLIX_H_
bool getSwing(void) const
Get the Swing setting of the A/C.
Definition: ir_Coolix.cpp:280
const uint8_t kCoolixFanZoneFollow
Definition: ir_Coolix.h:50
bool getClean(void) const
Get the Clean setting of the A/C.
Definition: ir_Coolix.cpp:332
uint32_t getNormalState(void)
uint8_t savedFan
Definition: ir_Coolix.h:179
void setTempRaw(const uint8_t code)
Set the raw (native) temperature value.
Definition: ir_Coolix.cpp:213
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Coolix.cpp:400
void setSensorTempRaw(const uint8_t code)
Set the raw (native) sensor temperature value.
Definition: ir_Coolix.cpp:240
const uint8_t kCoolixFanMin
Definition: ir_Coolix.h:45
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Coolix.h:123
void setZoneFollow(const bool on)
Change the Zone Follow setting.
Definition: ir_Coolix.cpp:349
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Coolix.cpp:363
const uint32_t kCoolixSwingH
Definition: ir_Coolix.h:79
uint32_t getRaw(void) const
Get a copy of the internal state as a valid code for this protocol.
Definition: ir_Coolix.cpp:124
void send(const uint16_t repeat=kCoolixDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Coolix.cpp:109
void clearSensorTemp(void)
Clear the Sensor Temperature setting..
Definition: ir_Coolix.cpp:356
void on(void)
Change the power setting to On.
Definition: ir_Coolix.cpp:273
const uint8_t kCoolixFanAuto0
Definition: ir_Coolix.h:49
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
const uint8_t kCoolixDry
Definition: ir_Coolix.h:38
bool getLed(void) const
Get the Led (light) setting of the A/C.
Definition: ir_Coolix.cpp:321
bool getTurbo(void) const
Get the Turbo setting of the A/C.
Definition: ir_Coolix.cpp:310
const uint8_t kCoolixFanMed
Definition: ir_Coolix.h:46
IRsend _irsend
Instance of the IR send class.
Definition: ir_Coolix.h:163
bool turboFlag
Definition: ir_Coolix.h:174
bool ledFlag
Definition: ir_Coolix.h:175
const uint32_t kCoolixSwing
Definition: ir_Coolix.h:78
void setLed(void)
Toggle the Led (light) mode of the A/C.
Definition: ir_Coolix.cpp:324
const uint8_t kCoolixCool
Definition: ir_Coolix.h:37
const uint8_t kCoolixAuto
Definition: ir_Coolix.h:39
Class for sending all basic IR protocols.
Definition: IRsend.h:187
bool cleanFlag
Definition: ir_Coolix.h:176
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Coolix.cpp:485
Native representation of a Coolix A/C message.
Definition: ir_Coolix.h:90
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
const uint8_t kCoolixHeat
Definition: ir_Coolix.h:40
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a standard A/C mode into its native mode.
Definition: ir_Coolix.cpp:445
const uint32_t kCoolixOff
Definition: ir_Coolix.h:77
std::string String
Definition: IRremoteESP8266.h:1199
void recoverSavedState(void)
Restore the current internal state from backup as long as it isn't a special state.
Definition: ir_Coolix.cpp:202
const uint8_t kCoolixFanTempCode
Definition: ir_Coolix.h:56
void setSensorTemp(const uint8_t temp)
Set the sensor temperature.
Definition: ir_Coolix.cpp:246
void setTurbo(void)
Toggle the Turbo mode of the A/C.
Definition: ir_Coolix.cpp:313
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Coolix.cpp:230
void off(void)
Change the power setting to Off.
Definition: ir_Coolix.cpp:276
uint32_t Fan
Fan speed.
Definition: ir_Coolix.h:100
const uint8_t kCoolixTempMap[kCoolixTempRange]
Definition: ir_Coolix.h:57
const uint32_t kCoolixClean
Definition: ir_Coolix.h:84
CoolixProtocol _
The state of the IR remote in IR code form.
Definition: ir_Coolix.h:169
const uint8_t kCoolixFanFixed
Definition: ir_Coolix.h:51
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Coolix.cpp:91
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Coolix.cpp:300
const uint32_t kCoolixDefaultState
Definition: ir_Coolix.h:87
uint32_t SensorTemp
The temperature sensor in the IR remote.
Definition: ir_Coolix.h:99
const uint16_t kCoolixDefaultRepeat
Definition: IRremoteESP8266.h:906
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Coolix.cpp:458
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode to it's common stdAc::opmode_t equivalent.
Definition: ir_Coolix.cpp:472
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_Coolix.cpp:221
void setSwingVStep(void)
Set the Vertical Swing Step setting of the A/C.
Definition: ir_Coolix.cpp:294
uint8_t getSensorTemp(void) const
Get the sensor temperature setting.
Definition: ir_Coolix.cpp:253
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:112
uint8_t getTempRaw(void) const
Get the raw (native) temperature value.
Definition: ir_Coolix.cpp:217
bool getZoneFollow(void) const
Get the Zone Follow setting of the A/C.
Definition: ir_Coolix.cpp:342
CoolixProtocol _saved
Copy of the state if we required a special mode.
Definition: ir_Coolix.h:170
void setClean(void)
Toggle the Clean mode of the A/C.
Definition: ir_Coolix.cpp:335
const uint32_t kCoolixLed
Definition: ir_Coolix.h:83
void setSwing(void)
Toggle the Swing mode of the A/C.
Definition: ir_Coolix.cpp:283
void setRaw(const uint32_t new_code)
Set the internal state from a valid code for this protocol.
Definition: ir_Coolix.cpp:128
uint32_t Mode
Operation mode.
Definition: ir_Coolix.h:96
const uint32_t kCoolixCmdFan
Definition: ir_Coolix.h:85
uint32_t raw
The state in IR code form.
Definition: ir_Coolix.h:91
const uint8_t kCoolixTempMax
Definition: ir_Coolix.h:54
bool swingFlag
Definition: ir_Coolix.h:178
const uint8_t kCoolixFan
Definition: ir_Coolix.h:41
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Coolix.cpp:104
const uint32_t kCoolixSwingV
Definition: ir_Coolix.h:80
void updateAndSaveState(const uint32_t raw_state)
Backup the current internal state as long as it isn't a special state and set the new state.
Definition: ir_Coolix.cpp:195
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Coolix.cpp:391
bool sleepFlag
Definition: ir_Coolix.h:177
const uint32_t kCoolixSleep
Definition: ir_Coolix.h:81
uint32_t ZoneFollow2
Additional control bit for Zone Follow mode.
Definition: ir_Coolix.h:103
IRCoolixAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Coolix.cpp:86
bool isSpecialState(void) const
Is the current state is a special state?
Definition: ir_Coolix.cpp:144
const uint8_t kCoolixTempRange
Definition: ir_Coolix.h:55
const uint8_t kCoolixTempMin
Definition: ir_Coolix.h:53
void setSleep(void)
Toggle the Sleep mode of the A/C.
Definition: ir_Coolix.cpp:303
const uint8_t kCoolixSensorTempMax
Definition: ir_Coolix.h:73
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the A/C state to it's common stdAc::state_t equivalent.
Definition: ir_Coolix.cpp:497
const uint8_t kCoolixFanMax
Definition: ir_Coolix.h:47
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Coolix.cpp:258
const uint8_t kCoolixFanAuto
Definition: ir_Coolix.h:48
bool powerFlag
Definition: ir_Coolix.h:173
uint32_t Temp
Desired temperature (Celsius)
Definition: ir_Coolix.h:97
String toString(void) const
Convert the internal state into a human readable string.
Definition: ir_Coolix.cpp:556
uint32_t ZoneFollow1
Control bit for Zone Follow mode.
Definition: ir_Coolix.h:95
bool getSwingVStep(void) const
Get the Vertical Swing Step setting of the A/C.
Definition: ir_Coolix.cpp:291
void setFan(const uint8_t speed, const bool modecheck=true)
Set the speed of the fan.
Definition: ir_Coolix.cpp:405
bool handleSpecialState(const uint32_t data)
Adjust any internal settings based on the type of special state we are supplied. Does nothing if it i...
Definition: ir_Coolix.cpp:164
Structure to hold a common A/C state.
Definition: IRsend.h:97
const uint8_t kCoolixSensorTempIgnoreCode
Definition: ir_Coolix.h:74
void setPower(const bool on)
Change the power setting.
Definition: ir_Coolix.cpp:262
const uint32_t kCoolixTurbo
Definition: ir_Coolix.h:82
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46