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. 
   58 #ifdef SOC_TIMER_GROUP_TOTAL_TIMERS 
   60 #else  // SOC_TIMER_GROUP_TOTAL_TIMERS 
   62 #endif  // SOC_TIMER_GROUP_TOTAL_TIMERS 
  124   explicit IRrecv(
const uint16_t recvpin, 
const uint16_t bufsize = 
kRawBuf,
 
  126                   const bool save_buffer = 
false,
 
  129   explicit IRrecv(
const uint16_t recvpin, 
const uint16_t bufsize = 
kRawBuf,
 
  131                   const bool save_buffer = 
false);                
 
  137               uint8_t max_skip = 0, uint16_t noise_floor = 0);
 
  146   bool match(
const uint32_t measured, 
const uint32_t desired,
 
  148              const uint16_t delta = 0);
 
  149   bool matchMark(
const uint32_t measured, 
const uint32_t desired,
 
  152   bool matchMarkRange(
const uint32_t measured, 
const uint32_t desired,
 
  153                       const uint16_t range = 100,
 
  155   bool matchSpace(
const uint32_t measured, 
const uint32_t desired,
 
  159                        const uint16_t range = 100,
 
  169 #endif  // defined(ESP32) 
  179   uint16_t 
compare(
const uint16_t oldval, 
const uint16_t newval);
 
  180   uint32_t 
ticksLow(
const uint32_t usecs,
 
  182                     const uint16_t delta = 0);
 
  185                      const uint16_t delta = 0);
 
  186   bool matchAtLeast(
const uint32_t measured, 
const uint32_t desired,
 
  188                     const uint16_t delta = 0);
 
  190                          uint64_t *result_bits_ptr,
 
  193                          const uint16_t remaining,
 
  194                          const uint16_t required,
 
  195                          const uint16_t hdrmark,
 
  196                          const uint32_t hdrspace,
 
  197                          const uint16_t onemark,
 
  198                          const uint32_t onespace,
 
  199                          const uint16_t zeromark,
 
  200                          const uint32_t zerospace,
 
  201                          const uint16_t footermark,
 
  202                          const uint32_t footerspace,
 
  203                          const bool atleast = 
false,
 
  206                          const bool MSBfirst = 
true);
 
  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);
 
  214   uint16_t 
matchBytes(
volatile uint16_t *data_ptr, uint8_t *result_ptr,
 
  215                       const uint16_t remaining, 
const uint16_t nbytes,
 
  216                       const uint16_t onemark, 
const uint32_t onespace,
 
  217                       const uint16_t zeromark, 
const uint32_t zerospace,
 
  220                       const bool MSBfirst = 
true,
 
  221                       const bool expectlastspace = 
true);
 
  223                         uint64_t *result_ptr,
 
  224                         const uint16_t remaining, 
const uint16_t nbits,
 
  225                         const uint16_t hdrmark, 
const uint32_t hdrspace,
 
  226                         const uint16_t onemark, 
const uint32_t onespace,
 
  227                         const uint16_t zeromark, 
const uint32_t zerospace,
 
  228                         const uint16_t footermark, 
const uint32_t footerspace,
 
  229                         const bool atleast = 
false,
 
  232                         const bool MSBfirst = 
true);
 
  233   uint16_t 
matchGeneric(
volatile uint16_t *data_ptr, uint8_t *result_ptr,
 
  234                         const uint16_t remaining, 
const uint16_t nbits,
 
  235                         const uint16_t hdrmark, 
const uint32_t hdrspace,
 
  236                         const uint16_t onemark, 
const uint32_t onespace,
 
  237                         const uint16_t zeromark, 
const uint32_t zerospace,
 
  238                         const uint16_t footermark,
 
  239                         const uint32_t footerspace,
 
  240                         const bool atleast = 
false,
 
  243                         const bool MSBfirst = 
true);
 
  245                                     uint64_t *result_ptr,
 
  246                                     const uint16_t remaining,
 
  247                                     const uint16_t nbits,
 
  248                                     const uint16_t hdrmark,
 
  249                                     const uint32_t hdrspace,
 
  252                                     const uint16_t footermark,
 
  253                                     const uint32_t footerspace,
 
  254                                     const bool atleast = 
