IRremoteESP8266: src/IRremoteESP8266.h Source File

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