11#ifndef IR_GOODWEATHER_H_
12#define IR_GOODWEATHER_H_
14#define __STDC_LIMIT_MACROS
22#include "IRsend_test.h"
102 explicit IRGoodweatherAc(
const uint16_t pin,
const bool inverted =
false,
103 const bool use_modulation =
true);
118 void setTemp(
const uint8_t temp);
120 void setFan(
const uint8_t speed);
121 uint8_t
getFan(
void)
const;
122 void setMode(
const uint8_t mode);
135 void setRaw(
const uint64_t state);
const uint16_t kGoodweatherMinRepeat
Definition IRremoteESP8266.h:1276
std::string String
Definition IRremoteESP8266.h:1564
Class for handling detailed Goodweather A/C messages.
Definition ir_Goodweather.h:100
bool getSleep(void) const
Get the Sleep Toggle setting of the A/C.
Definition ir_Goodweather.cpp:193
void on(void)
Change the power setting to On.
Definition ir_Goodweather.cpp:92
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Goodweather.cpp:122
void setRaw(const uint64_t state)
Set the internal state from a valid code for this protocol.
Definition ir_Goodweather.cpp:89
bool getTurbo(void) const
Get the Turbo Toggle setting of the A/C.
Definition ir_Goodweather.cpp:206
void setSleep(const bool toggle)
Set the Sleep Toggle setting of the A/C.
Definition ir_Goodweather.cpp:186
GoodweatherProtocol _
Definition ir_Goodweather.h:152
static uint8_t convertSwingV(const stdAc::swingv_t swingv)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Goodweather.cpp:274
void setLight(const bool toggle)
Set the Light (LED) Toggle setting of the A/C.
Definition ir_Goodweather.cpp:173
uint8_t getSwing(void) const
Get the Vertical Swing speed of the A/C.
Definition ir_Goodweather.cpp:227
void setSwing(const uint8_t speed)
Set the Vertical Swing speed of the A/C.
Definition ir_Goodweather.cpp:212
void setCommand(const uint8_t cmd)
Set the remote Command type/button pressed.
Definition ir_Goodweather.cpp:233
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Goodweather.cpp:144
void setTurbo(const bool toggle)
Set the Turbo Toggle setting of the A/C.
Definition ir_Goodweather.cpp:199
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Goodweather.cpp:167
uint64_t getRaw(void)
Get a copy of the internal state as a valid code for this protocol.
Definition ir_Goodweather.cpp:85
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Goodweather.h:111
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Goodweather.cpp:112
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Goodweather.cpp:150
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Goodweather.cpp:340
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Goodweather.cpp:289
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Goodweather.cpp:313
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Goodweather.cpp:73
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Goodweather.cpp:260
void send(const uint16_t repeat=kGoodweatherMinRepeat)
Send the current internal state as an IR message.
Definition ir_Goodweather.cpp:78
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Goodweather.cpp:106
uint8_t getCommand(void) const
Get the Command type/button pressed from the current settings.
Definition ir_Goodweather.cpp:240
void setPower(const bool on)
Change the power setting.
Definition ir_Goodweather.cpp:99
IRsend _irsend
Instance of the IR send class.
Definition ir_Goodweather.h:146
void off(void)
Change the power setting to Off.
Definition ir_Goodweather.cpp:95
bool getLight(void) const
Get the Light (LED) Toggle setting of the A/C.
Definition ir_Goodweather.cpp:180
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Goodweather.cpp:70
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Goodweather.cpp:247
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Goodweather.cpp:128
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Goodweather.cpp:302
Class for sending all basic IR protocols.
Definition IRsend.h:249
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:209
const uint8_t kGoodweatherHeat
Definition ir_Goodweather.h:68
const uint8_t kGoodweatherSwingFast
Definition ir_Goodweather.h:70
const uint8_t kGoodweatherAuto
Definition ir_Goodweather.h:64
const uint8_t kGoodweatherCmdPower
Definition ir_Goodweather.h:82
const uint8_t kGoodweatherCmdSleep
Definition ir_Goodweather.h:91
const uint16_t kGoodweatherZeroSpace
Definition ir_Goodweather.h:58
const uint8_t kGoodweatherCmdFan
Definition ir_Goodweather.h:87
const uint8_t kGoodweatherFanMed
Definition ir_Goodweather.h:76
const uint8_t kGoodweatherCmdUpTemp
Definition ir_Goodweather.h:84
const uint16_t kGoodweatherHdrMark
Definition ir_Goodweather.h:59
const uint64_t kGoodweatherStateInit
Definition ir_Goodweather.h:95
const uint8_t kGoodweatherCmdMode
Definition ir_Goodweather.h:83
const uint8_t kGoodweatherFanLow
Definition ir_Goodweather.h:77
const uint16_t kGoodweatherHdrSpace
Definition ir_Goodweather.h:60
const uint8_t kGoodweatherCmdDownTemp
Definition ir_Goodweather.h:85
const uint8_t kGoodweatherTempMin
Definition ir_Goodweather.h:79
const uint16_t kGoodweatherOneSpace
Definition ir_Goodweather.h:57
const uint8_t kGoodweatherCool
Definition ir_Goodweather.h:65
const uint8_t kGoodweatherFanAuto
Definition ir_Goodweather.h:74
const uint8_t kGoodweatherSwingOff
Definition ir_Goodweather.h:72
const uint8_t kGoodweatherCmdAirFlow
Definition ir_Goodweather.h:89
const uint8_t kGoodweatherExtraTolerance
Definition ir_Goodweather.h:61
const uint8_t kGoodweatherCmdSwing
Definition ir_Goodweather.h:86
const uint8_t kGoodweatherTempMax
Definition ir_Goodweather.h:80
const uint8_t kGoodweatherCmdHold
Definition ir_Goodweather.h:90
const uint8_t kGoodweatherDry
Definition ir_Goodweather.h:66
const uint16_t kGoodweatherBitMark
Definition ir_Goodweather.h:56
const uint8_t kGoodweatherSwingSlow
Definition ir_Goodweather.h:71
const uint8_t kGoodweatherCmdTimer
Definition ir_Goodweather.h:88
const uint8_t kGoodweatherFan
Definition ir_Goodweather.h:67
const uint8_t kGoodweatherCmdLight
Definition ir_Goodweather.h:93
const uint8_t kGoodweatherCmdTurbo
Definition ir_Goodweather.h:92
const uint8_t kGoodweatherFanHigh
Definition ir_Goodweather.h:75
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:61
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:49
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:74
Structure to hold a common A/C state.
Definition IRsend.h:114
Native representation of a Goodweather A/C message.
Definition ir_Goodweather.h:26
uint8_t Turbo
Definition ir_Goodweather.h:34
uint8_t Swing
Definition ir_Goodweather.h:42
uint8_t Mode
Definition ir_Goodweather.h:49
uint8_t Temp
Definition ir_Goodweather.h:47
uint8_t AirFlow
Definition ir_Goodweather.h:43
uint8_t Fan
Definition ir_Goodweather.h:44
uint8_t Light
Definition ir_Goodweather.h:32
uint8_t Sleep
Definition ir_Goodweather.h:40
uint8_t Power
Definition ir_Goodweather.h:41
uint8_t Command
Definition ir_Goodweather.h:37
uint64_t raw
The state of the IR remote in IR code form.
Definition ir_Goodweather.h:27