12#define __STDC_LIMIT_MACROS
18#include "IRsend_test.h"
152 explicit IREuromAc(
const uint16_t pin,
const bool inverted =
false,
153 const bool use_modulation =
true);
173 void setRaw(
const uint8_t state[]);
182 void setMode(
const uint8_t mode);
185 void setTemp(
const uint8_t degrees,
const bool fahrenheit =
false);
189 void setFan(
const uint8_t speed);
190 uint8_t
getFan(
void)
const;
const uint16_t kNoRepeat
Definition IRremoteESP8266.h:1171
const uint16_t kEuromStateLength
Definition IRremoteESP8266.h:1467
Class for handling detailed Eurom A/C messages.
Definition ir_Eurom.h:150
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:230
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:229
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:232
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:162
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:217
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:223
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:231
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:256
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:286
const uint8_t kEuromSleepOnTimerDisabled
Definition ir_Eurom.h:130
const uint16_t kEuromHdrMark
Definition ir_Eurom.h:94
const uint8_t kEuromSwingOn
Definition ir_Eurom.h:127
const uint8_t kEuromMinTempC
Definition ir_Eurom.h:114
const uint8_t kEuromVentilate
Definition ir_Eurom.h:105
const uint8_t kEuromPowerSwingDisabled
Definition ir_Eurom.h:125
const uint8_t kEuromTimerMin
Definition ir_Eurom.h:139
const uint8_t kEuromMaxTempC
Definition ir_Eurom.h:115
const uint16_t kEuromOneSpace
Definition ir_Eurom.h:97
const uint8_t kEuromCool
Definition ir_Eurom.h:103
const uint8_t kEuromFahrenheitDisabled
Definition ir_Eurom.h:121
const uint8_t kEuromMinTempF
Definition ir_Eurom.h:117
const uint16_t kEuromZeroSpace
Definition ir_Eurom.h:98
const uint8_t kEuromFanMed
Definition ir_Eurom.h:144
const uint8_t kEuromFanLow
Definition ir_Eurom.h:143
const uint8_t kEuromMaxTempF
Definition ir_Eurom.h:118
const uint8_t kEuromFahrenheitEnabled
Definition ir_Eurom.h:122
const uint8_t kEuromSleepEnabled
Definition ir_Eurom.h:131
const uint8_t kEuromFanHigh
Definition ir_Eurom.h:145
const uint8_t kEuromTimerMax
Definition ir_Eurom.h:140
const uint8_t kEuromPowerOn
Definition ir_Eurom.h:126
const uint8_t kEuromOffTimerDisabled
Definition ir_Eurom.h:134
const uint8_t kEuromOffTimer
Definition ir_Eurom.h:136
const uint16_t kEuromSpaceGap
Definition ir_Eurom.h:99
const uint8_t kEuromOffTimerEnabled
Definition ir_Eurom.h:135
const uint16_t kEuromFreq
Definition ir_Eurom.h:100
const uint8_t kEuromHeat
Definition ir_Eurom.h:106
const uint16_t kEuromHdrSpace
Definition ir_Eurom.h:96
const uint8_t kEuromMaxTempFlag
Definition ir_Eurom.h:111
const uint8_t kEuromDehumidify
Definition ir_Eurom.h:104
const uint16_t kEuromBitMark
Definition ir_Eurom.h:95
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:67
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:55
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:80
Structure to hold a common A/C state.
Definition IRsend.h:120
Native representation of a Eurom message.
Definition ir_Eurom.h:22
uint8_t Sum1
Definition ir_Eurom.h:26
uint8_t OffTimerEnabled
Definition ir_Eurom.h:73
uint8_t Sum2
Definition ir_Eurom.h:29
uint8_t Sum4
Definition ir_Eurom.h:76
uint8_t Sum3
Definition ir_Eurom.h:64
uint8_t Power_Swing
Definition ir_Eurom.h:47
uint8_t Fahrenheit
Definition ir_Eurom.h:54
uint8_t Fan
Definition ir_Eurom.h:79
uint8_t Mode_Celsius
Definition ir_Eurom.h:40
uint8_t OffTimer
Definition ir_Eurom.h:68
uint8_t raw[kEuromStateLength]
Definition ir_Eurom.h:23
uint8_t Checksum
Definition ir_Eurom.h:87
uint8_t Sleep_OnTimer
Definition ir_Eurom.h:60