Go to the documentation of this file.
20 #ifndef IR_MITSUBISHIHEAVY_H_
21 #define IR_MITSUBISHIHEAVY_H_
29 #include "IRsend_test.h"
37 0xAD, 0x51, 0x3C, 0xE5, 0x1A};
89 0xAD, 0x51, 0x3C, 0xD9, 0x26};
136 const bool inverted =
false,
137 const bool use_modulation =
true);
139 #if SEND_MITSUBISHIHEAVY
146 #endif // SEND_MITSUBISHIHEAVY
154 void setTemp(
const uint8_t temp);
157 void setFan(
const uint8_t fan);
160 void setMode(
const uint8_t mode);
190 void setRaw(
const uint8_t* data);
194 const uint8_t *state,
223 const bool inverted =
false,
224 const bool use_modulation =
true);
226 #if SEND_MITSUBISHIHEAVY
233 #endif // SEND_MITSUBISHIHEAVY
241 void setTemp(
const uint8_t temp);
244 void setFan(
const uint8_t fan);
247 void setMode(
const uint8_t mode);
268 void setRaw(
const uint8_t* data);
272 const uint8_t *state,
295 #endif // IR_MITSUBISHIHEAVY_H_
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivilant.
Definition: ir_MitsubishiHeavy.cpp:976
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition: ir_MitsubishiHeavy.cpp:688
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_MitsubishiHeavy.cpp:655
const uint8_t kMitsubishiHeavy88SwingVByte5Size
Definition: ir_MitsubishiHeavy.h:115
const uint16_t kMitsubishiHeavy152StateLength
Definition: IRremoteESP8266.h:942
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_MitsubishiHeavy.h:145
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:133
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_MitsubishiHeavy.cpp:632
String toString(void)
Convert the internal state into a human readable string.
Definition: ir_MitsubishiHeavy.cpp:1002
void checksum(void)
Calculate the checksum for the current internal state of the remote. Note: Technically it has no chec...
Definition: ir_MitsubishiHeavy.cpp:325
const uint8_t kMitsubishiHeavy152SwingVHigh
Definition: ir_MitsubishiHeavy.h:67
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition: ir_MitsubishiHeavy.cpp:398
const uint8_t kMitsubishiHeavy152SwingHRightLeft
Definition: ir_MitsubishiHeavy.h:79
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_MitsubishiHeavy.cpp:355
bool getPower(void)
Get the value of the current power setting.
Definition: ir_MitsubishiHeavy.cpp:665
const uint8_t kMitsubishiHeavy3DMask
Definition: ir_MitsubishiHeavy.h:62
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivilant.
Definition: ir_MitsubishiHeavy.cpp:933
bool getEcono(void)
Get the Economical mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:310
void setPower(const bool on)
Change the power setting.
Definition: ir_MitsubishiHeavy.cpp:123
void set3D(const bool on)
Set the 3D mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:824
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
const uint8_t kMitsubishiHeavy152FanMed
Definition: ir_MitsubishiHeavy.h:56
const uint8_t kMitsubishiHeavyCleanOffset
Definition: ir_MitsubishiHeavy.h:47
void setSwingHorizontal(const uint8_t pos)
Set the Horizontal Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:763
IRsend _irsend
Instance of the IR send class.
Definition: ir_MitsubishiHeavy.h:209
const uint8_t kMitsubishiHeavy152FanAuto
Definition: ir_MitsubishiHeavy.h:54
IRMitsubishiHeavy152Ac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_MitsubishiHeavy.cpp:77
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
const uint8_t kMitsubishiHeavy152SwingVAuto
Definition: ir_MitsubishiHeavy.h:65
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:711
const uint8_t kMitsubishiHeavy88FanTurbo
Definition: ir_MitsubishiHeavy.h:112
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_MitsubishiHeavy.cpp:888
const uint8_t kMitsubishiHeavy88SwingHLeftMax
Definition: ir_MitsubishiHeavy.h:97
const uint8_t kMitsubishiHeavy152SwingVHighest
Definition: ir_MitsubishiHeavy.h:66
const uint8_t kMitsubishiHeavy88SwingH3D
Definition: ir_MitsubishiHeavy.h:104
const uint8_t kMitsubishiHeavy88SwingHLeft
Definition: ir_MitsubishiHeavy.h:98
const uint8_t kMitsubishiHeavy152SwingVLow
Definition: ir_MitsubishiHeavy.h:69
const uint8_t kMitsubishiHeavyNightOffset
Definition: ir_MitsubishiHeavy.h:83
const uint8_t kMitsubishiHeavy152SwingHOff
Definition: ir_MitsubishiHeavy.h:81
const uint8_t kMitsubishiHeavy88SwingHOffset1
Definition: ir_MitsubishiHeavy.h:92
bool getPower(void)
Get the value of the current power setting.
Definition: ir_MitsubishiHeavy.cpp:129
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_MitsubishiHeavy.cpp:95
const uint8_t kMitsubishiHeavy152SwingHLeftRight
Definition: ir_MitsubishiHeavy.h:80
void checksum(void)
Calculate the checksum for the current internal state of the remote. Note: Technically it has no chec...
Definition: ir_MitsubishiHeavy.cpp:860
const uint8_t kMitsubishiHeavy88SwingHMiddle
Definition: ir_MitsubishiHeavy.h:99
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivilant.
Definition: ir_MitsubishiHeavy.cpp:426
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_MitsubishiHeavy.cpp:652
bool getTurbo(void)
Get the Turbo mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:296
const uint8_t kMitsubishiHeavy88SwingVAuto
Definition: ir_MitsubishiHeavy.h:121
String toString(void)
Convert the internal state into a human readable string.
Definition: ir_MitsubishiHeavy.cpp:495
void setClean(const bool on)
Set the Clean mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:839
void setSilent(const bool on)
Set the Silent (Quiet) mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:251
Class for sending all basic IR protocols.
Definition: IRsend.h:170
const uint8_t kMitsubishiHeavy88FanEcono
Definition: ir_MitsubishiHeavy.h:113
void setSwingVertical(const uint8_t pos)
Set the Vertical Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:733
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)
Get the current temperature setting.
Definition: ir_MitsubishiHeavy.cpp:145
const uint8_t kMitsubishiHeavy88SwingHSize
Definition: ir_MitsubishiHeavy.h:94
void setClean(const bool on)
Set the Clean mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:275
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_MitsubishiHeavy.cpp:135
const uint8_t kMitsubishiHeavyPowerOffset
Definition: ir_MitsubishiHeavy.h:46
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_MitsubishiHeavy.cpp:116
std::string String
Definition: IRremoteESP8266.h:1093
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_MitsubishiHeavy.cpp:83
uint8_t getSwingVertical(void)
Get the Vertical Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:753
const uint8_t kMitsubishiHeavyFilterOffset
Definition: ir_MitsubishiHeavy.h:48
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_MitsubishiHeavy.cpp:903
void setNight(const bool on)
Set the Night (Sleep) mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:224
const uint8_t kMitsubishiHeavy88SwingHOffset2
Definition: ir_MitsubishiHeavy.h:93
IRsend _irsend
Instance of the IR send class.
Definition: ir_MitsubishiHeavy.h:286
const uint8_t kMitsubishiHeavy152SwingVSize
Definition: ir_MitsubishiHeavy.h:64
const uint8_t kMitsubishiHeavySigLength
Definition: ir_MitsubishiHeavy.h:33
uint8_t getSwingVertical(void)
Get the Vertical Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:204
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_MitsubishiHeavy.cpp:119
void setSwingVertical(const uint8_t pos)
Set the Vertical Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:196
const uint8_t kMitsubishiHeavy88SwingHRightLeft
Definition: ir_MitsubishiHeavy.h:102
uint8_t remote_state[kMitsubishiHeavy88StateLength]
State in code form.
Definition: ir_MitsubishiHeavy.h:292
const uint8_t kMitsubishiHeavy152SwingHRight
Definition: ir_MitsubishiHeavy.h:77
uint8_t getSwingHorizontal(void)
Get the Horizontal Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:786
const uint8_t kMitsubishiHeavyHeat
Definition: ir_MitsubishiHeavy.h:45
uint8_t getSwingHorizontal(void)
Get the Horizontal Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:218
void setTurbo(const bool on)
Set the Turbo mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:796
bool getNight(void)
Get the Night (Sleep) mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:230
uint8_t getFan(void)
Get the current fan speed setting.
Definition: ir_MitsubishiHeavy.cpp:704
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
const uint8_t kMitsubishiHeavy152SwingHLeftMax
Definition: ir_MitsubishiHeavy.h:74
bool getClean(void)
Get the Clean mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:282
const uint8_t kMitsubishiHeavyZmsSig[kMitsubishiHeavySigLength]
Definition: ir_MitsubishiHeavy.h:36
bool getEcono(void)
Get the Economical mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:818
const uint16_t kMitsubishiHeavy152MinRepeat
Definition: IRremoteESP8266.h:944
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_MitsubishiHeavy.h:232
const uint8_t kMitsubishiHeavy88SwingVByte5Offset
Definition: ir_MitsubishiHeavy.h:114
static bool checkZjsSig(const uint8_t *state)
Verify the given state has a ZJ-S signature.
Definition: ir_MitsubishiHeavy.cpp:852
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_MitsubishiHeavy.cpp:671
IRMitsubishiHeavy88Ac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_MitsubishiHeavy.cpp:614
const uint8_t kMitsubishiHeavy88FanOffset
Definition: ir_MitsubishiHeavy.h:106
const uint8_t kMitsubishiHeavyMaxTemp
Definition: ir_MitsubishiHeavy.h:51
void setRaw(const uint8_t *data)
Set the internal state from a valid code for this protocol.
Definition: ir_MitsubishiHeavy.cpp:647
const uint16_t kMitsubishiHeavy88StateLength
Definition: IRremoteESP8266.h:939
const uint8_t kMitsubishiHeavy88SwingVMiddle
Definition: ir_MitsubishiHeavy.h:124
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_MitsubishiHeavy.cpp:368
const uint8_t kMitsubishiHeavyZjsSig[kMitsubishiHeavySigLength]
Definition: ir_MitsubishiHeavy.h:88
const uint8_t kMitsubishiHeavy152FanLow
Definition: ir_MitsubishiHeavy.h:55
const uint8_t kMitsubishiHeavy88FanHigh
Definition: ir_MitsubishiHeavy.h:111
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivilant.
Definition: ir_MitsubishiHeavy.cpp:413
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_MitsubishiHeavy.cpp:104
const uint8_t kMitsubishiHeavyMinTemp
Definition: ir_MitsubishiHeavy.h:50
const uint8_t kMitsubishiHeavyCool
Definition: ir_MitsubishiHeavy.h:42
void setEcono(const bool on)
Set the Economical mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:302
uint8_t getTemp(void)
Get the current temperature setting.
Definition: ir_MitsubishiHeavy.cpp:681
bool getSilent(void)
Get the Silent (Quiet) mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:257
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_MitsubishiHeavy.cpp:640
const uint8_t kMitsubishiHeavy88FanLow
Definition: ir_MitsubishiHeavy.h:109
const uint8_t kMitsubishiHeavy88SwingVLow
Definition: ir_MitsubishiHeavy.h:125
static bool checkZmsSig(const uint8_t *state)
Verify the given state has a ZM-S signature.
Definition: ir_MitsubishiHeavy.cpp:317
const uint8_t kMitsubishiHeavy152SwingVMiddle
Definition: ir_MitsubishiHeavy.h:68
const uint8_t kMitsubishiHeavy88SwingHRight
Definition: ir_MitsubishiHeavy.h:100
const uint8_t kMitsubishiHeavy88SwingVHighest
Definition: ir_MitsubishiHeavy.h:122
const uint8_t kMitsubishiHeavyModeOffset
Definition: ir_MitsubishiHeavy.h:39
const uint8_t kMitsubishiHeavy88SwingVOff
Definition: ir_MitsubishiHeavy.h:120
bool getTurbo(void)
Get the Turbo mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:804
void setEcono(const bool on)
Set the Economical mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:810
const uint8_t kMitsubishiHeavy88SwingVLowest
Definition: ir_MitsubishiHeavy.h:126
const uint8_t kMitsubishiHeavy152SwingHAuto
Definition: ir_MitsubishiHeavy.h:73
uint8_t getMode(void)
Get the operating mode setting of the A/C.
Definition: ir_MitsubishiHeavy.cpp:190
const uint8_t kMitsubishiHeavy152SwingHLeft
Definition: ir_MitsubishiHeavy.h:75
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition: ir_MitsubishiHeavy.cpp:152
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivilant.
Definition: ir_MitsubishiHeavy.cpp:469
const uint8_t kMitsubishiHeavySilentOffset
Definition: ir_MitsubishiHeavy.h:84
bool getClean(void)
Get the Clean mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:845
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_MitsubishiHeavy.cpp:881
const uint8_t kMitsubishiHeavy88SwingHAuto
Definition: ir_MitsubishiHeavy.h:96
const uint8_t kMitsubishiHeavyFan
Definition: ir_MitsubishiHeavy.h:44
const uint16_t kMitsubishiHeavy88MinRepeat
Definition: IRremoteESP8266.h:941
const uint8_t kMitsubishiHeavy88SwingHOff
Definition: ir_MitsubishiHeavy.h:95
void setSwingHorizontal(const uint8_t pos)
Set the Horizontal Swing mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:211
static bool validChecksum(const uint8_t *state, const uint16_t length=kMitsubishiHeavy152StateLength)
Verify the checksum is valid for a given state.
Definition: ir_MitsubishiHeavy.cpp:338
const uint8_t kMitsubishiHeavy152SwingVOff
Definition: ir_MitsubishiHeavy.h:71
const uint8_t kMitsubishiHeavy152SwingVLowest
Definition: ir_MitsubishiHeavy.h:70
void setRaw(const uint8_t *data)
Set the internal state from a valid code for this protocol.
Definition: ir_MitsubishiHeavy.cpp:111
const uint8_t kMitsubishiHeavy88SwingHLeftRight
Definition: ir_MitsubishiHeavy.h:103
const uint8_t kMitsubishiHeavy88FanAuto
Definition: ir_MitsubishiHeavy.h:108
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:174
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition: ir_MitsubishiHeavy.cpp:440
const uint8_t kMitsubishiHeavy88FanMed
Definition: ir_MitsubishiHeavy.h:110
void setTurbo(const bool on)
Set the Turbo mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:288
uint8_t remote_state[kMitsubishiHeavy152StateLength]
State in code form.
Definition: ir_MitsubishiHeavy.h:215
bool getFilter(void)
Get the Filter mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:269
bool get3D(void)
Get the 3D mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:833
const uint8_t kMitsubishiHeavy88SwingHRightMax
Definition: ir_MitsubishiHeavy.h:101
const uint8_t kMitsubishiHeavy152SwingVOffset
Definition: ir_MitsubishiHeavy.h:63
void setPower(const bool on)
Change the power setting.
Definition: ir_MitsubishiHeavy.cpp:659
const uint8_t kMitsubishiHeavy88SwingVByte7Size
Definition: ir_MitsubishiHeavy.h:117
const uint8_t kMitsubishiHeavy152FanHigh
Definition: ir_MitsubishiHeavy.h:57
void setFilter(const bool on)
Set the Filter mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:263
static bool validChecksum(const uint8_t *state, const uint16_t length=kMitsubishiHeavy88StateLength)
Verify the checksum is valid for a given state.
Definition: ir_MitsubishiHeavy.cpp:873
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_MitsubishiHeavy.cpp:620
const uint8_t kMitsubishiHeavy152SwingHRightMax
Definition: ir_MitsubishiHeavy.h:78
void set3D(const bool on)
Set the 3D mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:236
const uint8_t kMitsubishiHeavy152SwingHMiddle
Definition: ir_MitsubishiHeavy.h:76
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_MitsubishiHeavy.cpp:383
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:220
const uint8_t kMitsubishiHeavy152FanTurbo
Definition: ir_MitsubishiHeavy.h:60
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition: ir_MitsubishiHeavy.cpp:455
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition: ir_MitsubishiHeavy.cpp:918
const uint8_t kMitsubishiHeavyDry
Definition: ir_MitsubishiHeavy.h:43
uint8_t getFan(void)
Get the current fan speed setting.
Definition: ir_MitsubishiHeavy.cpp:168
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition: ir_MitsubishiHeavy.cpp:947
Structure to hold a common A/C state.
Definition: IRsend.h:97
const uint8_t kMitsubishiHeavy88FanSize
Definition: ir_MitsubishiHeavy.h:107
const uint8_t kMitsubishiHeavy88SwingVByte7Offset
Definition: ir_MitsubishiHeavy.h:116
const uint8_t kMitsubishiHeavy88SwingVHigh
Definition: ir_MitsubishiHeavy.h:123
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition: ir_MitsubishiHeavy.cpp:962
void send(const uint16_t repeat=kMitsubishiHeavy88MinRepeat)
Send the current internal state as an IR message.
Definition: ir_MitsubishiHeavy.cpp:625
void send(const uint16_t repeat=kMitsubishiHeavy152MinRepeat)
Send the current internal state as an IR message.
Definition: ir_MitsubishiHeavy.cpp:88
const uint8_t kMitsubishiHeavy88CleanOffset
Definition: ir_MitsubishiHeavy.h:91
uint8_t getMode(void)
Get the operating mode setting of the A/C.
Definition: ir_MitsubishiHeavy.cpp:727
const uint8_t kMitsubishiHeavyAuto
Definition: ir_MitsubishiHeavy.h:41
const uint8_t kMitsubishiHeavy152FanEcono
Definition: ir_MitsubishiHeavy.h:59
bool get3D(void)
Get the 3D mode of the A/C.
Definition: ir_MitsubishiHeavy.cpp:245
const uint8_t kMitsubishiHeavy152FanMax
Definition: ir_MitsubishiHeavy.h:58
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46