false,
 
  257                                     const bool MSBfirst = 
true);
 
  259                                uint64_t *result_ptr,
 
  260                                const uint16_t remaining,
 
  261                                const uint16_t nbits,
 
  262                                const uint16_t half_period,
 
  263                                const uint16_t starting_balance = 0,
 
  266                                const bool MSBfirst = 
true,
 
  267                                const bool GEThomas = 
true);
 
  269                            uint64_t *result_ptr,
 
  270                            const uint16_t remaining,
 
  271                            const uint16_t nbits,
 
  272                            const uint16_t hdrmark,
 
  273                            const uint32_t hdrspace,
 
  274                            const uint16_t clock_period,
 
  275                            const uint16_t footermark,
 
  276                            const uint32_t footerspace,
 
  277                            const bool atleast = 
false,
 
  280                            const bool MSBfirst = 
true,
 
  281                            const bool GEThomas = 
true);
 
  288                          const bool strict = 
true);
 
  289 #endif  // DECODE_VOLTAS 
  290 #if (DECODE_NEC || DECODE_SHERWOOD || DECODE_AIWA_RC_T501 || DECODE_SANYO) 
  292                  const uint16_t nbits = 
kNECBits, 
const bool strict = 
true);
 
  296                   const uint16_t nbits = 
kArgoBits, 
const bool strict = 
true);
 
  299                   const bool strict = 
true);
 
  300 #endif  // DECODE_ARGO 
  303                    const uint16_t nbits = 
kArrisBits, 
const bool strict = 
true);
 
  304 #endif  // DECODE_ARRIS 
  308                   const bool strict = 
false);
 
  318                          const bool strict = 
true);
 
  324                      const bool strict = 
true);
 
  325 #endif  // DECODE_SANYO_AC 
  326 #if DECODE_SANYO_AC88 
  330                        const bool strict = 
true);
 
  331 #endif  // DECODE_SANYO_AC88 
  332 #if DECODE_SANYO_AC152 
  336                         const bool strict = 
true);
 
  337 #endif  // DECODE_SANYO_AC152 
  338 #if DECODE_MITSUBISHI 
  341                         const bool strict = 
true);
 
  343 #if DECODE_MITSUBISHI2 
  347                          const bool strict = 
true);
 
  349 #if DECODE_MITSUBISHI_AC 
  353                           const bool strict = 
false);
 
  355 #if DECODE_MITSUBISHI136 
  359                            const bool strict = 
true);
 
  361 #if DECODE_MITSUBISHI112 
  365                            const bool strict = 
true);
 
  367 #if DECODE_MITSUBISHIHEAVY 
  371                              const bool strict = 
true);
 
  373 #if (DECODE_RC5 || DECODE_RC6 || DECODE_LASERTAG || DECODE_MWM) 
  375                      uint16_t bitTime, 
const uint8_t tolerance = 
kUseDefTol,
 
  377                      const uint16_t delta = 0, 
const uint8_t maxwidth = 3);
 
  382                  const bool strict = 
true);
 
  387                  const bool strict = 
false);
 
  392                   const bool strict = 
false);
 
  394 #if (DECODE_PANASONIC || DECODE_DENON) 
  397                        const bool strict = 
false,
 
  402                 const uint16_t nbits = 
kLgBits,
 
  403                 const bool strict = 
false);
 
  408                   const bool strict = 
true);
 
  409 #endif  // DECODE_INAX 
  413                  const bool strict = 
true);
 
  418                      const bool strict = 
true);
 
  423                        const bool strict = 
true);
 
  425 #if DECODE_SAMSUNG_AC 
  428                        const bool strict = 
true);
 
  433                      const bool strict = 
true);
 
  438                     const bool strict = 
true);
 
  439 #endif  // DECODE_COOLIX 
  443                       const bool strict = 
true);
 
  444 #endif  // DECODE_COOLIX48 
  448                    const bool strict = 
true);
 
  453                   const bool strict = 
true);
 
  455 #if (DECODE_SHARP || DECODE_DENON) 
  458                    const bool strict = 
