IRremoteESP8266
IRremoteESP8266.h
Go to the documentation of this file.
1  /***************************************************
2  * IRremote for ESP8266
3  *
4  * Based on the IRremote library for Arduino by Ken Shirriff
5  * Version 0.11 August, 2009
6  * Copyright 2009 Ken Shirriff
7  * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
8  *
9  * Edited by Mitra to add new controller SANYO
10  *
11  * Interrupt code based on NECIRrcv by Joe Knapp
12  * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556
13  * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/
14  *
15  * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
16  * LG added by Darryl Smith (based on the JVC protocol)
17  * Whynter A/C ARC-110WD added by Francesco Meschia
18  * Coolix A/C / heatpump added by (send) bakrus & (decode) crankyoldgit
19  * Denon: sendDenon, decodeDenon added by Massimiliano Pinto
20  (from https://github.com/z3t0/Arduino-IRremote/blob/master/ir_Denon.cpp)
21  * Kelvinator A/C and Sherwood added by crankyoldgit
22  * Mitsubishi (TV) sending added by crankyoldgit
23  * Pronto code sending added by crankyoldgit
24  * Mitsubishi & Toshiba A/C added by crankyoldgit
25  * (derived from https://github.com/r45635/HVAC-IR-Control)
26  * DISH decode by marcosamarinho
27  * Gree Heatpump sending added by Ville Skyttä (scop)
28  * (derived from https://github.com/ToniA/arduino-heatpumpir/blob/master/GreeHeatpumpIR.cpp)
29  * Updated by markszabo (https://github.com/crankyoldgit/IRremoteESP8266) for sending IR code on ESP8266
30  * Updated by Sebastien Warin (http://sebastien.warin.fr) for receiving IR code on ESP8266
31  *
32  * Updated by sillyfrog for Daikin, adopted from
33  * (https://github.com/mharizanov/Daikin-AC-remote-control-over-the-Internet/)
34  * Fujitsu A/C code added by jonnygraham
35  * Trotec AC code by stufisher
36  * Carrier & Haier AC code by crankyoldgit
37  * Vestel AC code by Erdem U. Altınyurt
38  * Teco AC code by Fabien Valthier (hcoohb)
39  * Mitsubishi 112 AC Code by kuchel77
40  * Kelon AC code by Davide Depau (Depau)
41  *
42  * GPL license, all text above must be included in any redistribution
43  ****************************************************/
44 
45 #ifndef IRREMOTEESP8266_H_
46 #define IRREMOTEESP8266_H_
47 
48 #define __STDC_LIMIT_MACROS
49 #include <stdint.h>
50 #ifdef UNIT_TEST
51 #include <iostream>
52 #include <string>
53 #endif // UNIT_TEST
54 
55 // Library Version
56 #define _IRREMOTEESP8266_VERSION_ "2.7.19"
57 
58 // Set the language & locale for the library. See the `locale` dir for options.
59 #ifndef _IR_LOCALE_
60 #define _IR_LOCALE_ en-AU
61 #endif // _IR_LOCALE_
62 
63 // Do we enable all the protocols by default (true), or disable them (false)?
64 // This allows users of the library to disable or enable all protocols at
65 // compile-time with `-D_IR_ENABLE_DEFAULT_=true` or
66 // `-D_IR_ENABLE_DEFAULT_=false` compiler flags respectively.
67 // Everything is included by default.
68 // e.g. If you only want to enable use of he NEC protocol to save program space,
69 // you would use something like:
70 // `-D_IR_ENABLE_DEFAULT_=false -DDECODE_NEC=true -DSEND_NEC=true`
71 //
72 // or alter your 'platform.ini' file accordingly:
73 // ```
74 // build_flags = -D_IR_ENABLE_DEFAULT_=false
75 // -DDECODE_NEC=true
76 // -DSEND_NEC=true
77 // ```
78 // If you want to enable support for every protocol *except* _decoding_ the
79 // Kelvinator protocol, you would use:
80 // `-DDECODE_KELVINATOR=false`
81 #ifndef _IR_ENABLE_DEFAULT_
82 #define _IR_ENABLE_DEFAULT_ true // Unless set externally, the default is on.
83 #endif // _IR_ENABLE_DEFAULT_
84 
85 // Supported IR protocols
86 // Each protocol you include costs memory and, during decode, costs time
87 // Disable (set to false) all the protocols you do not need/want!
88 // The Air Conditioner protocols are the most expensive memory-wise.
89 //
90 
91 // Semi-unique code for unknown messages
92 #ifndef DECODE_HASH
93 #define DECODE_HASH _IR_ENABLE_DEFAULT_
94 #endif // DECODE_HASH
95 
96 #ifndef SEND_RAW
97 #define SEND_RAW _IR_ENABLE_DEFAULT_
98 #endif // SEND_RAW
99 
100 #ifndef DECODE_NEC
101 #define DECODE_NEC _IR_ENABLE_DEFAULT_
102 #endif // DECODE_NEC
103 #ifndef SEND_NEC
104 #define SEND_NEC _IR_ENABLE_DEFAULT_
105 #endif // SEND_NEC
106 
107 #ifndef DECODE_SHERWOOD
108 #define DECODE_SHERWOOD false // Not applicable. Actually is DECODE_NEC
109 #endif // DECODE_SHERWOOD
110 #ifndef SEND_SHERWOOD
111 #define SEND_SHERWOOD _IR_ENABLE_DEFAULT_
112 #endif // SEND_SHERWOOD
113 
114 #ifndef DECODE_RC5
115 #define DECODE_RC5 _IR_ENABLE_DEFAULT_
116 #endif // DECODE_RC5
117 #ifndef SEND_RC5
118 #define SEND_RC5 _IR_ENABLE_DEFAULT_
119 #endif // SEND_RC5
120 
121 #ifndef DECODE_RC6
122 #define DECODE_RC6 _IR_ENABLE_DEFAULT_
123 #endif // DECODE_RC6
124 #ifndef SEND_RC6
125 #define SEND_RC6 _IR_ENABLE_DEFAULT_
126 #endif // SEND_RC6
127 
128 #ifndef DECODE_RCMM
129 #define DECODE_RCMM _IR_ENABLE_DEFAULT_
130 #endif // DECODE_RCMM
131 #ifndef SEND_RCMM
132 #define SEND_RCMM _IR_ENABLE_DEFAULT_
133 #endif // SEND_RCMM
134 
135 #ifndef DECODE_SONY
136 #define DECODE_SONY _IR_ENABLE_DEFAULT_
137 #endif // DECODE_SONY
138 #ifndef SEND_SONY
139 #define SEND_SONY _IR_ENABLE_DEFAULT_
140 #endif // SEND_SONY
141 
142 #ifndef DECODE_PANASONIC
143 #define DECODE_PANASONIC _IR_ENABLE_DEFAULT_
144 #endif // DECODE_PANASONIC
145 #ifndef SEND_PANASONIC
146 #define SEND_PANASONIC _IR_ENABLE_DEFAULT_
147 #endif // SEND_PANASONIC
148 
149 #ifndef DECODE_JVC
150 #define DECODE_JVC _IR_ENABLE_DEFAULT_
151 #endif // DECODE_JVC
152 #ifndef SEND_JVC
153 #define SEND_JVC _IR_ENABLE_DEFAULT_
154 #endif // SEND_JVC
155 
156 #ifndef DECODE_SAMSUNG
157 #define DECODE_SAMSUNG _IR_ENABLE_DEFAULT_
158 #endif // DECODE_SAMSUNG
159 #ifndef SEND_SAMSUNG
160 #define SEND_SAMSUNG _IR_ENABLE_DEFAULT_
161 #endif // SEND_SAMSUNG
162 
163 #ifndef DECODE_SAMSUNG36
164 #define DECODE_SAMSUNG36 _IR_ENABLE_DEFAULT_
165 #endif // DECODE_SAMSUNG36
166 #ifndef SEND_SAMSUNG36
167 #define SEND_SAMSUNG36 _IR_ENABLE_DEFAULT_
168 #endif // SEND_SAMSUNG36
169 
170 #ifndef DECODE_SAMSUNG_AC
171 #define DECODE_SAMSUNG_AC _IR_ENABLE_DEFAULT_
172 #endif // DECODE_SAMSUNG_AC
173 #ifndef SEND_SAMSUNG_AC
174 #define SEND_SAMSUNG_AC _IR_ENABLE_DEFAULT_
175 #endif // SEND_SAMSUNG_AC
176 
177 #ifndef DECODE_WHYNTER
178 #define DECODE_WHYNTER _IR_ENABLE_DEFAULT_
179 #endif // DECODE_WHYNTER
180 #ifndef SEND_WHYNTER
181 #define SEND_WHYNTER _IR_ENABLE_DEFAULT_
182 #endif // SEND_WHYNTER
183 
184 #ifndef DECODE_AIWA_RC_T501
185 #define DECODE_AIWA_RC_T501 _IR_ENABLE_DEFAULT_
186 #endif // DECODE_AIWA_RC_T501
187 #ifndef SEND_AIWA_RC_T501
188 #define SEND_AIWA_RC_T501 _IR_ENABLE_DEFAULT_
189 #endif // SEND_AIWA_RC_T501
190 
191 #ifndef DECODE_LG
192 #define DECODE_LG _IR_ENABLE_DEFAULT_
193 #endif // DECODE_LG
194 #ifndef SEND_LG
195 #define SEND_LG _IR_ENABLE_DEFAULT_
196 #endif // SEND_LG
197 
198 #ifndef DECODE_SANYO
199 #define DECODE_SANYO _IR_ENABLE_DEFAULT_
200 #endif // DECODE_SANYO
201 #ifndef SEND_SANYO
202 #define SEND_SANYO _IR_ENABLE_DEFAULT_
203 #endif // SEND_SANYO
204 
205 #ifndef DECODE_SANYO_AC
206 #define DECODE_SANYO_AC _IR_ENABLE_DEFAULT_
207 #endif // DECODE_SANYO_AC
208 #ifndef SEND_SANYO_AC
209 #define SEND_SANYO_AC _IR_ENABLE_DEFAULT_
210 #endif // SEND_SANYO_AC
211 
212 #ifndef DECODE_SANYO_AC88
213 #define DECODE_SANYO_AC88 _IR_ENABLE_DEFAULT_
214 #endif // DECODE_SANYO_AC88
215 #ifndef SEND_SANYO_AC88
216 #define SEND_SANYO_AC88 _IR_ENABLE_DEFAULT_
217 #endif // SEND_SANYO_AC88
218 
219 #ifndef DECODE_MITSUBISHI
220 #define DECODE_MITSUBISHI _IR_ENABLE_DEFAULT_
221 #endif // DECODE_MITSUBISHI
222 #ifndef SEND_MITSUBISHI
223 #define SEND_MITSUBISHI _IR_ENABLE_DEFAULT_
224 #endif // SEND_MITSUBISHI
225 
226 #ifndef DECODE_MITSUBISHI2
227 #define DECODE_MITSUBISHI2 _IR_ENABLE_DEFAULT_
228 #endif // DECODE_MITSUBISHI2
229 #ifndef SEND_MITSUBISHI2
230 #define SEND_MITSUBISHI2 _IR_ENABLE_DEFAULT_
231 #endif // SEND_MITSUBISHI2
232 
233 #ifndef DECODE_DISH
234 #define DECODE_DISH _IR_ENABLE_DEFAULT_
235 #endif // DECODE_DISH
236 #ifndef SEND_DISH
237 #define SEND_DISH _IR_ENABLE_DEFAULT_
238 #endif // SEND_DISH
239 
240 #ifndef DECODE_SHARP
241 #define DECODE_SHARP _IR_ENABLE_DEFAULT_
242 #endif // DECODE_SHARP
243 #ifndef SEND_SHARP
244 #define SEND_SHARP _IR_ENABLE_DEFAULT_
245 #endif // SEND_SHARP
246 
247 #ifndef DECODE_SHARP_AC
248 #define DECODE_SHARP_AC _IR_ENABLE_DEFAULT_
249 #endif // DECODE_SHARP_AC
250 #ifndef SEND_SHARP_AC
251 #define SEND_SHARP_AC _IR_ENABLE_DEFAULT_
252 #endif // SEND_SHARP_AC
253 
254 #ifndef DECODE_DENON
255 #define DECODE_DENON _IR_ENABLE_DEFAULT_
256 #endif // DECODE_DENON
257 #ifndef SEND_DENON
258 #define SEND_DENON _IR_ENABLE_DEFAULT_
259 #endif // SEND_DENON
260 
261 #ifndef DECODE_KELVINATOR
262 #define DECODE_KELVINATOR _IR_ENABLE_DEFAULT_
263 #endif // DECODE_KELVINATOR
264 #ifndef SEND_KELVINATOR
265 #define SEND_KELVINATOR _IR_ENABLE_DEFAULT_
266 #endif // SEND_KELVINATOR
267 
268 #ifndef DECODE_MITSUBISHI_AC
269 #define DECODE_MITSUBISHI_AC _IR_ENABLE_DEFAULT_
270 #endif // DECODE_MITSUBISHI_AC
271 #ifndef SEND_MITSUBISHI_AC
272 #define SEND_MITSUBISHI_AC _IR_ENABLE_DEFAULT_
273 #endif // SEND_MITSUBISHI_AC
274 
275 #ifndef DECODE_MITSUBISHI136
276 #define DECODE_MITSUBISHI136 _IR_ENABLE_DEFAULT_
277 #endif // DECODE_MITSUBISHI136
278 #ifndef SEND_MITSUBISHI136
279 #define SEND_MITSUBISHI136 _IR_ENABLE_DEFAULT_
280 #endif // SEND_MITSUBISHI136
281 
282 #ifndef DECODE_MITSUBISHI112
283 #define DECODE_MITSUBISHI112 _IR_ENABLE_DEFAULT_
284 #endif // DECODE_MITSUBISHI112
285 #ifndef SEND_MITSUBISHI112
286 #define SEND_MITSUBISHI112 _IR_ENABLE_DEFAULT_
287 #endif // SEND_MITSUBISHI112
288 
289 #ifndef DECODE_FUJITSU_AC
290 #define DECODE_FUJITSU_AC _IR_ENABLE_DEFAULT_
291 #endif // DECODE_FUJITSU_AC
292 #ifndef SEND_FUJITSU_AC
293 #define SEND_FUJITSU_AC _IR_ENABLE_DEFAULT_
294 #endif // SEND_FUJITSU_AC
295 
296 #ifndef DECODE_INAX
297 #define DECODE_INAX _IR_ENABLE_DEFAULT_
298 #endif // DECODE_INAX
299 #ifndef SEND_INAX
300 #define SEND_INAX _IR_ENABLE_DEFAULT_
301 #endif // SEND_INAX
302 
303 #ifndef DECODE_DAIKIN
304 #define DECODE_DAIKIN _IR_ENABLE_DEFAULT_
305 #endif // DECODE_DAIKIN
306 #ifndef SEND_DAIKIN
307 #define SEND_DAIKIN _IR_ENABLE_DEFAULT_
308 #endif // SEND_DAIKIN
309 
310 #ifndef DECODE_COOLIX
311 #define DECODE_COOLIX _IR_ENABLE_DEFAULT_
312 #endif // DECODE_COOLIX
313 #ifndef SEND_COOLIX
314 #define SEND_COOLIX _IR_ENABLE_DEFAULT_
315 #endif // SEND_COOLIX
316 
317 #ifndef DECODE_GLOBALCACHE
318 #define DECODE_GLOBALCACHE false // Not applicable.
319 #endif // DECODE_GLOBALCACHE
320 #ifndef SEND_GLOBALCACHE
321 #define SEND_GLOBALCACHE _IR_ENABLE_DEFAULT_
322 #endif // SEND_GLOBALCACHE
323 
324 #ifndef DECODE_GOODWEATHER
325 #define DECODE_GOODWEATHER _IR_ENABLE_DEFAULT_
326 #endif // DECODE_GOODWEATHER
327 #ifndef SEND_GOODWEATHER
328 #define SEND_GOODWEATHER _IR_ENABLE_DEFAULT_
329 #endif // SEND_GOODWEATHER
330 
331 #ifndef DECODE_GREE
332 #define DECODE_GREE _IR_ENABLE_DEFAULT_
333 #endif // DECODE_GREE
334 #ifndef SEND_GREE
335 #define SEND_GREE _IR_ENABLE_DEFAULT_
336 #endif // SEND_GREE
337 
338 #ifndef DECODE_PRONTO
339 #define DECODE_PRONTO false // Not applicable.
340 #endif // DECODE_PRONTO
341 #ifndef SEND_PRONTO
342 #define SEND_PRONTO _IR_ENABLE_DEFAULT_
343 #endif // SEND_PRONTO
344 
345 #ifndef DECODE_ARGO
346 #define DECODE_ARGO _IR_ENABLE_DEFAULT_
347 #endif // DECODE_ARGO
348 #ifndef SEND_ARGO
349 #define SEND_ARGO _IR_ENABLE_DEFAULT_
350 #endif // SEND_ARGO
351 
352 #ifndef DECODE_TROTEC
353 #define DECODE_TROTEC _IR_ENABLE_DEFAULT_
354 #endif // DECODE_TROTEC
355 #ifndef SEND_TROTEC
356 #define SEND_TROTEC _IR_ENABLE_DEFAULT_
357 #endif // SEND_TROTEC
358 
359 #ifndef DECODE_TROTEC_3550
360 #define DECODE_TROTEC_3550 _IR_ENABLE_DEFAULT_
361 #endif // DECODE_TROTEC_3550
362 #ifndef SEND_TROTEC_3550
363 #define SEND_TROTEC_3550 _IR_ENABLE_DEFAULT_
364 #endif // SEND_TROTEC_3550
365 
366 #ifndef DECODE_NIKAI
367 #define DECODE_NIKAI _IR_ENABLE_DEFAULT_
368 #endif // DECODE_NIKAI
369 #ifndef SEND_NIKAI
370 #define SEND_NIKAI _IR_ENABLE_DEFAULT_
371 #endif // SEND_NIKAI
372 
373 #ifndef DECODE_TOSHIBA_AC
374 #define DECODE_TOSHIBA_AC _IR_ENABLE_DEFAULT_
375 #endif // DECODE_TOSHIBA_AC
376 #ifndef SEND_TOSHIBA_AC
377 #define SEND_TOSHIBA_AC _IR_ENABLE_DEFAULT_
378 #endif // SEND_TOSHIBA_AC
379 
380 #ifndef DECODE_MAGIQUEST
381 #define DECODE_MAGIQUEST _IR_ENABLE_DEFAULT_
382 #endif // DECODE_MAGIQUEST
383 #ifndef SEND_MAGIQUEST
384 #define SEND_MAGIQUEST _IR_ENABLE_DEFAULT_
385 #endif // SEND_MAGIQUEST
386 
387 #ifndef DECODE_MIDEA
388 #define DECODE_MIDEA _IR_ENABLE_DEFAULT_
389 #endif // DECODE_MIDEA
390 #ifndef SEND_MIDEA
391 #define SEND_MIDEA _IR_ENABLE_DEFAULT_
392 #endif // SEND_MIDEA
393 
394 #ifndef DECODE_MIDEA24
395 #define DECODE_MIDEA24 _IR_ENABLE_DEFAULT_
396 #endif // DECODE_MIDEA24
397 #ifndef SEND_MIDEA24
398 #define SEND_MIDEA24 _IR_ENABLE_DEFAULT_
399 #endif // SEND_MIDEA24
400 
401 #ifndef DECODE_LASERTAG
402 #define DECODE_LASERTAG _IR_ENABLE_DEFAULT_
403 #endif // DECODE_LASERTAG
404 #ifndef SEND_LASERTAG
405 #define SEND_LASERTAG _IR_ENABLE_DEFAULT_
406 #endif // SEND_LASERTAG
407 
408 #ifndef DECODE_CARRIER_AC
409 #define DECODE_CARRIER_AC _IR_ENABLE_DEFAULT_
410 #endif // DECODE_CARRIER_AC
411 #ifndef SEND_CARRIER_AC
412 #define SEND_CARRIER_AC _IR_ENABLE_DEFAULT_
413 #endif // SEND_CARRIER_AC
414 
415 #ifndef DECODE_CARRIER_AC40
416 #define DECODE_CARRIER_AC40 _IR_ENABLE_DEFAULT_
417 #endif // DECODE_CARRIER_AC40
418 #ifndef SEND_CARRIER_AC40
419 #define SEND_CARRIER_AC40 _IR_ENABLE_DEFAULT_
420 #endif // SEND_CARRIER_AC40
421 
422 #ifndef DECODE_CARRIER_AC64
423 #define DECODE_CARRIER_AC64 _IR_ENABLE_DEFAULT_
424 #endif // DECODE_CARRIER_AC64
425 #ifndef SEND_CARRIER_AC64
426 #define SEND_CARRIER_AC64 _IR_ENABLE_DEFAULT_
427 #endif // SEND_CARRIER_AC64
428 
429 #ifndef DECODE_HAIER_AC
430 #define DECODE_HAIER_AC _IR_ENABLE_DEFAULT_
431 #endif // DECODE_HAIER_AC
432 #ifndef SEND_HAIER_AC
433 #define SEND_HAIER_AC _IR_ENABLE_DEFAULT_
434 #endif // SEND_HAIER_AC
435 
436 #ifndef DECODE_HITACHI_AC
437 #define DECODE_HITACHI_AC _IR_ENABLE_DEFAULT_
438 #endif // DECODE_HITACHI_AC
439 #ifndef SEND_HITACHI_AC
440 #define SEND_HITACHI_AC _IR_ENABLE_DEFAULT_
441 #endif // SEND_HITACHI_AC
442 
443 #ifndef DECODE_HITACHI_AC1
444 #define DECODE_HITACHI_AC1 _IR_ENABLE_DEFAULT_
445 #endif // DECODE_HITACHI_AC1
446 #ifndef SEND_HITACHI_AC1
447 #define SEND_HITACHI_AC1 _IR_ENABLE_DEFAULT_
448 #endif // SEND_HITACHI_AC1
449 
450 #ifndef DECODE_HITACHI_AC2
451 #define DECODE_HITACHI_AC2 _IR_ENABLE_DEFAULT_
452 #endif // DECODE_HITACHI_AC2
453 #ifndef SEND_HITACHI_AC2
454 #define SEND_HITACHI_AC2 _IR_ENABLE_DEFAULT_
455 #endif // SEND_HITACHI_AC2
456 
457 #ifndef DECODE_HITACHI_AC3
458 #define DECODE_HITACHI_AC3 _IR_ENABLE_DEFAULT_
459 #endif // DECODE_HITACHI_AC3
460 #ifndef SEND_HITACHI_AC3
461 #define SEND_HITACHI_AC3 _IR_ENABLE_DEFAULT_
462 #endif // SEND_HITACHI_AC3
463 
464 #ifndef DECODE_HITACHI_AC344
465 #define DECODE_HITACHI_AC344 _IR_ENABLE_DEFAULT_
466 #endif // DECODE_HITACHI_AC344
467 #ifndef SEND_HITACHI_AC344
468 #define SEND_HITACHI_AC344 _IR_ENABLE_DEFAULT_
469 #endif // SEND_HITACHI_AC344
470 
471 #ifndef DECODE_HITACHI_AC424
472 #define DECODE_HITACHI_AC424 _IR_ENABLE_DEFAULT_
473 #endif // DECODE_HITACHI_AC424
474 #ifndef SEND_HITACHI_AC424
475 #define SEND_HITACHI_AC424 _IR_ENABLE_DEFAULT_
476 #endif // SEND_HITACHI_AC424
477 
478 #ifndef DECODE_GICABLE
479 #define DECODE_GICABLE _IR_ENABLE_DEFAULT_
480 #endif // DECODE_GICABLE
481 #ifndef SEND_GICABLE
482 #define SEND_GICABLE _IR_ENABLE_DEFAULT_
483 #endif // SEND_GICABLE
484 
485 #ifndef DECODE_HAIER_AC_YRW02
486 #define DECODE_HAIER_AC_YRW02 _IR_ENABLE_DEFAULT_
487 #endif // DECODE_HAIER_AC_YRW02
488 #ifndef SEND_HAIER_AC_YRW02
489 #define SEND_HAIER_AC_YRW02 _IR_ENABLE_DEFAULT_
490 #endif // SEND_HAIER_AC_YRW02
491 
492 #ifndef DECODE_WHIRLPOOL_AC
493 #define DECODE_WHIRLPOOL_AC _IR_ENABLE_DEFAULT_
494 #endif // DECODE_WHIRLPOOL_AC
495 #ifndef SEND_WHIRLPOOL_AC
496 #define SEND_WHIRLPOOL_AC _IR_ENABLE_DEFAULT_
497 #endif // SEND_WHIRLPOOL_AC
498 
499 #ifndef DECODE_LUTRON
500 #define DECODE_LUTRON _IR_ENABLE_DEFAULT_
501 #endif // DECODE_LUTRON
502 #ifndef SEND_LUTRON
503 #define SEND_LUTRON _IR_ENABLE_DEFAULT_
504 #endif // SEND_LUTRON
505 
506 #ifndef DECODE_ELECTRA_AC
507 #define DECODE_ELECTRA_AC _IR_ENABLE_DEFAULT_
508 #endif // DECODE_ELECTRA_AC
509 #ifndef SEND_ELECTRA_AC
510 #define SEND_ELECTRA_AC _IR_ENABLE_DEFAULT_
511 #endif // SEND_ELECTRA_AC
512 
513 #ifndef DECODE_PANASONIC_AC
514 #define DECODE_PANASONIC_AC _IR_ENABLE_DEFAULT_
515 #endif // DECODE_PANASONIC_AC
516 #ifndef SEND_PANASONIC_AC
517 #define SEND_PANASONIC_AC _IR_ENABLE_DEFAULT_
518 #endif // SEND_PANASONIC_AC
519 
520 #ifndef DECODE_PANASONIC_AC32
521 #define DECODE_PANASONIC_AC32 _IR_ENABLE_DEFAULT_
522 #endif // DECODE_PANASONIC_AC32
523 #ifndef SEND_PANASONIC_AC32
524 #define SEND_PANASONIC_AC32 _IR_ENABLE_DEFAULT_
525 #endif // SEND_PANASONIC_AC32
526 
527 #ifndef DECODE_MWM
528 #define DECODE_MWM _IR_ENABLE_DEFAULT_
529 #endif // DECODE_MWM
530 #ifndef SEND_MWM
531 #define SEND_MWM _IR_ENABLE_DEFAULT_
532 #endif // SEND_MWM
533 
534 #ifndef DECODE_PIONEER
535 #define DECODE_PIONEER _IR_ENABLE_DEFAULT_
536 #endif // DECODE_PIONEER
537 #ifndef SEND_PIONEER
538 #define SEND_PIONEER _IR_ENABLE_DEFAULT_
539 #endif // SEND_PIONEER
540 
541 #ifndef DECODE_DAIKIN2
542 #define DECODE_DAIKIN2 _IR_ENABLE_DEFAULT_
543 #endif // DECODE_DAIKIN2
544 #ifndef SEND_DAIKIN2
545 #define SEND_DAIKIN2 _IR_ENABLE_DEFAULT_
546 #endif // SEND_DAIKIN2
547 
548 #ifndef DECODE_VESTEL_AC
549 #define DECODE_VESTEL_AC _IR_ENABLE_DEFAULT_
550 #endif // DECODE_VESTEL_AC
551 #ifndef SEND_VESTEL_AC
552 #define SEND_VESTEL_AC _IR_ENABLE_DEFAULT_
553 #endif // SEND_VESTEL_AC
554 
555 #ifndef DECODE_TECO
556 #define DECODE_TECO _IR_ENABLE_DEFAULT_
557 #endif // DECODE_TECO
558 #ifndef SEND_TECO
559 #define SEND_TECO _IR_ENABLE_DEFAULT_
560 #endif // SEND_TECO
561 
562 #ifndef DECODE_TCL112AC
563 #define DECODE_TCL112AC _IR_ENABLE_DEFAULT_
564 #endif // DECODE_TCL112AC
565 #ifndef SEND_TCL112AC
566 #define SEND_TCL112AC _IR_ENABLE_DEFAULT_
567 #endif // SEND_TCL112AC
568 
569 #ifndef DECODE_LEGOPF
570 #define DECODE_LEGOPF _IR_ENABLE_DEFAULT_
571 #endif // DECODE_LEGOPF
572 #ifndef SEND_LEGOPF
573 #define SEND_LEGOPF _IR_ENABLE_DEFAULT_
574 #endif // SEND_LEGOPF
575 
576 #ifndef DECODE_MITSUBISHIHEAVY
577 #define DECODE_MITSUBISHIHEAVY _IR_ENABLE_DEFAULT_
578 #endif // DECODE_MITSUBISHIHEAVY
579 #ifndef SEND_MITSUBISHIHEAVY
580 #define SEND_MITSUBISHIHEAVY _IR_ENABLE_DEFAULT_
581 #endif // SEND_MITSUBISHIHEAVY
582 
583 #ifndef DECODE_DAIKIN216
584 #define DECODE_DAIKIN216 _IR_ENABLE_DEFAULT_
585 #endif // DECODE_DAIKIN216
586 #ifndef SEND_DAIKIN216
587 #define SEND_DAIKIN216 _IR_ENABLE_DEFAULT_
588 #endif // SEND_DAIKIN216
589 
590 #ifndef DECODE_DAIKIN160
591 #define DECODE_DAIKIN160 _IR_ENABLE_DEFAULT_
592 #endif // DECODE_DAIKIN160
593 #ifndef SEND_DAIKIN160
594 #define SEND_DAIKIN160 _IR_ENABLE_DEFAULT_
595 #endif // SEND_DAIKIN160
596 
597 #ifndef DECODE_NEOCLIMA
598 #define DECODE_NEOCLIMA _IR_ENABLE_DEFAULT_
599 #endif // DECODE_NEOCLIMA
600 #ifndef SEND_NEOCLIMA
601 #define SEND_NEOCLIMA _IR_ENABLE_DEFAULT_
602 #endif // SEND_NEOCLIMA
603 
604 #ifndef DECODE_DAIKIN176
605 #define DECODE_DAIKIN176 _IR_ENABLE_DEFAULT_
606 #endif // DECODE_DAIKIN176
607 #ifndef SEND_DAIKIN176
608 #define SEND_DAIKIN176 _IR_ENABLE_DEFAULT_
609 #endif // SEND_DAIKIN176
610 
611 #ifndef DECODE_DAIKIN128
612 #define DECODE_DAIKIN128 _IR_ENABLE_DEFAULT_
613 #endif // DECODE_DAIKIN128
614 #ifndef SEND_DAIKIN128
615 #define SEND_DAIKIN128 _IR_ENABLE_DEFAULT_
616 #endif // SEND_DAIKIN128
617 
618 #ifndef DECODE_AMCOR
619 #define DECODE_AMCOR _IR_ENABLE_DEFAULT_
620 #endif // DECODE_AMCOR
621 #ifndef SEND_AMCOR
622 #define SEND_AMCOR _IR_ENABLE_DEFAULT_
623 #endif // SEND_AMCOR
624 
625 #ifndef DECODE_DAIKIN152
626 #define DECODE_DAIKIN152 _IR_ENABLE_DEFAULT_
627 #endif // DECODE_DAIKIN152
628 #ifndef SEND_DAIKIN152
629 #define SEND_DAIKIN152 _IR_ENABLE_DEFAULT_
630 #endif // SEND_DAIKIN152
631 
632 #ifndef DECODE_EPSON
633 #define DECODE_EPSON _IR_ENABLE_DEFAULT_
634 #endif // DECODE_EPSON
635 #ifndef SEND_EPSON
636 #define SEND_EPSON _IR_ENABLE_DEFAULT_
637 #endif // SEND_EPSON
638 
639 #ifndef DECODE_SYMPHONY
640 #define DECODE_SYMPHONY _IR_ENABLE_DEFAULT_
641 #endif // DECODE_SYMPHONY
642 #ifndef SEND_SYMPHONY
643 #define SEND_SYMPHONY _IR_ENABLE_DEFAULT_
644 #endif // SEND_SYMPHONY
645 
646 #ifndef DECODE_DAIKIN64
647 #define DECODE_DAIKIN64 _IR_ENABLE_DEFAULT_
648 #endif // DECODE_DAIKIN64
649 #ifndef SEND_DAIKIN64
650 #define SEND_DAIKIN64 _IR_ENABLE_DEFAULT_
651 #endif // SEND_DAIKIN64
652 
653 #ifndef DECODE_AIRWELL
654 #define DECODE_AIRWELL _IR_ENABLE_DEFAULT_
655 #endif // DECODE_AIRWELL
656 #ifndef SEND_AIRWELL
657 #define SEND_AIRWELL _IR_ENABLE_DEFAULT_
658 #endif // SEND_AIRWELL
659 
660 #ifndef DECODE_DELONGHI_AC
661 #define DECODE_DELONGHI_AC _IR_ENABLE_DEFAULT_
662 #endif // DECODE_DELONGHI_AC
663 #ifndef SEND_DELONGHI_AC
664 #define SEND_DELONGHI_AC _IR_ENABLE_DEFAULT_
665 #endif // SEND_DELONGHI_AC
666 
667 #ifndef DECODE_DOSHISHA
668 #define DECODE_DOSHISHA _IR_ENABLE_DEFAULT_
669 #endif // DECODE_DOSHISHA
670 #ifndef SEND_DOSHISHA
671 #define SEND_DOSHISHA _IR_ENABLE_DEFAULT_
672 #endif // SEND_DOSHISHA
673 
674 #ifndef DECODE_MULTIBRACKETS
675 #define DECODE_MULTIBRACKETS _IR_ENABLE_DEFAULT_
676 #endif // DECODE_MULTIBRACKETS
677 #ifndef SEND_MULTIBRACKETS
678 #define SEND_MULTIBRACKETS _IR_ENABLE_DEFAULT_
679 #endif // SEND_MULTIBRACKETS
680 
681 #ifndef DECODE_TECHNIBEL_AC
682 #define DECODE_TECHNIBEL_AC _IR_ENABLE_DEFAULT_
683 #endif // DECODE_TECHNIBEL_AC
684 #ifndef SEND_TECHNIBEL_AC
685 #define SEND_TECHNIBEL_AC _IR_ENABLE_DEFAULT_
686 #endif // SEND_TECHNIBEL_AC
687 
688 #ifndef DECODE_CORONA_AC
689 #define DECODE_CORONA_AC _IR_ENABLE_DEFAULT_
690 #endif // DECODE_CORONA_AC
691 #ifndef SEND_CORONA_AC
692 #define SEND_CORONA_AC _IR_ENABLE_DEFAULT_
693 #endif // SEND_CORONA_AC
694 
695 #ifndef DECODE_ZEPEAL
696 #define DECODE_ZEPEAL _IR_ENABLE_DEFAULT_
697 #endif // DECODE_ZEPEAL
698 #ifndef SEND_ZEPEAL
699 #define SEND_ZEPEAL _IR_ENABLE_DEFAULT_
700 #endif // SEND_ZEPEAL
701 
702 #ifndef DECODE_VOLTAS
703 #define DECODE_VOLTAS _IR_ENABLE_DEFAULT_
704 #endif // DECODE_VOLTAS
705 #ifndef SEND_VOLTAS
706 #define SEND_VOLTAS _IR_ENABLE_DEFAULT_
707 #endif // SEND_VOLTAS
708 
709 #ifndef DECODE_METZ
710 #define DECODE_METZ _IR_ENABLE_DEFAULT_
711 #endif // DECODE_METZ
712 #ifndef SEND_METZ
713 #define SEND_METZ _IR_ENABLE_DEFAULT_
714 #endif // SEND_METZ
715 
716 #ifndef DECODE_TRANSCOLD
717 #define DECODE_TRANSCOLD _IR_ENABLE_DEFAULT_
718 #endif // DECODE_TRANSCOLD
719 #ifndef SEND_TRANSCOLD
720 #define SEND_TRANSCOLD _IR_ENABLE_DEFAULT_
721 #endif // SEND_TRANSCOLD
722 
723 #ifndef DECODE_MIRAGE
724 #define DECODE_MIRAGE _IR_ENABLE_DEFAULT_
725 #endif // DECODE_MIRAGE
726 #ifndef SEND_MIRAGE
727 #define SEND_MIRAGE _IR_ENABLE_DEFAULT_
728 #endif // SEND_MIRAGE
729 
730 #ifndef DECODE_ELITESCREENS
731 #define DECODE_ELITESCREENS _IR_ENABLE_DEFAULT_
732 #endif // DECODE_ELITESCREENS
733 #ifndef SEND_ELITESCREENS
734 #define SEND_ELITESCREENS _IR_ENABLE_DEFAULT_
735 #endif // SEND_ELITESCREENS
736 
737 #ifndef DECODE_MILESTAG2
738 #define DECODE_MILESTAG2 _IR_ENABLE_DEFAULT_
739 #endif // DECODE_MILESTAG2
740 #ifndef SEND_MILESTAG2
741 #define SEND_MILESTAG2 _IR_ENABLE_DEFAULT_
742 #endif // SEND_MILESTAG2
743 
744 #ifndef DECODE_ECOCLIM
745 #define DECODE_ECOCLIM _IR_ENABLE_DEFAULT_
746 #endif // DECODE_ECOCLIM
747 #ifndef SEND_ECOCLIM
748 #define SEND_ECOCLIM _IR_ENABLE_DEFAULT_
749 #endif // SEND_ECOCLIM
750 
751 #ifndef DECODE_XMP
752 #define DECODE_XMP _IR_ENABLE_DEFAULT_
753 #endif // DECODE_XMP
754 #ifndef SEND_XMP
755 #define SEND_XMP _IR_ENABLE_DEFAULT_
756 #endif // SEND_XMP
757 
758 #ifndef DECODE_TRUMA
759 #define DECODE_TRUMA _IR_ENABLE_DEFAULT_
760 #endif // DECODE_TRUMA
761 #ifndef SEND_TRUMA
762 #define SEND_TRUMA _IR_ENABLE_DEFAULT_
763 #endif // SEND_TRUMA
764 
765 #ifndef DECODE_HAIER_AC176
766 #define DECODE_HAIER_AC176 _IR_ENABLE_DEFAULT_
767 #endif // DECODE_HAIER_AC176
768 #ifndef SEND_HAIER_AC176
769 #define SEND_HAIER_AC176 _IR_ENABLE_DEFAULT_
770 #endif // SEND_HAIER_AC176
771 
772 #ifndef DECODE_TEKNOPOINT
773 #define DECODE_TEKNOPOINT _IR_ENABLE_DEFAULT_
774 #endif // DECODE_TEKNOPOINT
775 #ifndef SEND_TEKNOPOINT
776 #define SEND_TEKNOPOINT _IR_ENABLE_DEFAULT_
777 #endif // SEND_TEKNOPOINT
778 
779 #ifndef DECODE_KELON
780 #define DECODE_KELON _IR_ENABLE_DEFAULT_
781 #endif // DECODE_KELON
782 #ifndef SEND_KELON
783 #define SEND_KELON _IR_ENABLE_DEFAULT_
784 #endif // SEND_KELON
785 
786 #ifndef DECODE_BOSE
787 #define DECODE_BOSE _IR_ENABLE_DEFAULT_
788 #endif // DECODE_BOSE
789 #ifndef SEND_BOSE
790 #define SEND_BOSE _IR_ENABLE_DEFAULT_
791 #endif // SEND_BOSE
792 
793 #if (DECODE_ARGO || DECODE_DAIKIN || DECODE_FUJITSU_AC || DECODE_GREE || \
794  DECODE_KELVINATOR || DECODE_MITSUBISHI_AC || DECODE_TOSHIBA_AC || \
795  DECODE_TROTEC || DECODE_HAIER_AC || DECODE_HITACHI_AC || \
796  DECODE_HITACHI_AC1 || DECODE_HITACHI_AC2 || DECODE_HAIER_AC_YRW02 || \
797  DECODE_WHIRLPOOL_AC || DECODE_SAMSUNG_AC || DECODE_ELECTRA_AC || \
798  DECODE_PANASONIC_AC || DECODE_MWM || DECODE_DAIKIN2 || \
799  DECODE_VESTEL_AC || DECODE_TCL112AC || DECODE_MITSUBISHIHEAVY || \
800  DECODE_DAIKIN216 || DECODE_SHARP_AC || DECODE_DAIKIN160 || \
801  DECODE_NEOCLIMA || DECODE_DAIKIN176 || DECODE_DAIKIN128 || \
802  DECODE_AMCOR || DECODE_DAIKIN152 || DECODE_MITSUBISHI136 || \
803  DECODE_MITSUBISHI112 || DECODE_HITACHI_AC424 || DECODE_HITACHI_AC3 || \
804  DECODE_HITACHI_AC344 || DECODE_CORONA_AC || DECODE_SANYO_AC || \
805  DECODE_VOLTAS || DECODE_MIRAGE || DECODE_HAIER_AC176 || \
806  DECODE_TEKNOPOINT || DECODE_KELON || DECODE_TROTEC_3550 || \
807  DECODE_SANYO_AC88 || \
808  false)
809  // Add any DECODE to the above if it uses result->state (see kStateSizeMax)
810  // you might also want to add the protocol to hasACState function
811 #define DECODE_AC true // We need some common infrastructure for decoding A/Cs.
812 #else
813 #define DECODE_AC false // We don't need that infrastructure.
814 #endif
815 
816 // Use millisecond 'delay()' calls where we can to avoid tripping the WDT.
817 // Note: If you plan to send IR messages in the callbacks of the AsyncWebserver
818 // library, you need to set ALLOW_DELAY_CALLS to false.
819 // Ref: https://github.com/crankyoldgit/IRremoteESP8266/issues/430
820 #ifndef ALLOW_DELAY_CALLS
821 #define ALLOW_DELAY_CALLS true
822 #endif // ALLOW_DELAY_CALLS
823 
824 // Enable a run-time settable high-pass filter on captured data **before**
825 // trying any protocol decoding.
826 // i.e. Try to remove/merge any really short pulses detected in the raw data.
827 // Note: Even when this option is enabled, it is _off_ by default, and requires
828 // a user who knows what they are doing to enable it.
829 // The option to disable this feature is here if your project is _really_
830 // tight on resources. i.e. Saves a small handful of bytes and cpu time.
831 // WARNING: If you use this feature at runtime, you can no longer trust the
832 // **raw** data captured. It will now have been slightly **cooked**!
833 // DANGER: If you set the `noise_floor` value too high, it **WILL** break
834 // decoding of some protocols. You have been warned. Here Be Dragons!
835 //
836 // See: `irrecv::decode()` in IRrecv.cpp for more info.
837 #ifndef ENABLE_NOISE_FILTER_OPTION
838 #define ENABLE_NOISE_FILTER_OPTION true
839 #endif // ENABLE_NOISE_FILTER_OPTION
840 
846  UNKNOWN = -1,
847  UNUSED = 0,
852  PANASONIC, // (5)
857  LG, // (10)
862  COOLIX, // (15)
867  MITSUBISHI_AC, // (20)
872  PRONTO, // Technically not a protocol, but an encoding. (25)
877  RAW, // Technically not a protocol, but an encoding. (30)
878  GLOBALCACHE, // Technically not a protocol, but an encoding.
882  MAGIQUEST, // (35)
887  HITACHI_AC, // (40)
892  WHIRLPOOL_AC, // (45)
897  PIONEER, // (50)
902  TECO, // (55)
912  DAIKIN160, // 65
917  DAIKIN152, // 70
922  EPSON, // 75
927  DELONGHI_AC, // 80
937  VOLTAS, // 90
947  TRUMA, // 100
952  SANYO_AC88, // 105
954  // Add new entries before this one, and update it to point to the last entry.
956 };
957 
958 // Message lengths & required repeat values
959 const uint16_t kNoRepeat = 0;
960 const uint16_t kSingleRepeat = 1;
961 
962 const uint16_t kAirwellBits = 34;
963 const uint16_t kAirwellMinRepeats = 2;
964 const uint16_t kAiwaRcT501Bits = 15;
966 const uint16_t kAlokaBits = 32;
967 const uint16_t kAmcorStateLength = 8;
968 const uint16_t kAmcorBits = kAmcorStateLength * 8;
970 const uint16_t kArgoStateLength = 12;
971 const uint16_t kArgoBits = kArgoStateLength * 8;
972 const uint16_t kArgoDefaultRepeat = kNoRepeat;
973 const uint16_t kCoolixBits = 24;
975 const uint16_t kCarrierAcBits = 32;
977 const uint16_t kCarrierAc40Bits = 40;
978 const uint16_t kCarrierAc40MinRepeat = 2;
979 const uint16_t kCarrierAc64Bits = 64;
981 const uint16_t kCoronaAcStateLengthShort = 7;
984 const uint16_t kCoronaAcBits = kCoronaAcStateLength * 8;
985 const uint16_t kDaikinStateLength = 35;
986 const uint16_t kDaikinBits = kDaikinStateLength * 8;
990 const uint16_t kDaikin2StateLength = 39;
991 const uint16_t kDaikin2Bits = kDaikin2StateLength * 8;
993 const uint16_t kDaikin64Bits = 64;
995 const uint16_t kDaikin160StateLength = 20;
998 const uint16_t kDaikin128StateLength = 16;
1001 const uint16_t kDaikin152StateLength = 19;
1004 const uint16_t kDaikin176StateLength = 22;
1007 const uint16_t kDaikin216StateLength = 27;
1010 const uint16_t kDelonghiAcBits = 64;
1012 const uint16_t kTechnibelAcBits = 56;
1014 const uint16_t kDenonBits = 15;
1015 const uint16_t kDenon48Bits = 48;
1016 const uint16_t kDenonLegacyBits = 14;
1017 const uint16_t kDishBits = 16;
1018 const uint16_t kDishMinRepeat = 3;
1019 const uint16_t kDoshishaBits = 40;
1020 const uint16_t kEcoclimBits = 56;
1021 const uint16_t kEcoclimShortBits = 15;
1022 const uint16_t kEpsonBits = 32;
1023 const uint16_t kEpsonMinRepeat = 2;
1024 const uint16_t kElectraAcStateLength = 13;
1027 const uint16_t kEliteScreensBits = 32;
1030 const uint16_t kFujitsuAcStateLength = 16;
1031 const uint16_t kFujitsuAcStateLengthShort = 7;
1034 const uint16_t kGicableBits = 16;
1036 const uint16_t kGoodweatherBits = 48;
1038 const uint16_t kGreeStateLength = 8;
1039 const uint16_t kGreeBits = kGreeStateLength * 8;
1041 const uint16_t kHaierACStateLength = 9;
1042 const uint16_t kHaierACBits = kHaierACStateLength * 8;
1044 const uint16_t kHaierACYRW02StateLength = 14;
1047 const uint16_t kHaierAC176StateLength = 22;
1050 const uint16_t kHitachiAcStateLength = 28;
1053 const uint16_t kHitachiAc1StateLength = 13;
1055 const uint16_t kHitachiAc2StateLength = 53;
1057 const uint16_t kHitachiAc3StateLength = 27;
1059 const uint16_t kHitachiAc3MinStateLength = 15;
1061 const uint16_t kHitachiAc344StateLength = 43;
1063 const uint16_t kHitachiAc424StateLength = 53;
1065 const uint16_t kInaxBits = 24;
1067 const uint16_t kJvcBits = 16;
1068 const uint16_t kKelonBits = 48;
1069 const uint16_t kKelvinatorStateLength = 16;
1072 const uint16_t kLasertagBits = 13;
1074 const uint16_t kLegoPfBits = 16;
1075 const uint16_t kLegoPfMinRepeat = kNoRepeat;
1076 const uint16_t kLgBits = 28;
1077 const uint16_t kLg32Bits = 32;
1078 const uint16_t kLgDefaultRepeat = kNoRepeat;
1079 const uint16_t kLutronBits = 35;
1080 const uint16_t kMagiquestBits = 56;
1081 const uint16_t kMetzBits = 19;
1082 const uint16_t kMetzMinRepeat = kNoRepeat;
1083 const uint16_t kMideaBits = 48;
1084 const uint16_t kMideaMinRepeat = kNoRepeat;
1085 const uint16_t kMidea24Bits = 24;
1087 const uint16_t kMirageStateLength = 15;
1088 const uint16_t kMirageBits = kMirageStateLength * 8;
1089 const uint16_t kMirageMinRepeat = kNoRepeat;
1090 const uint16_t kMitsubishiBits = 16;
1091 // TODO(anyone): Verify that the Mitsubishi repeat is really needed.
1092 // Based on marcosamarinho's code.
1094 const uint16_t kMitsubishiACStateLength = 18;
1097 const uint16_t kMitsubishi136StateLength = 17;
1100 const uint16_t kMitsubishi112StateLength = 14;
1103 const uint16_t kMitsubishiHeavy88StateLength = 11;
1109 const uint16_t kMultibracketsBits = 8;
1111 const uint16_t kNikaiBits = 24;
1112 const uint16_t kNECBits = 32;
1113 const uint16_t kNeoclimaStateLength = 12;
1116 const uint16_t kPanasonicBits = 48;
1117 const uint32_t kPanasonicManufacturer = 0x4004;
1118 const uint16_t kPanasonicAcStateLength = 27;
1119 const uint16_t kPanasonicAcStateShortLength = 16;
1123 const uint16_t kPanasonicAc32Bits = 32;
1124 const uint16_t kPioneerBits = 64;
1125 const uint16_t kProntoMinLength = 6;
1126 const uint16_t kRC5RawBits = 14;
1127 const uint16_t kRC5Bits = kRC5RawBits - 2;
1128 const uint16_t kRC5XBits = kRC5RawBits - 1;
1129 const uint16_t kRC6Mode0Bits = 20; // Excludes the 'start' bit.
1130 const uint16_t kRC6_36Bits = 36; // Excludes the 'start' bit.
1131 const uint16_t kRCMMBits = 24;
1132 const uint16_t kSamsungBits = 32;
1133 const uint16_t kSamsung36Bits = 36;
1134 const uint16_t kSamsungAcStateLength = 14;
1136 const uint16_t kSamsungAcExtendedStateLength = 21;
1139 const uint16_t kSanyoAcStateLength = 9;
1140 const uint16_t kSanyoAcBits = kSanyoAcStateLength * 8;
1141 const uint16_t kSanyoAc88StateLength = 11;
1143 const uint16_t kSanyoAc88MinRepeat = 2;
1144 const uint16_t kSanyoSA8650BBits = 12;
1145 const uint16_t kSanyoLC7461AddressBits = 13;
1146 const uint16_t kSanyoLC7461CommandBits = 8;
1149 const uint8_t kSharpAddressBits = 5;
1150 const uint8_t kSharpCommandBits = 8;
1151 const uint16_t kSharpBits = kSharpAddressBits + kSharpCommandBits + 2; // 15
1152 const uint16_t kSharpAcStateLength = 13;
1153 const uint16_t kSharpAcBits = kSharpAcStateLength * 8; // 104
1155 const uint8_t kSherwoodBits = kNECBits;
1157 const uint16_t kSony12Bits = 12;
1158 const uint16_t kSony15Bits = 15;
1159 const uint16_t kSony20Bits = 20;
1160 const uint16_t kSonyMinBits = 12;
1161 const uint16_t kSonyMinRepeat = 2;
1162 const uint16_t kSymphonyBits = 12;
1163 const uint16_t kSymphonyDefaultRepeat = 3;
1164 const uint16_t kTcl112AcStateLength = 14;
1167 const uint16_t kTecoBits = 35;
1169 const uint16_t kTeknopointStateLength = 14;
1171 const uint16_t kToshibaACStateLength = 9;
1178 const uint16_t kTranscoldBits = 24;
1180 const uint16_t kTrotecStateLength = 9;
1181 const uint16_t kTrotecBits = kTrotecStateLength * 8;
1183 const uint16_t kTrumaBits = 56;
1184 const uint16_t kWhirlpoolAcStateLength = 21;
1187 const uint16_t kWhynterBits = 32;
1188 const uint8_t kVestelAcBits = 56;
1189 const uint16_t kXmpBits = 64;
1190 const uint16_t kZepealBits = 16;
1191 const uint16_t kZepealMinRepeat = 4;
1192 const uint16_t kVoltasBits = 80;
1193 const uint16_t kVoltasStateLength = 10;
1194 const uint16_t kMilesTag2ShotBits = 14;
1195 const uint16_t kMilesTag2MsgBits = 24;
1196 const uint16_t kMilesMinRepeat = 0;
1197 const uint16_t kBoseBits = 16;
1198 
1199 
1200 // Legacy defines. (Deprecated)
1201 #define AIWA_RC_T501_BITS kAiwaRcT501Bits
1202 #define ARGO_COMMAND_LENGTH kArgoStateLength
1203 #define COOLIX_BITS kCoolixBits
1204 #define CARRIER_AC_BITS kCarrierAcBits
1205 #define DAIKIN_COMMAND_LENGTH kDaikinStateLength
1206 #define DENON_BITS kDenonBits
1207 #define DENON_48_BITS kDenon48Bits
1208 #define DENON_LEGACY_BITS kDenonLegacyBits
1209 #define DISH_BITS kDishBits
1210 #define FUJITSU_AC_MIN_REPEAT kFujitsuAcMinRepeat
1211 #define FUJITSU_AC_STATE_LENGTH kFujitsuAcStateLength
1212 #define FUJITSU_AC_STATE_LENGTH_SHORT kFujitsuAcStateLengthShort
1213 #define FUJITSU_AC_BITS kFujitsuAcBits
1214 #define FUJITSU_AC_MIN_BITS kFujitsuAcMinBits
1215 #define GICABLE_BITS kGicableBits
1216 #define GREE_STATE_LENGTH kGreeStateLength
1217 #define HAIER_AC_STATE_LENGTH kHaierACStateLength
1218 #define HAIER_AC_YRW02_STATE_LENGTH kHaierACYRW02StateLength
1219 #define HITACHI_AC_STATE_LENGTH kHitachiAcStateLength
1220 #define HITACHI_AC_BITS kHitachiAcBits
1221 #define HITACHI_AC1_STATE_LENGTH kHitachiAc1StateLength
1222 #define HITACHI_AC1_BITS kHitachiAc1Bits
1223 #define HITACHI_AC2_STATE_LENGTH kHitachiAc2StateLength
1224 #define HITACHI_AC2_BITS kHitachiAc2Bits
1225 #define JVC_BITS kJvcBits
1226 #define KELVINATOR_STATE_LENGTH kKelvinatorStateLength
1227 #define LASERTAG_BITS kLasertagBits
1228 #define LG_BITS kLgBits
1229 #define LG32_BITS kLg32Bits
1230 #define MAGIQUEST_BITS kMagiquestBits
1231 #define MIDEA_BITS kMideaBits
1232 #define MITSUBISHI_BITS kMitsubishiBits
1233 #define MITSUBISHI_AC_STATE_LENGTH kMitsubishiACStateLength
1234 #define NEC_BITS kNECBits
1235 #define NIKAI_BITS kNikaiBits
1236 #define PANASONIC_BITS kPanasonicBits
1237 #define RC5_BITS kRC5Bits
1238 #define RC5X_BITS kRC5XBits
1239 #define RC6_MODE0_BITS kRC6Mode0Bits
1240 #define RC6_36_BITS kRC6_36Bits
1241 #define RCMM_BITS kRCMMBits
1242 #define SANYO_LC7461_BITS kSanyoLC7461Bits
1243 #define SAMSUNG_BITS kSamsungBits
1244 #define SANYO_SA8650B_BITS kSanyoSA8650BBits
1245 #define SHARP_BITS kSharpBits
1246 #define SHERWOOD_BITS kSherwoodBits
1247 #define SONY_12_BITS kSony12Bits
1248 #define SONY_15_BITS kSony15Bits
1249 #define SONY_20_BITS kSony20Bits
1250 #define TOSHIBA_AC_STATE_LENGTH kToshibaACStateLength
1251 #define TROTEC_COMMAND_LENGTH kTrotecStateLength
1252 #define WHYNTER_BITS kWhynterBits
1253 
1254 // Turn on Debugging information by uncommenting the following line.
1255 // #define DEBUG 1
1256 
1257 #ifdef DEBUG
1258 #ifdef UNIT_TEST
1259 #define DPRINT(x) do { std::cout << x; } while (0)
1260 #define DPRINTLN(x) do { std::cout << x << std::endl; } while (0)
1261 #endif // UNIT_TEST
1262 #ifdef ARDUINO
1263 #define DPRINT(x) do { Serial.print(x); } while (0)
1264 #define DPRINTLN(x) do { Serial.println(x); } while (0)
1265 #endif // ARDUINO
1266 #else // DEBUG
1267 #define DPRINT(x)
1268 #define DPRINTLN(x)
1269 #endif // DEBUG
1270 
1271 #ifdef UNIT_TEST
1272 #ifndef F
1273 // Create a no-op F() macro so the code base still compiles outside of the
1274 // Arduino framework. Thus we can safely use the Arduino 'F()' macro through-out
1275 // the code base. That macro stores constants in Flash (PROGMEM) memory.
1276 // See: https://github.com/crankyoldgit/IRremoteESP8266/issues/667
1277 #define F(x) x
1278 #endif // F
1279 typedef std::string String;
1280 #endif // UNIT_TEST
1281 
1282 #endif // IRREMOTEESP8266_H_
ARGO
@ ARGO
Definition: IRremoteESP8266.h:874
kDaikin152DefaultRepeat
const uint16_t kDaikin152DefaultRepeat
Definition: IRremoteESP8266.h:1003
kSanyoSA8650BBits
const uint16_t kSanyoSA8650BBits
Definition: IRremoteESP8266.h:1144
kDelonghiAcBits
const uint16_t kDelonghiAcBits
Definition: IRremoteESP8266.h:1010
kHaierAcYrw02DefaultRepeat
const uint16_t kHaierAcYrw02DefaultRepeat
Definition: IRremoteESP8266.h:1046
kHitachiAc3MinStateLength
const uint16_t kHitachiAc3MinStateLength
Definition: IRremoteESP8266.h:1059
SANYO_AC
@ SANYO_AC
Definition: IRremoteESP8266.h:936
kMirageBits
const uint16_t kMirageBits
Definition: IRremoteESP8266.h:1088
kMitsubishiACStateLength
const uint16_t kMitsubishiACStateLength
Definition: IRremoteESP8266.h:1094
kMitsubishiHeavy152StateLength
const uint16_t kMitsubishiHeavy152StateLength
Definition: IRremoteESP8266.h:1106
kAirwellMinRepeats
const uint16_t kAirwellMinRepeats
Definition: IRremoteESP8266.h:963
kMideaMinRepeat
const uint16_t kMideaMinRepeat
Definition: IRremoteESP8266.h:1084
kMilesMinRepeat
const uint16_t kMilesMinRepeat
Definition: IRremoteESP8266.h:1196
kGicableBits
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:1034
kGreeStateLength
const uint16_t kGreeStateLength
Definition: IRremoteESP8266.h:1038
DISH
@ DISH
Definition: IRremoteESP8266.h:860
UNUSED
@ UNUSED
Definition: IRremoteESP8266.h:847
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:845
kCarrierAcBits
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:975
kDenonLegacyBits
const uint16_t kDenonLegacyBits
Definition: IRremoteESP8266.h:1016
SHERWOOD
@ SHERWOOD
Definition: IRremoteESP8266.h:866
kSingleRepeat
const uint16_t kSingleRepeat
Definition: IRremoteESP8266.h:960
kDaikin2DefaultRepeat
const uint16_t kDaikin2DefaultRepeat
Definition: IRremoteESP8266.h:992
kMultibracketsBits
const uint16_t kMultibracketsBits
Definition: IRremoteESP8266.h:1109
kSharpAcBits
const uint16_t kSharpAcBits
Definition: IRremoteESP8266.h:1153
kWhynterBits
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1187
CARRIER_AC
@ CARRIER_AC
Definition: IRremoteESP8266.h:884
TOSHIBA_AC
@ TOSHIBA_AC
Definition: IRremoteESP8266.h:879
AIRWELL
@ AIRWELL
Definition: IRremoteESP8266.h:926
kAirwellBits
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:962
kHaierAcDefaultRepeat
const uint16_t kHaierAcDefaultRepeat
Definition: IRremoteESP8266.h:1043
PRONTO
@ PRONTO
Definition: IRremoteESP8266.h:872
kTrotecDefaultRepeat
const uint16_t kTrotecDefaultRepeat
Definition: IRremoteESP8266.h:1182
kFujitsuAcMinRepeat
const uint16_t kFujitsuAcMinRepeat
Definition: IRremoteESP8266.h:1029
kCoronaAcBits
const uint16_t kCoronaAcBits
Definition: IRremoteESP8266.h:984
kMitsubishiACBits
const uint16_t kMitsubishiACBits
Definition: IRremoteESP8266.h:1095
kSanyoAc88StateLength
const uint16_t kSanyoAc88StateLength
Definition: IRremoteESP8266.h:1141
kMitsubishi136MinRepeat
const uint16_t kMitsubishi136MinRepeat
Definition: IRremoteESP8266.h:1099
UNKNOWN
@ UNKNOWN
Definition: IRremoteESP8266.h:846
kTechnibelAcBits
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:1012
kArgoDefaultRepeat
const uint16_t kArgoDefaultRepeat
Definition: IRremoteESP8266.h:972
SANYO_AC88
@ SANYO_AC88
Definition: IRremoteESP8266.h:952
kVoltasBits
const uint16_t kVoltasBits
Definition: IRremoteESP8266.h:1192
kHaierACStateLength
const uint16_t kHaierACStateLength
Definition: IRremoteESP8266.h:1041
kHitachiAcStateLength
const uint16_t kHitachiAcStateLength
Definition: IRremoteESP8266.h:1050
MITSUBISHI112
@ MITSUBISHI112
Definition: IRremoteESP8266.h:919
ECOCLIM
@ ECOCLIM
Definition: IRremoteESP8266.h:945
kDaikin176StateLength
const uint16_t kDaikin176StateLength
Definition: IRremoteESP8266.h:1004
kRC5XBits
const uint16_t kRC5XBits
Definition: IRremoteESP8266.h:1128
kEpsonMinRepeat
const uint16_t kEpsonMinRepeat
Definition: IRremoteESP8266.h:1023
kAmcorStateLength
const uint16_t kAmcorStateLength
Definition: IRremoteESP8266.h:967
DAIKIN128
@ DAIKIN128
Definition: IRremoteESP8266.h:915
kAlokaBits
const uint16_t kAlokaBits
Definition: IRremoteESP8266.h:966
JVC
@ JVC
Definition: IRremoteESP8266.h:853
TRUMA
@ TRUMA
Definition: IRremoteESP8266.h:947
SONY
@ SONY
Definition: IRremoteESP8266.h:851
kBoseBits
const uint16_t kBoseBits
Definition: IRremoteESP8266.h:1197
HITACHI_AC2
@ HITACHI_AC2
Definition: IRremoteESP8266.h:889
kHitachiAc1StateLength
const uint16_t kHitachiAc1StateLength
Definition: IRremoteESP8266.h:1053
kCoolixBits
const uint16_t kCoolixBits
Definition: IRremoteESP8266.h:973
kMitsubishi112MinRepeat
const uint16_t kMitsubishi112MinRepeat
Definition: IRremoteESP8266.h:1102
kHaierAC176StateLength
const uint16_t kHaierAC176StateLength
Definition: IRremoteESP8266.h:1047
kMirageStateLength
const uint16_t kMirageStateLength
Definition: IRremoteESP8266.h:1087
BOSE
@ BOSE
Definition: IRremoteESP8266.h:953
kTeknopointStateLength
const uint16_t kTeknopointStateLength
Definition: IRremoteESP8266.h:1169
kCoronaAcBitsShort
const uint16_t kCoronaAcBitsShort
Definition: IRremoteESP8266.h:983
kSamsung36Bits
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:1133
kMagiquestBits
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:1080
LUTRON
@ LUTRON
Definition: IRremoteESP8266.h:894
kSharpCommandBits
const uint8_t kSharpCommandBits
Definition: IRremoteESP8266.h:1150
kNeoclimaStateLength
const uint16_t kNeoclimaStateLength
Definition: IRremoteESP8266.h:1113
RCMM
@ RCMM
Definition: IRremoteESP8266.h:868
SANYO_LC7461
@ SANYO_LC7461
Definition: IRremoteESP8266.h:869
TROTEC
@ TROTEC
Definition: IRremoteESP8266.h:875
kFujitsuAcMinBits
const uint16_t kFujitsuAcMinBits
Definition: IRremoteESP8266.h:1033
kSamsungAcDefaultRepeat
const uint16_t kSamsungAcDefaultRepeat
Definition: IRremoteESP8266.h:1138
kSanyoLC7461Bits
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1147
kMirageMinRepeat
const uint16_t kMirageMinRepeat
Definition: IRremoteESP8266.h:1089
DAIKIN160
@ DAIKIN160
Definition: IRremoteESP8266.h:912
CORONA_AC
@ CORONA_AC
Definition: IRremoteESP8266.h:933
kSanyoLC7461CommandBits
const uint16_t kSanyoLC7461CommandBits
Definition: IRremoteESP8266.h:1146
kTrotecBits
const uint16_t kTrotecBits
Definition: IRremoteESP8266.h:1181
PANASONIC
@ PANASONIC
Definition: IRremoteESP8266.h:852
kZepealMinRepeat
const uint16_t kZepealMinRepeat
Definition: IRremoteESP8266.h:1191
MIRAGE
@ MIRAGE
Definition: IRremoteESP8266.h:941
kTranscoldDefaultRepeat
const uint16_t kTranscoldDefaultRepeat
Definition: IRremoteESP8266.h:1179
kMetzMinRepeat
const uint16_t kMetzMinRepeat
Definition: IRremoteESP8266.h:1082
kDenon48Bits
const uint16_t kDenon48Bits
Definition: IRremoteESP8266.h:1015
kEliteScreensBits
const uint16_t kEliteScreensBits
Definition: IRremoteESP8266.h:1027
DAIKIN2
@ DAIKIN2
Definition: IRremoteESP8266.h:900
TEKNOPOINT
@ TEKNOPOINT
Definition: IRremoteESP8266.h:949
kHitachiAc2Bits
const uint16_t kHitachiAc2Bits
Definition: IRremoteESP8266.h:1056
kElectraAcMinRepeat
const uint16_t kElectraAcMinRepeat
Definition: IRremoteESP8266.h:1026
kToshibaACBitsLong
const uint16_t kToshibaACBitsLong
Definition: IRremoteESP8266.h:1177
MITSUBISHI_AC
@ MITSUBISHI_AC
Definition: IRremoteESP8266.h:867
MAGIQUEST
@ MAGIQUEST
Definition: IRremoteESP8266.h:882
kHitachiAc3StateLength
const uint16_t kHitachiAc3StateLength
Definition: IRremoteESP8266.h:1057
kLg32Bits
const uint16_t kLg32Bits
Definition: IRremoteESP8266.h:1077
DOSHISHA
@ DOSHISHA
Definition: IRremoteESP8266.h:928
kCoronaAcStateLengthShort
const uint16_t kCoronaAcStateLengthShort
Definition: IRremoteESP8266.h:981
kElectraAcBits
const uint16_t kElectraAcBits
Definition: IRremoteESP8266.h:1025
kSonyMinBits
const uint16_t kSonyMinBits
Definition: IRremoteESP8266.h:1160
HAIER_AC_YRW02
@ HAIER_AC_YRW02
Definition: IRremoteESP8266.h:891
kHaierAC176Bits
const uint16_t kHaierAC176Bits
Definition: IRremoteESP8266.h:1048
kAiwaRcT501MinRepeats
const uint16_t kAiwaRcT501MinRepeats
Definition: IRremoteESP8266.h:965
HITACHI_AC424
@ HITACHI_AC424
Definition: IRremoteESP8266.h:920
kVoltasStateLength
const uint16_t kVoltasStateLength
Definition: IRremoteESP8266.h:1193
kDaikin2Bits
const uint16_t kDaikin2Bits
Definition: IRremoteESP8266.h:991
kHitachiAc1Bits
const uint16_t kHitachiAc1Bits
Definition: IRremoteESP8266.h:1054
CARRIER_AC64
@ CARRIER_AC64
Definition: IRremoteESP8266.h:931
NEC
@ NEC
Definition: IRremoteESP8266.h:850
FUJITSU_AC
@ FUJITSU_AC
Definition: IRremoteESP8266.h:880
kMitsubishiMinRepeat
const uint16_t kMitsubishiMinRepeat
Definition: IRremoteESP8266.h:1093
GOODWEATHER
@ GOODWEATHER
Definition: IRremoteESP8266.h:910
HITACHI_AC3
@ HITACHI_AC3
Definition: IRremoteESP8266.h:924
INAX
@ INAX
Definition: IRremoteESP8266.h:911
kArgoStateLength
const uint16_t kArgoStateLength
Definition: IRremoteESP8266.h:970
kSanyoAc88MinRepeat
const uint16_t kSanyoAc88MinRepeat
Definition: IRremoteESP8266.h:1143
SYMPHONY
@ SYMPHONY
Definition: IRremoteESP8266.h:923
kPanasonicBits
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:1116
String
std::string String
Definition: IRremoteESP8266.h:1279
HAIER_AC
@ HAIER_AC
Definition: IRremoteESP8266.h:885
kDaikinStateLengthShort
const uint16_t kDaikinStateLengthShort
Definition: IRremoteESP8266.h:987
kRC5Bits
const uint16_t kRC5Bits
Definition: IRremoteESP8266.h:1127
kLgDefaultRepeat
const uint16_t kLgDefaultRepeat
Definition: IRremoteESP8266.h:1078
kMilesTag2ShotBits
const uint16_t kMilesTag2ShotBits
Definition: IRremoteESP8266.h:1194
kDaikin152StateLength
const uint16_t kDaikin152StateLength
Definition: IRremoteESP8266.h:1001
kPanasonicAcBits
const uint16_t kPanasonicAcBits
Definition: IRremoteESP8266.h:1120
kRC5RawBits
const uint16_t kRC5RawBits
Definition: IRremoteESP8266.h:1126
kXmpBits
const uint16_t kXmpBits
Definition: IRremoteESP8266.h:1189
kHaierACYRW02StateLength
const uint16_t kHaierACYRW02StateLength
Definition: IRremoteESP8266.h:1044
kSanyoLC7461AddressBits
const uint16_t kSanyoLC7461AddressBits
Definition: IRremoteESP8266.h:1145
kMultibracketsDefaultRepeat
const uint16_t kMultibracketsDefaultRepeat
Definition: IRremoteESP8266.h:1110
LG
@ LG
Definition: IRremoteESP8266.h:857
kDaikin160Bits
const uint16_t kDaikin160Bits
Definition: IRremoteESP8266.h:996
HITACHI_AC344
@ HITACHI_AC344
Definition: IRremoteESP8266.h:932
MIDEA
@ MIDEA
Definition: IRremoteESP8266.h:881
kGoodweatherBits
const uint16_t kGoodweatherBits
Definition: IRremoteESP8266.h:1036
kGicableMinRepeat
const uint16_t kGicableMinRepeat
Definition: IRremoteESP8266.h:1035
GLOBALCACHE
@ GLOBALCACHE
Definition: IRremoteESP8266.h:878
kDaikin152Bits
const uint16_t kDaikin152Bits
Definition: IRremoteESP8266.h:1002
kDaikin216StateLength
const uint16_t kDaikin216StateLength
Definition: IRremoteESP8266.h:1007
GICABLE
@ GICABLE
Definition: IRremoteESP8266.h:890
kSamsungAcStateLength
const uint16_t kSamsungAcStateLength
Definition: IRremoteESP8266.h:1134
kKelonBits
const uint16_t kKelonBits
Definition: IRremoteESP8266.h:1068
COOLIX
@ COOLIX
Definition: IRremoteESP8266.h:862
MILESTAG2
@ MILESTAG2
Definition: IRremoteESP8266.h:944
METZ
@ METZ
Definition: IRremoteESP8266.h:938
MIDEA24
@ MIDEA24
Definition: IRremoteESP8266.h:934
kSymphonyBits
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1162
kDaikin128StateLength
const uint16_t kDaikin128StateLength
Definition: IRremoteESP8266.h:998
kRC6Mode0Bits
const uint16_t kRC6Mode0Bits
Definition: IRremoteESP8266.h:1129
NEOCLIMA
@ NEOCLIMA
Definition: IRremoteESP8266.h:913
kDaikin176DefaultRepeat
const uint16_t kDaikin176DefaultRepeat
Definition: IRremoteESP8266.h:1006
kMitsubishiHeavy152MinRepeat
const uint16_t kMitsubishiHeavy152MinRepeat
Definition: IRremoteESP8266.h:1108
kSony12Bits
const uint16_t kSony12Bits
Definition: IRremoteESP8266.h:1157
kNoRepeat
const uint16_t kNoRepeat
Definition: IRremoteESP8266.h:959
kSony20Bits
const uint16_t kSony20Bits
Definition: IRremoteESP8266.h:1159
kMitsubishiACMinRepeat
const uint16_t kMitsubishiACMinRepeat
Definition: IRremoteESP8266.h:1096
MULTIBRACKETS
@ MULTIBRACKETS
Definition: IRremoteESP8266.h:929
kMetzBits
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:1081
kHitachiAc3MinBits
const uint16_t kHitachiAc3MinBits
Definition: IRremoteESP8266.h:1060
kPanasonicAcDefaultRepeat
const uint16_t kPanasonicAcDefaultRepeat
Definition: IRremoteESP8266.h:1122
kSymphonyDefaultRepeat
const uint16_t kSymphonyDefaultRepeat
Definition: IRremoteESP8266.h:1163
kSamsungAcExtendedStateLength
const uint16_t kSamsungAcExtendedStateLength
Definition: IRremoteESP8266.h:1136
kCoolixDefaultRepeat
const uint16_t kCoolixDefaultRepeat
Definition: IRremoteESP8266.h:974
DENON
@ DENON
Definition: IRremoteESP8266.h:864
kTcl112AcDefaultRepeat
const uint16_t kTcl112AcDefaultRepeat
Definition: IRremoteESP8266.h:1166
kDelonghiAcDefaultRepeat
const uint16_t kDelonghiAcDefaultRepeat
Definition: IRremoteESP8266.h:1011
kCoronaAcStateLength
const uint16_t kCoronaAcStateLength
Definition: IRremoteESP8266.h:982
SANYO
@ SANYO
Definition: IRremoteESP8266.h:858
kTecoDefaultRepeat
const uint16_t kTecoDefaultRepeat
Definition: IRremoteESP8266.h:1168
kMitsubishiHeavy152Bits
const uint16_t kMitsubishiHeavy152Bits
Definition: IRremoteESP8266.h:1107
kDoshishaBits
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:1019
kHaierAc176DefaultRepeat
const uint16_t kHaierAc176DefaultRepeat
Definition: IRremoteESP8266.h:1049
kCarrierAc40Bits
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:977
kAmcorBits
const uint16_t kAmcorBits
Definition: IRremoteESP8266.h:968
kTrotecStateLength
const uint16_t kTrotecStateLength
Definition: IRremoteESP8266.h:1180
LG2
@ LG2
Definition: IRremoteESP8266.h:898
kWhirlpoolAcDefaultRepeat
const uint16_t kWhirlpoolAcDefaultRepeat
Definition: IRremoteESP8266.h:1186
kHitachiAc424StateLength
const uint16_t kHitachiAc424StateLength
Definition: IRremoteESP8266.h:1063
kMitsubishiHeavy88StateLength
const uint16_t kMitsubishiHeavy88StateLength
Definition: IRremoteESP8266.h:1103
RC5X
@ RC5X
Definition: IRremoteESP8266.h:870
LASERTAG
@ LASERTAG
Definition: IRremoteESP8266.h:883
kFujitsuAcStateLengthShort
const uint16_t kFujitsuAcStateLengthShort
Definition: IRremoteESP8266.h:1031
kPanasonicManufacturer
const uint32_t kPanasonicManufacturer
Definition: IRremoteESP8266.h:1117
RAW
@ RAW
Definition: IRremoteESP8266.h:877
kMitsubishiBits
const uint16_t kMitsubishiBits
Definition: IRremoteESP8266.h:1090
SONY_38K
@ SONY_38K
Definition: IRremoteESP8266.h:921
RC6
@ RC6
Definition: IRremoteESP8266.h:849
PIONEER
@ PIONEER
Definition: IRremoteESP8266.h:897
kPanasonicAcStateLength
const uint16_t kPanasonicAcStateLength
Definition: IRremoteESP8266.h:1118
MITSUBISHI2
@ MITSUBISHI2
Definition: IRremoteESP8266.h:886
kFujitsuAcStateLength
const uint16_t kFujitsuAcStateLength
Definition: IRremoteESP8266.h:1030
kSamsungAcBits
const uint16_t kSamsungAcBits
Definition: IRremoteESP8266.h:1135
TRANSCOLD
@ TRANSCOLD
Definition: IRremoteESP8266.h:939
kMideaBits
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:1083
kKelvinatorStateLength
const uint16_t kKelvinatorStateLength
Definition: IRremoteESP8266.h:1069
kKelvinatorBits
const uint16_t kKelvinatorBits
Definition: IRremoteESP8266.h:1070
kMilesTag2MsgBits
const uint16_t kMilesTag2MsgBits
Definition: IRremoteESP8266.h:1195
LEGOPF
@ LEGOPF
Definition: IRremoteESP8266.h:905
WHYNTER
@ WHYNTER
Definition: IRremoteESP8266.h:855
kDaikin216DefaultRepeat
const uint16_t kDaikin216DefaultRepeat
Definition: IRremoteESP8266.h:1009
TECHNIBEL_AC
@ TECHNIBEL_AC
Definition: IRremoteESP8266.h:940
AMCOR
@ AMCOR
Definition: IRremoteESP8266.h:916
kWhirlpoolAcStateLength
const uint16_t kWhirlpoolAcStateLength
Definition: IRremoteESP8266.h:1184
kNECBits
const uint16_t kNECBits
Definition: IRremoteESP8266.h:1112
kDenonBits
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:1014
kHaierACBits
const uint16_t kHaierACBits
Definition: IRremoteESP8266.h:1042
kZepealBits
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1190
TCL112AC
@ TCL112AC
Definition: IRremoteESP8266.h:904
kSony15Bits
const uint16_t kSony15Bits
Definition: IRremoteESP8266.h:1158
kCarrierAc40MinRepeat
const uint16_t kCarrierAc40MinRepeat
Definition: IRremoteESP8266.h:978
kMidea24Bits
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:1085
kDaikin160DefaultRepeat
const uint16_t kDaikin160DefaultRepeat
Definition: IRremoteESP8266.h:997
kToshibaACMinRepeat
const uint16_t kToshibaACMinRepeat
Definition: IRremoteESP8266.h:1173
kSamsungAcExtendedBits
const uint16_t kSamsungAcExtendedBits
Definition: IRremoteESP8266.h:1137
TROTEC_3550
@ TROTEC_3550
Definition: IRremoteESP8266.h:951
PANASONIC_AC32
@ PANASONIC_AC32
Definition: IRremoteESP8266.h:943
kHitachiAc344StateLength
const uint16_t kHitachiAc344StateLength
Definition: IRremoteESP8266.h:1061
kNeoclimaBits
const uint16_t kNeoclimaBits
Definition: IRremoteESP8266.h:1114
kWhirlpoolAcBits
const uint16_t kWhirlpoolAcBits
Definition: IRremoteESP8266.h:1185
kHitachiAc344Bits
const uint16_t kHitachiAc344Bits
Definition: IRremoteESP8266.h:1062
kRC6_36Bits
const uint16_t kRC6_36Bits
Definition: IRremoteESP8266.h:1130
DAIKIN176
@ DAIKIN176
Definition: IRremoteESP8266.h:914
kCarrierAc64Bits
const uint16_t kCarrierAc64Bits
Definition: IRremoteESP8266.h:979
kDaikin128DefaultRepeat
const uint16_t kDaikin128DefaultRepeat
Definition: IRremoteESP8266.h:1000
kPioneerBits
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1124
kSharpAcStateLength
const uint16_t kSharpAcStateLength
Definition: IRremoteESP8266.h:1152
MITSUBISHI_HEAVY_88
@ MITSUBISHI_HEAVY_88
Definition: IRremoteESP8266.h:906
kGreeBits
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:1039
kJvcBits
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:1067
kDaikinStateLength
const uint16_t kDaikinStateLength
Definition: IRremoteESP8266.h:985
HAIER_AC176
@ HAIER_AC176
Definition: IRremoteESP8266.h:948
kLasertagBits
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:1072
kDaikin128Bits
const uint16_t kDaikin128Bits
Definition: IRremoteESP8266.h:999
kAiwaRcT501Bits
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:964
kTrumaBits
const uint16_t kTrumaBits
Definition: IRremoteESP8266.h:1183
kToshibaACStateLength
const uint16_t kToshibaACStateLength
Definition: IRremoteESP8266.h:1171
kTecoBits
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1167
kInaxMinRepeat
const uint16_t kInaxMinRepeat
Definition: IRremoteESP8266.h:1066
kPanasonicAcStateShortLength
const uint16_t kPanasonicAcStateShortLength
Definition: IRremoteESP8266.h:1119
CARRIER_AC40
@ CARRIER_AC40
Definition: IRremoteESP8266.h:930
kToshibaACBits
const uint16_t kToshibaACBits
Definition: IRremoteESP8266.h:1172
kSherwoodBits
const uint8_t kSherwoodBits
Definition: IRremoteESP8266.h:1155
DAIKIN152
@ DAIKIN152
Definition: IRremoteESP8266.h:917
NEC_LIKE
@ NEC_LIKE
Definition: IRremoteESP8266.h:873
kDaikinDefaultRepeat
const uint16_t kDaikinDefaultRepeat
Definition: IRremoteESP8266.h:989
kDaikin64DefaultRepeat
const uint16_t kDaikin64DefaultRepeat
Definition: IRremoteESP8266.h:994
SAMSUNG
@ SAMSUNG
Definition: IRremoteESP8266.h:854
AIWA_RC_T501
@ AIWA_RC_T501
Definition: IRremoteESP8266.h:856
MITSUBISHI_HEAVY_152
@ MITSUBISHI_HEAVY_152
Definition: IRremoteESP8266.h:907
VESTEL_AC
@ VESTEL_AC
Definition: IRremoteESP8266.h:901
kDaikinBits
const uint16_t kDaikinBits
Definition: IRremoteESP8266.h:986
kToshibaACStateLengthShort
const uint16_t kToshibaACStateLengthShort
Definition: IRremoteESP8266.h:1174
GREE
@ GREE
Definition: IRremoteESP8266.h:871
kToshibaACStateLengthLong
const uint16_t kToshibaACStateLengthLong
Definition: IRremoteESP8266.h:1176
kHitachiAcBits
const uint16_t kHitachiAcBits
Definition: IRremoteESP8266.h:1051
kSanyoAc88Bits
const uint16_t kSanyoAc88Bits
Definition: IRremoteESP8266.h:1142
KELON
@ KELON
Definition: IRremoteESP8266.h:950
kMitsubishiHeavy88MinRepeat
const uint16_t kMitsubishiHeavy88MinRepeat
Definition: IRremoteESP8266.h:1105
kHitachiAc3Bits
const uint16_t kHitachiAc3Bits
Definition: IRremoteESP8266.h:1058
kHitachiAcDefaultRepeat
const uint16_t kHitachiAcDefaultRepeat
Definition: IRremoteESP8266.h:1052
NIKAI
@ NIKAI
Definition: IRremoteESP8266.h:876
kMidea24MinRepeat
const uint16_t kMidea24MinRepeat
Definition: IRremoteESP8266.h:1086
kDishBits
const uint16_t kDishBits
Definition: IRremoteESP8266.h:1017
WHIRLPOOL_AC
@ WHIRLPOOL_AC
Definition: IRremoteESP8266.h:892
kDishMinRepeat
const uint16_t kDishMinRepeat
Definition: IRremoteESP8266.h:1018
kFujitsuAcBits
const uint16_t kFujitsuAcBits
Definition: IRremoteESP8266.h:1032
kArgoBits
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:971
RC5
@ RC5
Definition: IRremoteESP8266.h:848
kHitachiAc2StateLength
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:1055
HITACHI_AC
@ HITACHI_AC
Definition: IRremoteESP8266.h:887
SHARP_AC
@ SHARP_AC
Definition: IRremoteESP8266.h:909
HITACHI_AC1
@ HITACHI_AC1
Definition: IRremoteESP8266.h:888
kMitsubishiHeavy88Bits
const uint16_t kMitsubishiHeavy88Bits
Definition: IRremoteESP8266.h:1104
kCarrierAcMinRepeat
const uint16_t kCarrierAcMinRepeat
Definition: IRremoteESP8266.h:976
ZEPEAL
@ ZEPEAL
Definition: IRremoteESP8266.h:935
kNikaiBits
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:1111
kKelvinatorDefaultRepeat
const uint16_t kKelvinatorDefaultRepeat
Definition: IRremoteESP8266.h:1071
kLutronBits
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:1079
kSharpAcDefaultRepeat
const uint16_t kSharpAcDefaultRepeat
Definition: IRremoteESP8266.h:1154
MITSUBISHI136
@ MITSUBISHI136
Definition: IRremoteESP8266.h:918
kEliteScreensDefaultRepeat
const uint16_t kEliteScreensDefaultRepeat
Definition: IRremoteESP8266.h:1028
kTcl112AcStateLength
const uint16_t kTcl112AcStateLength
Definition: IRremoteESP8266.h:1164
kDaikin160StateLength
const uint16_t kDaikin160StateLength
Definition: IRremoteESP8266.h:995
kDaikin2StateLength
const uint16_t kDaikin2StateLength
Definition: IRremoteESP8266.h:990
kHaierACYRW02Bits
const uint16_t kHaierACYRW02Bits
Definition: IRremoteESP8266.h:1045
kEcoclimBits
const uint16_t kEcoclimBits
Definition: IRremoteESP8266.h:1020
kSherwoodMinRepeat
const uint16_t kSherwoodMinRepeat
Definition: IRremoteESP8266.h:1156
kCarrierAc64MinRepeat
const uint16_t kCarrierAc64MinRepeat
Definition: IRremoteESP8266.h:980
MWM
@ MWM
Definition: IRremoteESP8266.h:899
kHitachiAc424Bits
const uint16_t kHitachiAc424Bits
Definition: IRremoteESP8266.h:1064
kPanasonicAcShortBits
const uint16_t kPanasonicAcShortBits
Definition: IRremoteESP8266.h:1121
DAIKIN
@ DAIKIN
Definition: IRremoteESP8266.h:863
DELONGHI_AC
@ DELONGHI_AC
Definition: IRremoteESP8266.h:927
kSanyoAcStateLength
const uint16_t kSanyoAcStateLength
Definition: IRremoteESP8266.h:1139
kTechnibelAcDefaultRepeat
const uint16_t kTechnibelAcDefaultRepeat
Definition: IRremoteESP8266.h:1013
EPSON
@ EPSON
Definition: IRremoteESP8266.h:922
kLegoPfBits
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:1074
kSharpBits
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1151
kLastDecodeType
@ kLastDecodeType
Definition: IRremoteESP8266.h:955
SAMSUNG_AC
@ SAMSUNG_AC
Definition: IRremoteESP8266.h:893
kDaikinBitsShort
const uint16_t kDaikinBitsShort
Definition: IRremoteESP8266.h:988
DAIKIN216
@ DAIKIN216
Definition: IRremoteESP8266.h:908
PANASONIC_AC
@ PANASONIC_AC
Definition: IRremoteESP8266.h:896
kProntoMinLength
const uint16_t kProntoMinLength
Definition: IRremoteESP8266.h:1125
kMitsubishi136StateLength
const uint16_t kMitsubishi136StateLength
Definition: IRremoteESP8266.h:1097
DAIKIN64
@ DAIKIN64
Definition: IRremoteESP8266.h:925
kToshibaACBitsShort
const uint16_t kToshibaACBitsShort
Definition: IRremoteESP8266.h:1175
kRCMMBits
const uint16_t kRCMMBits
Definition: IRremoteESP8266.h:1131
kVestelAcBits
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1188
SAMSUNG36
@ SAMSUNG36
Definition: IRremoteESP8266.h:903
kSharpAddressBits
const uint8_t kSharpAddressBits
Definition: IRremoteESP8266.h:1149
kTranscoldBits
const uint16_t kTranscoldBits
Definition: IRremoteESP8266.h:1178
kInaxBits
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:1065
kLegoPfMinRepeat
const uint16_t kLegoPfMinRepeat
Definition: IRremoteESP8266.h:1075
kDaikin176Bits
const uint16_t kDaikin176Bits
Definition: IRremoteESP8266.h:1005
kAmcorDefaultRepeat
const uint16_t kAmcorDefaultRepeat
Definition: IRremoteESP8266.h:969
kEcoclimShortBits
const uint16_t kEcoclimShortBits
Definition: IRremoteESP8266.h:1021
ELITESCREENS
@ ELITESCREENS
Definition: IRremoteESP8266.h:942
KELVINATOR
@ KELVINATOR
Definition: IRremoteESP8266.h:865
VOLTAS
@ VOLTAS
Definition: IRremoteESP8266.h:937
kSamsungBits
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:1132
kDaikin64Bits
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:993
kTeknopointBits
const uint16_t kTeknopointBits
Definition: IRremoteESP8266.h:1170
XMP
@ XMP
Definition: IRremoteESP8266.h:946
kTcl112AcBits
const uint16_t kTcl112AcBits
Definition: IRremoteESP8266.h:1165
TECO
@ TECO
Definition: IRremoteESP8266.h:902
kPanasonicAc32Bits
const uint16_t kPanasonicAc32Bits
Definition: IRremoteESP8266.h:1123
kLasertagMinRepeat
const uint16_t kLasertagMinRepeat
Definition: IRremoteESP8266.h:1073
SHARP
@ SHARP
Definition: IRremoteESP8266.h:861
MITSUBISHI
@ MITSUBISHI
Definition: IRremoteESP8266.h:859
ELECTRA_AC
@ ELECTRA_AC
Definition: IRremoteESP8266.h:895
kDaikin216Bits
const uint16_t kDaikin216Bits
Definition: IRremoteESP8266.h:1008
kMitsubishi136Bits
const uint16_t kMitsubishi136Bits
Definition: IRremoteESP8266.h:1098
kNeoclimaMinRepeat
const uint16_t kNeoclimaMinRepeat
Definition: IRremoteESP8266.h:1115
kMitsubishi112StateLength
const uint16_t kMitsubishi112StateLength
Definition: IRremoteESP8266.h:1100
kSanyoAcBits
const uint16_t kSanyoAcBits
Definition: IRremoteESP8266.h:1140
kMitsubishi112Bits
const uint16_t kMitsubishi112Bits
Definition: IRremoteESP8266.h:1101
kSonyMinRepeat
const uint16_t kSonyMinRepeat
Definition: IRremoteESP8266.h:1161
kEpsonBits
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:1022
kLgBits
const uint16_t kLgBits
Definition: IRremoteESP8266.h:1076
kGoodweatherMinRepeat
const uint16_t kGoodweatherMinRepeat
Definition: IRremoteESP8266.h:1037
kElectraAcStateLength
const uint16_t kElectraAcStateLength
Definition: IRremoteESP8266.h:1024
kGreeDefaultRepeat
const uint16_t kGreeDefaultRepeat
Definition: IRremoteESP8266.h:1040