Go to the documentation of this file.
27 #define __STDC_LIMIT_MACROS
36 #include "IRsend_test.h"
116 explicit IRLgAc(
const uint16_t pin,
const bool inverted =
false,
117 const bool use_modulation =
true);
136 void setTemp(
const uint8_t degrees);
138 void setFan(
const uint8_t speed);
139 uint8_t
getFan(
void)
const;
140 void setMode(
const uint8_t mode);
153 void setVaneSwingV(
const uint8_t vane,
const uint8_t position);
155 static uint32_t
calcVaneSwingV(
const uint8_t vane,
const uint8_t position);
160 void setRaw(
const uint32_t new_code,
const uint8_t kLgAcFanMedium
Definition: ir_LG.h:55
void _setTemp(const uint8_t value)
Set the temperature.
Definition: ir_LG.cpp:457
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_LG.cpp:650
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_LG.cpp:513
const uint32_t kLgAcSwingVLowest
Definition: ir_LG.h:79
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:1011
uint32_t getSwingV(void) const
Get the Vertical Swing position setting of the A/C.
Definition: ir_LG.cpp:600
uint32_t getRaw(void)
Get a copy of the internal state/code for this protocol.
Definition: ir_LG.cpp:351
void setVaneSwingV(const uint8_t vane, const uint8_t position)
Set the per Vane Vertical Swing mode of the A/C.
Definition: ir_LG.cpp:605
decode_type_t _protocol
Protocol version.
Definition: ir_LG.h:192
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_LG.cpp:470
void setSwingV(const uint32_t position)
Set the Vertical Swing mode of the A/C.
Definition: ir_LG.cpp:578
@ UNKNOWN
Definition: IRremoteESP8266.h:1012
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:74
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_LG.h:128
const uint32_t kLgAcLightToggle
Definition: ir_LG.h:75
const uint8_t kLgAcVaneSwingVMiddle
0b100
Definition: ir_LG.h:106
const uint8_t kLgAcFanAuto
Definition: ir_LG.h:57
const uint32_t kLgAcSwingVOff
Definition: ir_LG.h:87
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
bool isSwing(void) const
Check if the stored code is a Swing message.
Definition: ir_LG.cpp:541
const uint8_t kLgAcPowerOff
Definition: ir_LG.h:70
const uint8_t kLgAcFanLowest
Definition: ir_LG.h:53
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_LG.cpp:476
const uint8_t kLgAcVaneSwingVHigh
0b010
Definition: ir_LG.h:104
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_LG.cpp:434
uint32_t Temp
Definition: ir_LG.h:45
bool isLightToggle(void) const
Is the message a Light Toggle message?
Definition: ir_LG.cpp:452
const uint8_t kLgAcSwingVOff_Short
Definition: ir_LG.h:96
const uint8_t kLgAcFanHigh
Definition: ir_LG.h:59
const uint8_t kLgAcSwingVSwing_Short
Definition: ir_LG.h:94
void updateSwingPrev(void)
Definition: ir_LG.cpp:592
bool isSwingV(void) const
Check if the stored code is a non-vane SwingV message.
Definition: ir_LG.cpp:547
uint32_t Sign
Definition: ir_LG.h:49
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_LG.cpp:801
const uint32_t kLgAcSwingVLow
Definition: ir_LG.h:80
Class for sending all basic IR protocols.
Definition: IRsend.h:237
const uint8_t kLgAcDry
Definition: ir_LG.h:66
const uint8_t kLgAcVaneSwingVHighest
0b001
Definition: ir_LG.h:103
void setTemp(const uint8_t degrees)
Set the temperature.
Definition: ir_LG.cpp:461
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
const uint8_t kLgAcFanEntries
Definition: ir_LG.h:61
bool _isNormal(void) const
Is the current message a normal (non-special) message?
Definition: ir_LG.cpp:298
LGProtocol _
Definition: ir_LG.h:183
const uint32_t kLgAcSwingVSwing
Definition: ir_LG.h:85
const uint8_t kLgAcFanLowAlt
Definition: ir_LG.h:58
const uint32_t kLgAcOffCommand
Definition: ir_LG.h:74
uint8_t getVaneSwingV(const uint8_t vane) const
Get the Vertical Swing position for the given vane of the A/C.
Definition: ir_LG.cpp:613
std::string String
Definition: IRremoteESP8266.h:1521
bool _swingh
Definition: ir_LG.h:190
static uint8_t calcChecksum(const uint32_t state)
Calculate the checksum for a given state.
Definition: ir_LG.cpp:398
const uint8_t kLgAcFanLow
Definition: ir_LG.h:54
void setModel(const lg_ac_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_LG.cpp:310
const uint16_t kLgDefaultRepeat
Definition: IRremoteESP8266.h:1298
const uint8_t kLgAcMaxTemp
Definition: ir_LG.h:64
bool isOffCommand(void) const
Is the message a Power Off message?
Definition: ir_LG.cpp:440
uint8_t _vaneswingv_prev[kLgAcSwingVMaxVanes]
Definition: ir_LG.h:189
const uint32_t kLgAcSwingVMiddle
Definition: ir_LG.h:81
uint32_t _swingv_prev
Definition: ir_LG.h:187
const uint32_t kLgAcSwingVToggle
Definition: ir_LG.h:77
bool isSwingVToggle(void) const
Check if the stored code is a SwingV Toggle message.
Definition: ir_LG.cpp:537
IRLgAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_LG.cpp:232
const uint8_t kLgAcSignature
Definition: ir_LG.h:72
const uint32_t kLgAcSwingSignature
Definition: ir_LG.h:78
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_LG.cpp:663
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_LG.cpp:517
const uint32_t kLgAcSwingVHigh
Definition: ir_LG.h:83
bool _isAKB73757604(void) const
Check if the stored code must belong to a AKB73757604 model.
Definition: ir_LG.cpp:342
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_LG.cpp:677
const uint8_t kLgAcSwingVLow_Short
Definition: ir_LG.h:89
static uint32_t convertSwingV(const stdAc::swingv_t swingv)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_LG.cpp:692
uint32_t _swingv
Definition: ir_LG.h:186
void setSwingH(const bool on)
Set the Horizontal Swing mode of the A/C.
Definition: ir_LG.cpp:565
uint32_t raw
The state of the IR remote in IR code form.
Definition: ir_LG.h:41
const uint8_t kLgAcCool
Definition: ir_LG.h:65
const uint8_t kLgAcSwingVLowest_Short
Definition: ir_LG.h:88
const uint8_t kLgAcSwingVMaxVanes
Max Nr. of Vanes.
Definition: ir_LG.h:110
const uint8_t kLgAcSwingVAuto_Short
Definition: ir_LG.h:95
bool getSwingH(void) const
Get the Horizontal Swing position setting of the A/C.
Definition: ir_LG.cpp:561
const uint8_t kLgAcHeat
Definition: ir_LG.h:69
const uint8_t kLgAcSwingVHighest_Short
Definition: ir_LG.h:93
static uint32_t calcVaneSwingV(const uint8_t vane, const uint8_t position)
Calculate the Vane specific Vertical Swing code for the A/C.
Definition: ir_LG.cpp:626
const uint8_t kLgAcFanMax
Definition: ir_LG.h:56
const uint32_t kLgAcSwingVUpperMiddle
Definition: ir_LG.h:82
bool _isLG6711A20083V(void) const
Check if the stored code must belong to a LG6711A20083V model.
Definition: ir_LG.cpp:347
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_LG.cpp:249
bool _swingh_prev
Definition: ir_LG.h:191
void setRaw(const uint32_t new_code, const decode_type_t protocol=decode_type_t::UNKNOWN)
Set the internal state from a valid code for this protocol.
Definition: ir_LG.cpp:359
const uint8_t kLgAcVaneSwingVLow
0b101
Definition: ir_LG.h:107
const uint8_t kLgAcVaneSwingVSize
Definition: ir_LG.h:109
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_LG.cpp:758
bool _isAKB74955603(void) const
Check if the stored code must belong to a AKB74955603 model.
Definition: ir_LG.cpp:334
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:114
const uint32_t kLgAcSwingVAuto
Definition: ir_LG.h:86
lg_ac_remote_model_t getModel(void) const
Get the model of the A/C.
Definition: ir_LG.cpp:329
const uint32_t kLgAcSwingHAuto
Definition: ir_LG.h:100
uint32_t Fan
Definition: ir_LG.h:44
bool _light
Definition: ir_LG.h:185
uint8_t _vaneswingv[kLgAcSwingVMaxVanes]
Definition: ir_LG.h:188
static uint8_t convertVaneSwingV(const stdAc::swingv_t swingv)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_LG.cpp:745
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:217
const uint32_t kLgAcSwingHOff
Definition: ir_LG.h:101
const uint8_t kLgAcSwingVUpperMiddle_Short
Definition: ir_LG.h:91
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_LG.cpp:521
lg_ac_remote_model_t _model
Model type.
Definition: ir_LG.h:193
uint8_t _temp
Definition: ir_LG.h:184
static stdAc::swingv_t toCommonSwingV(const uint32_t code)
Convert a native Vertical Swing into its stdAc equivalent.
Definition: ir_LG.cpp:707
const uint8_t kLgAcAuto
Definition: ir_LG.h:68
const uint8_t kLgAcPowerOn
Definition: ir_LG.h:71
const uint8_t kLgAcVaneSwingVLowest
0b110
Definition: ir_LG.h:108
bool isSwingH(void) const
Check if the stored code is a SwingH message.
Definition: ir_LG.cpp:555
void off(void)
Change the power setting to Off.
Definition: ir_LG.cpp:420
static uint8_t getVaneCode(const uint32_t raw)
Get the vane code of a Vane Vertical Swing message.
Definition: ir_LG.cpp:620
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition: ir_LG.cpp:412
void setLight(const bool on)
Change the light/led/display setting.
Definition: ir_LG.cpp:444
void stateReset(void)
Reset the internals of the object to a known good state.
Definition: ir_LG.cpp:237
const uint8_t kLgAcMinTemp
Definition: ir_LG.h:63
const uint8_t kLgAcTempAdjust
Definition: ir_LG.h:62
uint32_t Mode
Definition: ir_LG.h:46
uint32_t Sum
Definition: ir_LG.h:43
const uint8_t kLgAcVaneSwingVUpperMiddle
0b011
Definition: ir_LG.h:105
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_LG.cpp:637
const uint8_t kLgAcSwingVMiddle_Short
Definition: ir_LG.h:90
void setPower(const bool on)
Change the power setting.
Definition: ir_LG.cpp:424
const uint8_t kLgAcSwingVHigh_Short
Definition: ir_LG.h:92
Structure to hold a common A/C state.
Definition: IRsend.h:114
void send(const uint16_t repeat=kLgDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_LG.cpp:254
static bool validChecksum(const uint32_t state)
Verify the checksum is valid for a given state.
Definition: ir_LG.cpp:405
const uint8_t kLgAcFan
Definition: ir_LG.h:67
void on(void)
Change the power setting to On.
Definition: ir_LG.cpp:417
uint32_t Power
Definition: ir_LG.h:48
static stdAc::swingv_t toCommonVaneSwingV(const uint8_t pos)
Convert a native Vane specific Vertical Swing into its stdAc equivalent.
Definition: ir_LG.cpp:731
bool getLight(void) const
Get the value of the current light setting.
Definition: ir_LG.cpp:448
IRsend _irsend
Instance of the IR send class.
Definition: ir_LG.h:177
Native representation of a LG A/C message.
Definition: ir_LG.h:40
bool isValidLgAc(void) const
Check if the internal state looks like a valid LG A/C message.
Definition: ir_LG.cpp:860
const uint32_t kLgAcSwingVHighest
Definition: ir_LG.h:84
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49
bool isVaneSwingV(void) const
Check if the stored code is a vane specific SwingV message.
Definition: ir_LG.cpp:569