true, 
const bool expansion = 
true);
 
  463                      const bool strict = 
true);
 
  465 #if DECODE_AIWA_RC_T501 
  468                         const bool strict = 
true);
 
  473                    const bool strict = 
true);
 
  478                        const bool strict = 
true);
 
  480 #if DECODE_KELVINATOR 
  483                         const bool strict = 
true);
 
  488                     const bool strict = 
true);
 
  493                       const bool strict = 
true);
 
  494 #endif  // DECODE_DAIKIN64 
  498                        const bool strict = 
true);
 
  499 #endif  // DECODE_DAIKIN128 
  503                        const bool strict = 
true);
 
  504 #endif  // DECODE_DAIKIN152 
  508                        const bool strict = 
true);
 
  509 #endif  // DECODE_DAIKIN160 
  513                        const bool strict = 
true);
 
  514 #endif  // DECODE_DAIKIN176 
  518                      const bool strict = 
true);
 
  523                        const bool strict = 
true);
 
  524 #endif  // DECODE_DAIKIN200 
  528                        const bool strict = 
true);
 
  529 #endif  // DECODE_DAIKIN216 
  533                        const bool strict = 
true);
 
  534 #endif  // DECODE_DAIKIN312 
  535 #if DECODE_TOSHIBA_AC 
  538                        const bool strict = 
true);
 
  543                     const bool strict = 
true);
 
  544 #endif  // DECODE_TROTEC 
  545 #if DECODE_TROTEC_3550 
  548                         const bool strict = 
true);
 
  549 #endif  // DECODE_TROTEC_3550 
  553                    const bool strict = 
true);
 
  554 #endif  // DECODE_MIDEA 
  558                      const bool strict = 
true);
 
  559 #endif  // DECODE_MIDEA24 
  560 #if DECODE_FUJITSU_AC 
  563                        const bool strict = 
false);
 
  568                       const bool strict = 
true);
 
  573                        const bool strict = 
true);
 
  575 #if DECODE_CARRIER_AC 
  578                        const bool strict = 
true);
 
  579 #endif  // DECODE_CARRIER_AC 
  580 #if DECODE_CARRIER_AC40 
  584                          const bool strict = 
true);
 
  585 #endif  // DECODE_CARRIER_AC40 
  586 #if DECODE_CARRIER_AC84 
  590                          const bool strict = 
true);
 
  591 #endif  // DECODE_CARRIER_AC84 
  592 #if DECODE_CARRIER_AC64 
  596                          const bool strict = 
true);
 
  597 #endif  // DECODE_CARRIER_AC64 
  598 #if DECODE_CARRIER_AC128 
  602                           const bool strict = 
true);
 
  603 #endif  // DECODE_CARRIER_AC128 
  604 #if DECODE_GOODWEATHER 
  608                          const bool strict = 
true);
 
  609 #endif  // DECODE_GOODWEATHER 
  613                      const bool strict = 
true);
 
  614 #endif  // DECODE_GORENJE 
  618                   const bool strict = 
true);
 
  620 #if (DECODE_HAIER_AC | DECODE_HAIER_AC_YRW02 || DECODE_HAIER_AC160 || \ 
  624                      const bool strict = 
true);
 
  626 #if DECODE_HAIER_AC_YRW02 
  630                           const bool strict = 
true);
 
  632 #if DECODE_HAIER_AC160 
  636                         const bool strict = 
true);
 
  637 #endif  // DECODE_HAIER_AC160 
  638 #if DECODE_HAIER_AC176 
  642                         const bool strict = 
true);
 
  643 #endif  // DECODE_HAIER_AC176 
  644 #if (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC264 || \ 
  645      DECODE_HITACHI_AC344) 
  648                        const bool strict = 
true, 
const bool MSBfirst = 
true);
 
  649 #endif  // (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC264 || 
  651 #if DECODE_HITACHI_AC1 
  654                         const bool strict = 
true);
 
  656 #if DECODE_HITACHI_AC3 
  660                           const bool strict = 
true);
 
  661 #endif  // DECODE_HITACHI_AC3 
  662 #if DECODE_HITACHI_AC296 
  666                           const bool strict = 
