IRremoteIDF
Infrared send & receive for ESP-IDF
Loading...
Searching...
No Matches
IRsend.h
Go to the documentation of this file.
1// Copyright 2009 Ken Shirriff
2// Copyright 2015 Mark Szabo
3// Copyright 2017 David Conran
4#ifndef IRSEND_H_
5#define IRSEND_H_
6
7#define __STDC_LIMIT_MACROS
8#include <stdint.h>
9#ifdef SWIGLIB
10#include <vector>
11#endif // SWIGLIB
12#include "IRremoteESP8266.h"
13
14// Originally from https://github.com/shirriff/Arduino-IRremote/
15// Updated by markszabo (https://github.com/crankyoldgit/IRremoteESP8266) for
16// sending IR code on ESP8266
17
18#if TEST || UNIT_TEST
19#define VIRTUAL virtual
20#ifdef SWIGLIB
21#define VIRTUALMS
22#else // SWIGLIB
23#define VIRTUALMS virtual
24#endif // SWIGLIB
25#else
26#define VIRTUAL
27#define VIRTUALMS
28#endif
29
30// Constants
31// Offset (in microseconds) to use in Period time calculations to account for
32// code excution time in producing the software PWM signal.
33// Measured on a generic ESP-WROOM-32 board @ 240MHz. Call IRsend::calibrate()
34// if your target/clock combination needs a different value.
35const int8_t kPeriodOffset = -2;
36const uint8_t kDutyDefault = 50; // Percentage
37const uint8_t kDutyMax = 100; // Percentage
38// delayMicroseconds() is only accurate to 16383us.
39// Ref: https://www.arduino.cc/en/Reference/delayMicroseconds
40const uint16_t kMaxAccurateUsecDelay = 16383;
41// Usecs to wait between messages we don't know the proper gap time.
42const uint32_t kDefaultMessageGap = 100000;
45const float kNoTempValue = -100.0;
46
47#ifdef SWIGLIB
48// Global
49extern std::vector<int> timingList;
50#endif // SWIGLIB
51
53namespace stdAc {
55enum class opmode_t {
56 kOff = -1,
57 kAuto = 0,
58 kCool = 1,
59 kHeat = 2,
60 kDry = 3,
61 kFan = 4,
62 // Add new entries before this one, and update it to point to the last entry
64};
65
67enum class fanspeed_t {
68 kAuto = 0,
69 kMin = 1,
70 kLow = 2,
71 kMedium = 3,
72 kHigh = 4,
73 kMax = 5,
74 kMediumHigh = 6,
75 // Add new entries before this one, and update it to point to the last entry
77};
78
80enum class swingv_t {
81 kOff = -1,
82 kAuto = 0,
83 kHighest = 1,
84 kHigh = 2,
85 kMiddle = 3,
86 kLow = 4,
87 kLowest = 5,
88 kUpperMiddle = 6,
89 // Add new entries before this one, and update it to point to the last entry
91};
92
96enum class ac_command_t {
99 kTimerCommand = 2,
100 kConfigCommand = 3,
101 // Add new entries before this one, and update it to point to the last entry
103};
104
106enum class swingh_t {
107 kOff = -1,
108 kAuto = 0, // a.k.a. On.
109 kLeftMax = 1,
110 kLeft = 2,
111 kMiddle = 3,
112 kRight = 4,
113 kRightMax = 5,
114 kWide = 6, // a.k.a. left & right at the same time.
115 // Add new entries before this one, and update it to point to the last entry
117};
118
120struct state_t {
122 int16_t model = -1; // `-1` means unused.
123 bool power = false;
125 float degrees = 25;
126 bool celsius = true;
130 bool quiet = false;
131 bool turbo = false;
132 bool econo = false;
133 bool light = false;
134 bool filter = false;
135 bool clean = false;
136 bool beep = false;
137 int16_t sleep = -1; // `-1` means off.
138 int16_t clock = -1; // `-1` means not set.
140 bool iFeel = false;
141 float sensorTemperature = kNoTempValue; // `kNoTempValue` means not set.
142};
143}; // namespace stdAc
144
159
162 YAW1F = 1, // (1) Ultimate, EKOKAI, RusClimate (Default)
163 YBOFB, // (2) Green, YBOFB2, YAPOF3
164 YX1FSF, // (3) Soleus Air window unit (Similar to YAW1F, but with an
165 // Operation mode of Energy Saver (Econo))
166};
167
170 V9014557_A = 1, // (1) V9014557 Remote in "A" setting. (Default)
171 V9014557_B, // (2) V9014557 Remote in "B" setting.
172};
173
176 R_LT0541_HTA_A = 1, // (1) R-LT0541-HTA Remote in "A" setting. (Default)
177 R_LT0541_HTA_B, // (2) R-LT0541-HTA Remote in "B" setting.
178};
179
182 KKG9AC1 = 1, // (1) KKG9A-C1 Remote. (Default)
183 KKG29AC1, // (2) KKG29A-C1 Remote.
184};
185
196
199 A907 = 1,
200 A705 = 2,
201 A903 = 3, // 820 too
202};
203
207 GZ055BE1 = 2, // Also Teknopoint GZ01-BEJ0-000
208};
209
212 kVoltasUnknown = 0, // Full Function
213 kVoltas122LZF = 1, // (1) 122LZF (No SwingH support) (Default)
214};
215
218 DG11J13A = 1, // DG11J1-04 too
220};
221
222// Kelon/Hisense (Kelon168) A/C remote model numbers
224 DG11R201 = 1, // RCH-R0Y3 too?
225};
226
229 GE6711AR2853M = 1, // (1) LG 28-bit Protocol (default)
230 AKB75215403, // (2) LG2 28-bit Protocol
231 AKB74955603, // (3) LG2 28-bit Protocol variant
232 AKB73757604, // (4) LG2 Variant of AKB74955603
233 LG6711A20083V, // (5) Same as GE6711AR2853M, but only SwingV toggle.
234};
235
238 SAC_WREM2 = 1, // (1) ARGO WREM2 remote (default)
239 SAC_WREM3 // (2) ARGO WREM3 remote (touch buttons), bit-len vary by cmd
241
244 kToshibaGenericRemote_A = 0, // Default from existing codebase
245 kToshibaGenericRemote_B = 1, // Newly discovered remote control b, applies to
246 // many remote models such as WA-TH03A, WA-TH04A etc.
247};
248
249#ifndef SWIG
250// Classes
251
256class IRsend {
257 public:
258 explicit IRsend(uint16_t IRsendPin, bool inverted = false,
259 bool use_modulation = true);
263 ~IRsend();
264 void begin();
265 void end();
266 void enableIROut(uint32_t freq, uint8_t duty = kDutyDefault);
267 VIRTUAL void _delayMicroseconds(uint32_t usec);
268 VIRTUALMS uint16_t mark(uint16_t usec);
269 VIRTUALMS void space(uint32_t usec);
270 int8_t calibrate(uint16_t hz = 38000U);
271 void sendRaw(const uint16_t buf[], const uint16_t len, const uint16_t hz);
272 void sendData(uint16_t onemark, uint32_t onespace, uint16_t zeromark,
273 uint32_t zerospace, uint64_t data, uint16_t nbits,
274 bool MSBfirst = true);
275 void sendManchesterData(const uint16_t half_period, const uint64_t data,
276 const uint16_t nbits, const bool MSBfirst = true,
277 const bool GEThomas = true);
278 void sendManchester(const uint16_t headermark, const uint32_t headerspace,
279 const uint16_t half_period, const uint16_t footermark,
280 const uint32_t gap, const uint64_t data,
281 const uint16_t nbits, const uint16_t frequency = 38,
282 const bool MSBfirst = true,
283 const uint16_t repeat = kNoRepeat,
284 const uint8_t dutycycle = kDutyDefault,
285 const bool GEThomas = true);
286 void sendGeneric(const uint16_t headermark, const uint32_t headerspace,
287 const uint16_t onemark, const uint32_t onespace,
288 const uint16_t zeromark, const uint32_t zerospace,
289 const uint16_t footermark, const uint32_t gap,
290 const uint64_t data, const uint16_t nbits,
291 const uint16_t frequency, const bool MSBfirst,
292 const uint16_t repeat, const uint8_t dutycycle);
293 void sendGeneric(const uint16_t headermark, const uint32_t headerspace,
294 const uint16_t onemark, const uint32_t onespace,
295 const uint16_t zeromark, const uint32_t zerospace,
296 const uint16_t footermark, const uint32_t gap,
297 const uint32_t mesgtime, const uint64_t data,
298 const uint16_t nbits, const uint16_t frequency,
299 const bool MSBfirst, const uint16_t repeat,
300 const uint8_t dutycycle);
301 void sendGeneric(const uint16_t headermark, const uint32_t headerspace,
302 const uint16_t onemark, const uint32_t onespace,
303 const uint16_t zeromark, const uint32_t zerospace,
304 const uint16_t footermark, const uint32_t gap,
305 const uint8_t *dataptr, const uint16_t nbytes,
306 const uint16_t frequency, const bool MSBfirst,
307 const uint16_t repeat, const uint8_t dutycycle);
308 static uint16_t minRepeats(const decode_type_t protocol);
309 static uint16_t defaultBits(const decode_type_t protocol);
310 bool send(const decode_type_t type, const uint64_t data,
311 const uint16_t nbits, const uint16_t repeat = kNoRepeat);
312 bool send(const decode_type_t type, const uint8_t *state,
313 const uint16_t nbytes);
314#if (SEND_NEC || SEND_SHERWOOD || SEND_AIWA_RC_T501 || SEND_SANYO || \
315 SEND_MIDEA24)
316 void sendNEC(uint64_t data, uint16_t nbits = kNECBits,
317 uint16_t repeat = kNoRepeat);
318 uint32_t encodeNEC(uint16_t address, uint16_t command);
319#endif
320#if SEND_SONY
321 // sendSony() should typically be called with repeat=2 as Sony devices
322 // expect the code to be sent at least 3 times. (code + 2 repeats = 3 codes)
323 // Legacy use of this procedure was to only send a single code so call it with
324 // repeat=0 for backward compatibility. As of v2.0 it defaults to sending
325 // a Sony command that will be accepted be a device.
326 void sendSony(const uint64_t data, const uint16_t nbits = kSony20Bits,
327 const uint16_t repeat = kSonyMinRepeat);
328 void sendSony38(const uint64_t data, const uint16_t nbits = kSony20Bits,
329 const uint16_t repeat = kSonyMinRepeat + 1);
330 uint32_t encodeSony(const uint16_t nbits, const uint16_t command,
331 const uint16_t address, const uint16_t extended = 0);
332#endif // SEND_SONY
333#if SEND_SHERWOOD
334 void sendSherwood(uint64_t data, uint16_t nbits = kSherwoodBits,
335 uint16_t repeat = kSherwoodMinRepeat);
336#endif
337 // `sendSAMSUNG()` is required by `sendLG()`
338#if (SEND_SAMSUNG || SEND_LG)
339 void sendSAMSUNG(const uint64_t data, const uint16_t nbits = kSamsungBits,
340 const uint16_t repeat = kNoRepeat);
341 uint32_t encodeSAMSUNG(const uint8_t customer, const uint8_t command);
342#endif // (SEND_SAMSUNG || SEND_LG)
343#if SEND_SAMSUNG36
344 void sendSamsung36(const uint64_t data, const uint16_t nbits = kSamsung36Bits,
345 const uint16_t repeat = kNoRepeat);
346#endif
347#if SEND_SAMSUNG_AC
348 void sendSamsungAC(const unsigned char data[],
349 const uint16_t nbytes = kSamsungAcStateLength,
350 const uint16_t repeat = kSamsungAcDefaultRepeat);
351#endif
352#if SEND_LG
353 void sendLG(uint64_t data, uint16_t nbits = kLgBits,
354 uint16_t repeat = kNoRepeat);
355 void sendLG2(uint64_t data, uint16_t nbits = kLgBits,
356 uint16_t repeat = kNoRepeat);
357 uint32_t encodeLG(uint16_t address, uint16_t command);
358#endif
359#if (SEND_SHARP || SEND_DENON)
360 uint32_t encodeSharp(const uint16_t address, const uint16_t command,
361 const uint16_t expansion = 1, const uint16_t check = 0,
362 const bool MSBfirst = false);
363 void sendSharp(const uint16_t address, const uint16_t command,
364 const uint16_t nbits = kSharpBits,
365 const uint16_t repeat = kNoRepeat);
366 void sendSharpRaw(const uint64_t data, const uint16_t nbits = kSharpBits,
367 const uint16_t repeat = kNoRepeat);
368#endif
369#if SEND_SHARP_AC
370 void sendSharpAc(const unsigned char data[],
371 const uint16_t nbytes = kSharpAcStateLength,
372 const uint16_t repeat = kSharpAcDefaultRepeat);
373#endif // SEND_SHARP_AC
374#if SEND_JVC
375 void sendJVC(uint64_t data, uint16_t nbits = kJvcBits,
376 uint16_t repeat = kNoRepeat);
377 uint16_t encodeJVC(uint8_t address, uint8_t command);
378#endif
379#if SEND_DENON
380 void sendDenon(uint64_t data, uint16_t nbits = kDenonBits,
381 uint16_t repeat = kNoRepeat);
382#endif
383#if SEND_SANYO
384 uint64_t encodeSanyoLC7461(uint16_t address, uint8_t command);
385 void sendSanyoLC7461(const uint64_t data,
386 const uint16_t nbits = kSanyoLC7461Bits,
387 const uint16_t repeat = kNoRepeat);
388#endif
389#if SEND_SANYO_AC
390 void sendSanyoAc(const uint8_t *data,
391 const uint16_t nbytes = kSanyoAcStateLength,
392 const uint16_t repeat = kNoRepeat);
393#endif // SEND_SANYO_AC
394#if SEND_SANYO_AC88
395 void sendSanyoAc88(const uint8_t *data,
396 const uint16_t nbytes = kSanyoAc88StateLength,
397 const uint16_t repeat = kSanyoAc88MinRepeat);
398#endif // SEND_SANYO_AC88
399#if SEND_SANYO_AC152
400 void sendSanyoAc152(const uint8_t *data,
401 const uint16_t nbytes = kSanyoAc152StateLength,
402 const uint16_t repeat = kSanyoAc152MinRepeat);
403#endif // SEND_SANYO_AC152
404#if SEND_DISH
405 // sendDISH() should typically be called with repeat=3 as DISH devices
406 // expect the code to be sent at least 4 times. (code + 3 repeats = 4 codes)
407 // Legacy use of this procedure was only to send a single code
408 // so use repeat=0 for backward compatibility.
409 void sendDISH(uint64_t data, uint16_t nbits = kDishBits,
410 uint16_t repeat = kDishMinRepeat);
411#endif
412#if (SEND_PANASONIC || SEND_DENON)
413 void sendPanasonic64(const uint64_t data,
414 const uint16_t nbits = kPanasonicBits,
415 const uint16_t repeat = kNoRepeat);
416 void sendPanasonic(const uint16_t address, const uint32_t data,
417 const uint16_t nbits = kPanasonicBits,
418 const uint16_t repeat = kNoRepeat);
419 uint64_t encodePanasonic(const uint16_t manufacturer, const uint8_t device,
420 const uint8_t subdevice, const uint8_t function);
421#endif
422#if SEND_RC5
423 void sendRC5(const uint64_t data, uint16_t nbits = kRC5XBits,
424 const uint16_t repeat = kNoRepeat);
425 uint16_t encodeRC5(const uint8_t address, const uint8_t command,
426 const bool key_released = false);
427 uint16_t encodeRC5X(const uint8_t address, const uint8_t command,
428 const bool key_released = false);
429 uint64_t toggleRC5(const uint64_t data);
430#endif
431#if SEND_RC6
432 void sendRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits,
433 const uint16_t repeat = kNoRepeat);
434 uint64_t encodeRC6(const uint32_t address, const uint8_t command,
435 const uint16_t mode = kRC6Mode0Bits);
436 uint64_t toggleRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits);
437#endif
438#if SEND_RCMM
439 void sendRCMM(uint64_t data, uint16_t nbits = kRCMMBits,
440 uint16_t repeat = kNoRepeat);
441#endif
442#if SEND_COOLIX
443 void sendCOOLIX(const uint64_t data, const uint16_t nbits = kCoolixBits,
444 const uint16_t repeat = kCoolixDefaultRepeat);
445#endif // SEND_COOLIX
446#if SEND_COOLIX48
447 void sendCoolix48(const uint64_t data, const uint16_t nbits = kCoolix48Bits,
448 const uint16_t repeat = kCoolixDefaultRepeat);
449#endif // SEND_COOLIX48
450#if SEND_WHYNTER
451 void sendWhynter(const uint64_t data, const uint16_t nbits = kWhynterBits,
452 const uint16_t repeat = kNoRepeat);
453#endif
454#if SEND_MIRAGE
455 void sendMirage(const unsigned char data[],
456 const uint16_t nbytes = kMirageStateLength,
457 const uint16_t repeat = kMirageMinRepeat);
458#endif // SEND_MIRAGE
459#if SEND_MITSUBISHI
460 void sendMitsubishi(uint64_t data, uint16_t nbits = kMitsubishiBits,
461 uint16_t repeat = kMitsubishiMinRepeat);
462#endif
463#if SEND_MITSUBISHI136
464 void sendMitsubishi136(const unsigned char data[],
465 const uint16_t nbytes = kMitsubishi136StateLength,
466 const uint16_t repeat = kMitsubishi136MinRepeat);
467#endif
468#if SEND_MITSUBISHI112
469 void sendMitsubishi112(const unsigned char data[],
470 const uint16_t nbytes = kMitsubishi112StateLength,
471 const uint16_t repeat = kMitsubishi112MinRepeat);
472#endif
473#if SEND_MITSUBISHI2
474 void sendMitsubishi2(uint64_t data, uint16_t nbits = kMitsubishiBits,
475 uint16_t repeat = kMitsubishiMinRepeat);
476#endif
477#if SEND_MITSUBISHI_AC
478 void sendMitsubishiAC(const unsigned char data[],
479 const uint16_t nbytes = kMitsubishiACStateLength,
480 const uint16_t repeat = kMitsubishiACMinRepeat);
481#endif
482#if SEND_MITSUBISHIHEAVY
484 const unsigned char data[],
485 const uint16_t nbytes = kMitsubishiHeavy88StateLength,
486 const uint16_t repeat = kMitsubishiHeavy88MinRepeat);
488 const unsigned char data[],
489 const uint16_t nbytes = kMitsubishiHeavy152StateLength,
490 const uint16_t repeat = kMitsubishiHeavy152MinRepeat);
491#endif
492#if SEND_FUJITSU_AC
493 void sendFujitsuAC(const unsigned char data[], const uint16_t nbytes,
494 const uint16_t repeat = kFujitsuAcMinRepeat);
495#endif
496#if SEND_INAX
497 void sendInax(const uint64_t data, const uint16_t nbits = kInaxBits,
498 const uint16_t repeat = kInaxMinRepeat);
499#endif // SEND_INAX
500#if SEND_GLOBALCACHE
501 void sendGC(uint16_t buf[], uint16_t len);
502#endif
503#if SEND_KELVINATOR
504 void sendKelvinator(const unsigned char data[],
505 const uint16_t nbytes = kKelvinatorStateLength,
506 const uint16_t repeat = kKelvinatorDefaultRepeat);
507#endif
508#if SEND_DAIKIN
509 void sendDaikin(const unsigned char data[],
510 const uint16_t nbytes = kDaikinStateLength,
511 const uint16_t repeat = kDaikinDefaultRepeat);
512#endif
513#if SEND_DAIKIN64
514 void sendDaikin64(const uint64_t data, const uint16_t nbits = kDaikin64Bits,
515 const uint16_t repeat = kDaikin64DefaultRepeat);
516#endif // SEND_DAIKIN64
517#if SEND_DAIKIN128
518 void sendDaikin128(const unsigned char data[],
519 const uint16_t nbytes = kDaikin128StateLength,
520 const uint16_t repeat = kDaikin128DefaultRepeat);
521#endif // SEND_DAIKIN128
522#if SEND_DAIKIN152
523 void sendDaikin152(const unsigned char data[],
524 const uint16_t nbytes = kDaikin152StateLength,
525 const uint16_t repeat = kDaikin152DefaultRepeat);
526#endif // SEND_DAIKIN152
527#if SEND_DAIKIN160
528 void sendDaikin160(const unsigned char data[],
529 const uint16_t nbytes = kDaikin160StateLength,
530 const uint16_t repeat = kDaikin160DefaultRepeat);
531#endif // SEND_DAIKIN160
532#if SEND_DAIKIN176
533 void sendDaikin176(const unsigned char data[],
534 const uint16_t nbytes = kDaikin176StateLength,
535 const uint16_t repeat = kDaikin176DefaultRepeat);
536#endif // SEND_DAIKIN176
537#if SEND_DAIKIN2
538 void sendDaikin2(const unsigned char data[],
539 const uint16_t nbytes = kDaikin2StateLength,
540 const uint16_t repeat = kDaikin2DefaultRepeat);
541#endif
542#if SEND_DAIKIN200
543 void sendDaikin200(const unsigned char data[],
544 const uint16_t nbytes = kDaikin200StateLength,
545 const uint16_t repeat = kDaikin200DefaultRepeat);
546#endif // SEND_DAIKIN200
547#if SEND_DAIKIN216
548 void sendDaikin216(const unsigned char data[],
549 const uint16_t nbytes = kDaikin216StateLength,
550 const uint16_t repeat = kDaikin216DefaultRepeat);
551#endif // SEND_DAIKIN216
552#if SEND_DAIKIN312
553 void sendDaikin312(const unsigned char data[],
554 const uint16_t nbytes = kDaikin312StateLength,
555 const uint16_t repeat = kDaikin312DefaultRepeat);
556#endif // SEND_DAIKIN312
557#if SEND_AIWA_RC_T501
558 void sendAiwaRCT501(uint64_t data, uint16_t nbits = kAiwaRcT501Bits,
559 uint16_t repeat = kAiwaRcT501MinRepeats);
560#endif
561#if SEND_GREE
562 void sendGree(const uint64_t data, const uint16_t nbits = kGreeBits,
563 const uint16_t repeat = kGreeDefaultRepeat);
564 void sendGree(const uint8_t data[], const uint16_t nbytes = kGreeStateLength,
565 const uint16_t repeat = kGreeDefaultRepeat);
566#endif
567#if SEND_GOODWEATHER
568 void sendGoodweather(const uint64_t data,
569 const uint16_t nbits = kGoodweatherBits,
570 const uint16_t repeat = kGoodweatherMinRepeat);
571#endif // SEND_GOODWEATHER
572#if SEND_GORENJE
573 void sendGorenje(const uint64_t data, const uint16_t nbits = kGorenjeBits,
574 const uint16_t repeat = kNoRepeat);
575#endif // SEND_GORENJE
576#if SEND_PRONTO
577 void sendPronto(uint16_t data[], uint16_t len, uint16_t repeat = kNoRepeat);
578#endif
579#if SEND_ARGO
580 void sendArgo(const unsigned char data[],
581 const uint16_t nbytes = kArgoStateLength,
582 const uint16_t repeat = kArgoDefaultRepeat,
583 bool sendFooter = false);
584 void sendArgoWREM3(const unsigned char data[],
585 const uint16_t nbytes = kArgoStateLength,
586 const uint16_t repeat = kArgoDefaultRepeat);
587#endif // SEND_ARGO
588#if SEND_TROTEC
589 void sendTrotec(const unsigned char data[],
590 const uint16_t nbytes = kTrotecStateLength,
591 const uint16_t repeat = kTrotecDefaultRepeat);
592#endif // SEND_TROTEC
593#if SEND_TROTEC_3550
594 void sendTrotec3550(const unsigned char data[],
595 const uint16_t nbytes = kTrotecStateLength,
596 const uint16_t repeat = kTrotecDefaultRepeat);
597#endif // SEND_TROTEC_3550
598#if SEND_NIKAI
599 void sendNikai(uint64_t data, uint16_t nbits = kNikaiBits,
600 uint16_t repeat = kNoRepeat);
601#endif
602#if SEND_TOSHIBA_AC
603 void sendToshibaAC(const uint8_t data[],
604 const uint16_t nbytes = kToshibaACStateLength,
605 const uint16_t repeat = kToshibaACMinRepeat);
606#endif
607#if SEND_MIDEA
608 void sendMidea(uint64_t data, uint16_t nbits = kMideaBits,
609 uint16_t repeat = kMideaMinRepeat);
610#endif // SEND_MIDEA
611#if SEND_MIDEA24
612 void sendMidea24(const uint64_t data, const uint16_t nbits = kMidea24Bits,
613 const uint16_t repeat = kMidea24MinRepeat);
614#endif // SEND_MIDEA24
615#if SEND_MAGIQUEST
616 void sendMagiQuest(const uint64_t data, const uint16_t nbits = kMagiquestBits,
617 const uint16_t repeat = kNoRepeat);
618 uint64_t encodeMagiQuest(const uint32_t wand_id, const uint16_t magnitude);
619#endif
620#if SEND_LASERTAG
621 void sendLasertag(uint64_t data, uint16_t nbits = kLasertagBits,
622 uint16_t repeat = kLasertagMinRepeat);
623#endif
624#if SEND_CARRIER_AC
625 void sendCarrierAC(uint64_t data, uint16_t nbits = kCarrierAcBits,
626 uint16_t repeat = kCarrierAcMinRepeat);
627#endif
628#if SEND_CARRIER_AC40
629 void sendCarrierAC40(uint64_t data, uint16_t nbits = kCarrierAc40Bits,
630 uint16_t repeat = kCarrierAc40MinRepeat);
631#endif
632#if SEND_CARRIER_AC64
633 void sendCarrierAC64(uint64_t data, uint16_t nbits = kCarrierAc64Bits,
634 uint16_t repeat = kCarrierAc64MinRepeat);
635#endif
636#if SEND_CARRIER_AC84
637 void sendCarrierAC84(const uint8_t data[],
638 const uint16_t nbytes = kCarrierAc84StateLength,
639 const uint16_t repeat = kNoRepeat);
640#endif // SEND_CARRIER_AC84
641#if SEND_CARRIER_AC128
642 void sendCarrierAC128(const uint8_t data[],
643 uint16_t nbytes = kCarrierAc128StateLength,
644 uint16_t repeat = kCarrierAc128MinRepeat);
645#endif // SEND_CARRIER_AC128
646#if (SEND_HAIER_AC || SEND_HAIER_AC_YRW02 || SEND_HAIER_AC160 || \
647 SEND_HAIER_AC176)
648 void sendHaierAC(const unsigned char data[],
649 const uint16_t nbytes = kHaierACStateLength,
650 const uint16_t repeat = kHaierAcDefaultRepeat);
651#endif // (SEND_HAIER_AC || SEND_HAIER_AC_YRW02 || SEND_HAIER_AC160 ||
652 // SEND_HAIER_AC176)
653#if SEND_HAIER_AC_YRW02
654 void sendHaierACYRW02(const unsigned char data[],
655 const uint16_t nbytes = kHaierACYRW02StateLength,
656 const uint16_t repeat = kHaierAcYrw02DefaultRepeat);
657#endif // SEND_HAIER_AC_YRW02
658#if SEND_HAIER_AC160
659 void sendHaierAC160(const unsigned char data[],
660 const uint16_t nbytes = kHaierAC160StateLength,
661 const uint16_t repeat = kHaierAc160DefaultRepeat);
662#endif // SEND_HAIER_AC160
663#if SEND_HAIER_AC176
664 void sendHaierAC176(const unsigned char data[],
665 const uint16_t nbytes = kHaierAC176StateLength,
666 const uint16_t repeat = kHaierAc176DefaultRepeat);
667#endif // SEND_HAIER_AC176
668#if SEND_HITACHI_AC
669 void sendHitachiAC(const unsigned char data[],
670 const uint16_t nbytes = kHitachiAcStateLength,
671 const uint16_t repeat = kHitachiAcDefaultRepeat);
672#endif
673#if SEND_HITACHI_AC1
674 void sendHitachiAC1(const unsigned char data[],
675 const uint16_t nbytes = kHitachiAc1StateLength,
676 const uint16_t repeat = kHitachiAcDefaultRepeat);
677#endif
678#if SEND_HITACHI_AC2
679 void sendHitachiAC2(const unsigned char data[],
680 const uint16_t nbytes = kHitachiAc2StateLength,
681 const uint16_t repeat = kHitachiAcDefaultRepeat);
682#endif
683#if SEND_HITACHI_AC3
684 void sendHitachiAc3(const unsigned char data[],
685 const uint16_t nbytes, // No default as there as so many
686 // different sizes
687 const uint16_t repeat = kHitachiAcDefaultRepeat);
688#endif // SEND_HITACHI_AC3
689#if SEND_HITACHI_AC264
690 void sendHitachiAc264(const unsigned char data[],
691 const uint16_t nbytes = kHitachiAc264StateLength,
692 const uint16_t repeat = kHitachiAcDefaultRepeat);
693#endif // SEND_HITACHI_AC264
694#if SEND_HITACHI_AC296
695 void sendHitachiAc296(const unsigned char data[],
696 const uint16_t nbytes = kHitachiAc296StateLength,
697 const uint16_t repeat = kHitachiAcDefaultRepeat);
698#endif // SEND_HITACHI_AC296
699#if SEND_HITACHI_AC344
700 void sendHitachiAc344(const unsigned char data[],
701 const uint16_t nbytes = kHitachiAc344StateLength,
702 const uint16_t repeat = kHitachiAcDefaultRepeat);
703#endif // SEND_HITACHI_AC344
704#if SEND_HITACHI_AC424
705 void sendHitachiAc424(const unsigned char data[],
706 const uint16_t nbytes = kHitachiAc424StateLength,
707 const uint16_t repeat = kHitachiAcDefaultRepeat);
708#endif // SEND_HITACHI_AC424
709#if SEND_GICABLE
710 void sendGICable(uint64_t data, uint16_t nbits = kGicableBits,
711 uint16_t repeat = kGicableMinRepeat);
712#endif
713#if SEND_WHIRLPOOL_AC
714 void sendWhirlpoolAC(const unsigned char data[],
715 const uint16_t nbytes = kWhirlpoolAcStateLength,
716 const uint16_t repeat = kWhirlpoolAcDefaultRepeat);
717#endif
718#if SEND_LUTRON
719 void sendLutron(uint64_t data, uint16_t nbits = kLutronBits,
720 uint16_t repeat = kNoRepeat);
721#endif
722#if SEND_ELECTRA_AC
723 void sendElectraAC(const unsigned char data[],
724 const uint16_t nbytes = kElectraAcStateLength,
725 const uint16_t repeat = kNoRepeat);
726#endif
727#if SEND_PANASONIC_AC
728 void sendPanasonicAC(const unsigned char data[],
729 const uint16_t nbytes = kPanasonicAcStateLength,
730 const uint16_t repeat = kPanasonicAcDefaultRepeat);
731#endif // SEND_PANASONIC_AC
732#if SEND_PANASONIC_AC32
733 void sendPanasonicAC32(const uint64_t data,
734 const uint16_t nbits = kPanasonicAc32Bits,
735 const uint16_t repeat = kPanasonicAcDefaultRepeat);
736#endif // SEND_PANASONIC_AC32
737#if SEND_PIONEER
738 void sendPioneer(const uint64_t data, const uint16_t nbits = kPioneerBits,
739 const uint16_t repeat = kNoRepeat);
740 uint64_t encodePioneer(uint16_t address, uint16_t command);
741#endif
742#if SEND_MWM
743 void sendMWM(const unsigned char data[], const uint16_t nbytes,
744 const uint16_t repeat = kNoRepeat);
745#endif
746#if SEND_VESTEL_AC
747 void sendVestelAc(const uint64_t data, const uint16_t nbits = kVestelAcBits,
748 const uint16_t repeat = kNoRepeat);
749#endif
750#if SEND_TCL96AC
751 void sendTcl96Ac(const unsigned char data[],
752 const uint16_t nbytes = kTcl96AcStateLength,
753 const uint16_t repeat = kTcl96AcDefaultRepeat);
754#endif // SEND_TCL96AC
755#if SEND_TCL112AC
756 void sendTcl112Ac(const unsigned char data[],
757 const uint16_t nbytes = kTcl112AcStateLength,
758 const uint16_t repeat = kTcl112AcDefaultRepeat);
759#endif // SEND_TCL112AC
760#if SEND_TECO
761 void sendTeco(const uint64_t data, const uint16_t nbits = kTecoBits,
762 const uint16_t repeat = kNoRepeat);
763#endif
764#if SEND_LEGOPF
765 void sendLegoPf(const uint64_t data, const uint16_t nbits = kLegoPfBits,
766 const uint16_t repeat = kLegoPfMinRepeat);
767#endif
768#if SEND_NEOCLIMA
769 void sendNeoclima(const unsigned char data[],
770 const uint16_t nbytes = kNeoclimaStateLength,
771 const uint16_t repeat = kNeoclimaMinRepeat);
772#endif // SEND_NEOCLIMA
773#if SEND_AMCOR
774 void sendAmcor(const unsigned char data[],
775 const uint16_t nbytes = kAmcorStateLength,
776 const uint16_t repeat = kAmcorDefaultRepeat);
777#endif // SEND_AMCOR
778#if SEND_EPSON
779 void sendEpson(uint64_t data, uint16_t nbits = kEpsonBits,
780 uint16_t repeat = kEpsonMinRepeat);
781#endif
782#if SEND_SYMPHONY
783 void sendSymphony(uint64_t data, uint16_t nbits = kSymphonyBits,
784 uint16_t repeat = kSymphonyDefaultRepeat);
785#endif
786#if SEND_AIRWELL
787 void sendAirwell(uint64_t data, uint16_t nbits = kAirwellBits,
788 uint16_t repeat = kAirwellMinRepeats);
789#endif
790#if SEND_DELONGHI_AC
791 void sendDelonghiAc(uint64_t data, uint16_t nbits = kDelonghiAcBits,
792 uint16_t repeat = kDelonghiAcDefaultRepeat);
793#endif
794#if SEND_DOSHISHA
795 void sendDoshisha(const uint64_t data, uint16_t nbits = kDoshishaBits,
796 const uint16_t repeat = kNoRepeat);
797 uint64_t encodeDoshisha(const uint8_t command, const uint8_t channel = 0);
798#endif // SEND_DOSHISHA
799#if SEND_MULTIBRACKETS
800 void sendMultibrackets(const uint64_t data,
801 const uint16_t nbits = kMultibracketsBits,
802 const uint16_t repeat = kMultibracketsDefaultRepeat);
803#endif
804#if SEND_TECHNIBEL_AC
805 void sendTechnibelAc(uint64_t data, uint16_t nbits = kTechnibelAcBits,
806 uint16_t repeat = kTechnibelAcDefaultRepeat);
807#endif
808#if SEND_CORONA_AC
809 void sendCoronaAc(const uint8_t data[],
810 const uint16_t nbytes = kCoronaAcStateLength,
811 const uint16_t repeat = kNoRepeat);
812#endif // SEND_CORONA_AC
813#if SEND_ZEPEAL
814 void sendZepeal(const uint64_t data,
815 const uint16_t nbits = kZepealBits,
816 const uint16_t repeat = kZepealMinRepeat);
817#endif // SEND_ZEPEAL
818#if SEND_VOLTAS
819 void sendVoltas(const unsigned char data[],
820 const uint16_t nbytes = kVoltasStateLength,
821 const uint16_t repeat = kNoRepeat);
822#endif // SEND_VOLTAS
823#if SEND_METZ
824 void sendMetz(const uint64_t data,
825 const uint16_t nbits = kMetzBits,
826 const uint16_t repeat = kMetzMinRepeat);
827 static uint32_t encodeMetz(const uint8_t address, const uint8_t command,
828 const bool toggle = false);
829#endif // SEND_METZ
830#if SEND_TRANSCOLD
831 void sendTranscold(const uint64_t data, const uint16_t nbits = kTranscoldBits,
832 const uint16_t repeat = kTranscoldDefaultRepeat);
833#endif // SEND_TRANSCOLD
834#if SEND_ELITESCREENS
835 void sendElitescreens(const uint64_t data,
836 const uint16_t nbits = kEliteScreensBits,
837 const uint16_t repeat = kEliteScreensDefaultRepeat);
838#endif // SEND_ELITESCREENS
839#if SEND_MILESTAG2
840 // Since There 2 types of transmissions
841 // (14bits for Shooting by default, you can set 24 bit for msg delivery)
842 void sendMilestag2(const uint64_t data,
843 const uint16_t nbits = kMilesTag2ShotBits,
844 const uint16_t repeat = kMilesMinRepeat);
845#endif // SEND_MILESTAG2
846#if SEND_ECOCLIM
847 void sendEcoclim(const uint64_t data, const uint16_t nbits = kEcoclimBits,
848 const uint16_t repeat = kNoRepeat);
849#endif // SEND_ECOCLIM
850#if SEND_XMP
851 void sendXmp(const uint64_t data, const uint16_t nbits = kXmpBits,
852 const uint16_t repeat = kNoRepeat);
853#endif // SEND_XMP
854#if SEND_TRUMA
855 void sendTruma(const uint64_t data, const uint16_t nbits = kTrumaBits,
856 const uint16_t repeat = kNoRepeat);
857#endif // SEND_TRUMA
858#if SEND_TEKNOPOINT
859 void sendTeknopoint(const unsigned char data[],
860 const uint16_t nbytes = kTeknopointStateLength,
861 const uint16_t repeat = kNoRepeat);
862#endif // SEND_TEKNOPOINT
863#if SEND_KELON
864 void sendKelon(const uint64_t data, const uint16_t nbits = kKelonBits,
865 const uint16_t repeat = kNoRepeat);
866#endif // SEND_KELON
867#if SEND_KELON168
868 void sendKelon168(const unsigned char data[],
869 const uint16_t nbytes = kKelon168StateLength,
870 const uint16_t repeat = kKelon168DefaultRepeat);
871#endif // SEND_KELON168
872#if SEND_BOSE
873 void sendBose(const uint64_t data, const uint16_t nbits = kBoseBits,
874 const uint16_t repeat = kNoRepeat);
875#endif // SEND_BOSE
876#if SEND_ARRIS
877 void sendArris(const uint64_t data, const uint16_t nbits = kArrisBits,
878 const uint16_t repeat = kNoRepeat);
879 static uint32_t toggleArrisRelease(const uint32_t data);
880 static uint32_t encodeArris(const uint32_t command, const bool release);
881#endif // SEND_ARRIS
882#if SEND_RHOSS
883 void sendRhoss(const unsigned char data[],
884 const uint16_t nbytes = kRhossStateLength,
885 const uint16_t repeat = kRhossDefaultRepeat);
886#endif // SEND_RHOSS
887#if SEND_AIRTON
888 void sendAirton(const uint64_t data, const uint16_t nbits = kAirtonBits,
889 const uint16_t repeat = kAirtonDefaultRepeat);
890#endif // SEND_AIRTON
891#if SEND_TOTO
892 void sendToto(const uint64_t data, const uint16_t nbits = kTotoBits,
893 const uint16_t repeat = kTotoDefaultRepeat);
894#endif // SEND_TOTO
895#if SEND_CLIMABUTLER
896 void sendClimaButler(const uint64_t data,
897 const uint16_t nbits = kClimaButlerBits,
898 const uint16_t repeat = kNoRepeat);
899#endif // SEND_CLIMABUTLER
900#if SEND_BOSCH144
901 void sendBosch144(const unsigned char data[],
902 const uint16_t nbytes = kBosch144StateLength,
903 const uint16_t repeat = kNoRepeat);
904#endif // SEND_BOSCH144
905#if SEND_WOWWEE
906 void sendWowwee(const uint64_t data, const uint16_t nbits = kWowweeBits,
907 const uint16_t repeat = kWowweeDefaultRepeat);
908#endif // SEND_WOWWEE
909#if SEND_YORK
910 void sendYork(const unsigned char data[],
911 const uint16_t nbytes = kYorkStateLength,
912 const uint16_t repeat = kNoRepeat);
913#endif // SEND_YORK
914#if SEND_BLUESTARHEAVY
915 void sendBluestarHeavy(const unsigned char data[],
916 const uint16_t nbytes = kBluestarHeavyStateLength,
917 const uint16_t repeat = kNoRepeat);
918#endif // SEND_BLUESTARHEAVY
919#if SEND_EUROM
920 void sendEurom(const uint8_t data[],
921 const uint16_t nbytes = kEuromStateLength,
922 const uint16_t repeat = kNoRepeat);
923#endif // SEND_EUROM
924
925 protected:
926#ifdef UNIT_TEST
927#ifndef HIGH
928#define HIGH 0x1
929#endif
930#ifndef LOW
931#define LOW 0x0
932#endif
933#endif // UNIT_TEST
934 uint8_t outputOn;
935 uint8_t outputOff;
936 VIRTUAL void ledOff();
937 VIRTUAL void ledOn();
938#ifndef UNIT_TEST
939
940 private:
941#else
943#endif // UNIT_TEST
944 uint16_t onTimePeriod;
946 uint16_t IRpin;
947#if !defined(UNIT_TEST) && defined(CONFIG_IRREMOTE_TX_HW_CARRIER)
948 int8_t _carrier;
949#endif // CONFIG_IRREMOTE_TX_HW_CARRIER
951 bool _begun;
952 uint8_t _dutycycle;
954 uint32_t calcUSecPeriod(uint32_t hz, bool use_offset = true);
955#if SEND_SONY
956 void _sendSony(const uint64_t data, const uint16_t nbits,
957 const uint16_t repeat, const uint16_t freq);
958#endif // SEND_SONY
959};
960#endif // SWIG
961#endif // IRSEND_H_
const uint16_t kMitsubishi136StateLength
Definition IRremoteESP8266.h:1346
const uint16_t kDaikin176DefaultRepeat
Definition IRremoteESP8266.h:1238
const uint16_t kMetzMinRepeat
Definition IRremoteESP8266.h:1331
const uint16_t kDaikin160StateLength
Definition IRremoteESP8266.h:1227
const uint16_t kTechnibelAcBits
Definition IRremoteESP8266.h:1250
const uint16_t kTechnibelAcDefaultRepeat
Definition IRremoteESP8266.h:1251
const uint16_t kWhirlpoolAcStateLength
Definition IRremoteESP8266.h:1445
const uint16_t kSanyoAc152MinRepeat
Definition IRremoteESP8266.h:1397
const uint16_t kEliteScreensBits
Definition IRremoteESP8266.h:1265
const uint16_t kHitachiAc2StateLength
Definition IRremoteESP8266.h:1297
const uint16_t kKelon168DefaultRepeat
Definition IRremoteESP8266.h:1317
const uint16_t kSonyMinRepeat
Definition IRremoteESP8266.h:1415
const uint16_t kNeoclimaMinRepeat
Definition IRremoteESP8266.h:1364
const uint16_t kTranscoldDefaultRepeat
Definition IRremoteESP8266.h:1440
const uint16_t kNoRepeat
Definition IRremoteESP8266.h:1171
const uint16_t kWowweeBits
Definition IRremoteESP8266.h:1449
const uint16_t kAirtonDefaultRepeat
Definition IRremoteESP8266.h:1175
const uint16_t kWowweeDefaultRepeat
Definition IRremoteESP8266.h:1450
const uint16_t kEuromStateLength
Definition IRremoteESP8266.h:1467
const uint16_t kHitachiAc344StateLength
Definition IRremoteESP8266.h:1307
const uint16_t kSymphonyDefaultRepeat
Definition IRremoteESP8266.h:1417
const uint16_t kCarrierAc40MinRepeat
Definition IRremoteESP8266.h:1204
const uint16_t kTcl112AcStateLength
Definition IRremoteESP8266.h:1421
const uint16_t kCarrierAc84StateLength
Definition IRremoteESP8266.h:1207
const uint16_t kLgBits
Definition IRremoteESP8266.h:1325
const uint16_t kLegoPfMinRepeat
Definition IRremoteESP8266.h:1324
const uint16_t kRhossStateLength
Definition IRremoteESP8266.h:1461
const uint16_t kDenonBits
Definition IRremoteESP8266.h:1252
const uint16_t kRCMMBits
Definition IRremoteESP8266.h:1382
const uint16_t kSamsungAcStateLength
Definition IRremoteESP8266.h:1385
const uint16_t kDaikin2DefaultRepeat
Definition IRremoteESP8266.h:1224
const uint16_t kSherwoodMinRepeat
Definition IRremoteESP8266.h:1410
const uint16_t kMitsubishiHeavy152StateLength
Definition IRremoteESP8266.h:1355
const uint16_t kHitachiAc296StateLength
Definition IRremoteESP8266.h:1305
const uint16_t kVoltasStateLength
Definition IRremoteESP8266.h:1456
const uint16_t kDaikin2StateLength
Definition IRremoteESP8266.h:1222
const uint16_t kMitsubishiACMinRepeat
Definition IRremoteESP8266.h:1345
const uint16_t kInaxMinRepeat
Definition IRremoteESP8266.h:1312
const uint16_t kWhirlpoolAcDefaultRepeat
Definition IRremoteESP8266.h:1447
const uint16_t kLasertagBits
Definition IRremoteESP8266.h:1321
const uint16_t kSanyoAc88StateLength
Definition IRremoteESP8266.h:1392
const uint16_t kCarrierAc64Bits
Definition IRremoteESP8266.h:1205
const uint16_t kDaikin128StateLength
Definition IRremoteESP8266.h:1230
const uint16_t kMitsubishi136MinRepeat
Definition IRremoteESP8266.h:1348
const uint16_t kWhynterBits
Definition IRremoteESP8266.h:1448
const uint16_t kDaikin200StateLength
Definition IRremoteESP8266.h:1239
const uint16_t kTrotecDefaultRepeat
Definition IRremoteESP8266.h:1443
const uint16_t kMitsubishiHeavy88StateLength
Definition IRremoteESP8266.h:1352
const uint16_t kSharpAcStateLength
Definition IRremoteESP8266.h:1406
const uint16_t kGreeStateLength
Definition IRremoteESP8266.h:1277
const uint16_t kDaikin200DefaultRepeat
Definition IRremoteESP8266.h:1241
const uint16_t kCarrierAc40Bits
Definition IRremoteESP8266.h:1203
const uint16_t kAirwellBits
Definition IRremoteESP8266.h:1176
const uint16_t kTeknopointStateLength
Definition IRremoteESP8266.h:1426
const uint16_t kNeoclimaStateLength
Definition IRremoteESP8266.h:1362
const uint16_t kMultibracketsDefaultRepeat
Definition IRremoteESP8266.h:1359
const uint16_t kDaikin128DefaultRepeat
Definition IRremoteESP8266.h:1232
const uint16_t kDishMinRepeat
Definition IRremoteESP8266.h:1256
const uint16_t kSamsung36Bits
Definition IRremoteESP8266.h:1384
const uint16_t kArgoStateLength
Definition IRremoteESP8266.h:1184
const uint16_t kMitsubishi112StateLength
Definition IRremoteESP8266.h:1349
const uint16_t kHaierAcYrw02DefaultRepeat
Definition IRremoteESP8266.h:1285
const uint16_t kAmcorStateLength
Definition IRremoteESP8266.h:1181
const uint16_t kNECBits
Definition IRremoteESP8266.h:1361
const uint16_t kCarrierAcBits
Definition IRremoteESP8266.h:1201
const uint16_t kAirwellMinRepeats
Definition IRremoteESP8266.h:1177
const uint16_t kGreeDefaultRepeat
Definition IRremoteESP8266.h:1279
const uint16_t kPioneerBits
Definition IRremoteESP8266.h:1375
const uint16_t kMitsubishi112MinRepeat
Definition IRremoteESP8266.h:1351
const uint16_t kHaierAc160DefaultRepeat
Definition IRremoteESP8266.h:1288
const uint16_t kDaikin216StateLength
Definition IRremoteESP8266.h:1242
const uint16_t kAmcorDefaultRepeat
Definition IRremoteESP8266.h:1183
const uint16_t kEpsonBits
Definition IRremoteESP8266.h:1260
const uint16_t kMitsubishiHeavy152MinRepeat
Definition IRremoteESP8266.h:1357
const uint16_t kCarrierAcMinRepeat
Definition IRremoteESP8266.h:1202
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 kMitsubishiACStateLength
Definition IRremoteESP8266.h:1343
const uint16_t kSharpAcDefaultRepeat
Definition IRremoteESP8266.h:1408
const uint16_t kTotoBits
Definition IRremoteESP8266.h:1435
const uint16_t kLutronBits
Definition IRremoteESP8266.h:1328
const uint16_t kDaikin160DefaultRepeat
Definition IRremoteESP8266.h:1229
const uint16_t kRC6Mode0Bits
Definition IRremoteESP8266.h:1380
const uint16_t kCarrierAc128MinRepeat
Definition IRremoteESP8266.h:1212
const uint16_t kMirageMinRepeat
Definition IRremoteESP8266.h:1338
const uint16_t kHaierAcDefaultRepeat
Definition IRremoteESP8266.h:1282
const uint16_t kGoodweatherMinRepeat
Definition IRremoteESP8266.h:1275
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 kCarrierAc64MinRepeat
Definition IRremoteESP8266.h:1206
const uint16_t kHitachiAcStateLength
Definition IRremoteESP8266.h:1292
const uint16_t kTcl96AcDefaultRepeat
Definition IRremoteESP8266.h:1420
const uint16_t kMidea24MinRepeat
Definition IRremoteESP8266.h:1335
const uint16_t kDelonghiAcDefaultRepeat
Definition IRremoteESP8266.h:1249
const uint16_t kHaierACYRW02StateLength
Definition IRremoteESP8266.h:1283
const uint16_t kElectraAcStateLength
Definition IRremoteESP8266.h:1262
const uint16_t kToshibaACMinRepeat
Definition IRremoteESP8266.h:1430
const uint16_t kAiwaRcT501Bits
Definition IRremoteESP8266.h:1178
const uint16_t kBluestarHeavyStateLength
Definition IRremoteESP8266.h:1194
const uint16_t kDaikin152DefaultRepeat
Definition IRremoteESP8266.h:1235
const uint8_t kSherwoodBits
Definition IRremoteESP8266.h:1409
const uint16_t kKelvinatorDefaultRepeat
Definition IRremoteESP8266.h:1320
const uint16_t kSamsungAcDefaultRepeat
Definition IRremoteESP8266.h:1389
const uint16_t kTcl112AcDefaultRepeat
Definition IRremoteESP8266.h:1423
const uint16_t kHaierAC176StateLength
Definition IRremoteESP8266.h:1289
const uint16_t kKelonBits
Definition IRremoteESP8266.h:1314
const uint16_t kHaierAC160StateLength
Definition IRremoteESP8266.h:1286
const uint16_t kClimaButlerBits
Definition IRremoteESP8266.h:1464
const uint16_t kArgoDefaultRepeat
Definition IRremoteESP8266.h:1192
const uint16_t kEliteScreensDefaultRepeat
Definition IRremoteESP8266.h:1266
const uint16_t kLasertagMinRepeat
Definition IRremoteESP8266.h:1322
const uint16_t kDaikin216DefaultRepeat
Definition IRremoteESP8266.h:1244
const uint16_t kFujitsuAcMinRepeat
Definition IRremoteESP8266.h:1267
const uint16_t kNikaiBits
Definition IRremoteESP8266.h:1360
const uint16_t kDaikin312StateLength
Definition IRremoteESP8266.h:1245
const uint16_t kPanasonicBits
Definition IRremoteESP8266.h:1365
const uint16_t kTotoDefaultRepeat
Definition IRremoteESP8266.h:1438
const uint16_t kTrumaBits
Definition IRremoteESP8266.h:1444
const uint16_t kDaikin176StateLength
Definition IRremoteESP8266.h:1236
const uint16_t kMideaMinRepeat
Definition IRremoteESP8266.h:1333
const uint16_t kCoolixDefaultRepeat
Definition IRremoteESP8266.h:1200
const uint16_t kMilesMinRepeat
Definition IRremoteESP8266.h:1459
const uint16_t kSony20Bits
Definition IRremoteESP8266.h:1413
const uint16_t kMultibracketsBits
Definition IRremoteESP8266.h:1358
const uint16_t kAirtonBits
Definition IRremoteESP8266.h:1174
const uint16_t kCoronaAcStateLength
Definition IRremoteESP8266.h:1214
const uint16_t kPanasonicAcStateLength
Definition IRremoteESP8266.h:1369
const uint16_t kMirageStateLength
Definition IRremoteESP8266.h:1336
const uint16_t kSymphonyBits
Definition IRremoteESP8266.h:1416
const uint16_t kHitachiAc1StateLength
Definition IRremoteESP8266.h:1295
const uint16_t kDaikin312DefaultRepeat
Definition IRremoteESP8266.h:1247
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 kCoolix48Bits
Definition IRremoteESP8266.h:1199
const uint16_t kYorkStateLength
Definition IRremoteESP8266.h:1466
const uint16_t kEpsonMinRepeat
Definition IRremoteESP8266.h:1261
const uint16_t kDaikin64DefaultRepeat
Definition IRremoteESP8266.h:1226
const uint16_t kGreeBits
Definition IRremoteESP8266.h:1278
const uint16_t kHitachiAcDefaultRepeat
Definition IRremoteESP8266.h:1294
const uint16_t kEcoclimBits
Definition IRremoteESP8266.h:1258
const uint16_t kKelon168StateLength
Definition IRremoteESP8266.h:1315
const uint16_t kGicableBits
Definition IRremoteESP8266.h:1272
const uint16_t kSanyoLC7461Bits
Definition IRremoteESP8266.h:1401
const uint16_t kMetzBits
Definition IRremoteESP8266.h:1330
const uint16_t kToshibaACStateLength
Definition IRremoteESP8266.h:1428
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition IRremoteESP8266.h:1035
@ UNKNOWN
Definition IRremoteESP8266.h:1036
const uint16_t kMagiquestBits
Definition IRremoteESP8266.h:1329
const uint16_t kAiwaRcT501MinRepeats
Definition IRremoteESP8266.h:1179
const uint16_t kMitsubishiHeavy88MinRepeat
Definition IRremoteESP8266.h:1354
const uint16_t kGicableMinRepeat
Definition IRremoteESP8266.h:1273
const uint16_t kCarrierAc128StateLength
Definition IRremoteESP8266.h:1210
const uint16_t kMitsubishiMinRepeat
Definition IRremoteESP8266.h:1342
const uint16_t kPanasonicAc32Bits
Definition IRremoteESP8266.h:1374
const uint16_t kXmpBits
Definition IRremoteESP8266.h:1452
const uint16_t kTrotecStateLength
Definition IRremoteESP8266.h:1441
const uint16_t kMilesTag2ShotBits
Definition IRremoteESP8266.h:1457
const uint16_t kSanyoAcStateLength
Definition IRremoteESP8266.h:1390
const uint8_t kVestelAcBits
Definition IRremoteESP8266.h:1451
const uint16_t kSanyoAc152StateLength
Definition IRremoteESP8266.h:1395
const uint16_t kBoseBits
Definition IRremoteESP8266.h:1460
const uint16_t kDaikin152StateLength
Definition IRremoteESP8266.h:1233
const uint16_t kDishBits
Definition IRremoteESP8266.h:1255
const uint16_t kGorenjeBits
Definition IRremoteESP8266.h:1276
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 kZepealBits
Definition IRremoteESP8266.h:1453
const uint16_t kDaikinStateLength
Definition IRremoteESP8266.h:1217
const uint16_t kArrisBits
Definition IRremoteESP8266.h:1193
const uint16_t kHitachiAc264StateLength
Definition IRremoteESP8266.h:1303
const uint16_t kRhossDefaultRepeat
Definition IRremoteESP8266.h:1463
const uint16_t kKelvinatorStateLength
Definition IRremoteESP8266.h:1318
const uint16_t kDaikinDefaultRepeat
Definition IRremoteESP8266.h:1221
const uint16_t kPanasonicAcDefaultRepeat
Definition IRremoteESP8266.h:1373
const uint16_t kInaxBits
Definition IRremoteESP8266.h:1311
const uint16_t kHaierAc176DefaultRepeat
Definition IRremoteESP8266.h:1291
const uint16_t kBosch144StateLength
Definition IRremoteESP8266.h:1196
const uint16_t kGoodweatherBits
Definition IRremoteESP8266.h:1274
const uint16_t kHaierACStateLength
Definition IRremoteESP8266.h:1280
const uint16_t kZepealMinRepeat
Definition IRremoteESP8266.h:1454
const uint16_t kTcl96AcStateLength
Definition IRremoteESP8266.h:1418
const uint16_t kMideaBits
Definition IRremoteESP8266.h:1332
const uint16_t kSanyoAc88MinRepeat
Definition IRremoteESP8266.h:1394
const uint16_t kMidea24Bits
Definition IRremoteESP8266.h:1334
const uint16_t kHitachiAc424StateLength
Definition IRremoteESP8266.h:1309
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition IRsend.h:187
@ kPanasonicUnknown
Definition IRsend.h:188
@ kPanasonicCkp
Definition IRsend.h:193
@ kPanasonicLke
Definition IRsend.h:189
@ kPanasonicRkr
Definition IRsend.h:194
@ kPanasonicJke
Definition IRsend.h:192
@ kPanasonicDke
Definition IRsend.h:191
@ kPanasonicNke
Definition IRsend.h:190
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition IRsend.h:198
@ A907
Definition IRsend.h:199
@ A903
Definition IRsend.h:201
@ A705
Definition IRsend.h:200
kelon168_ac_remote_model_t
Definition IRsend.h:223
@ DG11R201
Definition IRsend.h:224
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition IRsend.h:205
@ GZ055BE1
Definition IRsend.h:207
@ TAC09CHSD
Definition IRsend.h:206
const int8_t kPeriodOffset
Definition IRsend.h:35
lg_ac_remote_model_t
LG A/C model numbers.
Definition IRsend.h:228
@ AKB75215403
Definition IRsend.h:230
@ LG6711A20083V
Definition IRsend.h:233
@ AKB73757604
Definition IRsend.h:232
@ AKB74955603
Definition IRsend.h:231
@ GE6711AR2853M
Definition IRsend.h:229
const uint16_t kMaxAccurateUsecDelay
Definition IRsend.h:40
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition IRsend.h:146
@ ARREW4E
(6) Similar to ARRAH2E, but with different temp config.
Definition IRsend.h:157
@ ARREB1E
(3) AR-REB1E, AR-RAH1U (Similar to ARRAH2E but no horiz control)
Definition IRsend.h:153
@ ARRAH2E
(1) AR-RAH2E, AR-RAC1E, AR-RAE1E, AR-RCE1E, AR-RAH2U, AR-REG1U (Default) Warning: Use on incorrect mo...
Definition IRsend.h:147
@ ARDB1
(2) AR-DB1, AR-DL10 (AR-DL10 swing doesn't work)
Definition IRsend.h:152
@ ARJW2
(4) AR-JW2 (Same as ARDB1 but with horiz control)
Definition IRsend.h:155
@ ARRY4
(5) AR-RY4 (Same as AR-RAH2E but with clean & filter)
Definition IRsend.h:156
argo_ac_remote_model_t
Argo A/C model numbers.
Definition IRsend.h:237
@ SAC_WREM3
Definition IRsend.h:239
@ SAC_WREM2
Definition IRsend.h:238
mirage_ac_remote_model_t
MIRAGE A/C model numbers.
Definition IRsend.h:181
@ KKG29AC1
Definition IRsend.h:183
@ KKG9AC1
Definition IRsend.h:182
std::vector< int > timingList
Definition IRsend.cpp:22
toshiba_ac_remote_model_t
Toshiba A/C model numbers.
Definition IRsend.h:243
@ kToshibaGenericRemote_B
Definition IRsend.h:245
@ kToshibaGenericRemote_A
Definition IRsend.h:244
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition IRsend.h:211
@ kVoltas122LZF
Definition IRsend.h:213
@ kVoltasUnknown
Definition IRsend.h:212
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition IRsend.h:217
@ DG11J13A
Definition IRsend.h:218
@ DG11J191
Definition IRsend.h:219
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition IRsend.h:169
@ V9014557_A
Definition IRsend.h:170
@ V9014557_B
Definition IRsend.h:171
const float kNoTempValue
Placeholder for missing sensor temp value.
Definition IRsend.h:45
const uint8_t kDutyMax
Definition IRsend.h:37
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition IRsend.h:175
@ R_LT0541_HTA_B
Definition IRsend.h:177
@ R_LT0541_HTA_A
Definition IRsend.h:176
const uint32_t kDefaultMessageGap
Definition IRsend.h:42
gree_ac_remote_model_t
Gree A/C model numbers.
Definition IRsend.h:161
@ YX1FSF
Definition IRsend.h:164
@ YBOFB
Definition IRsend.h:163
@ YAW1F
Definition IRsend.h:162
const uint8_t kDutyDefault
Definition IRsend.h:36
Class for sending all basic IR protocols.
Definition IRsend.h:256
void sendSony(const uint64_t data, const uint16_t nbits=kSony20Bits, const uint16_t repeat=kSonyMinRepeat)
Send a standard Sony/SIRC(Serial Infra-Red Control) message. (40kHz) Status: STABLE / Known working.
Definition ir_Sony.cpp:47
void sendArgoWREM3(const unsigned char data[], const uint16_t nbytes=kArgoStateLength, const uint16_t repeat=kArgoDefaultRepeat)
Send a Argo A/C formatted message. Status: Confirmed working w/ Argo 13 ECO (WREM-3)
Definition ir_Argo.cpp:89
void sendMirage(const unsigned char data[], const uint16_t nbytes=kMirageStateLength, const uint16_t repeat=kMirageMinRepeat)
Send a Mirage formatted message. Status: STABLE / Reported as working.
Definition ir_Mirage.cpp:53
VIRTUALMS void space(uint32_t usec)
Turn the pin (LED) off for a given time. Sends an IR space for the specified number of microseconds....
Definition IRsend.cpp:268
uint64_t encodeDoshisha(const uint8_t command, const uint8_t channel=0)
Encode Doshisha combining constant values with command and channel. Status: STABLE / Working.
Definition ir_Doshisha.cpp:67
void sendEpson(uint64_t data, uint16_t nbits=kEpsonBits, uint16_t repeat=kEpsonMinRepeat)
Send an Epson formatted message. Status: Beta / Probably works.
Definition ir_Epson.cpp:31
void sendWhynter(const uint64_t data, const uint16_t nbits=kWhynterBits, const uint16_t repeat=kNoRepeat)
Send a Whynter message. Status: STABLE.
Definition ir_Whynter.cpp:45
void sendLG(uint64_t data, uint16_t nbits=kLgBits, uint16_t repeat=kNoRepeat)
Send an LG formatted message. (LG) Status: Beta / Should be working.
Definition ir_LG.cpp:70
void sendGorenje(const uint64_t data, const uint16_t nbits=kGorenjeBits, const uint16_t repeat=kNoRepeat)
Send a Gorenje Cooker Hood formatted message. Status: STABLE / Known working.
Definition ir_Gorenje.cpp:29
void sendMitsubishi112(const unsigned char data[], const uint16_t nbytes=kMitsubishi112StateLength, const uint16_t repeat=kMitsubishi112MinRepeat)
Send a Mitsubishi 112-bit A/C formatted message. (MITSUBISHI112) Status: Stable / Reported as working...
Definition ir_Mitsubishi.cpp:1259
void sendPronto(uint16_t data[], uint16_t len, uint16_t repeat=kNoRepeat)
Send a Pronto Code formatted message. Status: STABLE / Known working.
Definition ir_Pronto.cpp:56
void sendMidea24(const uint64_t data, const uint16_t nbits=kMidea24Bits, const uint16_t repeat=kMidea24MinRepeat)
Send a Midea24 formatted message. Status: STABLE / Confirmed working on a real device.
Definition ir_Midea.cpp:822
uint32_t encodeLG(uint16_t address, uint16_t command)
Construct a raw 28-bit LG message code from the supplied address & command. Status: STABLE / Works.
Definition ir_LG.cpp:132
void sendPanasonicAC(const unsigned char data[], const uint16_t nbytes=kPanasonicAcStateLength, const uint16_t repeat=kPanasonicAcDefaultRepeat)
Send a Panasonic A/C message. Status: STABLE / Work with real device(s).
Definition ir_Panasonic.cpp:183
bool modulation
Definition IRsend.h:953
void sendPioneer(const uint64_t data, const uint16_t nbits=kPioneerBits, const uint16_t repeat=kNoRepeat)
Send a raw Pioneer formatted message. Status: STABLE / Expected to be working.
Definition ir_Pioneer.cpp:43
static uint32_t toggleArrisRelease(const uint32_t data)
Flip the toggle button release bits of an Arris message. Used to indicate a change of remote button's...
Definition ir_Arris.cpp:54
void sendVestelAc(const uint64_t data, const uint16_t nbits=kVestelAcBits, const uint16_t repeat=kNoRepeat)
Send a Vestel message Status: STABLE / Working.
Definition ir_Vestel.cpp:34
void sendTrotec(const unsigned char data[], const uint16_t nbytes=kTrotecStateLength, const uint16_t repeat=kTrotecDefaultRepeat)
Send a Trotec message. Status: Beta / Probably Working.
Definition ir_Trotec.cpp:48
void sendWowwee(const uint64_t data, const uint16_t nbits=kWowweeBits, const uint16_t repeat=kWowweeDefaultRepeat)
Send a WowWee formatted message. Status: STABLE / Confirmed working with real device.
Definition ir_Wowwee.cpp:52
VIRTUAL void ledOn()
Turn on the IR LED.
Definition IRsend.cpp:107
void sendFujitsuAC(const unsigned char data[], const uint16_t nbytes, const uint16_t repeat=kFujitsuAcMinRepeat)
Send a Fujitsu A/C formatted message. Status: STABLE / Known Good.
Definition ir_Fujitsu.cpp:53
void sendMilestag2(const uint64_t data, const uint16_t nbits=kMilesTag2ShotBits, const uint16_t repeat=kMilesMinRepeat)
Percentage.
Definition ir_MilesTag2.cpp:41
int8_t periodOffset
Definition IRsend.h:950
void sendSymphony(uint64_t data, uint16_t nbits=kSymphonyBits, uint16_t repeat=kSymphonyDefaultRepeat)
Send a Symphony packet. Status: STABLE / Should be working.
Definition ir_Symphony.cpp:51
bool send(const decode_type_t type, const uint64_t data, const uint16_t nbits, const uint16_t repeat=kNoRepeat)
Send a simple (up to 64 bits) IR message of a given type. An unknown/unsupported type will send nothi...
Definition IRsend.cpp:899
void _sendSony(const uint64_t data, const uint16_t nbits, const uint16_t repeat, const uint16_t freq)
Internal procedure to generate a Sony/SIRC(Serial Infra-Red Control) message Status: STABLE / Known w...
Definition ir_Sony.cpp:74
void sendRC6(const uint64_t data, const uint16_t nbits=kRC6Mode0Bits, const uint16_t repeat=kNoRepeat)
Send a Philips RC-6 packet. Status: Stable.
Definition ir_RC5_RC6.cpp:191
void sendTeknopoint(const unsigned char data[], const uint16_t nbytes=kTeknopointStateLength, const uint16_t repeat=kNoRepeat)
Send a Teknopoint formatted message. Status: BETA / Probably works.
Definition ir_Teknopoint.cpp:30
void sendDenon(uint64_t data, uint16_t nbits=kDenonBits, uint16_t repeat=kNoRepeat)
Send a Denon formatted message. Status: STABLE / Should be working.
Definition ir_Denon.cpp:48
void sendSamsungAC(const unsigned char data[], const uint16_t nbytes=kSamsungAcStateLength, const uint16_t repeat=kSamsungAcDefaultRepeat)
Send a Samsung A/C message. Status: Stable / Known working.
Definition ir_Samsung.cpp:256
void sendHitachiAc424(const unsigned char data[], const uint16_t nbytes=kHitachiAc424StateLength, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a Hitachi 53-byte/424-bit A/C formatted message. (HITACHI_AC424) Status: STABLE / Reported as wo...
Definition ir_Hitachi.cpp:946
void sendRaw(const uint16_t buf[], const uint16_t len, const uint16_t hz)
Send a raw IRremote message.
Definition IRsend.cpp:618
void sendRC5(const uint64_t data, uint16_t nbits=kRC5XBits, const uint16_t repeat=kNoRepeat)
Send a Philips RC-5/RC-5X packet. Status: RC-5 (stable), RC-5X (alpha)
Definition ir_RC5_RC6.cpp:61
uint32_t _freq_unittest
Definition IRsend.h:942
void sendTcl112Ac(const unsigned char data[], const uint16_t nbytes=kTcl112AcStateLength, const uint16_t repeat=kTcl112AcDefaultRepeat)
Send a TCL 112-bit A/C message. Status: Beta / Probably working.
Definition ir_Tcl.cpp:46
void sendDaikin(const unsigned char data[], const uint16_t nbytes=kDaikinStateLength, const uint16_t repeat=kDaikinDefaultRepeat)
Send a Daikin 280-bit A/C formatted message. Status: STABLE.
Definition ir_Daikin.cpp:67
void sendNEC(uint64_t data, uint16_t nbits=kNECBits, uint16_t repeat=kNoRepeat)
Send a raw NEC(Renesas) formatted message. Status: STABLE / Known working.
Definition ir_NEC.cpp:28
void sendDaikin2(const unsigned char data[], const uint16_t nbytes=kDaikin2StateLength, const uint16_t repeat=kDaikin2DefaultRepeat)
Send a Daikin2 (312-bit) A/C formatted message. Status: STABLE / Expected to work.
Definition ir_Daikin.cpp:672
void sendDelonghiAc(uint64_t data, uint16_t nbits=kDelonghiAcBits, uint16_t repeat=kDelonghiAcDefaultRepeat)
Send a Delonghi A/C formatted message. Status: STABLE / Reported as working on a real device.
Definition ir_Delonghi.cpp:36
void sendMitsubishiAC(const unsigned char data[], const uint16_t nbytes=kMitsubishiACStateLength, const uint16_t repeat=kMitsubishiACMinRepeat)
Send a Mitsubishi 144-bit A/C formatted message. (MITSUBISHI_AC) Status: STABLE / Working.
Definition ir_Mitsubishi.cpp:236
void sendElitescreens(const uint64_t data, const uint16_t nbits=kEliteScreensBits, const uint16_t repeat=kEliteScreensDefaultRepeat)
Send an Elite Screens formatted message. Status: BETA / Probably Working.
Definition ir_EliteScreens.cpp:44
void sendMidea(uint64_t data, uint16_t nbits=kMideaBits, uint16_t repeat=kMideaMinRepeat)
Send a Midea message Status: Alpha / Needs testing against a real device.
Definition ir_Midea.cpp:54
void begin()
Enable the pin for output.
Definition IRsend.cpp:59
void sendDoshisha(const uint64_t data, uint16_t nbits=kDoshishaBits, const uint16_t repeat=kNoRepeat)
Send a Doshisha formatted message. Status: STABLE / Works on real device.
Definition ir_Doshisha.cpp:53
void sendVoltas(const unsigned char data[], const uint16_t nbytes=kVoltasStateLength, const uint16_t repeat=kNoRepeat)
Send a Voltas formatted message. Status: STABLE / Working on real device.
Definition ir_Voltas.cpp:41
void sendRCMM(uint64_t data, uint16_t nbits=kRCMMBits, uint16_t repeat=kNoRepeat)
Send a Philips RC-MM packet. Status: STABLE / Should be working.
Definition ir_RCMM.cpp:45
uint64_t toggleRC5(const uint64_t data)
Flip the toggle bit of a Philips RC-5/RC-5X data message. Used to indicate a change of remote button'...
Definition ir_RC5_RC6.cpp:142
void sendCarrierAC40(uint64_t data, uint16_t nbits=kCarrierAc40Bits, uint16_t repeat=kCarrierAc40MinRepeat)
Send a Carrier 40bit HVAC formatted message. Status: STABLE / Tested against a real device.
Definition ir_Carrier.cpp:147
void sendSharpAc(const unsigned char data[], const uint16_t nbytes=kSharpAcStateLength, const uint16_t repeat=kSharpAcDefaultRepeat)
Send a Sharp A/C message. Status: Alpha / Untested.
Definition ir_Sharp.cpp:230
void sendHitachiAC2(const unsigned char data[], const uint16_t nbytes=kHitachiAc2StateLength, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a Hitachi 53 byte/424-bit A/C formatted message. (HITACHI_AC2) Basically the same as sendHitachi...
Definition ir_Hitachi.cpp:115
uint32_t encodeSAMSUNG(const uint8_t customer, const uint8_t command)
Construct a raw Samsung message from the supplied customer(address) & command. Status: STABLE / Shoul...
Definition ir_Samsung.cpp:110
uint8_t outputOn
Definition IRsend.h:934
void sendDaikin152(const unsigned char data[], const uint16_t nbytes=kDaikin152StateLength, const uint16_t repeat=kDaikin152DefaultRepeat)
Send a Daikin152 (152-bit) A/C formatted message. Status: STABLE / Known Working.
Definition ir_Daikin.cpp:2986
void sendCarrierAC84(const uint8_t data[], const uint16_t nbytes=kCarrierAc84StateLength, const uint16_t repeat=kNoRepeat)
Send a Carroer A/C 84 Bit formatted message. Status: BETA / Untested but probably works.
Definition ir_Carrier.cpp:664
void sendLegoPf(const uint64_t data, const uint16_t nbits=kLegoPfBits, const uint16_t repeat=kLegoPfMinRepeat)
Send a LEGO Power Functions message. Status: Beta / Should work.
Definition ir_Lego.cpp:33
uint64_t encodeMagiQuest(const uint32_t wand_id, const uint16_t magnitude)
Encode a MagiQuest wand_id, and a magnitude into a single 64bit value. (Only 48 bits of real data + 8...
Definition ir_Magiquest.cpp:42
void sendData(uint16_t onemark, uint32_t onespace, uint16_t zeromark, uint32_t zerospace, uint64_t data, uint16_t nbits, bool MSBfirst=true)
Generic method for sending data that is common to most protocols. Will send leading or trailing 0's i...
Definition IRsend.cpp:325
void sendBose(const uint64_t data, const uint16_t nbits=kBoseBits, const uint16_t repeat=kNoRepeat)
Send a Bose formatted message. Status: STABLE / Known working.
Definition ir_Bose.cpp:29
void sendGeneric(const uint16_t headermark, const uint32_t headerspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t gap, const uint64_t data, const uint16_t nbits, const uint16_t frequency, const bool MSBfirst, const uint16_t repeat, const uint8_t dutycycle)
Generic method for sending simple protocol messages. Will send leading or trailing 0's if the nbits i...
Definition IRsend.cpp:386
void sendElectraAC(const unsigned char data[], const uint16_t nbytes=kElectraAcStateLength, const uint16_t repeat=kNoRepeat)
Send a Electra A/C formatted message. Status: Alpha / Needs testing against a real device.
Definition ir_Electra.cpp:40
void sendSAMSUNG(const uint64_t data, const uint16_t nbits=kSamsungBits, const uint16_t repeat=kNoRepeat)
Send a 32-bit Samsung formatted message. Status: STABLE / Should be working.
Definition ir_Samsung.cpp:96
void sendYork(const unsigned char data[], const uint16_t nbytes=kYorkStateLength, const uint16_t repeat=kNoRepeat)
Send a 17 Byte / 136 bit York A/C message. Status: ALPHA / Untested.
Definition ir_York.cpp:47
void sendToshibaAC(const uint8_t data[], const uint16_t nbytes=kToshibaACStateLength, const uint16_t repeat=kToshibaACMinRepeat)
Send a Toshiba A/C message. Status: STABLE / Working.
Definition ir_Toshiba.cpp:51
void sendSony38(const uint64_t data, const uint16_t nbits=kSony20Bits, const uint16_t repeat=kSonyMinRepeat+1)
Send an alternative 38kHz Sony/SIRC(Serial Infra-Red Control) message. Status: STABLE / Known working...
Definition ir_Sony.cpp:63
void sendLasertag(uint64_t data, uint16_t nbits=kLasertagBits, uint16_t repeat=kLasertagMinRepeat)
Send a Lasertag packet/message. Status: STABLE / Working.
Definition ir_Lasertag.cpp:33
void sendMitsubishi(uint64_t data, uint16_t nbits=kMitsubishiBits, uint16_t repeat=kMitsubishiMinRepeat)
Send the supplied Mitsubishi 16-bit message. Status: STABLE / Working.
Definition ir_Mitsubishi.cpp:107
uint64_t toggleRC6(const uint64_t data, const uint16_t nbits=kRC6Mode0Bits)
Flip the toggle bit of a Philips RC-6 data message. Used to indicate a change of remote button's stat...
Definition ir_RC5_RC6.cpp:157
void sendAirwell(uint64_t data, uint16_t nbits=kAirwellBits, uint16_t repeat=kAirwellMinRepeats)
Send an Airwell Manchester Code formatted message. Status: BETA / Appears to be working.
Definition ir_Airwell.cpp:31
void sendLG2(uint64_t data, uint16_t nbits=kLgBits, uint16_t repeat=kNoRepeat)
Send an LG Variant-2 formatted message. (LG2) Status: Beta / Should be working.
Definition ir_LG.cpp:104
void sendHitachiAC1(const unsigned char data[], const uint16_t nbytes=kHitachiAc1StateLength, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a Hitachi 13 byte/224-bit A/C formatted message. (HITACHI_AC1) Status: STABLE / Confirmed Workin...
Definition ir_Hitachi.cpp:97
void sendDaikin312(const unsigned char data[], const uint16_t nbytes=kDaikin312StateLength, const uint16_t repeat=kDaikin312DefaultRepeat)
Send a Daikin312 (312-bit / 39 byte) A/C formatted message. Status: BETA / Untested on a real device.
Definition ir_Daikin.cpp:4531
uint8_t outputOff
Definition IRsend.h:935
void end()
Release the GPIO (and any hardware carrier) used for sending.
Definition IRsend.cpp:76
void sendInax(const uint64_t data, const uint16_t nbits=kInaxBits, const uint16_t repeat=kInaxMinRepeat)
Send a Inax Toilet formatted message. Status: STABLE / Working.
Definition ir_Inax.cpp:31
void sendHitachiAc344(const unsigned char data[], const uint16_t nbytes=kHitachiAc344StateLength, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a Hitachi A/C 43-byte/344-bit message. (HITACHI_AC344) Basically the same as sendHitachiAC() exc...
Definition ir_Hitachi.cpp:131
uint8_t _dutycycle
Definition IRsend.h:952
VIRTUAL void _delayMicroseconds(uint32_t usec)
An ESP8266 RTOS watch-dog timer friendly version of delayMicroseconds().
Definition IRsend.cpp:170
void sendGICable(uint64_t data, uint16_t nbits=kGicableBits, uint16_t repeat=kGicableMinRepeat)
Send a raw G.I. Cable formatted message. Status: Alpha / Untested.
Definition ir_GICable.cpp:37
void sendTrotec3550(const unsigned char data[], const uint16_t nbytes=kTrotecStateLength, const uint16_t repeat=kTrotecDefaultRepeat)
Send a Trotec 3550 message. Status: STABLE / Known to be working.
Definition ir_Trotec.cpp:355
uint16_t encodeJVC(uint8_t address, uint8_t command)
Calculate the raw JVC data based on address and command. Status: STABLE / Works fine.
Definition ir_JVC.cpp:78
void sendEcoclim(const uint64_t data, const uint16_t nbits=kEcoclimBits, const uint16_t repeat=kNoRepeat)
Send a EcoClim A/C formatted message. Status: STABLE / Confirmed working on real device.
Definition ir_Ecoclim.cpp:41
bool _begun
begin() has run and end() has not undone it.
Definition IRsend.h:951
void sendNikai(uint64_t data, uint16_t nbits=kNikaiBits, uint16_t repeat=kNoRepeat)
Send a Nikai formatted message. Status: STABLE / Working.
Definition ir_Nikai.cpp:37
void sendHaierACYRW02(const unsigned char data[], const uint16_t nbytes=kHaierACYRW02StateLength, const uint16_t repeat=kHaierAcYrw02DefaultRepeat)
Send a Haier YR-W02 remote A/C formatted message. Status: STABLE / Known to be working.
Definition ir_Haier.cpp:77
void sendHaierAC(const unsigned char data[], const uint16_t nbytes=kHaierACStateLength, const uint16_t repeat=kHaierAcDefaultRepeat)
Send a Haier A/C formatted message. (HSU07-HEA03 remote) Status: STABLE / Known to be working.
Definition ir_Haier.cpp:54
~IRsend()
Releases whatever begin() claimed. It matters for the hardware carrier: IRac builds a throw-away send...
Definition IRsend.cpp:56
int8_t _carrier
LEDC channel emitting the carrier, or -1 for software.
Definition IRsend.h:948
static uint16_t defaultBits(const decode_type_t protocol)
Get the default number of bits for a given protocol.
Definition IRsend.cpp:682
void sendSanyoAc88(const uint8_t *data, const uint16_t nbytes=kSanyoAc88StateLength, const uint16_t repeat=kSanyoAc88MinRepeat)
Send a SanyoAc88 formatted message. Status: ALPHA / Completely untested.
Definition ir_Sanyo.cpp:687
void sendNeoclima(const unsigned char data[], const uint16_t nbytes=kNeoclimaStateLength, const uint16_t repeat=kNeoclimaMinRepeat)
Send a Neoclima message. Status: STABLE / Known to be working.
Definition ir_Neoclima.cpp:40
void sendDaikin128(const unsigned char data[], const uint16_t nbytes=kDaikin128StateLength, const uint16_t repeat=kDaikin128DefaultRepeat)
Send a Daikin128 (128-bit) A/C formatted message. Status: STABLE / Known Working.
Definition ir_Daikin.cpp:2482
VIRTUALMS uint16_t mark(uint16_t usec)
Modulate the IR LED for the given period (usec) and at the duty cycle set.
Definition IRsend.cpp:213
void sendCoolix48(const uint64_t data, const uint16_t nbits=kCoolix48Bits, const uint16_t repeat=kCoolixDefaultRepeat)
Send a Coolix 48-bit message. Status: ALPHA / Untested.
Definition ir_Coolix.cpp:801
void sendManchester(const uint16_t headermark, const uint32_t headerspace, const uint16_t half_period, const uint16_t footermark, const uint32_t gap, const uint64_t data, const uint16_t nbits, const uint16_t frequency=38, const bool MSBfirst=true, const uint16_t repeat=kNoRepeat, const uint8_t dutycycle=kDutyDefault, const bool GEThomas=true)
Generic method for sending Manchester code messages. Will send leading or trailing 0's if the nbits i...
Definition IRsend.cpp:585
void sendXmp(const uint64_t data, const uint16_t nbits=kXmpBits, const uint16_t repeat=kNoRepeat)
Send a XMP packet. Status: STABLE / Confirmed working against a real device.
Definition ir_Xmp.cpp:122
void sendSharp(const uint16_t address, const uint16_t command, const uint16_t nbits=kSharpBits, const uint16_t repeat=kNoRepeat)
Send a Sharp message Status: DEPRECATED / Previously working fine.
Definition ir_Sharp.cpp:137
void sendCoronaAc(const uint8_t data[], const uint16_t nbytes=kCoronaAcStateLength, const uint16_t repeat=kNoRepeat)
Send a CoronaAc formatted message. Status: STABLE / Working on real device.
Definition ir_Corona.cpp:50
uint64_t encodePanasonic(const uint16_t manufacturer, const uint8_t device, const uint8_t subdevice, const uint8_t function)
Calculate the raw Panasonic data based on device, subdevice, & function. Status: STABLE / Should be w...
Definition ir_Panasonic.cpp:104
void sendToto(const uint64_t data, const uint16_t nbits=kTotoBits, const uint16_t repeat=kTotoDefaultRepeat)
Send a Toto Toilet formatted message. Status: BETA / Seems to work.
Definition ir_Toto.cpp:33
void sendLutron(uint64_t data, uint16_t nbits=kLutronBits, uint16_t repeat=kNoRepeat)
Send a Lutron formatted message. Status: Stable / Appears to be working for real devices.
Definition ir_Lutron.cpp:41
uint64_t encodeSanyoLC7461(uint16_t address, uint8_t command)
(%) Extra tolerance to use.
Definition ir_Sanyo.cpp:98
void sendBosch144(const unsigned char data[], const uint16_t nbytes=kBosch144StateLength, const uint16_t repeat=kNoRepeat)
Send a Bosch 144-bit / 18-byte message (96-bit message are also possible) Status: BETA / Probably Wor...
Definition ir_Bosch.cpp:16
uint16_t encodeRC5(const uint8_t address, const uint8_t command, const bool key_released=false)
Encode a Philips RC-5 data message. Status: Beta / Should be working.
Definition ir_RC5_RC6.cpp:115
void sendHitachiAc296(const unsigned char data[], const uint16_t nbytes=kHitachiAc296StateLength, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a HitachiAc 37-byte/296-bit A/C message (HITACHI_AC296) Status: STABLE / Working on a real devic...
Definition ir_Hitachi.cpp:1717
void sendEurom(const uint8_t data[], const uint16_t nbytes=kEuromStateLength, const uint16_t repeat=kNoRepeat)
Send a Eurom formatted message. Status: STABLE / Confirmed Working.
Definition ir_Eurom.cpp:42
void sendKelvinator(const unsigned char data[], const uint16_t nbytes=kKelvinatorStateLength, const uint16_t repeat=kKelvinatorDefaultRepeat)
Send a Kelvinator A/C message. Status: STABLE / Known working.
Definition ir_Kelvinator.cpp:64
void sendHaierAC160(const unsigned char data[], const uint16_t nbytes=kHaierAC160StateLength, const uint16_t repeat=kHaierAc160DefaultRepeat)
Send a Haier 160 bit remote A/C formatted message. Status: STABLE / Known to be working.
Definition ir_Haier.cpp:101
void sendGoodweather(const uint64_t data, const uint16_t nbits=kGoodweatherBits, const uint16_t repeat=kGoodweatherMinRepeat)
Send a Goodweather HVAC formatted message. Status: BETA / Needs testing on real device.
Definition ir_Goodweather.cpp:32
void sendHitachiAC(const unsigned char data[], const uint16_t nbytes=kHitachiAcStateLength, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a Hitachi 28-byte/224-bit A/C formatted message. (HITACHI_AC) Status: STABLE / Working.
Definition ir_Hitachi.cpp:68
uint32_t encodeSharp(const uint16_t address, const uint16_t command, const uint16_t expansion=1, const uint16_t check=0, const bool MSBfirst=false)
Encode a (raw) Sharp message from it's components. Status: STABLE / Works okay.
Definition ir_Sharp.cpp:102
void sendMultibrackets(const uint64_t data, const uint16_t nbits=kMultibracketsBits, const uint16_t repeat=kMultibracketsDefaultRepeat)
Send a Multibrackets formatted message. Status: BETA / Appears to be working.
Definition ir_Multibrackets.cpp:26
void sendPanasonic(const uint16_t address, const uint32_t data, const uint16_t nbits=kPanasonicBits, const uint16_t repeat=kNoRepeat)
Send a Panasonic formatted message. Status: STABLE, but DEPRECATED.
Definition ir_Panasonic.cpp:89
void sendRhoss(const unsigned char data[], const uint16_t nbytes=kRhossStateLength, const uint16_t repeat=kRhossDefaultRepeat)
Send a Rhoss HVAC formatted message. Status: STABLE / Reported as working.
Definition ir_Rhoss.cpp:33
void sendMWM(const unsigned char data[], const uint16_t nbytes, const uint16_t repeat=kNoRepeat)
Send a MWM packet/message. Status: Implemented.
Definition ir_MWM.cpp:37
void sendMitsubishi136(const unsigned char data[], const uint16_t nbytes=kMitsubishi136StateLength, const uint16_t repeat=kMitsubishi136MinRepeat)
Send a Mitsubishi 136-bit A/C message. (MITSUBISHI136) Status: BETA / Probably working....
Definition ir_Mitsubishi.cpp:894
static uint32_t encodeMetz(const uint8_t address, const uint8_t command, const bool toggle=false)
Encode a Metz address, command, and toggle bits into a code suitable for use with sendMetz().
Definition ir_Metz.cpp:48
void sendZepeal(const uint64_t data, const uint16_t nbits=kZepealBits, const uint16_t repeat=kZepealMinRepeat)
Send a Zepeal formatted message. Status: STABLE / Works on real device.
Definition ir_Zepeal.cpp:47
void sendArris(const uint64_t data, const uint16_t nbits=kArrisBits, const uint16_t repeat=kNoRepeat)
Send an Arris Manchester Code formatted message. Status: STABLE / Confirmed working.
Definition ir_Arris.cpp:36
uint16_t offTimePeriod
Definition IRsend.h:945
void sendCarrierAC(uint64_t data, uint16_t nbits=kCarrierAcBits, uint16_t repeat=kCarrierAcMinRepeat)
Send a Carrier HVAC formatted message. Status: STABLE / Works on real devices.
Definition ir_Carrier.cpp:75
uint32_t encodeSony(const uint16_t nbits, const uint16_t command, const uint16_t address, const uint16_t extended=0)
Convert Sony/SIRC command, address, & extended bits into sendSony format. Status: STABLE / Should be ...
Definition ir_Sony.cpp:89
void sendSharpRaw(const uint64_t data, const uint16_t nbits=kSharpBits, const uint16_t repeat=kNoRepeat)
Send a (raw) Sharp message.
Definition ir_Sharp.cpp:67
void sendSanyoLC7461(const uint64_t data, const uint16_t nbits=kSanyoLC7461Bits, const uint16_t repeat=kNoRepeat)
Send a Sanyo LC7461 message. Status: BETA / Probably works.
Definition ir_Sanyo.cpp:130
void sendDaikin64(const uint64_t data, const uint16_t nbits=kDaikin64Bits, const uint16_t repeat=kDaikin64DefaultRepeat)
Send a Daikin64 (64-bit) A/C formatted message. Status: Beta / Probably Working.
Definition ir_Daikin.cpp:3343
void sendWhirlpoolAC(const unsigned char data[], const uint16_t nbytes=kWhirlpoolAcStateLength, const uint16_t repeat=kWhirlpoolAcDefaultRepeat)
Send a Whirlpool A/C message. Status: BETA / Probably works.
Definition ir_Whirlpool.cpp:55
void sendManchesterData(const uint16_t half_period, const uint64_t data, const uint16_t nbits, const bool MSBfirst=true, const bool GEThomas=true)
Generic method for sending Manchester code data. Will send leading or trailing 0's if the nbits is la...
Definition IRsend.cpp:524
void sendDaikin216(const unsigned char data[], const uint16_t nbytes=kDaikin216StateLength, const uint16_t repeat=kDaikin216DefaultRepeat)
Send a Daikin216 (216-bit) A/C formatted message. Status: Alpha / Untested on a real device.
Definition ir_Daikin.cpp:1397
void sendJVC(uint64_t data, uint16_t nbits=kJvcBits, uint16_t repeat=kNoRepeat)
Send a JVC formatted message. Status: STABLE / Working.
Definition ir_JVC.cpp:46
uint16_t onTimePeriod
Definition IRsend.h:944
void sendKelon(const uint64_t data, const uint16_t nbits=kKelonBits, const uint16_t repeat=kNoRepeat)
Send a Kelon 48-bit message. Status: STABLE / Working.
Definition ir_Kelon.cpp:55
void sendDaikin160(const unsigned char data[], const uint16_t nbytes=kDaikin160StateLength, const uint16_t repeat=kDaikin160DefaultRepeat)
Send a Daikin160 (160-bit) A/C formatted message. Status: STABLE / Confirmed working.
Definition ir_Daikin.cpp:1734
void sendBluestarHeavy(const unsigned char data[], const uint16_t nbytes=kBluestarHeavyStateLength, const uint16_t repeat=kNoRepeat)
Send a BluestarHeavy formatted message. Status: BETA / Tested.
Definition ir_BluestarHeavy.cpp:32
uint32_t encodeNEC(uint16_t address, uint16_t command)
Calculate the raw NEC data based on address and command. Status: STABLE / Expected to work.
Definition ir_NEC.cpp:48
void enableIROut(uint32_t freq, uint8_t duty=kDutyDefault)
Set the output frequency modulation and duty cycle.
Definition IRsend.cpp:145
static uint32_t encodeArris(const uint32_t command, const bool release)
Construct a raw 32-bit Arris message code from the supplied command & release setting.
Definition ir_Arris.cpp:64
void sendSamsung36(const uint64_t data, const uint16_t nbits=kSamsung36Bits, const uint16_t repeat=kNoRepeat)
Send a Samsung 36-bit formatted message. Status: STABLE / Works on real devices.
Definition ir_Samsung.cpp:175
void sendSanyoAc(const uint8_t *data, const uint16_t nbytes=kSanyoAcStateLength, const uint16_t repeat=kNoRepeat)
Send a SanyoAc formatted message. Status: STABLE / Reported as working.
Definition ir_Sanyo.cpp:270
void sendHitachiAc264(const unsigned char data[], const uint16_t nbytes=kHitachiAc264StateLength, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a Hitachi 33-byte/264-bit A/C message (HITACHI_AC264) Basically the same as sendHitachiAC() exce...
Definition ir_Hitachi.cpp:1609
void sendMetz(const uint64_t data, const uint16_t nbits=kMetzBits, const uint16_t repeat=kMetzMinRepeat)
Send a Metz formatted message. Status: Beta / Needs testing against a real device.
Definition ir_Metz.cpp:32
void sendTranscold(const uint64_t data, const uint16_t nbits=kTranscoldBits, const uint16_t repeat=kTranscoldDefaultRepeat)
Send a Transcold message Status: STABLE / Confirmed Working.
Definition ir_Transcold.cpp:40
void sendTcl96Ac(const unsigned char data[], const uint16_t nbytes=kTcl96AcStateLength, const uint16_t repeat=kTcl96AcDefaultRepeat)
Send a TCL 96-bit A/C message. Status: BETA / Untested on a real device working.
Definition ir_Tcl.cpp:546
void sendCOOLIX(const uint64_t data, const uint16_t nbits=kCoolixBits, const uint16_t repeat=kCoolixDefaultRepeat)
Send a Coolix 24-bit message Status: STABLE / Confirmed Working.
Definition ir_Coolix.cpp:50
void sendHaierAC176(const unsigned char data[], const uint16_t nbytes=kHaierAC176StateLength, const uint16_t repeat=kHaierAc176DefaultRepeat)
Send a Haier 176 bit remote A/C formatted message. Status: STABLE / Known to be working.
Definition ir_Haier.cpp:89
void sendCarrierAC64(uint64_t data, uint16_t nbits=kCarrierAc64Bits, uint16_t repeat=kCarrierAc64MinRepeat)
Send a Carrier 64bit HVAC formatted message. Status: STABLE / Known to be working.
Definition ir_Carrier.cpp:196
uint64_t encodeRC6(const uint32_t address, const uint8_t command, const uint16_t mode=kRC6Mode0Bits)
Encode a Philips RC-6 data message. Status: Beta / Should be working.
Definition ir_RC5_RC6.cpp:171
void sendDaikin176(const unsigned char data[], const uint16_t nbytes=kDaikin176StateLength, const uint16_t repeat=kDaikin176DefaultRepeat)
Send a Daikin176 (176-bit) A/C formatted message. Status: STABLE / Working on a real device.
Definition ir_Daikin.cpp:2088
void sendMitsubishi2(uint64_t data, uint16_t nbits=kMitsubishiBits, uint16_t repeat=kMitsubishiMinRepeat)
Send a supplied second variant Mitsubishi 16-bit message. Status: BETA / Probably works.
Definition ir_Mitsubishi.cpp:164
void sendTeco(const uint64_t data, const uint16_t nbits=kTecoBits, const uint16_t repeat=kNoRepeat)
Send a Teco A/C message. Status: Beta / Probably working.
Definition ir_Teco.cpp:37
void sendDISH(uint64_t data, uint16_t nbits=kDishBits, uint16_t repeat=kDishMinRepeat)
Send a DISH NETWORK formatted message. Status: STABLE / Working.
Definition ir_Dish.cpp:48
void sendClimaButler(const uint64_t data, const uint16_t nbits=kClimaButlerBits, const uint16_t repeat=kNoRepeat)
Send a ClimaButler formatted message. Status: STABLE / Confirmed working.
Definition ir_ClimaButler.cpp:30
void sendGree(const uint64_t data, const uint16_t nbits=kGreeBits, const uint16_t repeat=kGreeDefaultRepeat)
Send a Gree Heat Pump formatted message. Status: STABLE / Working.
Definition ir_Gree.cpp:76
void sendDaikin200(const unsigned char data[], const uint16_t nbytes=kDaikin200StateLength, const uint16_t repeat=kDaikin200DefaultRepeat)
Send a Daikin200 (200-bit) A/C formatted message. Status: BETA / Untested on a real device.
Definition ir_Daikin.cpp:3749
void sendArgo(const unsigned char data[], const uint16_t nbytes=kArgoStateLength, const uint16_t repeat=kArgoDefaultRepeat, bool sendFooter=false)
Send a Argo A/C formatted message. Status: [WREM-2] BETA / Probably works. [WREM-3] Confirmed working...
Definition ir_Argo.cpp:63
void sendAmcor(const unsigned char data[], const uint16_t nbytes=kAmcorStateLength, const uint16_t repeat=kAmcorDefaultRepeat)
Send a Amcor HVAC formatted message. Status: STABLE / Reported as working.
Definition ir_Amcor.cpp:38
void sendGC(uint16_t buf[], uint16_t len)
Send a shortened GlobalCache (GC) IRdb/control tower formatted message. Status: STABLE / Known workin...
Definition ir_GlobalCache.cpp:35
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:286
void sendAiwaRCT501(uint64_t data, uint16_t nbits=kAiwaRcT501Bits, uint16_t repeat=kAiwaRcT501MinRepeats)
Send an Aiwa RC T501 formatted message. Status: BETA / Should work.
Definition ir_Aiwa.cpp:30
void sendPanasonic64(const uint64_t data, const uint16_t nbits=kPanasonicBits, const uint16_t repeat=kNoRepeat)
Send a Panasonic formatted message. Status: STABLE / Should be working.
Definition ir_Panasonic.cpp:72
void sendTruma(const uint64_t data, const uint16_t nbits=kTrumaBits, const uint16_t repeat=kNoRepeat)
Send a Truma formatted message. Status: STABLE / Confirmed working.
Definition ir_Truma.cpp:40
void sendKelon168(const unsigned char data[], const uint16_t nbytes=kKelon168StateLength, const uint16_t repeat=kKelon168DefaultRepeat)
Send a Kelon 168 bit / 21 byte message. Status: BETA / Probably works.
Definition ir_Kelon.cpp:460
static uint16_t minRepeats(const decode_type_t protocol)
Get the minimum number of repeats for a given protocol.
Definition IRsend.cpp:636
uint64_t encodePioneer(uint16_t address, uint16_t command)
Calculate the raw Pioneer data code based on two NEC sub-codes Status: STABLE / Expected to work.
Definition ir_Pioneer.cpp:82
void sendMitsubishiHeavy152(const unsigned char data[], const uint16_t nbytes=kMitsubishiHeavy152StateLength, const uint16_t repeat=kMitsubishiHeavy152MinRepeat)
Send a MitsubishiHeavy 152-bit A/C message. Status: BETA / Appears to be working. Needs testing again...
Definition ir_MitsubishiHeavy.cpp:64
uint16_t IRpin
Definition IRsend.h:946
void sendCarrierAC128(const uint8_t data[], uint16_t nbytes=kCarrierAc128StateLength, uint16_t repeat=kCarrierAc128MinRepeat)
Send a Carrier 128bit HVAC formatted message. Status: BETA / Seems to work with tests....
Definition ir_Carrier.cpp:563
VIRTUAL void ledOff()
Turn off the IR LED.
Definition IRsend.cpp:94
uint16_t encodeRC5X(const uint8_t address, const uint8_t command, const bool key_released=false)
Encode a Philips RC-5X data message. Status: Beta / Should be working.
Definition ir_RC5_RC6.cpp:127
uint32_t calcUSecPeriod(uint32_t hz, bool use_offset=true)
Calculate the period for a given frequency.
Definition IRsend.cpp:124
void sendHitachiAc3(const unsigned char data[], const uint16_t nbytes, const uint16_t repeat=kHitachiAcDefaultRepeat)
Send a Hitachi(3) A/C formatted message. (HITACHI_AC3) Status: STABLE / Working fine.
Definition ir_Hitachi.cpp:1351
void sendSanyoAc152(const uint8_t *data, const uint16_t nbytes=kSanyoAc152StateLength, const uint16_t repeat=kSanyoAc152MinRepeat)
Send a SanyoAc152 formatted message. Status: BETA / Probably works.
Definition ir_Sanyo.cpp:999
void sendMagiQuest(const uint64_t data, const uint16_t nbits=kMagiquestBits, const uint16_t repeat=kNoRepeat)
Send a MagiQuest formatted message. Status: Beta / Should be working.
Definition ir_Magiquest.cpp:25
void sendPanasonicAC32(const uint64_t data, const uint16_t nbits=kPanasonicAc32Bits, const uint16_t repeat=kPanasonicAcDefaultRepeat)
Send a Panasonic AC 32/16bit formatted message. Status: STABLE / Confirmed working.
Definition ir_Panasonic.cpp:923
void sendAirton(const uint64_t data, const uint16_t nbits=kAirtonBits, const uint16_t repeat=kAirtonDefaultRepeat)
Send a Airton formatted message. Status: STABLE / Confirmed working.
Definition ir_Airton.cpp:33
void sendMitsubishiHeavy88(const unsigned char data[], const uint16_t nbytes=kMitsubishiHeavy88StateLength, const uint16_t repeat=kMitsubishiHeavy88MinRepeat)
Send a MitsubishiHeavy 88-bit A/C message. Status: BETA / Appears to be working. Needs testing agains...
Definition ir_MitsubishiHeavy.cpp:47
void sendSherwood(uint64_t data, uint16_t nbits=kSherwoodBits, uint16_t repeat=kSherwoodMinRepeat)
Send an IR command to a Sherwood device. Status: STABLE / Known working.
Definition ir_Sherwood.cpp:21
void sendTechnibelAc(uint64_t data, uint16_t nbits=kTechnibelAcBits, uint16_t repeat=kTechnibelAcDefaultRepeat)
Send an Technibel AC formatted message. Status: STABLE / Reported as working on a real device.
Definition ir_Technibel.cpp:35
Enumerators and Structures for the Common A/C API.
Definition IRsend.h:53
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:67
ac_command_t
Tyoe of A/C command (if the remote uses different codes for each)
Definition IRsend.h:96
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:55
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:106
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:80
Structure to hold a common A/C state.
Definition IRsend.h:120
bool celsius
Definition IRsend.h:126
bool quiet
Definition IRsend.h:130
stdAc::ac_command_t command
Definition IRsend.h:139
stdAc::fanspeed_t fanspeed
Definition IRsend.h:127
stdAc::swingv_t swingv
Definition IRsend.h:128
float degrees
Definition IRsend.h:125
bool filter
Definition IRsend.h:134
bool beep
Definition IRsend.h:136
bool light
Definition IRsend.h:133
bool econo
Definition IRsend.h:132
bool clean
Definition IRsend.h:135
stdAc::swingh_t swingh
Definition IRsend.h:129
int16_t sleep
Definition IRsend.h:137
int16_t model
Definition IRsend.h:122
float sensorTemperature
Definition IRsend.h:141
bool turbo
Definition IRsend.h:131
int16_t clock
Definition IRsend.h:138
bool iFeel
Definition IRsend.h:140
bool power
Definition IRsend.h:123
stdAc::opmode_t mode
Definition IRsend.h:124
decode_type_t protocol
Definition IRsend.h:121