9#define __STDC_LIMIT_MACROS
17#include "IRsend_test.h"
79 explicit IRTechnibelAc(
const uint16_t pin,
const bool inverted =
false,
80 const bool use_modulation =
true);
99 void setTemp(
const uint8_t temp,
const bool fahrenheit =
false);
101 void setFan(
const uint8_t speed);
102 uint8_t
getFan(
void)
const;
103 void setMode(
const uint8_t mode);
113 void setTimer(
const uint16_t nr_of_mins);
116 void setRaw(
const uint64_t state);
const uint16_t kTechnibelAcDefaultRepeat
Definition IRremoteESP8266.h:1252
std::string String
Definition IRremoteESP8266.h:1564
Class for handling detailed Technibel A/C messages.
Definition ir_Technibel.h:77
void off(void)
Set the requested power state of the A/C to off.
Definition ir_Technibel.cpp:154
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Technibel.cpp:256
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Technibel.cpp:94
uint8_t _saved_temp
Definition ir_Technibel.h:131
void setTimerEnabled(const bool on)
Set the enable timer setting.
Definition ir_Technibel.cpp:336
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Technibel.cpp:164
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Technibel.h:88
static uint8_t calcChecksum(const uint64_t state)
Compute the checksum of the supplied state.
Definition ir_Technibel.cpp:107
bool getTempUnit(void) const
Get the temperature unit setting.
Definition ir_Technibel.cpp:177
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Technibel.cpp:287
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition ir_Technibel.cpp:324
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Technibel.cpp:275
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition ir_Technibel.cpp:330
void setTempUnit(const bool celsius)
Set the temperature unit setting.
Definition ir_Technibel.cpp:170
uint16_t getTimer(void) const
Get the timer time for when the A/C unit will switch power state.
Definition ir_Technibel.cpp:359
void on(void)
Set the requested power state of the A/C to on.
Definition ir_Technibel.cpp:151
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Technibel.cpp:219
bool getTimerEnabled(void) const
Is the timer function enabled?
Definition ir_Technibel.cpp:342
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Technibel.cpp:200
uint8_t _saved_temp_units
Definition ir_Technibel.h:132
bool getSwing(void) const
Get the (vertical) swing setting of the A/C.
Definition ir_Technibel.cpp:304
void setPower(const bool on)
Change the power setting.
Definition ir_Technibel.cpp:158
static bool convertSwing(const stdAc::swingv_t swing)
Convert a stdAc::swingv_t enum into it's native swing.
Definition ir_Technibel.cpp:311
void setTimer(const uint16_t nr_of_mins)
Set the timer for when the A/C unit will switch off.
Definition ir_Technibel.cpp:350
IRsendTest _irsend
Definition ir_Technibel.h:128
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Technibel.cpp:226
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Technibel.cpp:391
static bool validChecksum(const uint64_t state)
Confirm the checksum of the supplied state is valid.
Definition ir_Technibel.cpp:119
static stdAc::swingv_t toCommonSwing(const bool swing)
Convert a native swing into its stdAc equivalent.
Definition ir_Technibel.cpp:318
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Technibel.cpp:365
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Technibel.cpp:250
void send(const uint16_t repeat=kTechnibelAcDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Technibel.cpp:99
uint64_t getRaw(void)
Get a copy of the internal state/code for this protocol.
Definition ir_Technibel.cpp:139
void setSwing(const bool on)
Set the (vertical) swing setting of the A/C.
Definition ir_Technibel.cpp:298
IRsend _irsend
Definition ir_Technibel.h:126
void setTemp(const uint8_t temp, const bool fahrenheit=false)
Set the temperature.
Definition ir_Technibel.cpp:184
TechnibelProtocol _
Definition ir_Technibel.h:130
void stateReset(void)
Reset the internal state of the emulation.
Definition ir_Technibel.cpp:131
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Technibel.cpp:240
void setRaw(const uint64_t state)
Set the internal state from a valid code for this protocol.
Definition ir_Technibel.cpp:146
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Technibel.cpp:194
void checksum(void)
Set the checksum of the internal state.
Definition ir_Technibel.cpp:125
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 kTechnibelAcTempMaxF
Definition ir_Technibel.h:56
const uint8_t kTechnibelAcHeader
Definition ir_Technibel.h:69
const uint8_t kTechnibelAcTempMaxC
Definition ir_Technibel.h:54
const uint64_t kTechnibelAcResetState
Mode:Cool, Power:Off, fan:Low, temp:20, swing:Off, sleep:Off.
Definition ir_Technibel.h:71
const uint8_t kTechnibelAcFanSize
Definition ir_Technibel.h:58
const uint8_t kTechnibelAcFanLow
Definition ir_Technibel.h:59
const uint8_t kTechnibelAcHeat
Definition ir_Technibel.h:66
const uint8_t kTechnibelAcTimerHoursOffset
Definition ir_Technibel.h:50
const uint8_t kTechnibelAcHeaderOffset
Definition ir_Technibel.h:68
const uint8_t kTechnibelAcFanHigh
Definition ir_Technibel.h:61
const uint8_t kTechnibelAcTempMinC
Definition ir_Technibel.h:53
const uint8_t kTechnibelAcFan
Definition ir_Technibel.h:65
const uint8_t kTechnibelAcCool
Definition ir_Technibel.h:63
const uint8_t kTechnibelAcTempMinF
Definition ir_Technibel.h:55
const uint8_t kTechnibelAcFanMedium
Definition ir_Technibel.h:60
const uint8_t kTechnibelAcTimerMax
Definition ir_Technibel.h:51
const uint8_t kTechnibelAcDry
Definition ir_Technibel.h:64
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 Technibel A/C message.
Definition ir_Technibel.h:24
uint8_t TimerHours
Definition ir_Technibel.h:29
uint8_t Sleep
Definition ir_Technibel.h:35
uint8_t UseFah
Definition ir_Technibel.h:37
uint8_t TempChange
Definition ir_Technibel.h:41
uint8_t FanChange
Definition ir_Technibel.h:40
uint8_t TimerEnable
Definition ir_Technibel.h:38
uint8_t Header
Definition ir_Technibel.h:44
uint64_t raw
Definition ir_Technibel.h:25
uint8_t Footer
Definition ir_Technibel.h:28
uint8_t Temp
Definition ir_Technibel.h:31
uint8_t Fan
Definition ir_Technibel.h:33
uint8_t Power
Definition ir_Technibel.h:43
uint8_t TimerChange
Definition ir_Technibel.h:42
uint8_t Sum
Definition ir_Technibel.h:27
uint8_t Swing
Definition ir_Technibel.h:36
uint8_t Mode
Definition ir_Technibel.h:39