true);
 
  667 #endif  // DECODE_HITACHI_AC296 
  668 #if DECODE_HITACHI_AC424 
  672                           const bool strict = 
true);
 
  673 #endif  // DECODE_HITACHI_AC424 
  677                      const bool strict = 
true);
 
  679 #if DECODE_WHIRLPOOL_AC 
  683                          const bool strict = 
true);
 
  688                     const bool strict = 
true);
 
  690 #if DECODE_ELECTRA_AC 
  693                        const bool strict = 
true);
 
  695 #if DECODE_PANASONIC_AC 
  699                          const bool strict = 
true);
 
  700 #endif  // DECODE_PANASONIC_AC 
  701 #if DECODE_PANASONIC_AC32 
  705                          const bool strict = 
true);
 
  706 #endif  // DECODE_PANASONIC_AC32 
  710                      const bool strict = 
true);
 
  714                  const uint16_t nbits = 24,
 
  715                  const bool strict = 
true);
 
  720                       const bool strict = 
true);
 
  725                   const bool strict = 
false);
 
  730                     const bool strict = 
true);
 
  735                       const bool strict = 
true);
 
  736 #endif  // DECODE_NEOCLIMA 
  740                    const bool strict = 
true);
 
  741 #endif  // DECODE_AMCOR 
  745                    const bool strict = 
true);
 
  746 #endif  // DECODE_EPSON 
  750                    const bool strict = 
true);
 
  751 #endif  // DECODE_SYMPHONY 
  755                      const bool strict = 
true);
 
  756 #endif  // DECODE_AIRWELL 
  757 #if DECODE_DELONGHI_AC 
  760                      const bool strict = 
true);
 
  761 #endif  // DECODE_DELONGHI_AC 
  765                       const bool strict = 
true);
 
  766 #endif  // DECODE_DOSHISHA 
  767 #if DECODE_MULTIBRACKETS 
  771                            const bool strict = 
true);
 
  772 #endif  // DECODE_MULTIBRACKETS 
  773 #if DECODE_TECHNIBEL_AC 
  777                          const bool strict = 
true);
 
  778 #endif  // DECODE_TECHNIBEL_AC 
  782                       const bool strict = 
true);
 
  783 #endif  // DECODE_CORONA_AC 
  787                     const bool strict = 
true);
 
  788 #endif  // DECODE_ZEPEAL 
  792                   const bool strict = 
true);
 
  793 #endif  // DECODE_METZ 
  797                        const bool strict = 
true);
 
  798 #endif  // DECODE_TRANSCOLD 
  803                     const bool strict = 
true);
 
  804 #endif  // DECODE_MIRAGE 
  805 #if DECODE_ELITESCREENS 
  809                           const bool strict = 
true);
 
  810 #endif  // DECODE_ELITESCREENS 
  814                      const bool strict = 
true);
 
  815 #endif  // DECODE_ECOCLIM 
  818                  const uint16_t nbits = 
kXmpBits, 
const bool strict = 
true);
 
  822                    const uint16_t nbits = 
kTrumaBits, 
const bool strict = 
true);
 
  823 #endif  // DECODE_TRUMA 
  824 #if DECODE_TEKNOPOINT 
  827                         const bool strict = 
true);
 
  828 #endif  // DECODE_TEKNOPOINT 
  831                    const uint16_t nbits = 
kKelonBits, 
const bool strict = 
true);
 
  832 #endif  // DECODE_KELON 
  836                       const bool strict = 
true);
 
  837 #endif  // DECODE_KELON168 
  840                   const uint16_t nbits = 
kBoseBits, 
const bool strict = 
true);
 
  841 #endif  // DECODE_BOSE 
  844                    const uint16_t nbits = 
kRhossBits, 
const bool strict = 
true);
 
  845 #endif  // DECODE_RHOSS 
  849                     const bool strict = 
true);
 
  850 #endif  // DECODE_AIRTON 
  854                     const bool strict = 
true);
 
  855 #endif  // DECODE_TOTO 
  856 #if DECODE_CLIMABUTLER 
  860                          const bool strict = 
