Go to the documentation of this file.
13 #define __STDC_LIMIT_MACROS
21 #define MS_TO_USEC(x) ((x) * 1000U) // Convert milli-Seconds to micro-Seconds.
38 #define RAWTICK kRawTick // Deprecated. For legacy user code support only.
48 #define TIMEOUT_MS kTimeoutMs // For legacy documentation.
117 explicit IRrecv(
const uint16_t recvpin,
const uint16_t bufsize =
kRawBuf,
119 const bool save_buffer =
false,
122 explicit IRrecv(
const uint16_t recvpin,
const uint16_t bufsize =
kRawBuf,
124 const bool save_buffer =
false);
130 uint8_t max_skip = 0, uint16_t noise_floor = 0);
138 bool match(
const uint32_t measured,
const uint32_t desired,
140 const uint16_t delta = 0);
141 bool matchMark(
const uint32_t measured,
const uint32_t desired,
144 bool matchMarkRange(
const uint32_t measured,
const uint32_t desired,
145 const uint16_t range = 100,
147 bool matchSpace(
const uint32_t measured,
const uint32_t desired,
151 const uint16_t range = 100,
161 #endif // defined(ESP32)
171 uint16_t
compare(
const uint16_t oldval,
const uint16_t newval);
172 uint32_t
ticksLow(
const uint32_t usecs,
174 const uint16_t delta = 0);
177 const uint16_t delta = 0);
178 bool matchAtLeast(
const uint32_t measured,
const uint32_t desired,
180 const uint16_t delta = 0);
182 uint64_t *result_bits_ptr,
185 const uint16_t remaining,
186 const uint16_t required,
187 const uint16_t hdrmark,
188 const uint32_t hdrspace,
189 const uint16_t onemark,
190 const uint32_t onespace,
191 const uint16_t zeromark,
192 const uint32_t zerospace,
193 const uint16_t footermark,
194 const uint32_t footerspace,
195 const bool atleast =
false,
198 const bool MSBfirst =
true);
200 const uint16_t onemark,
const uint32_t onespace,
201 const uint16_t zeromark,
const uint32_t zerospace,
204 const bool MSBfirst =
true,
205 const bool expectlastspace =
true);
206 uint16_t
matchBytes(
volatile uint16_t *data_ptr, uint8_t *result_ptr,
207 const uint16_t remaining,
const uint16_t nbytes,
208 const uint16_t onemark,
const uint32_t onespace,
209 const uint16_t zeromark,
const uint32_t zerospace,
212 const bool MSBfirst =
true,
213 const bool expectlastspace =
true);
215 uint64_t *result_ptr,
216 const uint16_t remaining,
const uint16_t nbits,
217 const uint16_t hdrmark,
const uint32_t hdrspace,
218 const uint16_t onemark,
const uint32_t onespace,
219 const uint16_t zeromark,
const uint32_t zerospace,
220 const uint16_t footermark,
const uint32_t footerspace,
221 const bool atleast =
false,
224 const bool MSBfirst =
true);
225 uint16_t
matchGeneric(
volatile uint16_t *data_ptr, uint8_t *result_ptr,
226 const uint16_t remaining,
const uint16_t nbits,
227 const uint16_t hdrmark,
const uint32_t hdrspace,
228 const uint16_t onemark,
const uint32_t onespace,
229 const uint16_t zeromark,
const uint32_t zerospace,
230 const uint16_t footermark,
231 const uint32_t footerspace,
232 const bool atleast =
false,
235 const bool MSBfirst =
true);
237 uint64_t *result_ptr,
238 const uint16_t remaining,
239 const uint16_t nbits,
240 const uint16_t hdrmark,
241 const uint32_t hdrspace,
244 const uint16_t footermark,
245 const uint32_t footerspace,
246 const bool atleast =
false,
249 const bool MSBfirst =
true);
251 uint64_t *result_ptr,
252 const uint16_t remaining,
253 const uint16_t nbits,
254 const uint16_t half_period,
255 const uint16_t starting_balance = 0,
258 const bool MSBfirst =
true,
259 const bool GEThomas =
true);
261 uint64_t *result_ptr,
262 const uint16_t remaining,
263 const uint16_t nbits,
264 const uint16_t hdrmark,
265 const uint32_t hdrspace,
266 const uint16_t clock_period,
267 const uint16_t footermark,
268 const uint32_t footerspace,
269 const bool atleast =
false,
272 const bool MSBfirst =
true,
273 const bool GEThomas =
true);
280 const bool strict =
true);
281 #endif // DECODE_VOLTAS
282 #if (DECODE_NEC || DECODE_SHERWOOD || DECODE_AIWA_RC_T501 || DECODE_SANYO)
284 const uint16_t nbits =
kNECBits,
const bool strict =
true);
288 const uint16_t nbits =
kArgoBits,
const bool strict =
true);
289 #endif // DECODE_ARGO
292 const uint16_t nbits =
kArrisBits,
const bool strict =
true);
293 #endif // DECODE_ARRIS
297 const bool strict =
false);
307 const bool strict =
true);
313 const bool strict =
true);
314 #endif // DECODE_SANYO_AC
315 #if DECODE_SANYO_AC88
319 const bool strict =
true);
320 #endif // DECODE_SANYO_AC88
321 #if DECODE_MITSUBISHI
324 const bool strict =
true);
326 #if DECODE_MITSUBISHI2
330 const bool strict =
true);
332 #if DECODE_MITSUBISHI_AC
336 const bool strict =
false);
338 #if DECODE_MITSUBISHI136
342 const bool strict =
true);
344 #if DECODE_MITSUBISHI112
348 const bool strict =
true);
350 #if DECODE_MITSUBISHIHEAVY
354 const bool strict =
true);
356 #if (DECODE_RC5 || DECODE_RC6 || DECODE_LASERTAG || DECODE_MWM)
358 uint16_t bitTime,
const uint8_t tolerance =
kUseDefTol,
360 const uint16_t delta = 0,
const uint8_t maxwidth = 3);
365 const bool strict =
true);
370 const bool strict =
false);
375 const bool strict =
false);
377 #if (DECODE_PANASONIC || DECODE_DENON)
380 const bool strict =
false,
385 const uint16_t nbits =
kLgBits,
386 const bool strict =
false);
391 const bool strict =
true);
392 #endif // DECODE_INAX
396 const bool strict =
true);
401 const bool strict =
true);
406 const bool strict =
true);
408 #if DECODE_SAMSUNG_AC
411 const bool strict =
true);
416 const bool strict =
true);
421 const bool strict =
true);
426 const bool strict =
true);
431 const bool strict =
true);
433 #if (DECODE_SHARP || DECODE_DENON)
436 const bool strict =
true,
const bool expansion =
true);
441 const bool strict =
true);
443 #if DECODE_AIWA_RC_T501
446 const bool strict =
true);
451 const bool strict =
true);
456 const bool strict =
true);
458 #if DECODE_KELVINATOR
461 const bool strict =
true);
466 const bool strict =
true);
471 const bool strict =
true);
472 #endif // DECODE_DAIKIN64
476 const bool strict =
true);
477 #endif // DECODE_DAIKIN128
481 const bool strict =
true);
482 #endif // DECODE_DAIKIN152
486 const bool strict =
true);
487 #endif // DECODE_DAIKIN160
491 const bool strict =
true);
492 #endif // DECODE_DAIKIN176
496 const bool strict =
true);
501 const bool strict =
true);
503 #if DECODE_TOSHIBA_AC
506 const bool strict =
true);
511 const bool strict =
true);
512 #endif // DECODE_TROTEC
513 #if DECODE_TROTEC_3550
516 const bool strict =
true);
517 #endif // DECODE_TROTEC_3550
521 const bool strict =
true);
522 #endif // DECODE_MIDEA
526 const bool strict =
true);
527 #endif // DECODE_MIDEA24
528 #if DECODE_FUJITSU_AC
531 const bool strict =
false);
536 const bool strict =
true);
541 const bool strict =
true);
543 #if DECODE_CARRIER_AC
546 const bool strict =
true);
547 #endif // DECODE_CARRIER_AC
548 #if DECODE_CARRIER_AC40
552 const bool strict =
true);
553 #endif // DECODE_CARRIER_AC40
554 #if DECODE_CARRIER_AC64
558 const bool strict =
true);
559 #endif // DECODE_CARRIER_AC64
560 #if DECODE_GOODWEATHER
564 const bool strict =
true);
565 #endif // DECODE_GOODWEATHER
569 const bool strict =
true);
571 #if (DECODE_HAIER_AC | DECODE_HAIER_AC_YRW02)
574 const bool strict =
true);
576 #if DECODE_HAIER_AC_YRW02
580 const bool strict =
true);
582 #if DECODE_HAIER_AC176
586 const bool strict =
true);
587 #endif // DECODE_HAIER_AC176
588 #if (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC344)
591 const bool strict =
true,
const bool MSBfirst =
true);
593 #if DECODE_HITACHI_AC1
596 const bool strict =
true);
598 #if DECODE_HITACHI_AC3
602 const bool strict =
true);
603 #endif // DECODE_HITACHI_AC3
604 #if DECODE_HITACHI_AC424
608 const bool strict =
true);
609 #endif // DECODE_HITACHI_AC424
613 const bool strict =
true);
615 #if DECODE_WHIRLPOOL_AC
619 const bool strict =
true);
624 const bool strict =
true);
626 #if DECODE_ELECTRA_AC
629 const bool strict =
true);
631 #if DECODE_PANASONIC_AC
635 const bool strict =
true);
636 #endif // DECODE_PANASONIC_AC
637 #if DECODE_PANASONIC_AC32
641 const bool strict =
true);
642 #endif // DECODE_PANASONIC_AC32
646 const bool strict =
true);
650 const uint16_t nbits = 24,
651 const bool strict =
true);
656 const bool strict =
true);
661 const bool strict =
false);
666 const bool strict =
true);
671 const bool strict =
true);
672 #endif // DECODE_NEOCLIMA
676 const bool strict =
true);
677 #endif // DECODE_AMCOR
681 const bool strict =
true);
682 #endif // DECODE_EPSON
686 const bool strict =
true);
687 #endif // DECODE_SYMPHONY
691 const bool strict =
true);
692 #endif // DECODE_AIRWELL
693 #if DECODE_DELONGHI_AC
696 const bool strict =
true);
697 #endif // DECODE_DELONGHI_AC
701 const bool strict =
true);
702 #endif // DECODE_DOSHISHA
703 #if DECODE_MULTIBRACKETS
707 const bool strict =
true);
708 #endif // DECODE_MULTIBRACKETS
709 #if DECODE_TECHNIBEL_AC
713 const bool strict =
true);
714 #endif // DECODE_TECHNIBEL_AC
718 const bool strict =
true);
719 #endif // DECODE_CORONA_AC
723 const bool strict =
true);
724 #endif // DECODE_ZEPEAL
728 const bool strict =
true);
729 #endif // DECODE_METZ
733 const bool strict =
true);
734 #endif // DECODE_TRANSCOLD
739 const bool strict =
true);
740 #endif // DECODE_MIRAGE
741 #if DECODE_ELITESCREENS
745 const bool strict =
true);
746 #endif // DECODE_ELITESCREENS
750 const bool strict =
true);
751 #endif // DECODE_ECOCLIM
754 const uint16_t nbits =
kXmpBits,
const bool strict =
true);
758 const uint16_t nbits =
kTrumaBits,
const bool strict =
true);
759 #endif // DECODE_TRUMA
760 #if DECODE_TEKNOPOINT
763 const bool strict =
true);
764 #endif // DECODE_TEKNOPOINT
767 const uint16_t nbits =
kKelonBits,
const bool strict =
true);
768 #endif // DECODE_KELON
771 const uint16_t nbits =
kBoseBits,
const bool strict =
true);
772 #endif // DECODE_BOSE
775 const uint16_t nbits =
kRhossBits,
const bool strict =
true);
776 #endif // DECODE_RHOSS
780 const bool strict =
true);
781 #endif // DECODE_AIRTON
bool decodeMultibrackets(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMultibracketsBits, const bool strict=true)
Decode the Multibrackets message. Status: BETA / Appears to be working.
Definition: ir_Multibrackets.cpp:59
uint16_t matchBytes(volatile uint16_t *data_ptr, uint8_t *result_ptr, const uint16_t remaining, const uint16_t nbytes, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool expectlastspace=true)
Match & decode the typical data section of an IR message. The bytes are stored at result_ptr....
Definition: IRrecv.cpp:1373
bool decodeRhoss(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRhossBits, const bool strict=true)
Decode the supplied Rhoss formatted message. Status: STABLE / Known working.
Definition: ir_Rhoss.cpp:59
const uint16_t kDelonghiAcBits
Definition: IRremoteESP8266.h:1037
bool decodeMitsubishi(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiBits, const bool strict=true)
Decode the supplied Mitsubishi 16-bit message. Status: STABLE / Working.
Definition: ir_Mitsubishi.cpp:126
const uint16_t kRhossBits
Definition: IRremoteESP8266.h:1226
const uint16_t kMirageBits
Definition: IRremoteESP8266.h:1115
bool decodeHaierAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHaierACBits, const bool strict=true)
Decode the supplied Haier HSU07-HEA03 remote message. Status: STABLE / Known to be working.
Definition: ir_Haier.cpp:1336
bool decodeNEC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kNECBits, const bool strict=true)
Decode the supplied NEC (Renesas) message. Status: STABLE / Known good.
Definition: ir_NEC.cpp:81
const uint32_t kFnvPrime32
Definition: IRrecv.h:52
bool overflow
Definition: IRrecv.h:109
bool decodeDaikin128(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin128Bits, const bool strict=true)
Decode the supplied Daikin 128-bit message. (DAIKIN128) Status: STABLE / Known Working.
Definition: ir_Daikin.cpp:2921
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:1061
uint16_t matchGeneric(volatile uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical <= 64bit IR message. The data is stored at result_ptr.
Definition: IRrecv.cpp:1527
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:866
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:1002
bool decodeTranscold(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTranscoldBits, const bool strict=true)
Decode the supplied Transcold A/C message. Status: STABLE / Known Working.
Definition: ir_Transcold.cpp:441
int16_t getRClevel(decode_results *results, uint16_t *offset, uint16_t *used, uint16_t bitTime, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const uint16_t delta=0, const uint8_t maxwidth=3)
Gets one undecoded level at a time from the raw buffer. The RC5/6 decoding is easier if the data is b...
Definition: ir_RC5_RC6.cpp:243
const uint16_t kMultibracketsBits
Definition: IRremoteESP8266.h:1136
const uint16_t kSharpAcBits
Definition: IRremoteESP8266.h:1180
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1214
bool decodeSanyoAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoAcBits, const bool strict=true)
Decode the supplied SanyoAc message. Status: STABLE / Reported as working.
Definition: ir_Sanyo.cpp:283
uint8_t overflow
Definition: IRrecv.h:78
bool decodeMitsubishi2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiBits, const bool strict=true)
Decode the supplied second variation of a Mitsubishi 16-bit message. Status: STABLE / Working.
Definition: ir_Mitsubishi.cpp:191
bool decodeGree(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGreeBits, const bool strict=true)
Decode the supplied Gree HVAC message. Status: STABLE / Working.
Definition: ir_Gree.cpp:677
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:988
irparams_t * irparams_save
Definition: IRrecv.h:157
const uint16_t kMitsubishiACBits
Definition: IRremoteESP8266.h:1122
bool decodeFujitsuAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kFujitsuAcBits, const bool strict=false)
Decode the supplied Fujitsu AC IR message if possible. Status: STABLE / Working.
Definition: ir_Fujitsu.cpp:946
bool decodeSanyoAc88(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoAc88Bits, const bool strict=true)
Decode the supplied SanyoAc message. Status: ALPHA / Untested.
Definition: ir_Sanyo.cpp:700
const uint16_t kArrisBits
Definition: IRremoteESP8266.h:999
bool matchMarkRange(const uint32_t measured, const uint32_t desired, const uint16_t range=100, const int16_t excess=kMarkExcess)
Check if we match a mark signal(measured) with the desired within a range (in uSeconds) either side o...
Definition: IRrecv.cpp:1196
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:1039
bool decodeTrotec(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTrotecBits, const bool strict=true)
Decode the supplied Trotec message. Status: STABLE / Works. Untested on real devices.
Definition: ir_Trotec.cpp:316
bool decodeNeoclima(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kNeoclimaBits, const bool strict=true)
Decode the supplied Neoclima message. Status: STABLE / Known working.
Definition: ir_Neoclima.cpp:571
const uint16_t kVoltasBits
Definition: IRremoteESP8266.h:1219
bool decodeMitsubishi112(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishi112Bits, const bool strict=true)
Decode the supplied Mitsubishi/TCL 112-bit A/C message. (MITSUBISHI112, TCL112AC) Status: STABLE / Re...
Definition: ir_Mitsubishi.cpp:1187
bool decodeSamsungAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungAcBits, const bool strict=true)
Decode the supplied Samsung A/C message. Status: Stable / Known to be working.
Definition: ir_Samsung.cpp:954
bool decodeAirwell(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAirwellBits, const bool strict=true)
Decode the supplied Airwell "Manchester code" message.
Definition: ir_Airwell.cpp:53
const uint16_t kRC5XBits
Definition: IRremoteESP8266.h:1155
bool decodeMagiQuest(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMagiquestBits, const bool strict=true)
Decode the supplied MagiQuest message. Status: Beta / Should work.
Definition: ir_Magiquest.cpp:69
uint16_t rawlen
Definition: IRrecv.h:77
const uint8_t kUseDefTol
Definition: IRrecv.h:36
bool decodeDelonghiAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDelonghiAcBits, const bool strict=true)
Decode the supplied Delonghi A/C message. Status: STABLE / Expected to be working.
Definition: ir_Delonghi.cpp:58
Class for receiving IR messages.
Definition: IRrecv.h:114
uint16_t bufsize
Definition: IRrecv.h:73
Results returned from the decoder.
Definition: IRrecv.h:92
uint16_t matchGenericConstBitTime(volatile uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t one, const uint32_t zero, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical constant bit time <= 64bit IR message. The data is stored at result_...
Definition: IRrecv.cpp:1621
const uint16_t kBoseBits
Definition: IRremoteESP8266.h:1224
bool decodeCarrierAC64(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAc64Bits, const bool strict=true)
Decode the supplied Carrier 64-bit HVAC message. Status: STABLE / Known to be working.
Definition: ir_Carrier.cpp:195
const uint16_t kCoolixBits
Definition: IRremoteESP8266.h:1000
bool decodeArgo(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kArgoBits, const bool strict=true)
Decode the supplied Argo message. Status: BETA / Probably works.
Definition: ir_Argo.cpp:445
const uint16_t kCoronaAcBitsShort
Definition: IRremoteESP8266.h:1010
uint64_t data
Definition: IRrecv.h:85
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:1160
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:1107
uint16_t * rawbuf
Definition: IRrecv.h:74
Information for the interrupt handler.
Definition: IRrecv.h:69
uint16_t getBufSize(void)
Obtain the maximum number of entries possible in the capture buffer. i.e. It's size.
Definition: IRrecv.cpp:416
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1174
bool repeat
Definition: IRrecv.h:110
bool decodeHitachiAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAcBits, const bool strict=true, const bool MSBfirst=true)
Decode the supplied Hitachi A/C message. Status: STABLE / Expected to work.
Definition: ir_Hitachi.cpp:846
const uint16_t kTrotecBits
Definition: IRremoteESP8266.h:1208
bool decodeVestelAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kVestelAcBits, const bool strict=true)
Decode the supplied Vestel message. Status: Alpha / Needs testing against a real device.
Definition: ir_Vestel.cpp:537
const uint8_t kIdleState
Definition: IRrecv.h:31
bool decodeAmcor(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAmcorBits, const bool strict=true)
Decode the supplied Amcor HVAC message. Status: STABLE / Reported as working.
Definition: ir_Amcor.cpp:58
bool decodeDaikin(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikinBits, const bool strict=true)
Decode the supplied Daikin 280-bit message. (DAIKIN) Status: STABLE / Reported as working.
Definition: ir_Daikin.cpp:598
bool decodeTeknopoint(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTeknopointBits, const bool strict=true)
Decode the supplied Teknopoint message. Status: Alpha / Probably works.
Definition: ir_Teknopoint.cpp:49
bool decodeHaierAC176(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHaierAC176Bits, const bool strict=true)
Decode the supplied Haier 176 bit remote A/C message. Status: STABLE / Known to be working.
Definition: ir_Haier.cpp:1415
const uint16_t kEliteScreensBits
Definition: IRremoteESP8266.h:1054
uint8_t recvpin
Definition: IRrecv.h:70
uint16_t timer
Definition: IRrecv.h:72
bool decodeDaikin64(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin64Bits, const bool strict=true)
Decode the supplied Daikin 64-bit message. (DAIKIN64) Status: Beta / Probably Working.
Definition: ir_Daikin.cpp:3371
bool decodeMetz(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMetzBits, const bool strict=true)
Decode the supplied Metz message. Status: BETA / Probably works.
Definition: ir_Metz.cpp:67
bool success
Definition: IRrecv.h:84
bool decodeDaikin2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin2Bits, const bool strict=true)
Decode the supplied Daikin 312-bit message. (DAIKIN2) Status: STABLE / Works as expected.
Definition: ir_Daikin.cpp:1332
const uint16_t kElectraAcBits
Definition: IRremoteESP8266.h:1052
bool matchSpace(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess)
Check if we match a space signal(measured) with the desired within +/-tolerance percent,...
Definition: IRrecv.cpp:1215
const uint16_t kSonyMinBits
Definition: IRremoteESP8266.h:1187
const uint16_t kHaierAC176Bits
Definition: IRremoteESP8266.h:1075
const uint8_t kStopState
Definition: IRrecv.h:34
uint16_t rawlen
Definition: IRrecv.h:108
const uint16_t kMaxTimeoutMs
Definition: IRrecv.h:49
bool decodePanasonicAC32(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicAc32Bits, const bool strict=true)
Decode the supplied Panasonic AC 32/16bit message. Status: STABLE / Confirmed working.
Definition: ir_Panasonic.cpp:982
const uint16_t kDaikin2Bits
Definition: IRremoteESP8266.h:1018
bool decodePanasonic(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicBits, const bool strict=false, const uint32_t manufacturer=kPanasonicManufacturer)
Decode the supplied Panasonic message. Status: STABLE / Should be working.
Definition: ir_Panasonic.cpp:128
const uint16_t kHitachiAc1Bits
Definition: IRremoteESP8266.h:1081
bool decodeElectraAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kElectraAcBits, const bool strict=true)
Decode the supplied Electra A/C message. Status: STABLE / Known working.
Definition: ir_Electra.cpp:424
bool decodeDaikin216(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin216Bits, const bool strict=true)
Decode the supplied Daikin 216-bit message. (DAIKIN216) Status: STABLE / Should be working.
Definition: ir_Daikin.cpp:1679
bool decodeDaikin152(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin152Bits, const bool strict=true)
Decode the supplied Daikin 152-bit message. (DAIKIN152) Status: STABLE / Known Working.
Definition: ir_Daikin.cpp:3010
bool decodeElitescreens(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEliteScreensBits, const bool strict=true)
Decode the supplied Elite Screens message. Status: STABLE / Confirmed working.
Definition: ir_EliteScreens.cpp:63
bool decodeDenon(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDenonBits, const bool strict=true)
Decode the supplied Delonghi A/C message. Status: STABLE / Should work fine.
Definition: ir_Denon.cpp:70
bool decodeBose(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kBoseBits, const bool strict=true)
Decode the supplied Bose formatted message. Status: STABLE / Known working.
Definition: ir_Bose.cpp:48
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:1143
const uint16_t kMilesTag2ShotBits
Definition: IRremoteESP8266.h:1221
decode_type_t decode_type
Definition: IRrecv.h:94
const uint16_t kPanasonicAcBits
Definition: IRremoteESP8266.h:1147
bool decodeTechnibelAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTechnibelAcBits, const bool strict=true)
Status: STABLE / Reported as working on a real device.
Definition: ir_Technibel.cpp:54
const uint64_t kRepeat
Definition: IRrecv.h:26
void setTolerance(const uint8_t percent=kTolerance)
Set the base tolerance percentage for matching incoming IR messages.
Definition: IRrecv.cpp:429
const uint16_t kXmpBits
Definition: IRremoteESP8266.h:1216
bool decodeMidea(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMideaBits, const bool strict=true)
Decode the supplied Midea message. Status: Alpha / Needs testing against a real device.
Definition: ir_Midea.cpp:666
bool decodeVoltas(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kVoltasBits, const bool strict=true)
Decode the supplied Voltas message. Status: STABLE / Working on real device.
Definition: ir_Voltas.cpp:61
bool decodeAirton(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAirtonBits, const bool strict=true)
Decode the supplied Airton message. Status: STABLE / Confirmed working. LSBF ordering confirmed via t...
Definition: ir_Airton.cpp:47
const uint16_t kDaikin160Bits
Definition: IRremoteESP8266.h:1023
void copyIrParams(volatile irparams_t *src, irparams_t *dst)
Make a copy of the interrupt state & buffer data. Needed because irparams is marked as volatile,...
Definition: IRrecv.cpp:392
bool decodeKelvinator(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kKelvinatorBits, const bool strict=true)
Decode the supplied Kelvinator message. Status: STABLE / Known working.
Definition: ir_Kelvinator.cpp:459
const uint16_t kGoodweatherBits
Definition: IRremoteESP8266.h:1063
bool decodeMWM(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=24, const bool strict=true)
Decode the supplied MWM message. Status: Implemented.
Definition: ir_MWM.cpp:81
void enableIRIn(const bool pullup=false)
Set up and (re)start the IR capture mechanism.
Definition: IRrecv.cpp:323
const uint16_t kDaikin152Bits
Definition: IRremoteESP8266.h:1029
bool matchSpaceRange(const uint32_t measured, const uint32_t desired, const uint16_t range=100, const int16_t excess=kMarkExcess)
Check if we match a space signal(measured) with the desired within a range (in uSeconds) either side ...
Definition: IRrecv.cpp:1235
bool decodePanasonicAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicAcBits, const bool strict=true)
Decode the supplied Panasonic AC message. Status: STABLE / Works with real device(s).
Definition: ir_Panasonic.cpp:853
const uint16_t kKelonBits
Definition: IRremoteESP8266.h:1095
bool decodeDoshisha(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDoshishaBits, const bool strict=true)
Decode the supplied Doshisha message. Status: STABLE / Works on real device.
Definition: ir_Doshisha.cpp:85
bool decodeZepeal(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kZepealBits, const bool strict=true)
Decode the supplied Zepeal message. Status: STABLE / Works on real device.
Definition: ir_Zepeal.cpp:67
bool decodeDaikin160(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin160Bits, const bool strict=true)
Decode the supplied Daikin 160-bit message. (DAIKIN160) Status: STABLE / Confirmed working.
Definition: ir_Daikin.cpp:2034
bool decodeLasertag(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLasertagBits, const bool strict=true)
Decode the supplied Lasertag message. Status: BETA / Appears to be working 90% of the time.
Definition: ir_Lasertag.cpp:70
const uint8_t kTimeoutMs
Definition: IRrecv.h:47
uint16_t _matchGeneric(volatile uint16_t *data_ptr, uint64_t *result_bits_ptr, uint8_t *result_ptr, const bool use_bits, const uint16_t remaining, const uint16_t required, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical IR message. The data is stored in result_bits_ptr or result_bytes_pt...
Definition: IRrecv.cpp:1425
const uint8_t kMarkState
Definition: IRrecv.h:32
void setUnknownThreshold(const uint16_t length)
Set the minimum length we will consider for reporting UNKNOWN message types.
Definition: IRrecv.cpp:421
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1189
bool decodeMirage(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMirageBits, const bool strict=true)
Decode the supplied Mirage message. Status: STABLE / Reported as working.
Definition: ir_Mirage.cpp:73
const uint16_t kRC6Mode0Bits
Definition: IRremoteESP8266.h:1156
const uint16_t kStateSizeMax
Definition: IRrecv.h:60
Results from a data match.
Definition: IRrecv.h:83
bool decodeTrotec3550(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTrotecBits, const bool strict=true)
Decode the supplied Trotec 3550 message. Status: STABLE / Known to be working.
Definition: ir_Trotec.cpp:376
uint8_t rcvstate
Definition: IRrecv.h:71
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:1108
bool decodeRC6(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRC6Mode0Bits, const bool strict=false)
Decode the supplied RC6 message. Status: Stable.
Definition: ir_RC5_RC6.cpp:383
bool decodeRC5(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRC5XBits, const bool strict=true)
Decode the supplied RC-5/RC5X message. Status: RC-5 (stable), RC-5X (alpha)
Definition: ir_RC5_RC6.cpp:309
~IRrecv(void)
Class destructor Cleans up after the object is no longer needed. e.g. Frees up all memory used by the...
Definition: IRrecv.cpp:308
bool decodeHitachiAc3(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc3Bits, const bool strict=true)
Decode the supplied Hitachi 15to27-byte/120to216-bit A/C message. Status: STABLE / Works fine.
Definition: ir_Hitachi.cpp:1425
bool decodeWhynter(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kWhynterBits, const bool strict=true)
Decode the supplied Whynter message. Status: STABLE / Working. Strict mode is ALPHA.
Definition: ir_Whynter.cpp:74
bool decodeCarrierAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAcBits, const bool strict=true)
Decode the supplied Carrier HVAC message.
Definition: ir_Carrier.cpp:82
const uint16_t kMitsubishiHeavy152Bits
Definition: IRremoteESP8266.h:1134
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:1046
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:1004
const uint16_t kStartOffset
Definition: IRrecv.h:20
const uint16_t kAmcorBits
Definition: IRremoteESP8266.h:994
bool decodeRCMM(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRCMMBits, const bool strict=false)
Decode a Philips RC-MM packet (between 12 & 32 bits) if possible. Status: STABLE / Should be working.
Definition: ir_RCMM.cpp:96
IRrecv(const uint16_t recvpin, const uint16_t bufsize=kRawBuf, const uint8_t timeout=kTimeoutMs, const bool save_buffer=false, const uint8_t timer_num=kDefaultESP32Timer)
Class constructor Args:
Definition: IRrecv.cpp:247
bool decodeMitsubishi136(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishi136Bits, const bool strict=true)
Decode the supplied Mitsubishi 136-bit A/C message. (MITSUBISHI136) Status: STABLE / Reported as work...
Definition: ir_Mitsubishi.cpp:813
volatile uint16_t * rawbuf
Definition: IRrecv.h:107
const uint8_t kTolerance
Definition: IRrecv.h:35
bool decodeSharp(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSharpBits, const bool strict=true, const bool expansion=true)
Decode the supplied Sharp message. Status: STABLE / Working fine.
Definition: ir_Sharp.cpp:157
uint16_t used
Definition: IRrecv.h:86
const uint32_t kPanasonicManufacturer
Definition: IRremoteESP8266.h:1144
uint32_t address
Definition: IRrecv.h:101
bool decodeNikai(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kNikaiBits, const bool strict=true)
Decode the supplied Nikai message. Status: STABLE / Working.
Definition: ir_Nikai.cpp:52
const uint16_t kMitsubishiBits
Definition: IRremoteESP8266.h:1117
bool match(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Check if we match a pulse(measured) with the desired within +/-tolerance percent and/or +/- a fixed d...
Definition: IRrecv.cpp:1103
bool decodeSymphony(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSymphonyBits, const bool strict=true)
Decode the supplied Symphony packet/message. Status: STABLE / Should be working.
Definition: ir_Symphony.cpp:69
bool decodeTruma(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTrumaBits, const bool strict=true)
Decode the supplied Truma message. Status: STABLE / Confirmed working with real device.
Definition: ir_Truma.cpp:65
const uint16_t kSamsungAcBits
Definition: IRremoteESP8266.h:1162
const uint16_t kUnknownThreshold
Definition: IRrecv.h:28
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:1110
bool decodeAiwaRCT501(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAiwaRcT501Bits, const bool strict=true)
Decode the supplied Aiwa RC T501 message. Status: BETA / Should work.
Definition: ir_Aiwa.cpp:61
const uint16_t kKelvinatorBits
Definition: IRremoteESP8266.h:1097
bool decodeGICable(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGicableBits, const bool strict=true)
Decode the supplied G.I. Cable message. Status: Alpha / Not tested against a real device.
Definition: ir_GICable.cpp:63
bool decodeTeco(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTecoBits, const bool strict=false)
Decode the supplied Teco message. Status: STABLE / Tested.
Definition: ir_Teco.cpp:353
bool decodeSanyoLC7461(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoLC7461Bits, const bool strict=true)
Decode the supplied SANYO LC7461 message. Status: BETA / Probably works.
Definition: ir_Sanyo.cpp:146
bool decodeCarrierAC40(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAc40Bits, const bool strict=true)
Decode the supplied Carrier 40-bit HVAC message. Carrier HVAC messages contain only 40 bits,...
Definition: ir_Carrier.cpp:147
const uint16_t kNECBits
Definition: IRremoteESP8266.h:1139
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:1041
const uint16_t kHaierACBits
Definition: IRremoteESP8266.h:1069
bool matchAtLeast(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Check if we match a pulse(measured) of at least desired within tolerance percent and/or a fixed delta...
Definition: IRrecv.cpp:1134
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1217
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:1112
bool decodeKelon(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kKelonBits, const bool strict=true)
Decode the supplied Kelon message. Status: STABLE / Working.
Definition: ir_Kelon.cpp:71
bool decodeDaikin176(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin176Bits, const bool strict=true)
Decode the supplied Daikin 176-bit message. (DAIKIN176) Status: STABLE / Expected to work.
Definition: ir_Daikin.cpp:2426
const uint16_t kNeoclimaBits
Definition: IRremoteESP8266.h:1141
const uint16_t kWhirlpoolAcBits
Definition: IRremoteESP8266.h:1212
bool decodeSharpAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSharpAcBits, const bool strict=true)
Decode the supplied Sharp A/C message. Status: STABLE / Known working.
Definition: ir_Sharp.cpp:947
bool decodeJVC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kJvcBits, const bool strict=true)
Decode the supplied JVC message. Status: Stable / Known working.
Definition: ir_JVC.cpp:94
bool decodeEcoclim(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEcoclimBits, const bool strict=true)
Decode the supplied EcoClim A/C message. Status: STABLE / Confirmed working on real remote.
Definition: ir_Ecoclim.cpp:68
bool decodeMitsubishiAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiACBits, const bool strict=false)
Decode the supplied Mitsubish 144-bit A/C message. Status: BETA / Probably works.
Definition: ir_Mitsubishi.cpp:257
const uint16_t kCarrierAc64Bits
Definition: IRremoteESP8266.h:1006
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1151
uint16_t bits
Definition: IRrecv.h:106
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:1066
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:1094
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:1099
const uint16_t kDaikin128Bits
Definition: IRremoteESP8266.h:1026
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:990
uint32_t ticksLow(const uint32_t usecs, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Calculate the lower bound of the nr. of ticks.
Definition: IRrecv.cpp:1077
const uint16_t kTrumaBits
Definition: IRremoteESP8266.h:1210
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1194
bool decodeEpson(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEpsonBits, const bool strict=true)
Decode the supplied Epson message. Status: Beta / Probably works.
Definition: ir_Epson.cpp:52
const uint16_t kToshibaACBits
Definition: IRremoteESP8266.h:1199
bool decodeSony(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSonyMinBits, const bool strict=false)
Decode the supplied Sony/SIRC message. Status: STABLE / Should be working. strict mode is ALPHA / Unt...
Definition: ir_Sony.cpp:121
const uint16_t kDaikinBits
Definition: IRremoteESP8266.h:1013
bool matchMark(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess)
Check if we match a mark signal(measured) with the desired within +/-tolerance percent,...
Definition: IRrecv.cpp:1176
const uint16_t kHitachiAcBits
Definition: IRremoteESP8266.h:1078
const uint16_t kSanyoAc88Bits
Definition: IRremoteESP8266.h:1169
const uint16_t kHitachiAc3Bits
Definition: IRremoteESP8266.h:1085
const uint16_t kRawBuf
Definition: IRrecv.h:25
bool decode(decode_results *results, irparams_t *save=NULL, uint8_t max_skip=0, uint16_t noise_floor=0)
Decodes the received IR message. If the interrupt state is saved, we will immediately resume waiting ...
Definition: IRrecv.cpp:506
bool decodePioneer(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPioneerBits, const bool strict=true)
Decode the supplied Pioneer message. Status: STABLE / Should be working. (Self decodes & real example...
Definition: ir_Pioneer.cpp:92
uint8_t getTolerance(void)
Get the base tolerance percentage for matching incoming IR messages.
Definition: IRrecv.cpp:435
const uint16_t kDishBits
Definition: IRremoteESP8266.h:1044
uint16_t compare(const uint16_t oldval, const uint16_t newval)
Compare two tick values.
Definition: IRrecv.cpp:1253
uint32_t command
Definition: IRrecv.h:102
const uint16_t kFujitsuAcBits
Definition: IRremoteESP8266.h:1059
uint64_t value
Definition: IRrecv.h:100
const uint16_t kAirtonBits
Definition: IRremoteESP8266.h:986
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:997
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:1082
bool decodeSamsung36(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsung36Bits, const bool strict=true)
Decode the supplied Samsung36 message. Status: STABLE / Expected to work.
Definition: ir_Samsung.cpp:206
const uint16_t kFooter
Definition: IRrecv.h:19
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:1138
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:1106
bool decodeXmp(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kXmpBits, const bool strict=true)
Decode the supplied XMP packet/message. Status: BETA / Probably works.
Definition: ir_Xmp.cpp:160
uint8_t timeout
Definition: IRrecv.h:79
bool decodeCoronaAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoronaAcBitsShort, const bool strict=true)
Decode the supplied CoronaAc message. Status: STABLE / Appears to be working.
Definition: ir_Corona.cpp:88
bool decodeLutron(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLutronBits, const bool strict=true)
Decode the supplied Lutron message. Status: STABLE / Working.
Definition: ir_Lutron.cpp:65
bool decodeDISH(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDishBits, const bool strict=true)
Decode the supplied DISH NETWORK message. Status: ALPHA (untested and unconfirmed....
Definition: ir_Dish.cpp:77
const uint16_t kRawTick
Definition: IRrecv.h:37
uint16_t matchManchesterData(volatile const uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t half_period, const uint16_t starting_balance=0, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool GEThomas=true)
Match & decode a Manchester Code data (<= 64bits.
Definition: IRrecv.cpp:1815
void resume(void)
Resume collection of received IR data.
Definition: IRrecv.cpp:377
bool decodeMilestag2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMilesTag2ShotBits, const bool strict=true)
Decode the supplied MilesTag2 message. Status: ALPHA / Probably works but needs testing with a real d...
Definition: ir_MilesTag2.cpp:63
const uint16_t kEcoclimBits
Definition: IRremoteESP8266.h:1047
const uint16_t kHaierACYRW02Bits
Definition: IRremoteESP8266.h:1072
match_result_t matchData(volatile uint16_t *data_ptr, const uint16_t nbits, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool expectlastspace=true)
Match & decode the typical data section of an IR message. The data value is stored in the least signi...
Definition: IRrecv.cpp:1312
const uint16_t kHitachiAc424Bits
Definition: IRremoteESP8266.h:1091
bool decodeWhirlpoolAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kWhirlpoolAcBits, const bool strict=true)
Decode the supplied Whirlpool A/C message. Status: STABLE / Working as intended.
Definition: ir_Whirlpool.cpp:607
const uint16_t kMarkExcess
Definition: IRrecv.h:24
bool decodeHaierACYRW02(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHaierACYRW02Bits, const bool strict=true)
Decode the supplied Haier YR-W02 remote A/C message. Status: BETA / Appears to be working.
Definition: ir_Haier.cpp:1382
bool decodeLG(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLgBits, const bool strict=false)
Decode the supplied LG message. Status: STABLE / Working.
Definition: ir_LG.cpp:155
bool decodeCOOLIX(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolixBits, const bool strict=true)
Decode the supplied Coolix A/C message. Status: STABLE / Known Working.
Definition: ir_Coolix.cpp:632
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:1101
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1178
bool decodeGoodweather(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGoodweatherBits, const bool strict=true)
Decode the supplied Goodweather message. Status: BETA / Probably works.
Definition: ir_Goodweather.cpp:426
uint8_t _tolerance
Definition: IRrecv.h:158
const uint8_t kDefaultESP32Timer
Definition: IRrecv.h:56
uint16_t matchManchester(volatile const uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t clock_period, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool GEThomas=true)
Match & decode a Manchester Code <= 64bit IR message. The data is stored at result_ptr.
Definition: IRrecv.cpp:1708
bool decodeInax(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kInaxBits, const bool strict=true)
Decode the supplied Inax Toilet message. Status: Stable / Known working.
Definition: ir_Inax.cpp:51
void crudeNoiseFilter(decode_results *results, const uint16_t floor=0)
Remove or merge pulses in the capture buffer that are too short.
Definition: IRrecv.cpp:442
bool decodeHitachiAC1(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc1Bits, const bool strict=true)
bool decodeSAMSUNG(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungBits, const bool strict=true)
Decode the supplied Samsung 32-bit message. Status: STABLE.
Definition: ir_Samsung.cpp:132
bool decodeLegoPf(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLegoPfBits, const bool strict=true)
Decode the supplied LEGO Power Functions message. Status: STABLE / Appears to work.
Definition: ir_Lego.cpp:71
const uint16_t kRCMMBits
Definition: IRremoteESP8266.h:1158
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1215
const uint16_t kTranscoldBits
Definition: IRremoteESP8266.h:1205
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:1092
bool decodeArris(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kArrisBits, const bool strict=true)
Decode the supplied Arris "Manchester code" message. Status: STABLE / Confirmed working.
Definition: ir_Arris.cpp:83
bool decodeMitsubishiHeavy(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiHeavy152Bits, const bool strict=true)
Decode the supplied Mitsubishi Heavy Industries A/C message. Status: BETA / Appears to be working....
Definition: ir_MitsubishiHeavy.cpp:1003
uint16_t _unknown_threshold
Definition: IRrecv.h:163
const uint16_t kDaikin176Bits
Definition: IRremoteESP8266.h:1032
bool decodeMidea24(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMidea24Bits, const bool strict=true)
Decode the supplied Midea24 message. Status: STABLE / Confirmed working on a real device.
Definition: ir_Midea.cpp:759
void disableIRIn(void)
Stop collection of any received IR data. Disable any timers and interrupts.
Definition: IRrecv.cpp:360
bool decodeHitachiAc424(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc424Bits, const bool strict=true)
Decode the supplied Hitachi 53-byte/424-bit A/C message. Status: STABLE / Reported as working.
Definition: ir_Hitachi.cpp:959
bool decodeToshibaAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kToshibaACBits, const bool strict=true)
Decode the supplied Toshiba A/C message. Status: STABLE / Working.
Definition: ir_Toshiba.cpp:493
uint32_t ticksHigh(const uint32_t usecs, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Calculate the upper bound of the nr. of ticks.
Definition: IRrecv.cpp:1090
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:1159
uint8_t _timer_num
Definition: IRrecv.h:160
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:1020
const uint16_t kTeknopointBits
Definition: IRremoteESP8266.h:1197
const uint16_t kPanasonicAc32Bits
Definition: IRremoteESP8266.h:1150
volatile irparams_t * _getParamsPtr(void)
Unit test helper to get access to the params structure.
Definition: IRrecv.cpp:1936
const uint16_t kDaikin216Bits
Definition: IRremoteESP8266.h:1035
const uint16_t kMitsubishi136Bits
Definition: IRremoteESP8266.h:1125
const uint16_t kSanyoAcBits
Definition: IRremoteESP8266.h:1167
const uint16_t kMitsubishi112Bits
Definition: IRremoteESP8266.h:1128
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:1049
uint8_t state[kStateSizeMax]
Definition: IRrecv.h:104
bool decodeHash(decode_results *results)
Decode any arbitrary IR message into a 32-bit code value. Instead of decoding using a standard encodi...
Definition: IRrecv.cpp:1274
const uint8_t kSpaceState
Definition: IRrecv.h:33
const uint16_t kLgBits
Definition: IRremoteESP8266.h:1103
uint8_t _validTolerance(const uint8_t percentage)
Convert the tolerance percentage into something valid.
Definition: IRrecv.cpp:1068
const uint16_t kHeader
Definition: IRrecv.h:18
const uint32_t kFnvBasis32
Definition: IRrecv.h:53