IRremoteESP8266: src/ir_Hitachi.h Source File

IRremoteESP8266

ir_Hitachi.h
Go to the documentation of this file.
1 // Copyright 2018-2020 David Conran
10
11 // Supports:
12 // Brand: Hitachi, Model: RAS-35THA6 remote
13 // Brand: Hitachi, Model: LT0541-HTA remote (HITACHI_AC1)
14 // Brand: Hitachi, Model: Series VI A/C (Circa 2007) (HITACHI_AC1)
15 // Brand: Hitachi, Model: RAR-8P2 remote (HITACHI_AC424)
16 // Brand: Hitachi, Model: RAS-AJ25H A/C (HITACHI_AC424)
17 // Brand: Hitachi, Model: PC-LH3B (HITACHI_AC3)
18 // Brand: Hitachi, Model: KAZE-312KSDP A/C (HITACHI_AC1)
19 // Brand: Hitachi, Model: R-LT0541-HTA/Y.K.1.1-1 V2.3 remote (HITACHI_AC1)
20 // Brand: Hitachi, Model: RAS-22NK A/C (HITACHI_AC344)
21 // Brand: Hitachi, Model: RF11T1 remote (HITACHI_AC344)
22
23 #ifndef IR_HITACHI_H_
24 #define IR_HITACHI_H_
25
26 #define __STDC_LIMIT_MACROS
27 #include <stdint.h>
28 #ifndef UNIT_TEST
29 #include <Arduino.h>
30 #endif
31 #include "IRremoteESP8266.h"
32 #include "IRsend.h"
33 #ifdef UNIT_TEST
34 #include "IRsend_test.h"
35 #endif
36
38 union HitachiProtocol{
39 uint8_t raw[kHitachiAcStateLength];
40 struct {
41 // Byte 0~9
42 uint8_t pad0[10];
43 // Byte 10
44 uint8_t Mode :8;
45 // Byte 11
46 uint8_t Temp :8;
47 // Byte 12
48 uint8_t :8;
49 // Byte 13
50 uint8_t Fan :8;
51 // Byte 14
52 uint8_t :7;
53 uint8_t SwingV :1;
54 // Byte 15
55 uint8_t :7;
56 uint8_t SwingH :1;
57 // Byte 16
58 uint8_t :8;
59 // Byte 17
60 uint8_t Power :1;
61 uint8_t :7;
62 // Byte 18~26
63 uint8_t pad1[9];
64 // Byte 27
65 uint8_t Sum :8;
66 };
67 };
68
69 // Constants
70 const uint16_t kHitachiAcFreq = 38000; // Hz.
71 const uint8_t kHitachiAcAuto = 2;
72 const uint8_t kHitachiAcHeat = 3;
73 const uint8_t kHitachiAcCool = 4;
74 const uint8_t kHitachiAcDry = 5;
75 const uint8_t kHitachiAcFan = 0xC;
76 const uint8_t kHitachiAcFanAuto = 1;
77 const uint8_t kHitachiAcFanLow = 2;
78 const uint8_t kHitachiAcFanMed = 3;
79 const uint8_t kHitachiAcFanHigh = 5;
80 const uint8_t kHitachiAcMinTemp = 16; // 16C
81 const uint8_t kHitachiAcMaxTemp = 32; // 32C
82 const uint8_t kHitachiAcAutoTemp = 23; // 23C
83
85 union Hitachi424Protocol{
86 uint8_t raw[kHitachiAc424StateLength];
87 struct {
88 // Byte 0~10
89 uint8_t pad0[11];
90 // Byte 11
91 uint8_t Button :8;
92 // Byte 12
93 uint8_t :8;
94 // Byte 13
95 uint8_t :2;
96 uint8_t Temp :6;
97 // Byte 14~24
98 uint8_t pad1[11];
99 // Byte 25
100 uint8_t Mode :4;
101 uint8_t Fan :4;
102 // Byte 26
103 uint8_t :8;
104 // Byte 27
105 uint8_t Power :8;
106 // Byte 28~34
107 uint8_t pad2[7];
108 // Byte 35
109 uint8_t SwingH :3;
110 uint8_t :5;
111 // Byte 36
112 uint8_t :8;
113 // Byte 37
114 uint8_t :5;
115 uint8_t SwingV :1;
116 uint8_t :2;
117 };
118 };
119
120 // HitachiAc424 & HitachiAc344
121 const uint8_t kHitachiAc424ButtonPowerMode = 0x13;
122 const uint8_t kHitachiAc424ButtonFan = 0x42;
123 const uint8_t kHitachiAc424ButtonTempDown = 0x43;
124 const uint8_t kHitachiAc424ButtonTempUp = 0x44;
125 const uint8_t kHitachiAc424ButtonSwingV = 0x81;
126 const uint8_t kHitachiAc424ButtonSwingH = 0x8C;
127 const uint8_t kHitachiAc344ButtonPowerMode = kHitachiAc424ButtonPowerMode;
128 const uint8_t kHitachiAc344ButtonFan = kHitachiAc424ButtonFan;
129 const uint8_t kHitachiAc344ButtonTempDown = kHitachiAc424ButtonTempDown;
130 const uint8_t kHitachiAc344ButtonTempUp = kHitachiAc424ButtonTempUp;
131 const uint8_t kHitachiAc344ButtonSwingV = kHitachiAc424ButtonSwingV;
132 const uint8_t kHitachiAc344ButtonSwingH = kHitachiAc424ButtonSwingH;
133
134 const uint8_t kHitachiAc424MinTemp = 16; // 16C
135 const uint8_t kHitachiAc424MaxTemp = 32; // 32C
136 const uint8_t kHitachiAc344MinTemp = kHitachiAc424MinTemp;
137 const uint8_t kHitachiAc344MaxTemp = kHitachiAc424MaxTemp;
138 const uint8_t kHitachiAc424FanTemp = 27; // 27C
139
140 const uint8_t kHitachiAc424Fan = 1;
141 const uint8_t kHitachiAc424Cool = 3;
142 const uint8_t kHitachiAc424Dry = 5;
143 const uint8_t kHitachiAc424Heat = 6;
144 const uint8_t kHitachiAc344Fan = kHitachiAc424Fan;
145 const uint8_t kHitachiAc344Cool = kHitachiAc424Cool;
146 const uint8_t kHitachiAc344Dry = kHitachiAc424Dry;
147 const uint8_t kHitachiAc344Heat = kHitachiAc424Heat;
148
149 const uint8_t kHitachiAc424FanMin = 1;
150 const uint8_t kHitachiAc424FanLow = 2;
151 const uint8_t kHitachiAc424FanMedium = 3;
152 const uint8_t kHitachiAc424FanHigh = 4;
153 const uint8_t kHitachiAc424FanAuto = 5;
154 const uint8_t kHitachiAc424FanMax = 6;
155 const uint8_t kHitachiAc424FanMaxDry = 2;
156 const uint8_t kHitachiAc344FanMin = kHitachiAc424FanMin;
157 const uint8_t kHitachiAc344FanLow = kHitachiAc424FanLow;
158 const uint8_t kHitachiAc344FanMedium = kHitachiAc424FanMedium;
159 const uint8_t kHitachiAc344FanHigh = kHitachiAc424FanHigh;
160 const uint8_t kHitachiAc344FanAuto = kHitachiAc424FanAuto;
161 const uint8_t kHitachiAc344FanMax = kHitachiAc424FanMax;
162
163 const uint8_t kHitachiAc424PowerOn = 0xF1;
164 const uint8_t kHitachiAc424PowerOff = 0xE1;
165
166 const uint8_t kHitachiAc344SwingHAuto = 0; // 0b000
167 const uint8_t kHitachiAc344SwingHRightMax = 1; // 0b001
168 const uint8_t kHitachiAc344SwingHRight = 2; // 0b010
169 const uint8_t kHitachiAc344SwingHMiddle = 3; // 0b011
170 const uint8_t kHitachiAc344SwingHLeft = 4; // 0b100
171 const uint8_t kHitachiAc344SwingHLeftMax = 5; // 0b101
172
173
175 union Hitachi1Protocol{
176 uint8_t raw[kHitachiAc1StateLength];
177 struct {
178 // Byte 0~2
179 uint8_t pad[3];
180 // Byte 3
181 uint8_t :6;
182 uint8_t Model :2;
183 // Byte 4
184 uint8_t :8;
185 // Byte 5
186 uint8_t Fan :4;
187 uint8_t Mode :4;
188 // Byte 6
189 uint8_t :2;
190 uint8_t Temp :5; // stored in LSB order.
191 uint8_t :1;
192 // Byte 7
193 uint8_t OffTimerLow :8; // nr. of minutes
194 // Byte 8
195 uint8_t OffTimerHigh :8; // & in LSB order.
196 // Byte 9
197 uint8_t OnTimerLow :8; // nr. of minutes
198 // Byte 10
199 uint8_t OnTimerHigh :8; // & in LSB order.
200 // Byte 11
201 uint8_t SwingToggle :1;
202 uint8_t Sleep :3;
203 uint8_t PowerToggle :1;
204 uint8_t Power :1;
205 uint8_t SwingV :1;
206 uint8_t SwingH :1;
207 // Byte 12
208 uint8_t Sum :8;
209 };
210 };
211 // HitachiAc1
212 // Model
213 const uint8_t kHitachiAc1Model_A = 0b10;
214 const uint8_t kHitachiAc1Model_B = 0b01;
215
216 // Mode & Fan
217 const uint8_t kHitachiAc1Dry = 0b0010; // 2
218 const uint8_t kHitachiAc1Fan = 0b0100; // 4
219 const uint8_t kHitachiAc1Cool = 0b0110; // 6
220 const uint8_t kHitachiAc1Heat = 0b1001; // 9
221 const uint8_t kHitachiAc1Auto = 0b1110; // 14
222 const uint8_t kHitachiAc1FanAuto = 1; // 0b0001
223 const uint8_t kHitachiAc1FanHigh = 2; // 0b0010
224 const uint8_t kHitachiAc1FanMed = 4; // 0b0100
225 const uint8_t kHitachiAc1FanLow = 8; // 0b1000
226
227 // Temp
228 const uint8_t kHitachiAc1TempSize = 5; // Mask 0b01111100
229 const uint8_t kHitachiAc1TempDelta = 7;
230 const uint8_t kHitachiAc1TempAuto = 25; // Celsius
231 // Timer
232 const uint8_t kHitachiAc1TimerSize = 16; // Mask 0b1111111111111111
233 // Sleep
234 const uint8_t kHitachiAc1SleepOff = 0b000;
235 const uint8_t kHitachiAc1Sleep1 = 0b001;
236 const uint8_t kHitachiAc1Sleep2 = 0b010;
237 const uint8_t kHitachiAc1Sleep3 = 0b011;
238 const uint8_t kHitachiAc1Sleep4 = 0b100;
239 // Checksum
240 const uint8_t kHitachiAc1ChecksumStartByte = 5;
241
242
243 // Classes
246 class IRHitachiAc {
247 public:
248 explicit IRHitachiAc(const uint16_t pin, const bool inverted = false,
249 const bool use_modulation = true);
250 void stateReset(void);
251 #if SEND_HITACHI_AC
252 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
257 int8_t calibrate(void) { return _irsend.calibrate(); }
258 #endif // SEND_HITACHI_AC
259 void begin(void);
260 void on(void);
261 void off(void);
262 void setPower(const bool on);
263 bool getPower(void) const;
264 void setTemp(const uint8_t temp);
265 uint8_t getTemp(void) const;
266 void setFan(const uint8_t speed);
267 uint8_t getFan(void) const;
268 void setMode(const uint8_t mode);
269 uint8_t getMode(void) const;
270 void setSwingVertical(const bool on);
271 bool getSwingVertical(void) const;
272 void setSwingHorizontal(const bool on);
273 bool getSwingHorizontal(void) const;
274 uint8_t* getRaw(void);
275 void setRaw(const uint8_t new_code[],
276 const uint16_t length = kHitachiAcStateLength);
277 static bool validChecksum(const uint8_t state[],
278 const uint16_t length = kHitachiAcStateLength);
279 static uint8_t calcChecksum(const uint8_t state[],
280 const uint16_t length = kHitachiAcStateLength);
281 static uint8_t convertMode(const stdAc::opmode_t mode);
282 static uint8_t convertFan(const stdAc::fanspeed_t speed);
283 static stdAc::opmode_t toCommonMode(const uint8_t mode);
284 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
285 stdAc::state_t toCommon(void) const;
286 String toString(void) const;
287 #ifndef UNIT_TEST
288
289 private:
290 IRsend _irsend;
291 #else // UNIT_TEST
292 IRsendTest _irsend;
294 #endif // UNIT_TEST
296 HitachiProtocol _;
297 void checksum(const uint16_t length = kHitachiAcStateLength);
298 uint8_t _previoustemp;
299 };
300
303 class IRHitachiAc1 {
304 public:
305 explicit IRHitachiAc1(const uint16_t pin, const bool inverted = false,
306 const bool use_modulation = true);
307
308 void stateReset(void);
309 #if SEND_HITACHI_AC1
310 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
315 int8_t calibrate(void) { return _irsend.calibrate(); }
316 #endif // SEND_HITACHI_AC1
317 void begin(void);
318 void on(void);
319 void off(void);
320 void setModel(const hitachi_ac1_remote_model_t model);
321 hitachi_ac1_remote_model_t getModel(void) const;
322 void setPower(const bool on);
323 bool getPower(void) const;
324 void setPowerToggle(const bool on);
325 bool getPowerToggle(void) const;
326 void setTemp(const uint8_t temp);
327 uint8_t getTemp(void) const;
328 void setFan(const uint8_t speed, const bool force = false);
329 uint8_t getFan(void) const;
330 void setMode(const uint8_t mode);
331 uint8_t getMode(void) const;
332 void setSwingToggle(const bool toggle);
333 bool getSwingToggle(void) const;
334 void setSwingV(const bool on);
335 bool getSwingV(void) const;
336 void setSwingH(const bool on);
337 bool getSwingH(void) const;
338 void setSleep(const uint8_t mode);
339 uint8_t getSleep(void) const;
340 void setOnTimer(const uint16_t mins);
341 uint16_t getOnTimer(void) const;
342 void setOffTimer(const uint16_t mins);
343 uint16_t getOffTimer(void) const;
344 uint8_t* getRaw(void);
345 void setRaw(const uint8_t new_code[],
346 const uint16_t length = kHitachiAc1StateLength);
347 static bool validChecksum(const uint8_t state[],
348 const uint16_t length = kHitachiAc1StateLength);
349 static uint8_t calcChecksum(const uint8_t state[],
350 const uint16_t length = kHitachiAc1StateLength);
351 static uint8_t convertMode(const stdAc::opmode_t mode);
352 static uint8_t convertFan(const stdAc::fanspeed_t speed);
353 static stdAc::opmode_t toCommonMode(const uint8_t mode);
354 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
355 stdAc::state_t toCommon(void) const;
356 String toString(void) const;
357 #ifndef UNIT_TEST
358
359 private:
360 IRsend _irsend;
361 #else // UNIT_TEST
362 IRsendTest _irsend;
364 #endif // UNIT_TEST
366 Hitachi1Protocol _;
367 void checksum(const uint16_t length = kHitachiAc1StateLength);
368 };
369
371 class IRHitachiAc424 {
372 friend class IRHitachiAc344;
373 public:
374 explicit IRHitachiAc424(const uint16_t pin, const bool inverted = false,
375 const bool use_modulation = true);
376 virtual void stateReset(void);
377 #if SEND_HITACHI_AC424
378 virtual void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
383 int8_t calibrate(void) { return _irsend.calibrate(); }
384 #endif // SEND_HITACHI_AC424
385 void begin(void);
386 void on(void);
387 void off(void);
388 void setPower(const bool on);
389 bool getPower(void) const;
390 void setTemp(const uint8_t temp, bool setPrevious = true);
391 uint8_t getTemp(void) const;
392 void setFan(const uint8_t speed);
393 uint8_t getFan(void) const;
394 uint8_t getButton(void) const;
395 void setButton(const uint8_t button);
396 void setSwingVToggle(const bool on);
397 bool getSwingVToggle(void) const;
398 void setMode(const uint8_t mode);
399 uint8_t getMode(void) const;
400 uint8_t* getRaw(void);
401 virtual void setRaw(const uint8_t new_code[],
402 const uint16_t length = kHitachiAc424StateLength);
403 static uint8_t convertMode(const stdAc::opmode_t mode);
404 static uint8_t convertFan(const stdAc::fanspeed_t speed);
405 static stdAc::opmode_t toCommonMode(const uint8_t mode);
406 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
407 virtual stdAc::state_t toCommon(void) const;
408 virtual String toString(void) const;
409 #ifndef UNIT_TEST
410
411 private:
412 IRsend _irsend;
413 #else // UNIT_TEST
414 IRsendTest _irsend;
416 #endif // UNIT_TEST
418 Hitachi424Protocol _;
419 void setInvertedStates(void);
420 String _toString(void) const;
421 uint8_t _previoustemp;
422 };
423
425 class IRHitachiAc3 {
426 public:
427 explicit IRHitachiAc3(const uint16_t pin, const bool inverted = false,
428 const bool use_modulation = true);
429
430 void stateReset(void);
431 #if SEND_HITACHI_AC3
432 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
437 int8_t calibrate(void) { return _irsend.calibrate(); }
438 #endif // SEND_HITACHI_AC3
439 void begin(void);
440 uint8_t getMode(void);
441 uint8_t* getRaw(void);
442 void setRaw(const uint8_t new_code[],
443 const uint16_t length = kHitachiAc3StateLength);
444 static bool hasInvertedStates(const uint8_t state[], const uint16_t length);
445 #ifndef UNIT_TEST
446
447 private:
448 IRsend _irsend;
449 #else // UNIT_TEST
450 IRsendTest _irsend;
452 #endif // UNIT_TEST
454 uint8_t remote_state[kHitachiAc3StateLength];
455 void setInvertedStates(const uint16_t length = kHitachiAc3StateLength);
456 };
457
459 class IRHitachiAc344: public IRHitachiAc424 {
460 public:
461 explicit IRHitachiAc344(const uint16_t pin, const bool inverted = false,
462 const bool use_modulation = true);
463 void stateReset(void) override;
464 void setRaw(const uint8_t new_code[],
465 const uint16_t length = kHitachiAc344StateLength) override;
466 stdAc::state_t toCommon(void) const override;
467 #if SEND_HITACHI_AC344
468 void send(const uint16_t repeat = kHitachiAcDefaultRepeat) override;
469 #endif // SEND_HITACHI_AC344
470 void setSwingV(const bool on);
471 bool getSwingV(void) const;
472 void setSwingH(const uint8_t position);
473 uint8_t getSwingH(void) const;
474 static uint8_t convertSwingH(const stdAc::swingh_t position);
475 static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
476 String toString(void) const override;
477 };
478 #endif // IR_HITACHI_H_
IRHitachiAc424::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Hitachi.cpp:1064
IRHitachiAc424::_previoustemp
uint8_t _previoustemp
Definition: ir_Hitachi.h:421
kHitachiAc424Fan
const uint8_t kHitachiAc424Fan
Definition: ir_Hitachi.h:140
IRHitachiAc1::calcChecksum
static uint8_t calcChecksum(const uint8_t state[], const uint16_t length=kHitachiAc1StateLength)
Calculate the checksum for a given state.
Definition: ir_Hitachi.cpp:446
HitachiProtocol::Mode
uint8_t Mode
Definition: ir_Hitachi.h:44
kHitachiAc1Fan
const uint8_t kHitachiAc1Fan
Definition: ir_Hitachi.h:218
kHitachiAc344SwingHRightMax
const uint8_t kHitachiAc344SwingHRightMax
Definition: ir_Hitachi.h:167
IRHitachiAc3::IRHitachiAc3
IRHitachiAc3(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Hitachi.cpp:1350
IRHitachiAc424::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Hitachi.cpp:1083
kHitachiAcMinTemp
const uint8_t kHitachiAcMinTemp
Definition: ir_Hitachi.h:80
IRHitachiAc::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Hitachi.cpp:363
IRHitachiAc424::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Hitachi.h:412
IRHitachiAc424::setTemp
void setTemp(const uint8_t temp, bool setPrevious=true)
Set the temperature.
Definition: ir_Hitachi.cpp:1108
kHitachiAcMaxTemp
const uint8_t kHitachiAcMaxTemp
Definition: ir_Hitachi.h:81
IRHitachiAc1::setSleep
void setSleep(const uint8_t mode)
Set the Sleep setting of the A/C.
Definition: ir_Hitachi.cpp:680
IRHitachiAc::stateReset
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Hitachi.cpp:138
IRHitachiAc424::off
void off(void)
Change the power setting to Off.
Definition: ir_Hitachi.cpp:1073
kHitachiAcAuto
const uint8_t kHitachiAcAuto
Definition: ir_Hitachi.h:71
Hitachi1Protocol::Sleep
uint8_t Sleep
Definition: ir_Hitachi.h:202
IRHitachiAc1::getTemp
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Hitachi.cpp:583
IRHitachiAc3::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Hitachi.h:448
HitachiProtocol::pad0
uint8_t pad0[10]
Definition: ir_Hitachi.h:42
kHitachiAc344ButtonFan
const uint8_t kHitachiAc344ButtonFan
Definition: ir_Hitachi.h:128
HitachiProtocol
Native representation of a Hitachi 224-bit A/C message.
Definition: ir_Hitachi.h:38
kHitachiAc1Model_A
const uint8_t kHitachiAc1Model_A
Definition: ir_Hitachi.h:213
kHitachiAc344ButtonPowerMode
const uint8_t kHitachiAc344ButtonPowerMode
Definition: ir_Hitachi.h:127
Hitachi1Protocol::Power
uint8_t Power
Definition: ir_Hitachi.h:204
IRHitachiAc::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Hitachi.cpp:279
IRHitachiAc1::setPowerToggle
void setPowerToggle(const bool on)
Change the power toggle setting.
Definition: ir_Hitachi.cpp:543
IRHitachiAc344::convertSwingH
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a standard A/C horizontal swing into its native setting.
Definition: ir_Hitachi.cpp:1525
IRHitachiAc1::checksum
void checksum(const uint16_t length=kHitachiAc1StateLength)
Calculate and set the checksum values for the internal state.
Definition: ir_Hitachi.cpp:460
kHitachiAcStateLength
const uint16_t kHitachiAcStateLength
Definition: IRremoteESP8266.h:979
IRHitachiAc::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Hitachi.cpp:209
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
kHitachiAc344SwingHRight
const uint8_t kHitachiAc344SwingHRight
Definition: ir_Hitachi.h:168
IRHitachiAc3::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Hitachi.cpp:1391
IRHitachiAc3::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Hitachi.h:437
Hitachi1Protocol::OnTimerLow
uint8_t OnTimerLow
Definition: ir_Hitachi.h:197
IRHitachiAc::setSwingVertical
void setSwingVertical(const bool on)
Set the Vertical Swing setting of the A/C.
Definition: ir_Hitachi.cpp:304
Hitachi424Protocol::raw
uint8_t raw[kHitachiAc424StateLength]
The state in native code.
Definition: ir_Hitachi.h:86
IRHitachiAc1::stateReset
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Hitachi.cpp:425
Hitachi1Protocol
Native representation of a Hitachi 104-bit A/C message.
Definition: ir_Hitachi.h:175
IRHitachiAc3::send
void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
IRHitachiAc::setSwingHorizontal
void setSwingHorizontal(const bool on)
Set the Horizontal Swing setting of the A/C.
Definition: ir_Hitachi.cpp:316
IRHitachiAc424::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Hitachi.cpp:1128
IRHitachiAc424::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Hitachi.cpp:1077
Hitachi1Protocol::pad
uint8_t pad[3]
Definition: ir_Hitachi.h:179
IRHitachiAc::getSwingHorizontal
bool getSwingHorizontal(void) const
Get the Horizontal Swing setting of the A/C.
Definition: ir_Hitachi.cpp:310
Hitachi1Protocol::SwingToggle
uint8_t SwingToggle
Definition: ir_Hitachi.h:201
kHitachiAc1StateLength
const uint16_t kHitachiAc1StateLength
Definition: IRremoteESP8266.h:982
IRHitachiAc424::setSwingVToggle
void setSwingVToggle(const bool on)
Set the Vertical Swing toggle setting of the A/C.
Definition: ir_Hitachi.cpp:1174
Hitachi424Protocol::Fan
uint8_t Fan
Definition: ir_Hitachi.h:101
kHitachiAc1ChecksumStartByte
const uint8_t kHitachiAc1ChecksumStartByte
Definition: ir_Hitachi.h:240
Hitachi1Protocol::raw
uint8_t raw[kHitachiAc1StateLength]
The state in native code.
Definition: ir_Hitachi.h:176
kHitachiAc344FanHigh
const uint8_t kHitachiAc344FanHigh
Definition: ir_Hitachi.h:159
IRHitachiAc1::setOnTimer
void setOnTimer(const uint16_t mins)
Set the On Timer time.
Definition: ir_Hitachi.cpp:693
kHitachiAcFanHigh
const uint8_t kHitachiAcFanHigh
Definition: ir_Hitachi.h:79
HitachiProtocol::pad1
uint8_t pad1[9]
Definition: ir_Hitachi.h:63
kHitachiAc1Sleep3
const uint8_t kHitachiAc1Sleep3
Definition: ir_Hitachi.h:237
IRHitachiAc1::getModel
hitachi_ac1_remote_model_t getModel(void) const
Get/Detect the model of the A/C.
Definition: ir_Hitachi.cpp:500
kHitachiAc1TimerSize
const uint8_t kHitachiAc1TimerSize
Definition: ir_Hitachi.h:232
kHitachiAc344Fan
const uint8_t kHitachiAc344Fan
Definition: ir_Hitachi.h:144
Hitachi424Protocol::Mode
uint8_t Mode
Definition: ir_Hitachi.h:100
IRHitachiAc424
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:371
IRHitachiAc424::setInvertedStates
void setInvertedStates(void)
Update the internal consistency check for the protocol.
Definition: ir_Hitachi.cpp:1027
IRHitachiAc1::IRHitachiAc1
IRHitachiAc1(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Hitachi.cpp:420
IRHitachiAc1::send
void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Hitachi.cpp:490
kHitachiAc1Sleep1
const uint8_t kHitachiAc1Sleep1
Definition: ir_Hitachi.h:235
IRHitachiAc344::send
void send(const uint16_t repeat=kHitachiAcDefaultRepeat) override
Create and send the IR message to the A/C.
Definition: ir_Hitachi.cpp:1481
IRHitachiAc::IRHitachiAc
IRHitachiAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Hitachi.cpp:133
IRHitachiAc::_
HitachiProtocol _
Definition: ir_Hitachi.h:296
IRsend.h
Hitachi1Protocol::SwingH
uint8_t SwingH
Definition: ir_Hitachi.h:206
kHitachiAc1Auto
const uint8_t kHitachiAc1Auto
Definition: ir_Hitachi.h:221
IRHitachiAc344::setSwingV
void setSwingV(const bool on)
Control the vertical swing setting.
Definition: ir_Hitachi.cpp:1495
kHitachiAc344MaxTemp
const uint8_t kHitachiAc344MaxTemp
Definition: ir_Hitachi.h:137
kHitachiAc3StateLength
const uint16_t kHitachiAc3StateLength
Definition: IRremoteESP8266.h:986
IRHitachiAc::getTemp
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Hitachi.cpp:249
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:139
IRHitachiAc1::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Hitachi.h:315
kHitachiAc424ButtonSwingH
const uint8_t kHitachiAc424ButtonSwingH
Definition: ir_Hitachi.h:126
kHitachiAc424ButtonTempDown
const uint8_t kHitachiAc424ButtonTempDown
Definition: ir_Hitachi.h:123
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:187
kHitachiAc344SwingHAuto
const uint8_t kHitachiAc344SwingHAuto
Definition: ir_Hitachi.h:166
IRHitachiAc1::setSwingH
void setSwingH(const bool on)
Set the Horizontal Swing setting of the A/C.
Definition: ir_Hitachi.cpp:666
kHitachiAc344Heat
const uint8_t kHitachiAc344Heat
Definition: ir_Hitachi.h:147
IRHitachiAc
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:246
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
kHitachiAc344SwingHLeftMax
const uint8_t kHitachiAc344SwingHLeftMax
Definition: ir_Hitachi.h:171
IRHitachiAc1::validChecksum
static bool validChecksum(const uint8_t state[], const uint16_t length=kHitachiAc1StateLength)
Verify the checksum is valid for a given state.
Definition: ir_Hitachi.cpp:468
IRHitachiAc1::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Hitachi.cpp:724
Hitachi424Protocol::SwingV
uint8_t SwingV
Definition: ir_Hitachi.h:115
kHitachiAc1FanLow
const uint8_t kHitachiAc1FanLow
Definition: ir_Hitachi.h:225
IRHitachiAc344
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:459
kHitachiAc424MinTemp
const uint8_t kHitachiAc424MinTemp
Definition: ir_Hitachi.h:134
IRHitachiAc344::toString
String toString(void) const override
Convert the internal state into a human readable string.
Definition: ir_Hitachi.cpp:1562
IRHitachiAc1::_
Hitachi1Protocol _
Definition: ir_Hitachi.h:366
kHitachiAc344FanAuto
const uint8_t kHitachiAc344FanAuto
Definition: ir_Hitachi.h:160
String
std::string String
Definition: IRremoteESP8266.h:1199
Hitachi1Protocol::Sum
uint8_t Sum
Definition: ir_Hitachi.h:208
kHitachiAc1Model_B
const uint8_t kHitachiAc1Model_B
Definition: ir_Hitachi.h:214
IRHitachiAc1::getSwingToggle
bool getSwingToggle(void) const
Get the Swing Toggle setting of the A/C.
Definition: ir_Hitachi.cpp:636
IRHitachiAc::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Hitachi.cpp:336
IRHitachiAc::calcChecksum
static uint8_t calcChecksum(const uint8_t state[], const uint16_t length=kHitachiAcStateLength)
Calculate the checksum for a given state.
Definition: ir_Hitachi.cpp:163
kHitachiAc1FanHigh
const uint8_t kHitachiAc1FanHigh
Definition: ir_Hitachi.h:223
kHitachiAc424ButtonSwingV
const uint8_t kHitachiAc424ButtonSwingV
Definition: ir_Hitachi.h:125
kHitachiAcDry
const uint8_t kHitachiAcDry
Definition: ir_Hitachi.h:74
IRHitachiAc424::setButton
void setButton(const uint8_t button)
Set the Button/Command pressed setting of the A/C.
Definition: ir_Hitachi.cpp:1166
kHitachiAc1Sleep2
const uint8_t kHitachiAc1Sleep2
Definition: ir_Hitachi.h:236
kHitachiAc424ButtonTempUp
const uint8_t kHitachiAc424ButtonTempUp
Definition: ir_Hitachi.h:124
IRHitachiAc3::stateReset
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Hitachi.cpp:1356
IRHitachiAc424::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Hitachi.cpp:1036
kHitachiAc424ButtonFan
const uint8_t kHitachiAc424ButtonFan
Definition: ir_Hitachi.h:122
kHitachiAcFanAuto
const uint8_t kHitachiAcFanAuto
Definition: ir_Hitachi.h:76
kHitachiAc344Dry
const uint8_t kHitachiAc344Dry
Definition: ir_Hitachi.h:146
IRHitachiAc3
Class for handling detailed Hitachi 15to27-byte/120to216-bit A/C messages.
Definition: ir_Hitachi.h:425
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
IRHitachiAc1::setModel
void setModel(const hitachi_ac1_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_Hitachi.cpp:509
kHitachiAc344FanLow
const uint8_t kHitachiAc344FanLow
Definition: ir_Hitachi.h:157
kHitachiAc424FanMaxDry
const uint8_t kHitachiAc424FanMaxDry
Definition: ir_Hitachi.h:155
kHitachiAc424FanHigh
const uint8_t kHitachiAc424FanHigh
Definition: ir_Hitachi.h:152
IRHitachiAc1::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Hitachi.cpp:600
IRHitachiAc424::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Hitachi.cpp:1122
IRHitachiAc1::setSwingToggle
void setSwingToggle(const bool toggle)
Set the Swing toggle setting of the A/C.
Definition: ir_Hitachi.cpp:642
IRHitachiAc1
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:303
kHitachiAc344SwingHLeft
const uint8_t kHitachiAc344SwingHLeft
Definition: ir_Hitachi.h:170
IRHitachiAc344::getSwingH
uint8_t getSwingH(void) const
Get the current horizontal swing setting.
Definition: ir_Hitachi.cpp:1518
IRHitachiAc424::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Hitachi.cpp:1220
IRHitachiAc1::on
void on(void)
Change the power setting to On.
Definition: ir_Hitachi.cpp:548
kHitachiAc1TempSize
const uint8_t kHitachiAc1TempSize
Definition: ir_Hitachi.h:228
Hitachi1Protocol::Temp
uint8_t Temp
Definition: ir_Hitachi.h:190
IRHitachiAc424::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Hitachi.cpp:1206
HitachiProtocol::Power
uint8_t Power
Definition: ir_Hitachi.h:60
IRHitachiAc1::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Hitachi.cpp:523
Hitachi424Protocol::pad1
uint8_t pad1[11]
Definition: ir_Hitachi.h:98
kHitachiAcFanMed
const uint8_t kHitachiAcFanMed
Definition: ir_Hitachi.h:78
IRHitachiAc1::setTemp
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_Hitachi.cpp:589
IRHitachiAc::on
void on(void)
Change the power setting to On.
Definition: ir_Hitachi.cpp:220
IRHitachiAc3::getMode
uint8_t getMode(void)
IRHitachiAc::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Hitachi.cpp:323
Hitachi424Protocol::Power
uint8_t Power
Definition: ir_Hitachi.h:105
IRHitachiAc3::hasInvertedStates
static bool hasInvertedStates(const uint8_t state[], const uint16_t length)
Check if every second byte of the state, after the fixed header is inverted to the previous byte.
Definition: ir_Hitachi.cpp:1385
kHitachiAc424StateLength
const uint16_t kHitachiAc424StateLength
Definition: IRremoteESP8266.h:992
IRHitachiAc424::toCommon
virtual stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Hitachi.cpp:1246
IRHitachiAc3::remote_state
uint8_t remote_state[kHitachiAc3StateLength]
The state in native code.
Definition: ir_Hitachi.h:454
IRHitachiAc1::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Hitachi.cpp:751
IRHitachiAc::off
void off(void)
Change the power setting to Off.
Definition: ir_Hitachi.cpp:223
kHitachiAc1Heat
const uint8_t kHitachiAc1Heat
Definition: ir_Hitachi.h:220
kHitachiAcFreq
const uint16_t kHitachiAcFreq
Definition: ir_Hitachi.h:70
IRHitachiAc::getSwingVertical
bool getSwingVertical(void) const
Get the Vertical Swing setting of the A/C.
Definition: ir_Hitachi.cpp:298
IRHitachiAc424::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Hitachi.h:383
kHitachiAcFanLow
const uint8_t kHitachiAcFanLow
Definition: ir_Hitachi.h:77
IRHitachiAc344::stateReset
void stateReset(void) override
Reset the internal state to auto fan, cooling, 23° Celsius.
Definition: ir_Hitachi.cpp:1472
kHitachiAc344FanMin
const uint8_t kHitachiAc344FanMin
Definition: ir_Hitachi.h:156
kHitachiAc424FanAuto
const uint8_t kHitachiAc424FanAuto
Definition: ir_Hitachi.h:153
IRHitachiAc::setRaw
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAcStateLength)
Set the internal state from a valid code for this protocol.
Definition: ir_Hitachi.cpp:195
kHitachiAc1FanMed
const uint8_t kHitachiAc1FanMed
Definition: ir_Hitachi.h:224
IRHitachiAc1::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Hitachi.cpp:529
IRHitachiAc1::getSwingH
bool getSwingH(void) const
Get the Horizontal Swing setting of the A/C.
Definition: ir_Hitachi.cpp:660
IRHitachiAc1::toCommon
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Hitachi.cpp:775
IRHitachiAc424::IRHitachiAc424
IRHitachiAc424(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Hitachi.cpp:996
kHitachiAcCool
const uint8_t kHitachiAcCool
Definition: ir_Hitachi.h:73
kHitachiAc1Sleep4
const uint8_t kHitachiAc1Sleep4
Definition: ir_Hitachi.h:238
IRHitachiAc344::toCommonSwingH
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition: ir_Hitachi.cpp:1539
IRHitachiAc1::setRaw
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc1StateLength)
Set the internal state from a valid code for this protocol.
Definition: ir_Hitachi.cpp:483
kHitachiAcHeat
const uint8_t kHitachiAcHeat
Definition: ir_Hitachi.h:72
IRHitachiAc424::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Hitachi.cpp:1032
IRHitachiAc424::IRHitachiAc344
friend class IRHitachiAc344
Definition: ir_Hitachi.h:372
kHitachiAc424MaxTemp
const uint8_t kHitachiAc424MaxTemp
Definition: ir_Hitachi.h:135
IRHitachiAc3::setInvertedStates
void setInvertedStates(const uint16_t length=kHitachiAc3StateLength)
Invert every second byte of the internal state, after the fixed header.
Definition: ir_Hitachi.cpp:1376
IRHitachiAc1::toString
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Hitachi.cpp:803
kHitachiAc344StateLength
const uint16_t kHitachiAc344StateLength
Definition: IRremoteESP8266.h:990
IRHitachiAc::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Hitachi.h:290
IRHitachiAc::send
void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Hitachi.cpp:202
IRHitachiAc424::_
Hitachi424Protocol _
Definition: ir_Hitachi.h:418
kHitachiAc424FanTemp
const uint8_t kHitachiAc424FanTemp
Definition: ir_Hitachi.h:138
kHitachiAc1Cool
const uint8_t kHitachiAc1Cool
Definition: ir_Hitachi.h:219
IRHitachiAc::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Hitachi.cpp:275
IRHitachiAc::_previoustemp
uint8_t _previoustemp
Definition: ir_Hitachi.h:298
kHitachiAc1FanAuto
const uint8_t kHitachiAc1FanAuto
Definition: ir_Hitachi.h:222
IRHitachiAc::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Hitachi.cpp:157
IRHitachiAc1::getOnTimer
uint16_t getOnTimer(void) const
Get the On Timer vtime of the A/C.
Definition: ir_Hitachi.cpp:701
kHitachiAc424PowerOff
const uint8_t kHitachiAc424PowerOff
Definition: ir_Hitachi.h:164
IRHitachiAc424::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Hitachi.cpp:1058
kHitachiAc424FanMin
const uint8_t kHitachiAc424FanMin
Definition: ir_Hitachi.h:149
Hitachi424Protocol::Temp
uint8_t Temp
Definition: ir_Hitachi.h:96
IRHitachiAc424::stateReset
virtual void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Hitachi.cpp:1002
kHitachiAc344FanMax
const uint8_t kHitachiAc344FanMax
Definition: ir_Hitachi.h:161
HitachiProtocol::Temp
uint8_t Temp
Definition: ir_Hitachi.h:46
IRHitachiAc1::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Hitachi.h:360
IRHitachiAc344::getSwingV
bool getSwingV(void) const
Get the current vertical swing setting.
Definition: ir_Hitachi.cpp:1502
kHitachiAc424Dry
const uint8_t kHitachiAc424Dry
Definition: ir_Hitachi.h:142
IRHitachiAc344::setSwingH
void setSwingH(const uint8_t position)
Control the horizontal swing setting.
Definition: ir_Hitachi.cpp:1508
Hitachi424Protocol::pad2
uint8_t pad2[7]
Definition: ir_Hitachi.h:107
IRHitachiAc1::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Hitachi.cpp:561
IRHitachiAc1::getOffTimer
uint16_t getOffTimer(void) const
Get the Off Timer vtime of the A/C.
Definition: ir_Hitachi.cpp:716
kHitachiAcDefaultRepeat
const uint16_t kHitachiAcDefaultRepeat
Definition: IRremoteESP8266.h:981
Hitachi1Protocol::Fan
uint8_t Fan
Definition: ir_Hitachi.h:186
kHitachiAc424PowerOn
const uint8_t kHitachiAc424PowerOn
Definition: ir_Hitachi.h:163
kHitachiAc344SwingHMiddle
const uint8_t kHitachiAc344SwingHMiddle
Definition: ir_Hitachi.h:169
IRHitachiAc::checksum
void checksum(const uint16_t length=kHitachiAcStateLength)
Calculate and set the checksum values for the internal state.
Definition: ir_Hitachi.cpp:172
IRHitachiAc424::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Hitachi.cpp:1193
HitachiProtocol::Fan
uint8_t Fan
Definition: ir_Hitachi.h:50
IRHitachiAc1::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Hitachi.cpp:555
IRHitachiAc1::setFan
void setFan(const uint8_t speed, const bool force=false)
Set the speed of the fan.
Definition: ir_Hitachi.cpp:607
IRHitachiAc1::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Hitachi.cpp:737
IRHitachiAc::toCommon
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Hitachi.cpp:375
IRHitachiAc1::setSwingV
void setSwingV(const bool on)
Set the Vertical Swing setting of the A/C.
Definition: ir_Hitachi.cpp:654
HitachiProtocol::SwingV
uint8_t SwingV
Definition: ir_Hitachi.h:53
Hitachi1Protocol::OffTimerHigh
uint8_t OffTimerHigh
Definition: ir_Hitachi.h:195
IRHitachiAc::toString
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Hitachi.cpp:401
IRHitachiAc::validChecksum
static bool validChecksum(const uint8_t state[], const uint16_t length=kHitachiAcStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Hitachi.cpp:180
kHitachiAc424FanMedium
const uint8_t kHitachiAc424FanMedium
Definition: ir_Hitachi.h:151
IRHitachiAc1::getSwingV
bool getSwingV(void) const
Get the Vertical Swing setting of the A/C.
Definition: ir_Hitachi.cpp:648
kHitachiAc344ButtonTempUp
const uint8_t kHitachiAc344ButtonTempUp
Definition: ir_Hitachi.h:130
IRHitachiAc344::toCommon
stdAc::state_t toCommon(void) const override
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Hitachi.cpp:1552
IRHitachiAc::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Hitachi.cpp:350
kHitachiAc424Cool
const uint8_t kHitachiAc424Cool
Definition: ir_Hitachi.h:141
IRHitachiAc3::setRaw
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc3StateLength)
Set the internal state from a valid code for this protocol.
Definition: ir_Hitachi.cpp:1403
kHitachiAcFan
const uint8_t kHitachiAcFan
Definition: ir_Hitachi.h:75
IRHitachiAc3::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Hitachi.cpp:1395
HitachiProtocol::Sum
uint8_t Sum
Definition: ir_Hitachi.h:65
IRHitachiAc1::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Hitachi.cpp:440
IRHitachiAc1::getPowerToggle
bool getPowerToggle(void) const
Get the value of the current power toggle setting.
Definition: ir_Hitachi.cpp:537
IRHitachiAc::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Hitachi.cpp:187
IRHitachiAc1::setOffTimer
void setOffTimer(const uint16_t mins)
Set the Off Timer time.
Definition: ir_Hitachi.cpp:708
Hitachi1Protocol::Mode
uint8_t Mode
Definition: ir_Hitachi.h:187
IRHitachiAc1::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Hitachi.cpp:764
Hitachi1Protocol::Model
uint8_t Model
Definition: ir_Hitachi.h:182
Hitachi1Protocol::OnTimerHigh
uint8_t OnTimerHigh
Definition: ir_Hitachi.h:199
IRHitachiAc1::getSleep
uint8_t getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Hitachi.cpp:673
IRHitachiAc424::send
virtual void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Hitachi.cpp:1051
kHitachiAc344ButtonSwingH
const uint8_t kHitachiAc344ButtonSwingH
Definition: ir_Hitachi.h:132
IRHitachiAc::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Hitachi.cpp:215
IRHitachiAc::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Hitachi.cpp:227
Hitachi1Protocol::SwingV
uint8_t SwingV
Definition: ir_Hitachi.h:205
IRHitachiAc424::setRaw
virtual void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc424StateLength)
Set the internal state from a valid code for this protocol.
Definition: ir_Hitachi.cpp:1044
IRHitachiAc344::setRaw
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc344StateLength) override
Set the internal state from a valid code for this protocol.
Definition: ir_Hitachi.cpp:1489
kHitachiAc424FanLow
const uint8_t kHitachiAc424FanLow
Definition: ir_Hitachi.h:150
Hitachi1Protocol::PowerToggle
uint8_t PowerToggle
Definition: ir_Hitachi.h:203
kHitachiAcAutoTemp
const uint8_t kHitachiAcAutoTemp
Definition: ir_Hitachi.h:82
Hitachi424Protocol
Native representation of a Hitachi 53-byte/424-bit A/C message.
Definition: ir_Hitachi.h:85
IRHitachiAc::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Hitachi.h:257
kHitachiAc344FanMedium
const uint8_t kHitachiAc344FanMedium
Definition: ir_Hitachi.h:158
kHitachiAc1Dry
const uint8_t kHitachiAc1Dry
Definition: ir_Hitachi.h:217
kHitachiAc344Cool
const uint8_t kHitachiAc344Cool
Definition: ir_Hitachi.h:145
kHitachiAc424FanMax
const uint8_t kHitachiAc424FanMax
Definition: ir_Hitachi.h:154
IRHitachiAc424::getTemp
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Hitachi.cpp:1101
kHitachiAc424Heat
const uint8_t kHitachiAc424Heat
Definition: ir_Hitachi.h:143
IRHitachiAc424::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Hitachi.cpp:1233
IRHitachiAc::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Hitachi.cpp:231
HitachiProtocol::raw
uint8_t raw[kHitachiAcStateLength]
The state in native code.
Definition: ir_Hitachi.h:39
HitachiProtocol::SwingH
uint8_t SwingH
Definition: ir_Hitachi.h:56
Hitachi424Protocol::Button
uint8_t Button
Definition: ir_Hitachi.h:91
Hitachi1Protocol::OffTimerLow
uint8_t OffTimerLow
Definition: ir_Hitachi.h:193
IRHitachiAc424::getSwingVToggle
bool getSwingVToggle(void) const
Get the Vertical Swing toggle setting of the A/C.
Definition: ir_Hitachi.cpp:1186
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
kHitachiAc344ButtonTempDown
const uint8_t kHitachiAc344ButtonTempDown
Definition: ir_Hitachi.h:129
kHitachiAc424ButtonPowerMode
const uint8_t kHitachiAc424ButtonPowerMode
Definition: ir_Hitachi.h:121
kHitachiAc1TempAuto
const uint8_t kHitachiAc1TempAuto
Definition: ir_Hitachi.h:230
kHitachiAc344MinTemp
const uint8_t kHitachiAc344MinTemp
Definition: ir_Hitachi.h:136
kHitachiAc1TempDelta
const uint8_t kHitachiAc1TempDelta
Definition: ir_Hitachi.h:229
IRHitachiAc424::on
void on(void)
Change the power setting to On.
Definition: ir_Hitachi.cpp:1070
IRHitachiAc424::getButton
uint8_t getButton(void) const
Get the Button/Command setting of the A/C.
Definition: ir_Hitachi.cpp:1160
IRHitachiAc1::off
void off(void)
Change the power setting to Off.
Definition: ir_Hitachi.cpp:551
IRHitachiAc424::_toString
String _toString(void) const
Convert the internal state into a human readable string for the settings that are common to protocols...
Definition: ir_Hitachi.cpp:1274
IRHitachiAc1::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Hitachi.cpp:475
kHitachiAc344ButtonSwingV
const uint8_t kHitachiAc344ButtonSwingV
Definition: ir_Hitachi.h:131
kHitachiAc1SleepOff
const uint8_t kHitachiAc1SleepOff
Definition: ir_Hitachi.h:234
IRHitachiAc::setTemp
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_Hitachi.cpp:255
Hitachi424Protocol::SwingH
uint8_t SwingH
Definition: ir_Hitachi.h:109
Hitachi424Protocol::pad0
uint8_t pad0[11]
Definition: ir_Hitachi.h:89
IRHitachiAc424::toString
virtual String toString(void) const
Convert the internal state into a human readable string.
Definition: ir_Hitachi.cpp:1315
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46