true);
 
  861 #endif  // DECODE_CLIMABUTLER 
  866                      const bool strict = 
true);
 
  867 #endif  // DECODE_TCL96AC 
  872                       const bool strict = 
true);
 
  873 #endif  // DECODE_BOSCH144 
  878                     const bool strict = 
true);
 
  879 #endif  // DECODE_WOWWEE 
  884                   const bool strict = 
true);
 
  885 #endif  // DECODE_YORK 
  
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:1512
 
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:1220
 
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:1433
 
const uint16_t kCarrierAc128Bits
Definition: IRremoteESP8266.h:1183
 
const uint16_t kMirageBits
Definition: IRremoteESP8266.h:1308
 
bool decodeKelon168(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kKelon168Bits, const bool strict=true)
Decode the supplied Kelon 168 bit / 21 byte message. Status: BETA / Probably Working.
Definition: ir_Kelon.cpp:505
 
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:1350
 
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:116
 
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:2922
 
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:1244
 
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:1666
 
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:1011
 
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:1173
 
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
 
bool decodeBosch144(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kBosch144Bits, const bool strict=true)
Decode the supplied Bosch 144-bit / 18-byte A/C message. Status: STABLE / Confirmed Working.
Definition: ir_Bosch.cpp:288
 
const uint16_t kArgo3AcControlStateLength
Definition: IRremoteESP8266.h:1162
 
const uint16_t kMultibracketsBits
Definition: IRremoteESP8266.h:1329
 
const uint16_t kSharpAcBits
Definition: IRremoteESP8266.h:1378
 
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1419
 
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:291
 
uint8_t overflow
Definition: IRrecv.h:85
 
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:695
 
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:1150
 
irparams_t * irparams_save
Definition: IRrecv.h:165
 
const uint16_t kGorenjeBits
Definition: IRremoteESP8266.h:1248
 
const uint16_t kMitsubishiACBits
Definition: IRremoteESP8266.h:1315
 
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:1003
 
bool decodeSanyoAc88(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoAc88Bits, const bool strict=true)
Decode the supplied SanyoAc88 message. Status: ALPHA / Untested.
Definition: ir_Sanyo.cpp:710
 
const uint16_t kArrisBits
Definition: IRremoteESP8266.h:1167
 
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:1335
 
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:1222
 
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
 
bool decodeDaikin200(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin200Bits, const bool strict=true)
Decode the supplied Daikin 200-bit message. (DAIKIN200) Status: STABLE / Known to be working.
Definition: ir_Daikin.cpp:3779
 
const uint16_t kVoltasBits
Definition: IRremoteESP8266.h:1426
 
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:1291
 
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:955
 
const uint16_t kDaikin200Bits
Definition: IRremoteESP8266.h:1212
 
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:1350
 
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:84
 
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:121
 
uint16_t bufsize
Definition: IRrecv.h:80
 
Results returned from the decoder.
Definition: IRrecv.h:99
 
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:1760
 
const uint16_t kCarrierAc84Bits
Definition: IRremoteESP8266.h:1180
 
const uint16_t kBoseBits
Definition: IRremoteESP8266.h:1431
 
const uint16_t kClimaButlerBits
Definition: IRremoteESP8266.h:1435
 
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:215
 
const uint16_t kCoolixBits
Definition: IRremoteESP8266.h:1170
 
bool decodeArgo(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kArgoBits, const bool strict=true)
Decode the supplied Argo message (WREM2). Status: BETA / Probably works.
Definition: ir_Argo.cpp:1683
 
bool decodeCarrierAC128(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAc128Bits, const bool strict=true)
Decode the supplied Carrier 128-bit HVAC message. Status: STABLE / Expected to work.
Definition: ir_Carrier.cpp:606
 
const uint16_t kCoronaAcBitsShort
Definition: IRremoteESP8266.h:1187
 
uint64_t data
Definition: IRrecv.h:92
 
bool decodeWowwee(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kWowweeBits, const bool strict=true)
Decode the supplied WowWee message. Status: STABLE / Confirmed working with real device.
Definition: ir_Wowwee.cpp:69
 
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:1355
 
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:1300
 
