Go to the documentation of this file.
27 #define __STDC_LIMIT_MACROS
35 #include "IRsend_test.h"
132 explicit IRSamsungAc(
const uint16_t pin,
const bool inverted =
false,
133 const bool use_modulation =
true);
134 void stateReset(
const bool forcepower =
true,
const bool initialPower =
true);
137 const bool calcchecksum =
true);
139 const bool calcchecksum =
true);
147 #endif // SEND_SAMSUNG_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);
176 void setRaw(
const uint8_t new_code[],
203 #endif // IR_SAMSUNG_H_
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Samsung.cpp:692
const uint8_t kSamsungAcDry
Definition: ir_Samsung.h:116
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:130
bool _forcepower
Hack to know when we need to send a special power mesg.
Definition: ir_Samsung.h:198
const uint8_t kSamsungAcCool
Definition: ir_Samsung.h:115
Native representation of a Samsung A/C message.
Definition: ir_Samsung.h:39
bool getIon(void) const
Get the Ion (Filter) setting of the A/C.
Definition: ir_Samsung.cpp:627
void setQuiet(const bool on)
Set the Quiet setting of the A/C.
Definition: ir_Samsung.cpp:558
const uint8_t kSamsungAcFanMed
Definition: ir_Samsung.h:121
void send(const uint16_t repeat=kSamsungAcDefaultRepeat, const bool calcchecksum=true)
Send the current internal state as an IR message.
Definition: ir_Samsung.cpp:341
const uint8_t kSamsungAcFanAuto2
Definition: ir_Samsung.h:123
const uint8_t kSamsungAcAuto
Definition: ir_Samsung.h:114
IRsend _irsend
Instance of the IR send class.
Definition: ir_Samsung.h:191
IRSamsungAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Samsung.cpp:270
bool getPowerful(void) const
Get the Powerful (Turbo) setting of the A/C.
Definition: ir_Samsung.cpp:570
const uint8_t kSamsungAcFanHigh
Definition: ir_Samsung.h:122
bool getClean(void) const
Get the Clean setting of the A/C.
Definition: ir_Samsung.cpp:539
uint8_t Temp
Definition: ir_Samsung.h:77
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
const uint8_t kSamsungAcFan
Definition: ir_Samsung.h:117
void setBreeze(const bool on)
Closes the vanes over the fan outlet, to stop direct wind. Aka. WindFree.
Definition: ir_Samsung.cpp:604
uint8_t Swing
Definition: ir_Samsung.h:65
uint8_t Ion
Definition: ir_Samsung.h:74
const uint8_t kSamsungAcSwingStop
Definition: ir_Samsung.h:108
const uint16_t kSamsungAcDefaultRepeat
Definition: IRremoteESP8266.h:1066
bool getDisplay(void) const
Get the Display (Light/LED) setting of the A/C.
Definition: ir_Samsung.cpp:615
SamsungProtocol _
Definition: ir_Samsung.h:197
const uint8_t kSamsungAcPowerful10On
Definition: ir_Samsung.h:109
void setSwing(const bool on)
Set the vertical swing setting of the A/C.
Definition: ir_Samsung.cpp:521
bool getQuiet(void) const
Get the Quiet setting of the A/C.
Definition: ir_Samsung.cpp:552
const uint16_t kSamsungAcSectionLength
Definition: ir_Samsung.h:125
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Samsung.cpp:291
Class for sending all basic IR protocols.
Definition: IRsend.h:187
void setIon(const bool on)
Set the Ion (Filter) setting of the A/C.
Definition: ir_Samsung.cpp:633
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Samsung.cpp:455
void setRaw(const uint8_t new_code[], const uint16_t length=kSamsungAcStateLength)
Set the internal state from a valid code for this protocol.
Definition: ir_Samsung.cpp:416
std::string String
Definition: IRremoteESP8266.h:1199
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Samsung.cpp:719
void sendOff(const uint16_t repeat=kSamsungAcDefaultRepeat)
Send the special extended "Off" message as the library can't seem to reproduce this message automatic...
Definition: ir_Samsung.cpp:396
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Samsung.cpp:427
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Samsung.cpp:653
uint8_t Quiet1
Definition: ir_Samsung.h:46
uint8_t Beep
Definition: ir_Samsung.h:85
const uint8_t kSamsungAcPowerfulMask8
Definition: ir_Samsung.h:106
const uint16_t kSamsungAcStateLength
Definition: IRremoteESP8266.h:1062
static bool validChecksum(const uint8_t state[], const uint16_t length=kSamsungAcStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Samsung.cpp:316
bool getBeep(void) const
Get the Beep setting of the A/C.
Definition: ir_Samsung.cpp:527
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_Samsung.cpp:447
const uint64_t kSamsungAcPowerSection
Definition: ir_Samsung.h:126
void setPowerful(const bool on)
Set the Powerful (Turbo) setting of the A/C.
Definition: ir_Samsung.cpp:578
const uint16_t kSamsungAcExtendedStateLength
Definition: IRremoteESP8266.h:1064
uint8_t Mode
Definition: ir_Samsung.h:81
void setPower(const bool on)
Change the power setting.
Definition: ir_Samsung.cpp:434
uint8_t pad1[6]
Definition: ir_Samsung.h:93
uint8_t Display
Definition: ir_Samsung.h:70
void setDisplay(const bool on)
Set the Display (Light/LED) setting of the A/C.
Definition: ir_Samsung.cpp:621
uint8_t Clean11
Definition: ir_Samsung.h:75
const uint8_t kSamsungAcBreezeOn
Definition: ir_Samsung.h:110
void stateReset(const bool forcepower=true, const bool initialPower=true)
Reset the internal state of the emulation.
Definition: ir_Samsung.cpp:280
static uint8_t calcChecksum(const uint8_t state[], const uint16_t length=kSamsungAcStateLength)
Calculate the checksum for a given state.
Definition: ir_Samsung.cpp:297
bool _lastsentpowerstate
Definition: ir_Samsung.h:199
const uint8_t kSamsungAcAutoTemp
Definition: ir_Samsung.h:113
const uint8_t kSamsungAcSwingMove
Definition: ir_Samsung.h:107
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Samsung.cpp:461
const uint8_t kSamsungAcFanLow
Definition: ir_Samsung.h:120
void setClean(const bool on)
Set the Clean setting of the A/C.
Definition: ir_Samsung.cpp:545
uint8_t Breeze
Definition: ir_Samsung.h:100
const uint8_t kSamsungAcHeat
Definition: ir_Samsung.h:118
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Samsung.cpp:667
void sendOn(const uint16_t repeat=kSamsungAcDefaultRepeat)
Send the special extended "On" message as the library can't seem to reproduce this message automatica...
Definition: ir_Samsung.cpp:383
const uint8_t kSamsungAcFanAuto
Definition: ir_Samsung.h:119
void checksum(const uint16_t length=kSamsungAcStateLength)
Update the checksum for the internal state.
Definition: ir_Samsung.cpp:329
void setBeep(const bool on)
Set the Beep setting of the A/C.
Definition: ir_Samsung.cpp:533
uint8_t Power1
Definition: ir_Samsung.h:47
uint8_t Sum1
Definition: ir_Samsung.h:92
bool getSwing(void) const
Get the vertical swing setting of the A/C.
Definition: ir_Samsung.cpp:513
uint8_t Powerful8
Definition: ir_Samsung.h:62
uint8_t Powerful10
Definition: ir_Samsung.h:69
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Samsung.cpp:640
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Samsung.h:146
uint8_t Fan
Definition: ir_Samsung.h:80
void sendExtended(const uint16_t repeat=kSamsungAcDefaultRepeat, const bool calcchecksum=true)
Send the extended current internal state as an IR message.
Definition: ir_Samsung.cpp:362
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Samsung.cpp:485
const uint8_t kSamsungAcMaxTemp
Definition: ir_Samsung.h:112
uint8_t Clean10
Definition: ir_Samsung.h:72
uint8_t Sum2
Definition: ir_Samsung.h:96
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Samsung.cpp:430
bool getBreeze(void) const
Are the vanes closed over the fan outlet, to stop direct wind? Aka. WindFree.
Definition: ir_Samsung.cpp:596
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Samsung.cpp:680
uint8_t pad0[3]
Definition: ir_Samsung.h:50
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Samsung.cpp:441
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Samsung.cpp:408
const uint8_t kSamsungAcFanTurbo
Definition: ir_Samsung.h:124
Structure to hold a common A/C state.
Definition: IRsend.h:97
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Samsung.cpp:505
uint8_t raw[kSamsungAcExtendedStateLength]
State in code form.
Definition: ir_Samsung.h:40
const uint8_t kSamsungAcMinTemp
Definition: ir_Samsung.h:111
uint8_t Power6
Definition: ir_Samsung.h:57
uint8_t Quiet5
Definition: ir_Samsung.h:53
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Samsung.cpp:479
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46