12#define __STDC_LIMIT_MACROS
20#include "IRsend_test.h"
154 explicit IREuromAc(
const uint16_t pin,
const bool inverted =
false,
155 const bool use_modulation =
true);
175 void setRaw(
const uint8_t state[]);
184 void setMode(
const uint8_t mode);
187 void setTemp(
const uint8_t degrees,
const bool fahrenheit =
false);
191 void setFan(
const uint8_t speed);
192 uint8_t
getFan(
void)
const;
const uint16_t kNoRepeat
Definition IRremoteESP8266.h:1172
const uint16_t kEuromStateLength
Definition IRremoteESP8266.h:1468
std::string String
Definition IRremoteESP8266.h:1564
Class for handling detailed Eurom A/C messages.
Definition ir_Eurom.h:152
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Eurom.cpp:144
bool getSwing(void) const
Get the current swing setting from the internal state.
Definition ir_Eurom.cpp:308
bool getTempIsFahrenheit(void) const
Check if Fahrenheit is currently being used by the internal state.
Definition ir_Eurom.cpp:273
static stdAc::swingv_t toCommonSwing(const bool swing)
Convert a native swing setting into its stdAc enum equivalent.
Definition ir_Eurom.cpp:446
uint8_t state_celsius_
Definition ir_Eurom.h:232
void on(void)
Set the internal state to powered on.
Definition ir_Eurom.cpp:186
void setFan(const uint8_t speed)
Set the internal state to use the desired fan speed.
Definition ir_Eurom.cpp:279
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Eurom.cpp:453
uint8_t getFan(void) const
Get the current fan speed from the internal state.
Definition ir_Eurom.cpp:293
void setTemp(const uint8_t degrees, const bool fahrenheit=false)
Set the internal state to use the desired temperature.
Definition ir_Eurom.cpp:239
static uint8_t calcChecksum(const uint8_t state[], const uint16_t length=kEuromStateLength)
Calculate the checksum for the supplied state.
Definition ir_Eurom.cpp:152
void setSwing(const bool state)
Set the internal state to use the desired swing setting.
Definition ir_Eurom.cpp:299
void checksum(void)
Update the checksum value for the current internal state.
Definition ir_Eurom.cpp:167
uint8_t state_mode_
Definition ir_Eurom.h:231
void send(const uint16_t repeat=kNoRepeat)
Send the current internal state as an IR message.
Definition ir_Eurom.cpp:138
static bool validChecksum(const uint8_t state[], const uint16_t length=kEuromStateLength)
Verify if the checksum is valid for a given state.
Definition ir_Eurom.cpp:162
bool getPower(void) const
Get the current power setting from the internal state.
Definition ir_Eurom.cpp:207
void off(void)
Set the internal state to powered off.
Definition ir_Eurom.cpp:191
uint8_t state_on_timer_
Definition ir_Eurom.h:234
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc enum equivalent.
Definition ir_Eurom.cpp:427
void stateReset()
Reset the internals of the object to a known good state.
Definition ir_Eurom.cpp:119
void setOffTimer(const uint8_t duration)
Set the internal state to use the desired "off timer" duration.
Definition ir_Eurom.cpp:327
uint8_t getSleepOnTimerByte(const bool sleep, const uint8_t hours) const
Combine sleep mode and a timer duration into a single byte for the AC. Note that validity is not chec...
Definition ir_Eurom.cpp:112
String toString(void) const
Convert the current internal state into a human-readable string.
Definition ir_Eurom.cpp:468
void setOnTimer(const uint8_t duration)
Set the internal state to use the desired "on timer" duration.
Definition ir_Eurom.cpp:342
uint8_t getOnTimer(void) const
Get the current "on timer" duration from the internal state.
Definition ir_Eurom.cpp:351
uint8_t getOffTimer(void) const
Get the current "off timer" duration from the internal state.
Definition ir_Eurom.cpp:336
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Eurom.h:164
uint8_t getTemp(void) const
Get the current temperature from the internal state.
Definition ir_Eurom.cpp:263
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native operation mode into its stdAc enum equivalent.
Definition ir_Eurom.cpp:406
void setRaw(const uint8_t state[])
Set the raw state of the remote.
Definition ir_Eurom.cpp:173
bool getSleep(void) const
Get the current sleep setting from the internal state.
Definition ir_Eurom.cpp:321
static bool convertSwing(const stdAc::swingv_t swing)
Convert a stdAc::swingv_t enum into its native swing.
Definition ir_Eurom.cpp:393
void setMode(const uint8_t mode)
Set the internal state to use the desired operation mode.
Definition ir_Eurom.cpp:213
IRsend _irsend
Definition ir_Eurom.h:219
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into its native speed.
Definition ir_Eurom.cpp:376
uint8_t getModeCelsiusByte(const uint8_t mode, const uint8_t celsius) const
Combine a mode flag and temperature into a single byte for the AC. Note that validity is not checked ...
Definition ir_Eurom.cpp:101
uint8_t * getRaw(void)
Get the raw state of the remote, suitable to be sent with the appropriate IRsend object method.
Definition ir_Eurom.cpp:180
EuromProtocol _
Definition ir_Eurom.h:225
void setPower(const bool state)
Set the internal state to use the desired power setting.
Definition ir_Eurom.cpp:197
bool state_sleep_
Definition ir_Eurom.h:233
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native operation mode.
Definition ir_Eurom.cpp:358
uint8_t getMode(void) const
Get the current operation mode setting from the internal state.
Definition ir_Eurom.cpp:232
void setSleep(const bool state)
Set the internal state to use the desired sleep setting.
Definition ir_Eurom.cpp:314
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 kEuromSleepOnTimerDisabled
Definition ir_Eurom.h:132
const uint16_t kEuromHdrMark
Definition ir_Eurom.h:96
const uint8_t kEuromSwingOn
Definition ir_Eurom.h:129
const uint8_t kEuromMinTempC
Definition ir_Eurom.h:116
const uint8_t kEuromVentilate
Definition ir_Eurom.h:107
const uint8_t kEuromPowerSwingDisabled
Definition ir_Eurom.h:127
const uint8_t kEuromTimerMin
Definition ir_Eurom.h:141
const uint8_t kEuromMaxTempC
Definition ir_Eurom.h:117
const uint16_t kEuromOneSpace
Definition ir_Eurom.h:99
const uint8_t kEuromCool
Definition ir_Eurom.h:105
const uint8_t kEuromFahrenheitDisabled
Definition ir_Eurom.h:123
const uint8_t kEuromMinTempF
Definition ir_Eurom.h:119
const uint16_t kEuromZeroSpace
Definition ir_Eurom.h:100
const uint8_t kEuromFanMed
Definition ir_Eurom.h:146
const uint8_t kEuromFanLow
Definition ir_Eurom.h:145
const uint8_t kEuromMaxTempF
Definition ir_Eurom.h:120
const uint8_t kEuromFahrenheitEnabled
Definition ir_Eurom.h:124
const uint8_t kEuromSleepEnabled
Definition ir_Eurom.h:133
const uint8_t kEuromFanHigh
Definition ir_Eurom.h:147
const uint8_t kEuromTimerMax
Definition ir_Eurom.h:142
const uint8_t kEuromPowerOn
Definition ir_Eurom.h:128
const uint8_t kEuromOffTimerDisabled
Definition ir_Eurom.h:136
const uint8_t kEuromOffTimer
Definition ir_Eurom.h:138
const uint16_t kEuromSpaceGap
Definition ir_Eurom.h:101
const uint8_t kEuromOffTimerEnabled
Definition ir_Eurom.h:137
const uint16_t kEuromFreq
Definition ir_Eurom.h:102
const uint8_t kEuromHeat
Definition ir_Eurom.h:108
const uint16_t kEuromHdrSpace
Definition ir_Eurom.h:98
const uint8_t kEuromMaxTempFlag
Definition ir_Eurom.h:113
const uint8_t kEuromDehumidify
Definition ir_Eurom.h:106
const uint16_t kEuromBitMark
Definition ir_Eurom.h:97
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 Eurom message.
Definition ir_Eurom.h:24
uint8_t Sum1
Definition ir_Eurom.h:28
uint8_t OffTimerEnabled
Definition ir_Eurom.h:75
uint8_t Sum2
Definition ir_Eurom.h:31
uint8_t Sum4
Definition ir_Eurom.h:78
uint8_t Sum3
Definition ir_Eurom.h:66
uint8_t Power_Swing
Definition ir_Eurom.h:49
uint8_t Fahrenheit
Definition ir_Eurom.h:56
uint8_t Fan
Definition ir_Eurom.h:81
uint8_t Mode_Celsius
Definition ir_Eurom.h:42
uint8_t OffTimer
Definition ir_Eurom.h:70
uint8_t raw[kEuromStateLength]
Definition ir_Eurom.h:25
uint8_t Checksum
Definition ir_Eurom.h:89
uint8_t Sleep_OnTimer
Definition ir_Eurom.h:62