Go to the documentation of this file.
21 #ifndef IR_WHIRLPOOL_H_
22 #define IR_WHIRLPOOL_H_
24 #define __STDC_LIMIT_MACROS
32 #include "IRsend_test.h"
134 explicit IRWhirlpoolAc(
const uint16_t pin,
const bool inverted =
false,
135 const bool use_modulation =
true);
137 #if SEND_WHIRLPOOL_AC
139 const bool calcchecksum =
true);
145 #endif // SEND_WHIRLPOOL_AC
153 void setTemp(
const uint8_t temp);
155 void setFan(
const uint8_t speed);
156 uint8_t
getFan(
void)
const;
157 void setMode(
const uint8_t mode);
164 void setClock(
const uint16_t minspastmidnight);
166 void setOnTimer(
const uint16_t minspastmidnight);
177 uint8_t*
getRaw(
const bool calcchecksum =
true);
178 void setRaw(
const uint8_t new_code[],
200 void _setTemp(
const uint8_t temp,
const bool remember =
true);
205 #endif // IR_WHIRLPOOL_H_
uint16_t getClock(void) const
Get the clock time in nr. of minutes past midnight.
Definition: ir_Whirlpool.cpp:314
void send(const uint16_t repeat=kWhirlpoolAcDefaultRepeat, const bool calcchecksum=true)
Send the current internal state as an IR message.
Definition: ir_Whirlpool.cpp:142
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Whirlpool.cpp:94
uint8_t raw[kWhirlpoolAcStateLength]
The state in IR code form.
Definition: ir_Whirlpool.h:37
bool getSwing(void) const
Get the (vertical) swing setting of the A/C.
Definition: ir_Whirlpool.cpp:289
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Whirlpool.cpp:275
uint8_t Swing1
Definition: ir_Whirlpool.h:46
const uint8_t kWhirlpoolAcCommandSuper
Definition: ir_Whirlpool.h:121
uint8_t Swing2
Definition: ir_Whirlpool.h:69
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Whirlpool.h:144
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Whirlpool.cpp:441
uint8_t getCommand(void) const
Get the Command (Button) setting of the A/C.
Definition: ir_Whirlpool.cpp:384
void _setTemp(const uint8_t temp, const bool remember=true)
Set the temperature.
Definition: ir_Whirlpool.cpp:200
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Whirlpool.cpp:254
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:211
const uint8_t kWhirlpoolAcAutoTemp
Definition: ir_Whirlpool.h:116
uint8_t OnMins
Definition: ir_Whirlpool.h:79
const uint8_t kWhirlpoolAcFanHigh
Definition: ir_Whirlpool.h:111
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Whirlpool.cpp:495
const uint8_t kWhirlpoolAcMaxTemp
Definition: ir_Whirlpool.h:115
const uint8_t kWhirlpoolAcAuto
Definition: ir_Whirlpool.h:106
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Whirlpool.cpp:456
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Whirlpool.cpp:483
uint16_t getOffTimer(void) const
Get the Off Timer time..
Definition: ir_Whirlpool.cpp:326
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Whirlpool.cpp:398
IRWhirlpoolAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Whirlpool.cpp:89
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Whirlpool.cpp:530
const uint8_t kWhirlpoolAcCommandOnTimer
Definition: ir_Whirlpool.h:122
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_Whirlpool.cpp:210
const uint8_t kWhirlpoolAcCommandIFeel
Definition: ir_Whirlpool.h:125
whirlpool_ac_remote_model_t getModel(void) const
Get/Detect the model of the A/C.
Definition: ir_Whirlpool.cpp:165
void setClock(const uint16_t minspastmidnight)
Set the clock time in nr. of minutes past midnight.
Definition: ir_Whirlpool.cpp:308
int8_t getTempOffset(void) const
Calculate the temp. offset in deg C for the current model.
Definition: ir_Whirlpool.cpp:189
Class for sending all basic IR protocols.
Definition: IRsend.h:237
uint8_t Super1
Definition: ir_Whirlpool.h:55
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 kWhirlpoolAcChecksumByte1
Definition: ir_Whirlpool.h:103
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
std::string String
Definition: IRremoteESP8266.h:1521
const uint8_t kWhirlpoolAcCommandMode
Definition: ir_Whirlpool.h:123
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Whirlpool.cpp:218
bool isOffTimerEnabled(void) const
Is the Off timer enabled?
Definition: ir_Whirlpool.cpp:332
uint8_t pad1[2]
Definition: ir_Whirlpool.h:90
const uint8_t kWhirlpoolAcCool
Definition: ir_Whirlpool.h:107
const uint8_t kWhirlpoolAcCommandOffTimer
Definition: ir_Whirlpool.h:128
bool getPowerToggle(void) const
Get the value of the current power toggle setting.
Definition: ir_Whirlpool.cpp:378
const uint8_t kWhirlpoolAcCommandSwing
Definition: ir_Whirlpool.h:124
uint8_t OffHours
Definition: ir_Whirlpool.h:67
Native representation of a Whirlpool A/C message.
Definition: ir_Whirlpool.h:36
WhirlpoolProtocol _
Definition: ir_Whirlpool.h:197
static bool validChecksum(const uint8_t state[], const uint16_t length=kWhirlpoolAcStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Whirlpool.cpp:109
const uint8_t kWhirlpoolAcFanMedium
Definition: ir_Whirlpool.h:112
const uint8_t kWhirlpoolAcDry
Definition: ir_Whirlpool.h:108
void setPowerToggle(const bool on)
Change the power toggle setting.
Definition: ir_Whirlpool.cpp:370
void setOffTimer(const uint16_t minspastmidnight)
Set the Off Timer time.
Definition: ir_Whirlpool.cpp:320
uint8_t Sleep
Definition: ir_Whirlpool.h:44
const uint8_t kWhirlpoolAcCommandLight
Definition: ir_Whirlpool.h:117
void _setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Whirlpool.cpp:225
uint8_t ClockMins
Definition: ir_Whirlpool.h:63
const uint8_t kWhirlpoolAcFanLow
Definition: ir_Whirlpool.h:113
const uint16_t kWhirlpoolAcDefaultRepeat
Definition: IRremoteESP8266.h:1418
void setModel(const whirlpool_ac_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_Whirlpool.cpp:174
void setSuper(const bool on)
Set the Super (Turbo/Jet) setting of the A/C.
Definition: ir_Whirlpool.cpp:404
uint8_t Power
Definition: ir_Whirlpool.h:43
const uint8_t kWhirlpoolAcChecksumByte2
Definition: ir_Whirlpool.h:104
const uint8_t kWhirlpoolAcFan
Definition: ir_Whirlpool.h:109
uint8_t OffMins
Definition: ir_Whirlpool.h:72
const uint8_t kWhirlpoolAcCommandFanSpeed
Definition: ir_Whirlpool.h:126
void setCommand(const uint8_t code)
Set the Command (Button) setting of the A/C.
Definition: ir_Whirlpool.cpp:434
const uint16_t kWhirlpoolAcStateLength
Definition: IRremoteESP8266.h:1416
uint8_t Cmd
Definition: ir_Whirlpool.h:88
void setRaw(const uint8_t new_code[], const uint16_t length=kWhirlpoolAcStateLength)
Set the internal state from a valid code for this protocol.
Definition: ir_Whirlpool.cpp:159
const uint8_t kWhirlpoolAcMinTemp
Definition: ir_Whirlpool.h:114
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Whirlpool.cpp:390
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Whirlpool.cpp:247
uint8_t OnTimerEnabled
Definition: ir_Whirlpool.h:74
const uint8_t kWhirlpoolAcHeat
Definition: ir_Whirlpool.h:105
void checksum(const uint16_t length=kWhirlpoolAcStateLength)
Calculate & set the checksum for the current internal state of the remote.
Definition: ir_Whirlpool.cpp:130
bool isOnTimerEnabled(void) const
Is the On timer enabled?
Definition: ir_Whirlpool.cpp:357
void enableOffTimer(const bool on)
Enable the Off Timer.
Definition: ir_Whirlpool.cpp:338
const uint8_t kWhirlpoolAcCommandPower
Definition: ir_Whirlpool.h:118
void enableOnTimer(const bool on)
Enable the On Timer.
Definition: ir_Whirlpool.cpp:363
IRsend _irsend
Instance of the IR send class.
Definition: ir_Whirlpool.h:191
void setOnTimer(const uint16_t minspastmidnight)
Set the On Timer time.
Definition: ir_Whirlpool.cpp:345
uint8_t _desiredtemp
The last user explicitly set temperature.
Definition: ir_Whirlpool.h:198
uint8_t LightOff
Definition: ir_Whirlpool.h:60
uint8_t OnHours
Definition: ir_Whirlpool.h:76
uint8_t Fan
Definition: ir_Whirlpool.h:42
uint8_t OffTimerEnabled
Definition: ir_Whirlpool.h:65
const uint8_t kWhirlpoolAcCommandTemp
Definition: ir_Whirlpool.h:119
uint8_t Super2
Definition: ir_Whirlpool.h:57
const uint8_t kWhirlpoolAcCommand6thSense
Definition: ir_Whirlpool.h:127
const uint8_t kWhirlpoolAcCommandSleep
Definition: ir_Whirlpool.h:120
uint8_t Sum1
Definition: ir_Whirlpool.h:84
uint8_t Sum2
Definition: ir_Whirlpool.h:98
uint8_t J191
Definition: ir_Whirlpool.h:93
uint8_t ClockHours
Definition: ir_Whirlpool.h:59
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Whirlpool.cpp:103
bool getLight(void) const
Get the Light (Display/LED) setting of the A/C.
Definition: ir_Whirlpool.cpp:302
uint8_t pad0[2]
Definition: ir_Whirlpool.h:40
uint16_t getOnTimer(void) const
Get the On Timer time..
Definition: ir_Whirlpool.cpp:351
Structure to hold a common A/C state.
Definition: IRsend.h:114
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Whirlpool.cpp:260
void setLight(const bool on)
Set the Light (Display/LED) setting of the A/C.
Definition: ir_Whirlpool.cpp:295
uint8_t Mode
Definition: ir_Whirlpool.h:48
void setSwing(const bool on)
Set the (vertical) swing setting of the A/C.
Definition: ir_Whirlpool.cpp:281
uint8_t Temp
Definition: ir_Whirlpool.h:50
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Whirlpool.cpp:470
bool getSuper(void) const
Get the Super (Turbo/Jet) setting of the A/C.
Definition: ir_Whirlpool.cpp:428
const uint8_t kWhirlpoolAcFanAuto
Definition: ir_Whirlpool.h:110
uint8_t * getRaw(const bool calcchecksum=true)
Get a copy of the internal state/code for this protocol.
Definition: ir_Whirlpool.cpp:151
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49