uint16_t * rawbuf
Definition: IRrecv.h:81
 
Information for the interrupt handler.
Definition: IRrecv.h:76
 
uint16_t getBufSize(void)
Obtain the maximum number of entries possible in the capture buffer. i.e. It's size.
Definition: IRrecv.cpp:464
 
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1372
 
bool repeat
Definition: IRrecv.h:117
 
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:857
 
const uint16_t kTrotecBits
Definition: IRremoteESP8266.h:1413
 
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:599
 
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:50
 
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:1429
 
const uint16_t kEliteScreensBits
Definition: IRremoteESP8266.h:1237
 
uint8_t recvpin
Definition: IRrecv.h:77
 
uint16_t timer
Definition: IRrecv.h:79
 
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:3372
 
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:91
 
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:1333
 
const uint16_t kElectraAcBits
Definition: IRremoteESP8266.h:1235
 
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:1354
 
const uint16_t kSonyMinBits
Definition: IRremoteESP8266.h:1385
 
const uint16_t kHaierAC176Bits
Definition: IRremoteESP8266.h:1262
 
const uint8_t kStopState
Definition: IRrecv.h:34
 
uint16_t rawlen
Definition: IRrecv.h:115
 
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:991
 
const uint16_t kDaikin2Bits
Definition: IRremoteESP8266.h:1195
 
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:1268
 
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:426
 
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:1680
 
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:3011
 
const uint16_t kBosch144Bits
Definition: IRremoteESP8266.h:1169
 
bool decodeCarrierAC84(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAc84Bits, const bool strict=true)
Decode the supplied Carroer A/C 84 Bit formatted message. Status: STABLE / Confirmed Working.
Definition: ir_Carrier.cpp:698
 
bool decodeSanyoAc152(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoAc152Bits, const bool strict=true)
Decode the supplied SanyoAc152 message. Status: BETA / Probably works.
Definition: ir_Sanyo.cpp:1021
 
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:1336
 
const uint16_t kMilesTag2ShotBits
Definition: IRremoteESP8266.h:1428
 
decode_type_t decode_type
Definition: IRrecv.h:101
 
const uint16_t kSanyoAc152Bits
Definition: IRremoteESP8266.h:1367
 
const uint16_t kPanasonicAcBits
Definition: IRremoteESP8266.h:1342
 
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:477
 
const uint16_t kXmpBits
Definition: IRremoteESP8266.h:1423
 
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:756
 
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:52
 
const uint16_t kDaikin160Bits
Definition: IRremoteESP8266.h:1200
 
bool decodeGorenje(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGorenjeBits, const bool strict=true)
Decode the supplied Gorenje Cooker Hood message. Status: STABLE / Known working.
Definition: ir_Gorenje.cpp:49
 
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:440
 
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:515
 
const uint16_t kGoodweatherBits
Definition: IRremoteESP8266.h:1246
 
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:349
 
const uint16_t kDaikin152Bits
Definition: IRremoteESP8266.h:1206
 
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:1374
 
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:862
 
const uint16_t kKelonBits
Definition: IRremoteESP8266.h:1286
 
bool decodeDaikin312(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin312Bits, const bool strict=true)
Decode the supplied Daikin 312-bit / 39-byte message. (DAIKIN312) Status: STABLE / Confirmed working.
Definition: ir_Daikin.cpp:3871
 
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:2035
 
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:1564
 
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:469
 
bool decodeHaierAC160(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHaierAC160Bits, const bool strict=true)
Decode the supplied Haier 160 bit remote A/C message. Status: STABLE / Known to be working.
Definition: ir_Haier.cpp:1463
 
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1387
 
const uint16_t kHitachiAc296Bits
Definition: IRremoteESP8266.h:1278
 
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:1351
 
const uint16_t kStateSizeMax
Definition: IRrecv.h:67
 
Results from a data match.
Definition: IRrecv.h:90
 
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:78
 
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:1301
 
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:334
 
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:1443
 
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 decodeClimaButler(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kClimaButlerBits, const bool strict=true)
Decode the supplied ClimaButler message. Status: STABLE / Confirmed working.
Definition: ir_ClimaButler.cpp:56
 
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:102
 
