11#define __STDC_LIMIT_MACROS
19#define MS_TO_USEC(x) ((x) * 1000U)
36#define RAWTICK kRawTick
46#define TIMEOUT_MS kTimeoutMs
113 explicit IRrecv(
const uint16_t recvpin,
const uint16_t bufsize =
kRawBuf,
115 const bool save_buffer =
false);
120 uint8_t max_skip = 0, uint16_t noise_floor = 0);
129 bool match(
const uint32_t measured,
const uint32_t desired,
131 const uint16_t delta = 0);
132 bool matchMark(
const uint32_t measured,
const uint32_t desired,
135 bool matchMarkRange(
const uint32_t measured,
const uint32_t desired,
136 const uint16_t range = 100,
138 bool matchSpace(
const uint32_t measured,
const uint32_t desired,
142 const uint16_t range = 100,
159 uint16_t
compare(
const uint16_t oldval,
const uint16_t newval);
160 uint32_t
ticksLow(
const uint32_t usecs,
162 const uint16_t delta = 0);
165 const uint16_t delta = 0);
166 bool matchAtLeast(
const uint32_t measured,
const uint32_t desired,
168 const uint16_t delta = 0);
170 uint64_t *result_bits_ptr,
173 const uint16_t remaining,
174 const uint16_t required,
175 const uint16_t hdrmark,
176 const uint32_t hdrspace,
177 const uint16_t onemark,
178 const uint32_t onespace,
179 const uint16_t zeromark,
180 const uint32_t zerospace,
181 const uint16_t footermark,
182 const uint32_t footerspace,
183 const bool atleast =
false,
186 const bool MSBfirst =
true);
188 const uint16_t onemark,
const uint32_t onespace,
189 const uint16_t zeromark,
const uint32_t zerospace,
192 const bool MSBfirst =
true,
193 const bool expectlastspace =
true);
195 const uint16_t remaining,
const uint16_t nbytes,
196 const uint16_t onemark,
const uint32_t onespace,
197 const uint16_t zeromark,
const uint32_t zerospace,
200 const bool MSBfirst =
true,
201 const bool expectlastspace =
true);
203 uint64_t *result_ptr,
204 const uint16_t remaining,
const uint16_t nbits,
205 const uint16_t hdrmark,
const uint32_t hdrspace,
206 const uint16_t onemark,
const uint32_t onespace,
207 const uint16_t zeromark,
const uint32_t zerospace,
208 const uint16_t footermark,
const uint32_t footerspace,
209 const bool atleast =
false,
212 const bool MSBfirst =
true);
215 const uint16_t remaining,
const uint16_t nbits,
216 const uint16_t hdrmark,
const uint32_t hdrspace,
217 const uint16_t onemark,
const uint32_t onespace,
218 const uint16_t zeromark,
const uint32_t zerospace,
219 const uint16_t footermark,
220 const uint32_t footerspace,
221 const bool atleast =
false,
224 const bool MSBfirst =
true);
226 uint64_t *result_ptr,
227 const uint16_t remaining,
228 const uint16_t nbits,
229 const uint16_t hdrmark,
230 const uint32_t hdrspace,
233 const uint16_t footermark,
234 const uint32_t footerspace,
235 const bool atleast =
false,
238 const bool MSBfirst =
true);
240 uint64_t *result_ptr,
241 const uint16_t remaining,
242 const uint16_t nbits,
243 const uint16_t half_period,
244 const uint16_t starting_balance = 0,
247 const bool MSBfirst =
true,
248 const bool GEThomas =
true);
250 uint64_t *result_ptr,
251 const uint16_t remaining,
252 const uint16_t nbits,
253 const uint16_t hdrmark,
254 const uint32_t hdrspace,
255 const uint16_t clock_period,
256 const uint16_t footermark,
257 const uint32_t footerspace,
258 const bool atleast =
false,
261 const bool MSBfirst =
true,
262 const bool GEThomas =
true);
269 const bool strict =
true);
271#if (DECODE_NEC || DECODE_SHERWOOD || DECODE_AIWA_RC_T501 || DECODE_SANYO)
273 const uint16_t nbits =
kNECBits,
const bool strict =
true);
277 const uint16_t nbits =
kArgoBits,
const bool strict =
true);
280 const bool strict =
true);
284 const uint16_t nbits =
kArrisBits,
const bool strict =
true);
289 const bool strict =
false);
299 const bool strict =
true);
305 const bool strict =
true);
311 const bool strict =
true);
313#if DECODE_SANYO_AC152
317 const bool strict =
true);
322 const bool strict =
true);
324#if DECODE_MITSUBISHI2
328 const bool strict =
true);
330#if DECODE_MITSUBISHI_AC
334 const bool strict =
false);
336#if DECODE_MITSUBISHI136
340 const bool strict =
true);
342#if DECODE_MITSUBISHI112
346 const bool strict =
true);
348#if DECODE_MITSUBISHIHEAVY
352 const bool strict =
true);
354#if (DECODE_RC5 || DECODE_RC6 || DECODE_LASERTAG || DECODE_MWM)
356 uint16_t bitTime,
const uint8_t tolerance =
kUseDefTol,
358 const uint16_t delta = 0,
const uint8_t maxwidth = 3);
363 const bool strict =
true);
368 const bool strict =
false);
373 const bool strict =
false);
375#if (DECODE_PANASONIC || DECODE_DENON)
378 const bool strict =
false,
383 const uint16_t nbits =
kLgBits,
384 const bool strict =
false);
389 const bool strict =
true);
394 const bool strict =
true);
399 const bool strict =
true);
404 const bool strict =
true);
409 const bool strict =
true);
414 const bool strict =
true);
419 const bool strict =
true);
424 const bool strict =
true);
429 const bool strict =
true);
434 const bool strict =
true);
436#if (DECODE_SHARP || DECODE_DENON)
439 const bool strict =
true,
const bool expansion =
true);
444 const bool strict =
true);
446#if DECODE_AIWA_RC_T501
449 const bool strict =
true);
454 const bool strict =
true);
459 const bool strict =
true);
464 const bool strict =
true);
469 const bool strict =
true);
474 const bool strict =
true);
479 const bool strict =
true);
484 const bool strict =
true);
489 const bool strict =
true);
494 const bool strict =
true);
499 const bool strict =
true);
504 const bool strict =
true);
509 const bool strict =
true);
514 const bool strict =
true);
519 const bool strict =
true);
524 const bool strict =
true);
526#if DECODE_TROTEC_3550
529 const bool strict =
true);
534 const bool strict =
true);
539 const bool strict =
true);
544 const bool strict =
false);
549 const bool strict =
true);
554 const bool strict =
true);
559 const bool strict =
true);
561#if DECODE_CARRIER_AC40
565 const bool strict =
true);
567#if DECODE_CARRIER_AC84
571 const bool strict =
true);
573#if DECODE_CARRIER_AC64
577 const bool strict =
true);
579#if DECODE_CARRIER_AC128
583 const bool strict =
true);
585#if DECODE_GOODWEATHER
589 const bool strict =
true);
594 const bool strict =
true);
599 const bool strict =
true);
601#if (DECODE_HAIER_AC | DECODE_HAIER_AC_YRW02 || DECODE_HAIER_AC160 || \
605 const bool strict =
true);
607#if DECODE_HAIER_AC_YRW02
611 const bool strict =
true);
613#if DECODE_HAIER_AC160
617 const bool strict =
true);
619#if DECODE_HAIER_AC176
623 const bool strict =
true);
625#if (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC264 || \
626 DECODE_HITACHI_AC344)
629 const bool strict =
true,
const bool MSBfirst =
true);
632#if DECODE_HITACHI_AC1
635 const bool strict =
true);
637#if DECODE_HITACHI_AC3
641 const bool strict =
true);
643#if DECODE_HITACHI_AC296
647 const bool strict =
true);
649#if DECODE_HITACHI_AC424
653 const bool strict =
true);
658 const bool strict =
true);
660#if DECODE_WHIRLPOOL_AC
664 const bool strict =
true);
669 const bool strict =
true);
674 const bool strict =
true);
676#if DECODE_PANASONIC_AC
680 const bool strict =
true);
682#if DECODE_PANASONIC_AC32
686 const bool strict =
true);
691 const bool strict =
true);
695 const uint16_t nbits = 24,
696 const bool strict =
true);
701 const bool strict =
true);
706 const bool strict =
false);
711 const bool strict =
true);
716 const bool strict =
true);
721 const bool strict =
true);
726 const bool strict =
true);
731 const bool strict =
true);
736 const bool strict =
true);
738#if DECODE_DELONGHI_AC
741 const bool strict =
true);
746 const bool strict =
true);
748#if DECODE_MULTIBRACKETS
752 const bool strict =
true);
754#if DECODE_TECHNIBEL_AC
758 const bool strict =
true);
763 const bool strict =
true);
768 const bool strict =
true);
773 const bool strict =
true);
778 const bool strict =
true);
784 const bool strict =
true);
786#if DECODE_ELITESCREENS
790 const bool strict =
true);
795 const bool strict =
true);
799 const uint16_t nbits =
kXmpBits,
const bool strict =
true);
803 const uint16_t nbits =
kTrumaBits,
const bool strict =
true);
808 const bool strict =
true);
812 const uint16_t nbits =
kKelonBits,
const bool strict =
true);
817 const bool strict =
true);
821 const uint16_t nbits =
kBoseBits,
const bool strict =
true);
825 const uint16_t nbits =
kRhossBits,
const bool strict =
true);
830 const bool strict =
true);
835 const bool strict =
true);
837#if DECODE_CLIMABUTLER
841 const bool strict =
true);
847 const bool strict =
true);
853 const bool strict =
true);
859 const bool strict =
true);
865 const bool strict =
true);
867#if DECODE_BLUESTARHEAVY
871 const bool strict =
true);
877 const bool strict =
true);
const uint32_t kFnvBasis32
Definition IRrecv.h:51
const uint8_t kUseDefTol
Definition IRrecv.h:34
const uint8_t kStopState
Definition IRrecv.h:32
const uint16_t kHeader
Definition IRrecv.h:16
const uint16_t kRawTick
Definition IRrecv.h:35
const uint16_t kStartOffset
Definition IRrecv.h:18
const uint16_t kFooter
Definition IRrecv.h:17
const uint16_t kMaxTimeoutMs
Definition IRrecv.h:47
const uint8_t kTolerance
Definition IRrecv.h:33
const uint16_t kMarkExcess
Definition IRrecv.h:22
const uint16_t kUnknownThreshold
Definition IRrecv.h:26
const uint8_t kIdleState
Definition IRrecv.h:29
const uint16_t kRawBuf
Definition IRrecv.h:23
const uint16_t kStateSizeMax
Definition IRrecv.h:55
const uint32_t kFnvPrime32
Definition IRrecv.h:50
const uint8_t kSpaceState
Definition IRrecv.h:31
const uint8_t kMarkState
Definition IRrecv.h:30
const uint8_t kTimeoutMs
Definition IRrecv.h:45
const uint64_t kRepeat
Definition IRrecv.h:24
volatile irparams_t atomic_irparams_t
Definition IRrecv.h:77
const uint16_t kTechnibelAcBits
Definition IRremoteESP8266.h:1250
const uint16_t kEliteScreensBits
Definition IRremoteESP8266.h:1265
const uint16_t kHitachiAc2StateLength
Definition IRremoteESP8266.h:1297
const uint16_t kCoronaAcBitsShort
Definition IRremoteESP8266.h:1215
const uint16_t kWhirlpoolAcBits
Definition IRremoteESP8266.h:1446
const uint16_t kToshibaACBits
Definition IRremoteESP8266.h:1429
const uint16_t kWowweeBits
Definition IRremoteESP8266.h:1449
const uint32_t kPanasonicManufacturer
Definition IRremoteESP8266.h:1366
const uint16_t kPanasonicAcBits
Definition IRremoteESP8266.h:1371
const uint16_t kLgBits
Definition IRremoteESP8266.h:1325
const uint16_t kDenonBits
Definition IRremoteESP8266.h:1252
const uint16_t kRCMMBits
Definition IRremoteESP8266.h:1382
const uint16_t kTcl96AcBits
Definition IRremoteESP8266.h:1419
const uint16_t kDaikin216Bits
Definition IRremoteESP8266.h:1243
volatile uint16_t atomic_uint16_t
Definition IRremoteESP8266.h:61
const uint16_t kAmcorBits
Definition IRremoteESP8266.h:1182
const uint16_t kArgoBits
Definition IRremoteESP8266.h:1186
const uint16_t kTeknopointBits
Definition IRremoteESP8266.h:1427
const uint16_t kLasertagBits
Definition IRremoteESP8266.h:1321
volatile const uint16_t atomic_const_uint16_t
Definition IRremoteESP8266.h:62
const uint16_t kCarrierAc64Bits
Definition IRremoteESP8266.h:1205
const uint16_t kWhynterBits
Definition IRremoteESP8266.h:1448
const uint16_t kBosch144Bits
Definition IRremoteESP8266.h:1197
const uint16_t kCarrierAc40Bits
Definition IRremoteESP8266.h:1203
const uint16_t kAirwellBits
Definition IRremoteESP8266.h:1176
const uint16_t kDaikin128Bits
Definition IRremoteESP8266.h:1231
const uint16_t kSamsung36Bits
Definition IRremoteESP8266.h:1384
const uint16_t kDaikinBits
Definition IRremoteESP8266.h:1218
const uint16_t kNECBits
Definition IRremoteESP8266.h:1361
const uint16_t kCarrierAcBits
Definition IRremoteESP8266.h:1201
const uint16_t kPioneerBits
Definition IRremoteESP8266.h:1375
const uint16_t kSharpAcBits
Definition IRremoteESP8266.h:1407
const uint16_t kRhossBits
Definition IRremoteESP8266.h:1462
const uint16_t kSonyMinBits
Definition IRremoteESP8266.h:1414
const uint16_t kMirageBits
Definition IRremoteESP8266.h:1337
const uint16_t kHaierAC176Bits
Definition IRremoteESP8266.h:1290
const uint16_t kEpsonBits
Definition IRremoteESP8266.h:1260
const uint16_t kDaikin176Bits
Definition IRremoteESP8266.h:1237
const uint16_t kArgo3AcControlStateLength
Definition IRremoteESP8266.h:1188
const uint16_t kEuromBits
Definition IRremoteESP8266.h:1468
const uint16_t kDelonghiAcBits
Definition IRremoteESP8266.h:1248
const uint16_t kSamsungBits
Definition IRremoteESP8266.h:1383
const uint16_t kJvcBits
Definition IRremoteESP8266.h:1313
const uint16_t kTotoBits
Definition IRremoteESP8266.h:1435
const uint16_t kLutronBits
Definition IRremoteESP8266.h:1328
const uint16_t kRC6Mode0Bits
Definition IRremoteESP8266.h:1380
const uint16_t kDaikin64Bits
Definition IRremoteESP8266.h:1225
const uint16_t kSharpBits
Definition IRremoteESP8266.h:1405
const uint16_t kLegoPfBits
Definition IRremoteESP8266.h:1323
const uint16_t kAiwaRcT501Bits
Definition IRremoteESP8266.h:1178
const uint16_t kMitsubishiACBits
Definition IRremoteESP8266.h:1344
const uint16_t kKelonBits
Definition IRremoteESP8266.h:1314
const uint16_t kClimaButlerBits
Definition IRremoteESP8266.h:1464
const uint16_t kSanyoAc88Bits
Definition IRremoteESP8266.h:1393
const uint16_t kNikaiBits
Definition IRremoteESP8266.h:1360
const uint16_t kPanasonicBits
Definition IRremoteESP8266.h:1365
const uint16_t kMitsubishi136Bits
Definition IRremoteESP8266.h:1347
const uint16_t kElectraAcBits
Definition IRremoteESP8266.h:1263
const uint16_t kTrumaBits
Definition IRremoteESP8266.h:1444
const uint16_t kDaikin160Bits
Definition IRremoteESP8266.h:1228
const uint16_t kHaierACYRW02Bits
Definition IRremoteESP8266.h:1284
const uint16_t kHitachiAc296Bits
Definition IRremoteESP8266.h:1306
const uint16_t kHaierAC160Bits
Definition IRremoteESP8266.h:1287
const uint16_t kMultibracketsBits
Definition IRremoteESP8266.h:1358
const uint16_t kHitachiAc1Bits
Definition IRremoteESP8266.h:1296
const uint16_t kAirtonBits
Definition IRremoteESP8266.h:1174
const uint16_t kHitachiAc424Bits
Definition IRremoteESP8266.h:1310
const uint16_t kTrotecBits
Definition IRremoteESP8266.h:1442
const uint16_t kMitsubishiHeavy152Bits
Definition IRremoteESP8266.h:1356
const uint16_t kSymphonyBits
Definition IRremoteESP8266.h:1416
const uint16_t kMitsubishiBits
Definition IRremoteESP8266.h:1339
const uint16_t kTranscoldBits
Definition IRremoteESP8266.h:1439
const uint16_t kRC5XBits
Definition IRremoteESP8266.h:1379
const uint16_t kKelon168Bits
Definition IRremoteESP8266.h:1316
const uint16_t kHitachiAc3Bits
Definition IRremoteESP8266.h:1300
const uint16_t kDaikin312Bits
Definition IRremoteESP8266.h:1246
const uint16_t kDaikin200Bits
Definition IRremoteESP8266.h:1240
const uint16_t kCoolix48Bits
Definition IRremoteESP8266.h:1199
const uint16_t kGreeBits
Definition IRremoteESP8266.h:1278
const uint16_t kEcoclimBits
Definition IRremoteESP8266.h:1258
const uint16_t kGicableBits
Definition IRremoteESP8266.h:1272
const uint16_t kKelvinatorBits
Definition IRremoteESP8266.h:1319
const uint16_t kSanyoLC7461Bits
Definition IRremoteESP8266.h:1401
const uint16_t kMetzBits
Definition IRremoteESP8266.h:1330
const uint16_t kVoltasBits
Definition IRremoteESP8266.h:1455
const uint16_t kYorkBits
Definition IRremoteESP8266.h:1465
const uint16_t kSanyoAcBits
Definition IRremoteESP8266.h:1391
const uint16_t kHaierACBits
Definition IRremoteESP8266.h:1281
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition IRremoteESP8266.h:1035
const uint16_t kMagiquestBits
Definition IRremoteESP8266.h:1329
const uint16_t kCarrierAc128Bits
Definition IRremoteESP8266.h:1211
const uint16_t kPanasonicAc32Bits
Definition IRremoteESP8266.h:1374
const uint16_t kSamsungAcBits
Definition IRremoteESP8266.h:1386
const uint16_t kXmpBits
Definition IRremoteESP8266.h:1452
const uint16_t kMilesTag2ShotBits
Definition IRremoteESP8266.h:1457
const uint8_t kVestelAcBits
Definition IRremoteESP8266.h:1451
const uint16_t kSanyoAc152Bits
Definition IRremoteESP8266.h:1396
const uint16_t kBoseBits
Definition IRremoteESP8266.h:1460
const uint16_t kMitsubishi112Bits
Definition IRremoteESP8266.h:1350
const uint16_t kDishBits
Definition IRremoteESP8266.h:1255
const uint16_t kGorenjeBits
Definition IRremoteESP8266.h:1276
const uint16_t kHitachiAcBits
Definition IRremoteESP8266.h:1293
const uint16_t kFujitsuAcBits
Definition IRremoteESP8266.h:1270
const uint16_t kCoolixBits
Definition IRremoteESP8266.h:1198
const uint16_t kDoshishaBits
Definition IRremoteESP8266.h:1257
const uint16_t kTecoBits
Definition IRremoteESP8266.h:1424
const uint16_t kDaikin152Bits
Definition IRremoteESP8266.h:1234
const uint16_t kZepealBits
Definition IRremoteESP8266.h:1453
const uint16_t kArrisBits
Definition IRremoteESP8266.h:1193
const uint16_t kCarrierAc84Bits
Definition IRremoteESP8266.h:1208
const uint16_t kInaxBits
Definition IRremoteESP8266.h:1311
const uint16_t kGoodweatherBits
Definition IRremoteESP8266.h:1274
const uint16_t kBluestarHeavyBits
Definition IRremoteESP8266.h:1195
const uint16_t kMideaBits
Definition IRremoteESP8266.h:1332
const uint16_t kMidea24Bits
Definition IRremoteESP8266.h:1334
const uint16_t kDaikin2Bits
Definition IRremoteESP8266.h:1223
const uint16_t kNeoclimaBits
Definition IRremoteESP8266.h:1363
Class for receiving IR messages.
Definition IRrecv.h:111
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 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
void setUnknownThreshold(const uint16_t length)
Set the minimum length we will consider for reporting UNKNOWN message types.
Definition IRrecv.cpp:313
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:3376
uint8_t _tolerance
Definition IRrecv.h:149
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:3783
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
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
uint8_t _validTolerance(const uint8_t percentage)
Convert the tolerance percentage into something valid.
Definition IRrecv.cpp:1063
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
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:95
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:865
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 decodeHitachiAC1(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc1Bits, const bool strict=true)
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:602
uint8_t getTolerance(void)
Get the base tolerance percentage for matching incoming IR messages.
Definition IRrecv.cpp:327
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
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 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
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
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
void pause(void)
Pause collection of received IR data.
Definition IRrecv.cpp:255
atomic_irparams_t * _getParamsPtr(void)
Unit test helper to get access to the params structure.
Definition IRrecv.cpp:1934
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:318
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:1233
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 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 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
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:1399
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:4572
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 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
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:697
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
bool decodeEurom(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEuromBits, const bool strict=true)
Decode the supplied Eurom message. Status: STABLE / Confirmed Working.
Definition ir_Eurom.cpp:65
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:159
uint16_t matchManchester(atomic_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:1706
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 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 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
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 decodeBluestarHeavy(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kBluestarHeavyBits, const bool strict=true)
Decode the supplied BluestarHeavy message. Status: BETA / Tested.
Definition ir_BluestarHeavy.cpp:52
bool decodeYork(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=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
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
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:1336
match_result_t matchData(atomic_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:1310
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
void enableIRIn(const bool pullup=false)
Set up and (re)start the IR capture mechanism.
Definition IRrecv.cpp:168
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:1086
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 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:535
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 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 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
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
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 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:384
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
uint16_t getBufSize(void)
Obtain the maximum number of entries possible in the capture buffer. i.e. It's size.
Definition IRrecv.cpp:308
void resume(void)
Resume collection of received IR data.
Definition IRrecv.cpp:268
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
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
irparams_t * irparams_save
Definition IRrecv.h:148
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 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
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
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
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:1022
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:1272
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:1683
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 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
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
~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:156
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:994
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:949
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:1099
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
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
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:244
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
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
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:1731
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:1692
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:354
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 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:723
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 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:161
void disableIRIn(void)
Stop collection of any received IR data. Disable any timers and interrupts.
Definition IRrecv.cpp:237
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:1213
void setTolerance(const uint8_t percent=kTolerance)
Set the base tolerance percentage for matching incoming IR messages.
Definition IRrecv.cpp:321
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 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:2430
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 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:508
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
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
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:374
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
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
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:131
uint16_t matchGeneric(atomic_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:1525
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
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:532
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
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:3015
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
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
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
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
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:1072
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 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:2925
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
uint16_t matchGenericConstBitTime(atomic_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:1619
uint16_t matchBytes(atomic_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:1371
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
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
uint16_t _matchGeneric(atomic_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:1423
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:439
uint16_t compare(const uint16_t oldval, const uint16_t newval)
Compare two tick values.
Definition IRrecv.cpp:1251
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:1353
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:310
uint16_t _unknown_threshold
Definition IRrecv.h:151
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
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
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:1194
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 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:314
uint16_t matchManchesterData(atomic_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:1813
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
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
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:1174
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:1130
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:334
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:1466
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
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:398
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 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:2038
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:1432
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
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
void copyIrParams(atomic_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:284
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
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
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 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 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:823
Results returned from the decoder.
Definition IRrecv.h:89
uint64_t value
Definition IRrecv.h:97
bool repeat
Definition IRrecv.h:107
uint32_t address
Definition IRrecv.h:98
bool overflow
Definition IRrecv.h:106
uint16_t rawlen
Definition IRrecv.h:105
uint32_t command
Definition IRrecv.h:99
decode_type_t decode_type
Definition IRrecv.h:91
uint16_t bits
Definition IRrecv.h:103
uint8_t state[kStateSizeMax]
Definition IRrecv.h:101
atomic_uint16_t * rawbuf
Definition IRrecv.h:104
Information for the interrupt handler.
Definition IRrecv.h:64
uint16_t rawlen
Definition IRrecv.h:72
uint8_t timeout
Definition IRrecv.h:74
uint16_t bufsize
Definition IRrecv.h:68
uint8_t recvpin
Definition IRrecv.h:65
uint8_t rcvstate
Definition IRrecv.h:66
uint16_t timer
Definition IRrecv.h:67
uint16_t * rawbuf
Definition IRrecv.h:69
uint8_t overflow
Definition IRrecv.h:73
Results from a data match.
Definition IRrecv.h:80
bool success
Definition IRrecv.h:81
uint16_t used
Definition IRrecv.h:83
uint64_t data
Definition IRrecv.h:82