const uint16_t kMitsubishiHeavy152Bits
Definition: IRremoteESP8266.h:1327
 
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:1229
 
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:1175
 
const uint16_t kStartOffset
Definition: IRrecv.h:20
 
const uint16_t kAmcorBits
Definition: IRremoteESP8266.h:1156
 
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:267
 
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:917
 
volatile uint16_t * rawbuf
Definition: IRrecv.h:114
 
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:93
 
const uint32_t kPanasonicManufacturer
Definition: IRremoteESP8266.h:1337
 
uint32_t address
Definition: IRrecv.h:108
 
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:1310
 
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:1241
 
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:1357
 
const uint16_t kUnknownThreshold
Definition: IRrecv.h:28
 
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:1303
 
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:1290
 
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
 
const uint16_t kTcl96AcBits
Definition: IRremoteESP8266.h:1390
 
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:154
 
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:167
 
const uint16_t kNECBits
Definition: IRremoteESP8266.h:1332
 
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:1224
 
const uint16_t kHaierACBits
Definition: IRremoteESP8266.h:1253
 
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:1272
 
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1424
 
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:1305
 
bool decodeKelon(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kKelonBits, const bool strict=true)
Decode the supplied Kelon 48-bit message. Status: STABLE / Working.
Definition: ir_Kelon.cpp:75
 
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:2427
 
const uint16_t kNeoclimaBits
Definition: IRremoteESP8266.h:1334
 
const uint16_t kWhirlpoolAcBits
Definition: IRremoteESP8266.h:1417
 
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
 
const uint16_t kHaierAC160Bits
Definition: IRremoteESP8266.h:1259
 
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:1177
 
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1346
 
uint16_t bits
Definition: IRrecv.h:113
 
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:1250
 
bool decodeCoolix48(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolix48Bits, const bool strict=true)
Decode the supplied Coolix 48-bit A/C message. Status: BETA / Probably Working.
Definition: ir_Coolix.cpp:738
 
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:1285
 
const uint16_t kYorkBits
Definition: IRremoteESP8266.h:1436
 
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:1292
 
const uint16_t kDaikin128Bits
Definition: IRremoteESP8266.h:1203
 
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:1152
 
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:1215
 
const uint16_t kTrumaBits
Definition: IRremoteESP8266.h:1415
 
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1395
 
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:1400
 
const uint16_t kKelon168Bits
Definition: IRremoteESP8266.h:1288
 
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:122
 
const uint16_t kDaikinBits
Definition: IRremoteESP8266.h:1190
 
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:1315
 
const uint16_t kHitachiAcBits
Definition: IRremoteESP8266.h:1265
 
const uint16_t kSanyoAc88Bits
Definition: IRremoteESP8266.h:1364
 
const uint16_t kHitachiAc3Bits
Definition: IRremoteESP8266.h:1272
 
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:554
 
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:97
 
uint8_t getTolerance(void)
Get the base tolerance percentage for matching incoming IR messages.
Definition: IRrecv.cpp:483
 
const uint16_t kDishBits
Definition: IRremoteESP8266.h:1227
 
uint16_t compare(const uint16_t oldval, const uint16_t newval)
Compare two tick values.
Definition: IRrecv.cpp:1392
 
uint32_t command
Definition: IRrecv.h:109
 
const uint16_t kFujitsuAcBits
Definition: IRremoteESP8266.h:1242
 
uint64_t value
Definition: IRrecv.h:107
 
const uint16_t kAirtonBits
Definition: IRremoteESP8266.h:1148
 
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:1160
 
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:1269
 
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:207
 
bool decodeHitachiAc296(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc296Bits, const bool strict=true)
Decode the supplied Hitachi 37-byte A/C message. Status: STABLE / Working on a real device.
Definition: ir_Hitachi.cpp:1976
 
void pause(void)
Pause collection of received IR data.
Definition: IRrecv.cpp:411
 
const uint16_t kFooter
Definition: IRrecv.h:19
 
const uint16_t kTotoBits
Definition: IRremoteESP8266.h:1406
 
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:1331
 
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:1299
 
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: STABLE / Confirmed working against a real device.
Definition: ir_Xmp.cpp:160
 
uint8_t timeout
Definition: IRrecv.h:86
 
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:1954
 
bool decodeYork(decode_results *results, uint16_t kStartOffset, const uint16_t kYorkBits, const bool strict=true)
Decode the supplied message. Status: ALPHA / Tested, some values still are not mapped to the internal...
Definition: ir_York.cpp:70
 
void resume(void)
Resume collection of received IR data.
Definition: IRrecv.cpp:424
 
const uint16_t kCoolix48Bits
Definition: IRremoteESP8266.h:1171
 
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:1230
 
const uint16_t kHaierACYRW02Bits
Definition: IRremoteESP8266.h:1256
 
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:1451
 
const uint16_t kHitachiAc424Bits
Definition: IRremoteESP8266.h:1282
 
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:1396
 
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:156
 
bool decodeCOOLIX(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolixBits, const bool strict=true)
Decode the supplied Coolix 24-bit A/C message. Status: STABLE / Known Working.
Definition: ir_Coolix.cpp:638
 
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:1294
 
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1376
 
bool decodeArgoWREM3(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kArgo3AcControlStateLength *8, const bool strict=true)
Decode the supplied Argo message (WREM3). Status: Confirmed working w/ Argo 13 ECO (WREM-3)
Definition: ir_Argo.cpp:1722
 
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:166
 
const uint16_t kWowweeBits
Definition: IRremoteESP8266.h:1420
 
const uint8_t kDefaultESP32Timer
Definition: IRrecv.h:59
 
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:1847
 
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:490
 
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:133
 
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:1353
 
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1422
 
const uint16_t kTranscoldBits
Definition: IRremoteESP8266.h:1410
 
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:1283
 
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
 
bool decodeTcl96Ac(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTcl96AcBits, const bool strict=true)
Decode the supplied Tcl96Ac message. Status: ALPHA / Experimental.
Definition: ir_Tcl.cpp:578
 
uint16_t _unknown_threshold
Definition: IRrecv.h:171
 
const uint16_t kDaikin176Bits
Definition: IRremoteESP8266.h:1209
 
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:849
 
const uint16_t kDaikin312Bits
Definition: IRremoteESP8266.h:1218
 
void disableIRIn(void)
Stop collection of any received IR data. Disable any timers and interrupts.
Definition: IRrecv.cpp:395
 
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:978
 
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:505
 
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:1228
 
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:1354
 
uint8_t _timer_num
Definition: IRrecv.h:168
 
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:1197
 
const uint16_t kTeknopointBits
Definition: IRremoteESP8266.h:1398
 
const uint16_t kPanasonicAc32Bits
Definition: IRremoteESP8266.h:1345
 
volatile irparams_t * _getParamsPtr(void)
Unit test helper to get access to the params structure.
Definition: IRrecv.cpp:2075
 
const uint16_t kDaikin216Bits
Definition: IRremoteESP8266.h:1215
 
const uint16_t kMitsubishi136Bits
Definition: IRremoteESP8266.h:1318
 
const uint16_t kSanyoAcBits
Definition: IRremoteESP8266.h:1362
 
const uint16_t kMitsubishi112Bits
Definition: IRremoteESP8266.h:1321
 
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:1232
 
uint8_t state[kStateSizeMax]
Definition: IRrecv.h:111
 
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:1413
 
bool decodeToto(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTotoBits, const bool strict=true)
Decode the supplied Toto Toilet message. Status: ALPHA / Untested.
Definition: ir_Toto.cpp:61
 
const uint8_t kSpaceState
Definition: IRrecv.h:33
 
const uint16_t kLgBits
Definition: IRremoteESP8266.h:1296
 
uint8_t _validTolerance(const uint8_t percentage)
Convert the tolerance percentage into something valid.
Definition: IRrecv.cpp:1206
 
const uint16_t kHeader
Definition: IRrecv.h:18
 
const uint32_t kFnvBasis32
Definition: IRrecv.h:53