IRremoteESP8266
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 #include "IRremoteESP8266.h"
10 
11 // Originally from https://github.com/shirriff/Arduino-IRremote/
12 // Updated by markszabo (https://github.com/crankyoldgit/IRremoteESP8266) for
13 // sending IR code on ESP8266
14 
15 #if TEST || UNIT_TEST
16 #define VIRTUAL virtual
17 #else
18 #define VIRTUAL
19 #endif
20 
21 // Constants
22 // Offset (in microseconds) to use in Period time calculations to account for
23 // code excution time in producing the software PWM signal.
24 #if defined(ESP32)
25 // Calculated on a generic ESP-WROOM-32 board with v3.2-18 SDK @ 240MHz
26 const int8_t kPeriodOffset = -2;
27 #elif (defined(ESP8266) && F_CPU == 160000000L) // NOLINT(whitespace/parens)
28 // Calculated on an ESP8266 NodeMCU v2 board using:
29 // v2.6.0 with v2.5.2 ESP core @ 160MHz
30 const int8_t kPeriodOffset = -2;
31 #else // (defined(ESP8266) && F_CPU == 160000000L)
32 // Calculated on ESP8266 Wemos D1 mini using v2.4.1 with v2.4.0 ESP core @ 40MHz
33 const int8_t kPeriodOffset = -5;
34 #endif // (defined(ESP8266) && F_CPU == 160000000L)
35 const uint8_t kDutyDefault = 50; // Percentage
36 const uint8_t kDutyMax = 100; // Percentage
37 // delayMicroseconds() is only accurate to 16383us.
38 // Ref: https://www.arduino.cc/en/Reference/delayMicroseconds
39 const uint16_t kMaxAccurateUsecDelay = 16383;
40 // Usecs to wait between messages we don't know the proper gap time.
41 const uint32_t kDefaultMessageGap = 100000;
42 
44 namespace stdAc {
46  enum class opmode_t {
47  kOff = -1,
48  kAuto = 0,
49  kCool = 1,
50  kHeat = 2,
51  kDry = 3,
52  kFan = 4,
53  // Add new entries before this one, and update it to point to the last entry
55  };
56 
58  enum class fanspeed_t {
59  kAuto = 0,
60  kMin = 1,
61  kLow = 2,
62  kMedium = 3,
63  kHigh = 4,
64  kMax = 5,
65  // Add new entries before this one, and update it to point to the last entry
67  };
68 
70  enum class swingv_t {
71  kOff = -1,
72  kAuto = 0,
73  kHighest = 1,
74  kHigh = 2,
75  kMiddle = 3,
76  kLow = 4,
77  kLowest = 5,
78  // Add new entries before this one, and update it to point to the last entry
80  };
81 
83  enum class swingh_t {
84  kOff = -1,
85  kAuto = 0, // a.k.a. On.
86  kLeftMax = 1,
87  kLeft = 2,
88  kMiddle = 3,
89  kRight = 4,
90  kRightMax = 5,
91  kWide = 6, // a.k.a. left & right at the same time.
92  // Add new entries before this one, and update it to point to the last entry
94  };
95 
97  typedef struct {
99  int16_t model;
100  bool power;
102  float degrees;
103  bool celsius;
107  bool quiet;
108  bool turbo;
109  bool econo;
110  bool light;
111  bool filter;
112  bool clean;
113  bool beep;
114  int16_t sleep;
115  int16_t clock;
116  } state_t;
117 }; // namespace stdAc
118 
121  ARRAH2E = 1, // (1) AR-RAH2E, AR-RAC1E, AR-RAE1E (Default)
122  ARDB1, // (2) AR-DB1, AR-DL10 (AR-DL10 swing doesn't work)
123  ARREB1E, // (3) AR-REB1E
124  ARJW2, // (4) AR-JW2 (Same as ARDB1 but with horiz control)
125  ARRY4, // (5) AR-RY4 (Same as AR-RAH2E but with clean & filter)
126 };
127 
130  YAW1F = 1, // (1) Ultimate, EKOKAI, RusClimate (Default)
131  YBOFB, // (2) Green, YBOFB2, YAPOF3
132 };
133 
136  R_LT0541_HTA_A = 1, // (1) R-LT0541-HTA Remote in "A" setting. (Default)
137  R_LT0541_HTA_B, // (2) R-LT0541-HTA Remote in "B" setting.
138 };
139 
145  kPanasonicDke = 3, // PKR too.
149 };
150 
153  kVoltasUnknown = 0, // Full Function
154  kVoltas122LZF = 1, // (1) 122LZF (No SwingH support) (Default)
155 };
156 
159  DG11J13A = 1, // DG11J1-04 too
161 };
162 
165  GE6711AR2853M = 1, // (1) LG 28-bit Protocol (default)
166  AKB75215403, // (2) LG2 28-bit Protocol
167 };
168 
169 
170 // Classes
171 
176 class IRsend {
177  public:
178  explicit IRsend(uint16_t IRsendPin, bool inverted = false,
179  bool use_modulation = true);
180  void begin();
181  void enableIROut(uint32_t freq, uint8_t duty = kDutyDefault);
182  VIRTUAL void _delayMicroseconds(uint32_t usec);
183  VIRTUAL uint16_t mark(uint16_t usec);
184  VIRTUAL void space(uint32_t usec);
185  int8_t calibrate(uint16_t hz = 38000U);
186  void sendRaw(const uint16_t buf[], const uint16_t len, const uint16_t hz);
187  void sendData(uint16_t onemark, uint32_t onespace, uint16_t zeromark,
188  uint32_t zerospace, uint64_t data, uint16_t nbits,
189  bool MSBfirst = true);
190  void sendManchesterData(const uint16_t half_period, const uint64_t data,
191  const uint16_t nbits, const bool MSBfirst = true,
192  const bool GEThomas = true);
193  void sendManchester(const uint16_t headermark, const uint32_t headerspace,
194  const uint16_t half_period, const uint16_t footermark,
195  const uint32_t gap, const uint64_t data,
196  const uint16_t nbits, const uint16_t frequency = 38,
197  const bool MSBfirst = true,
198  const uint16_t repeat = kNoRepeat,
199  const uint8_t dutycycle = kDutyDefault,
200  const bool GEThomas = true);
201  void sendGeneric(const uint16_t headermark, const uint32_t headerspace,
202  const uint16_t onemark, const uint32_t onespace,
203  const uint16_t zeromark, const uint32_t zerospace,
204  const uint16_t footermark, const uint32_t gap,
205  const uint64_t data, const uint16_t nbits,
206  const uint16_t frequency, const bool MSBfirst,
207  const uint16_t repeat, const uint8_t dutycycle);
208  void sendGeneric(const uint16_t headermark, const uint32_t headerspace,
209  const uint16_t onemark, const uint32_t onespace,
210  const uint16_t zeromark, const uint32_t zerospace,
211  const uint16_t footermark, const uint32_t gap,
212  const uint32_t mesgtime, const uint64_t data,
213  const uint16_t nbits, const uint16_t frequency,
214  const bool MSBfirst, const uint16_t repeat,
215  const uint8_t dutycycle);
216  void sendGeneric(const uint16_t headermark, const uint32_t headerspace,
217  const uint16_t onemark, const uint32_t onespace,
218  const uint16_t zeromark, const uint32_t zerospace,
219  const uint16_t footermark, const uint32_t gap,
220  const uint8_t *dataptr, const uint16_t nbytes,
221  const uint16_t frequency, const bool MSBfirst,
222  const uint16_t repeat, const uint8_t dutycycle);
223  static uint16_t minRepeats(const decode_type_t protocol);
224  static uint16_t defaultBits(const decode_type_t protocol);
225  bool send(const decode_type_t type, const uint64_t data,
226  const uint16_t nbits, const uint16_t repeat = kNoRepeat);
227  bool send(const decode_type_t type, const uint8_t *state,
228  const uint16_t nbytes);
229 #if (SEND_NEC || SEND_SHERWOOD || SEND_AIWA_RC_T501 || SEND_SANYO || \
230  SEND_MIDEA24)
231  void sendNEC(uint64_t data, uint16_t nbits = kNECBits,
232  uint16_t repeat = kNoRepeat);
233  uint32_t encodeNEC(uint16_t address, uint16_t command);
234 #endif
235 #if SEND_SONY
236  // sendSony() should typically be called with repeat=2 as Sony devices
237  // expect the code to be sent at least 3 times. (code + 2 repeats = 3 codes)
238  // Legacy use of this procedure was to only send a single code so call it with
239  // repeat=0 for backward compatibility. As of v2.0 it defaults to sending
240  // a Sony command that will be accepted be a device.
241  void sendSony(const uint64_t data, const uint16_t nbits = kSony20Bits,
242  const uint16_t repeat = kSonyMinRepeat);
243  void sendSony38(const uint64_t data, const uint16_t nbits = kSony20Bits,
244  const uint16_t repeat = kSonyMinRepeat + 1);
245  uint32_t encodeSony(const uint16_t nbits, const uint16_t command,
246  const uint16_t address, const uint16_t extended = 0);
247 #endif // SEND_SONY
248 #if SEND_SHERWOOD
249  void sendSherwood(uint64_t data, uint16_t nbits = kSherwoodBits,
250  uint16_t repeat = kSherwoodMinRepeat);
251 #endif
252 #if SEND_SAMSUNG
253  void sendSAMSUNG(const uint64_t data, const uint16_t nbits = kSamsungBits,
254  const uint16_t repeat = kNoRepeat);
255  uint32_t encodeSAMSUNG(const uint8_t customer, const uint8_t command);
256 #endif
257 #if SEND_SAMSUNG36
258  void sendSamsung36(const uint64_t data, const uint16_t nbits = kSamsung36Bits,
259  const uint16_t repeat = kNoRepeat);
260 #endif
261 #if SEND_SAMSUNG_AC
262  void sendSamsungAC(const unsigned char data[],
263  const uint16_t nbytes = kSamsungAcStateLength,
264  const uint16_t repeat = kSamsungAcDefaultRepeat);
265 #endif
266 #if SEND_LG
267  void sendLG(uint64_t data, uint16_t nbits = kLgBits,
268  uint16_t repeat = kNoRepeat);
269  void sendLG2(uint64_t data, uint16_t nbits = kLgBits,
270  uint16_t repeat = kNoRepeat);
271  uint32_t encodeLG(uint16_t address, uint16_t command);
272 #endif
273 #if (SEND_SHARP || SEND_DENON)
274  uint32_t encodeSharp(const uint16_t address, const uint16_t command,
275  const uint16_t expansion = 1, const uint16_t check = 0,
276  const bool MSBfirst = false);
277  void sendSharp(const uint16_t address, const uint16_t command,
278  const uint16_t nbits = kSharpBits,
279  const uint16_t repeat = kNoRepeat);
280  void sendSharpRaw(const uint64_t data, const uint16_t nbits = kSharpBits,
281  const uint16_t repeat = kNoRepeat);
282 #endif
283 #if SEND_SHARP_AC
284  void sendSharpAc(const unsigned char data[],
285  const uint16_t nbytes = kSharpAcStateLength,
286  const uint16_t repeat = kSharpAcDefaultRepeat);
287 #endif // SEND_SHARP_AC
288 #if SEND_JVC
289  void sendJVC(uint64_t data, uint16_t nbits = kJvcBits,
290  uint16_t repeat = kNoRepeat);
291  uint16_t encodeJVC(uint8_t address, uint8_t command);
292 #endif
293 #if SEND_DENON
294  void sendDenon(uint64_t data, uint16_t nbits = kDenonBits,
295  uint16_t repeat = kNoRepeat);
296 #endif
297 #if SEND_SANYO
298  uint64_t encodeSanyoLC7461(uint16_t address, uint8_t command);
299  void sendSanyoLC7461(const uint64_t data,
300  const uint16_t nbits = kSanyoLC7461Bits,
301  const uint16_t repeat = kNoRepeat);
302 #endif
303 #if SEND_SANYO_AC
304  void sendSanyoAc(const uint8_t *data,
305  const uint16_t nbytes = kSanyoAcStateLength,
306  const uint16_t repeat = kNoRepeat);
307 #endif // SEND_SANYO_AC
308 #if SEND_DISH
309  // sendDISH() should typically be called with repeat=3 as DISH devices
310  // expect the code to be sent at least 4 times. (code + 3 repeats = 4 codes)
311  // Legacy use of this procedure was only to send a single code
312  // so use repeat=0 for backward compatibility.
313  void sendDISH(uint64_t data, uint16_t nbits = kDishBits,
314  uint16_t repeat = kDishMinRepeat);
315 #endif
316 #if (SEND_PANASONIC || SEND_DENON)
317  void sendPanasonic64(const uint64_t data,
318  const uint16_t nbits = kPanasonicBits,
319  const uint16_t repeat = kNoRepeat);
320  void sendPanasonic(const uint16_t address, const uint32_t data,
321  const uint16_t nbits = kPanasonicBits,
322  const uint16_t repeat = kNoRepeat);
323  uint64_t encodePanasonic(const uint16_t manufacturer, const uint8_t device,
324  const uint8_t subdevice, const uint8_t function);
325 #endif
326 #if SEND_RC5
327  void sendRC5(const uint64_t data, uint16_t nbits = kRC5XBits,
328  const uint16_t repeat = kNoRepeat);
329  uint16_t encodeRC5(const uint8_t address, const uint8_t command,
330  const bool key_released = false);
331  uint16_t encodeRC5X(const uint8_t address, const uint8_t command,
332  const bool key_released = false);
333  uint64_t toggleRC5(const uint64_t data);
334 #endif
335 #if SEND_RC6
336  void sendRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits,
337  const uint16_t repeat = kNoRepeat);
338  uint64_t encodeRC6(const uint32_t address, const uint8_t command,
339  const uint16_t mode = kRC6Mode0Bits);
340  uint64_t toggleRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits);
341 #endif
342 #if SEND_RCMM
343  void sendRCMM(uint64_t data, uint16_t nbits = kRCMMBits,
344  uint16_t repeat = kNoRepeat);
345 #endif
346 #if SEND_COOLIX
347  void sendCOOLIX(uint64_t data, uint16_t nbits = kCoolixBits,
348  uint16_t repeat = kCoolixDefaultRepeat);
349 #endif
350 #if SEND_WHYNTER
351  void sendWhynter(const uint64_t data, const uint16_t nbits = kWhynterBits,
352  const uint16_t repeat = kNoRepeat);
353 #endif
354 #if SEND_MITSUBISHI
355  void sendMitsubishi(uint64_t data, uint16_t nbits = kMitsubishiBits,
356  uint16_t repeat = kMitsubishiMinRepeat);
357 #endif
358 #if SEND_MITSUBISHI136
359  void sendMitsubishi136(const unsigned char data[],
360  const uint16_t nbytes = kMitsubishi136StateLength,
361  const uint16_t repeat = kMitsubishi136MinRepeat);
362 #endif
363 #if SEND_MITSUBISHI112
364  void sendMitsubishi112(const unsigned char data[],
365  const uint16_t nbytes = kMitsubishi112StateLength,
366  const uint16_t repeat = kMitsubishi112MinRepeat);
367 #endif
368 #if SEND_MITSUBISHI2
369  void sendMitsubishi2(uint64_t data, uint16_t nbits = kMitsubishiBits,
370  uint16_t repeat = kMitsubishiMinRepeat);
371 #endif
372 #if SEND_MITSUBISHI_AC
373  void sendMitsubishiAC(const unsigned char data[],
374  const uint16_t nbytes = kMitsubishiACStateLength,
375  const uint16_t repeat = kMitsubishiACMinRepeat);
376 #endif
377 #if SEND_MITSUBISHIHEAVY
379  const unsigned char data[],
380  const uint16_t nbytes = kMitsubishiHeavy88StateLength,
381  const uint16_t repeat = kMitsubishiHeavy88MinRepeat);
383  const unsigned char data[],
384  const uint16_t nbytes = kMitsubishiHeavy152StateLength,
385  const uint16_t repeat = kMitsubishiHeavy152MinRepeat);
386 #endif
387 #if SEND_FUJITSU_AC
388  void sendFujitsuAC(const unsigned char data[], const uint16_t nbytes,
389  const uint16_t repeat = kFujitsuAcMinRepeat);
390 #endif
391 #if SEND_INAX
392  void sendInax(const uint64_t data, const uint16_t nbits = kInaxBits,
393  const uint16_t repeat = kInaxMinRepeat);
394 #endif // SEND_INAX
395 #if SEND_GLOBALCACHE
396  void sendGC(uint16_t buf[], uint16_t len);
397 #endif
398 #if SEND_KELVINATOR
399  void sendKelvinator(const unsigned char data[],
400  const uint16_t nbytes = kKelvinatorStateLength,
401  const uint16_t repeat = kKelvinatorDefaultRepeat);
402 #endif
403 #if SEND_DAIKIN
404  void sendDaikin(const unsigned char data[],
405  const uint16_t nbytes = kDaikinStateLength,
406  const uint16_t repeat = kDaikinDefaultRepeat);
407 #endif
408 #if SEND_DAIKIN64
409  void sendDaikin64(const uint64_t data, const uint16_t nbits = kDaikin64Bits,
410  const uint16_t repeat = kDaikin64DefaultRepeat);
411 #endif // SEND_DAIKIN64
412 #if SEND_DAIKIN128
413  void sendDaikin128(const unsigned char data[],
414  const uint16_t nbytes = kDaikin128StateLength,
415  const uint16_t repeat = kDaikin128DefaultRepeat);
416 #endif // SEND_DAIKIN128
417 #if SEND_DAIKIN152
418  void sendDaikin152(const unsigned char data[],
419  const uint16_t nbytes = kDaikin152StateLength,
420  const uint16_t repeat = kDaikin152DefaultRepeat);
421 #endif // SEND_DAIKIN152
422 #if SEND_DAIKIN160
423  void sendDaikin160(const unsigned char data[],
424  const uint16_t nbytes = kDaikin160StateLength,
425  const uint16_t repeat = kDaikin160DefaultRepeat);
426 #endif // SEND_DAIKIN160
427 #if SEND_DAIKIN176
428  void sendDaikin176(const unsigned char data[],
429  const uint16_t nbytes = kDaikin176StateLength,
430  const uint16_t repeat = kDaikin176DefaultRepeat);
431 #endif // SEND_DAIKIN176
432 #if SEND_DAIKIN2
433  void sendDaikin2(const unsigned char data[],
434  const uint16_t nbytes = kDaikin2StateLength,
435  const uint16_t repeat = kDaikin2DefaultRepeat);
436 #endif
437 #if SEND_DAIKIN216
438  void sendDaikin216(const unsigned char data[],
439  const uint16_t nbytes = kDaikin216StateLength,
440  const uint16_t repeat = kDaikin216DefaultRepeat);
441 #endif
442 #if SEND_AIWA_RC_T501
443  void sendAiwaRCT501(uint64_t data, uint16_t nbits = kAiwaRcT501Bits,
444  uint16_t repeat = kAiwaRcT501MinRepeats);
445 #endif
446 #if SEND_GREE
447  void sendGree(const uint64_t data, const uint16_t nbits = kGreeBits,
448  const uint16_t repeat = kGreeDefaultRepeat);
449  void sendGree(const uint8_t data[], const uint16_t nbytes = kGreeStateLength,
450  const uint16_t repeat = kGreeDefaultRepeat);
451 #endif
452 #if SEND_GOODWEATHER
453  void sendGoodweather(const uint64_t data,
454  const uint16_t nbits = kGoodweatherBits,
455  const uint16_t repeat = kGoodweatherMinRepeat);
456 #endif // SEND_GOODWEATHER
457 #if SEND_PRONTO
458  void sendPronto(uint16_t data[], uint16_t len, uint16_t repeat = kNoRepeat);
459 #endif
460 #if SEND_ARGO
461  void sendArgo(const unsigned char data[],
462  const uint16_t nbytes = kArgoStateLength,
463  const uint16_t repeat = kArgoDefaultRepeat);
464 #endif
465 #if SEND_TROTEC
466  void sendTrotec(const unsigned char data[],
467  const uint16_t nbytes = kTrotecStateLength,
468  const uint16_t repeat = kTrotecDefaultRepeat);
469 #endif
470 #if SEND_NIKAI
471  void sendNikai(uint64_t data, uint16_t nbits = kNikaiBits,
472  uint16_t repeat = kNoRepeat);
473 #endif
474 #if SEND_TOSHIBA_AC
475  void sendToshibaAC(const uint8_t data[],
476  const uint16_t nbytes = kToshibaACStateLength,
477  const uint16_t repeat = kToshibaACMinRepeat);
478 #endif
479 #if SEND_MIDEA
480  void sendMidea(uint64_t data, uint16_t nbits = kMideaBits,
481  uint16_t repeat = kMideaMinRepeat);
482 #endif // SEND_MIDEA
483 #if SEND_MIDEA24
484  void sendMidea24(const uint64_t data, const uint16_t nbits = kMidea24Bits,
485  const uint16_t repeat = kMidea24MinRepeat);
486 #endif // SEND_MIDEA24
487 #if SEND_MAGIQUEST
488  void sendMagiQuest(const uint64_t data, const uint16_t nbits = kMagiquestBits,
489  const uint16_t repeat = kNoRepeat);
490  uint64_t encodeMagiQuest(const uint32_t wand_id, const uint16_t magnitude);
491 #endif
492 #if SEND_LASERTAG
493  void sendLasertag(uint64_t data, uint16_t nbits = kLasertagBits,
494  uint16_t repeat = kLasertagMinRepeat);
495 #endif
496 #if SEND_CARRIER_AC
497  void sendCarrierAC(uint64_t data, uint16_t nbits = kCarrierAcBits,
498  uint16_t repeat = kCarrierAcMinRepeat);
499 #endif
500 #if SEND_CARRIER_AC40
501  void sendCarrierAC40(uint64_t data, uint16_t nbits = kCarrierAc40Bits,
502  uint16_t repeat = kCarrierAc40MinRepeat);
503 #endif
504 #if SEND_CARRIER_AC64
505  void sendCarrierAC64(uint64_t data, uint16_t nbits = kCarrierAc64Bits,
506  uint16_t repeat = kCarrierAc64MinRepeat);
507 #endif
508 #if (SEND_HAIER_AC || SEND_HAIER_AC_YRW02)
509  void sendHaierAC(const unsigned char data[],
510  const uint16_t nbytes = kHaierACStateLength,
511  const uint16_t repeat = kHaierAcDefaultRepeat);
512 #endif
513 #if SEND_HAIER_AC_YRW02
514  void sendHaierACYRW02(const unsigned char data[],
515  const uint16_t nbytes = kHaierACYRW02StateLength,
516  const uint16_t repeat = kHaierAcYrw02DefaultRepeat);
517 #endif
518 #if SEND_HITACHI_AC
519  void sendHitachiAC(const unsigned char data[],
520  const uint16_t nbytes = kHitachiAcStateLength,
521  const uint16_t repeat = kHitachiAcDefaultRepeat);
522 #endif
523 #if SEND_HITACHI_AC1
524  void sendHitachiAC1(const unsigned char data[],
525  const uint16_t nbytes = kHitachiAc1StateLength,
526  const uint16_t repeat = kHitachiAcDefaultRepeat);
527 #endif
528 #if SEND_HITACHI_AC2
529  void sendHitachiAC2(const unsigned char data[],
530  const uint16_t nbytes = kHitachiAc2StateLength,
531  const uint16_t repeat = kHitachiAcDefaultRepeat);
532 #endif
533 #if SEND_HITACHI_AC3
534  void sendHitachiAc3(const unsigned char data[],
535  const uint16_t nbytes, // No default as there as so many
536  // different sizes
537  const uint16_t repeat = kHitachiAcDefaultRepeat);
538 #endif // SEND_HITACHI_AC3
539 #if SEND_HITACHI_AC344
540  void sendHitachiAc344(const unsigned char data[],
541  const uint16_t nbytes = kHitachiAc344StateLength,
542  const uint16_t repeat = kHitachiAcDefaultRepeat);
543 #endif // SEND_HITACHI_AC344
544 #if SEND_HITACHI_AC424
545  void sendHitachiAc424(const unsigned char data[],
546  const uint16_t nbytes = kHitachiAc424StateLength,
547  const uint16_t repeat = kHitachiAcDefaultRepeat);
548 #endif // SEND_HITACHI_AC424
549 #if SEND_GICABLE
550  void sendGICable(uint64_t data, uint16_t nbits = kGicableBits,
551  uint16_t repeat = kGicableMinRepeat);
552 #endif
553 #if SEND_WHIRLPOOL_AC
554  void sendWhirlpoolAC(const unsigned char data[],
555  const uint16_t nbytes = kWhirlpoolAcStateLength,
556  const uint16_t repeat = kWhirlpoolAcDefaultRepeat);
557 #endif
558 #if SEND_LUTRON
559  void sendLutron(uint64_t data, uint16_t nbits = kLutronBits,
560  uint16_t repeat = kNoRepeat);
561 #endif
562 #if SEND_ELECTRA_AC
563  void sendElectraAC(const unsigned char data[],
564  const uint16_t nbytes = kElectraAcStateLength,
565  const uint16_t repeat = kNoRepeat);
566 #endif
567 #if SEND_PANASONIC_AC
568  void sendPanasonicAC(const unsigned char data[],
569  const uint16_t nbytes = kPanasonicAcStateLength,
570  const uint16_t repeat = kPanasonicAcDefaultRepeat);
571 #endif
572 #if SEND_PIONEER
573  void sendPioneer(const uint64_t data, const uint16_t nbits = kPioneerBits,
574  const uint16_t repeat = kNoRepeat);
575  uint64_t encodePioneer(uint16_t address, uint16_t command);
576 #endif
577 #if SEND_MWM
578  void sendMWM(const unsigned char data[], const uint16_t nbytes,
579  const uint16_t repeat = kNoRepeat);
580 #endif
581 #if SEND_VESTEL_AC
582  void sendVestelAc(const uint64_t data, const uint16_t nbits = kVestelAcBits,
583  const uint16_t repeat = kNoRepeat);
584 #endif
585 #if SEND_TCL112AC
586  void sendTcl112Ac(const unsigned char data[],
587  const uint16_t nbytes = kTcl112AcStateLength,
588  const uint16_t repeat = kTcl112AcDefaultRepeat);
589 #endif
590 #if SEND_TECO
591  void sendTeco(const uint64_t data, const uint16_t nbits = kTecoBits,
592  const uint16_t repeat = kNoRepeat);
593 #endif
594 #if SEND_LEGOPF
595  void sendLegoPf(const uint64_t data, const uint16_t nbits = kLegoPfBits,
596  const uint16_t repeat = kLegoPfMinRepeat);
597 #endif
598 #if SEND_NEOCLIMA
599  void sendNeoclima(const unsigned char data[],
600  const uint16_t nbytes = kNeoclimaStateLength,
601  const uint16_t repeat = kNeoclimaMinRepeat);
602 #endif // SEND_NEOCLIMA
603 #if SEND_AMCOR
604  void sendAmcor(const unsigned char data[],
605  const uint16_t nbytes = kAmcorStateLength,
606  const uint16_t repeat = kAmcorDefaultRepeat);
607 #endif // SEND_AMCOR
608 #if SEND_EPSON
609  void sendEpson(uint64_t data, uint16_t nbits = kEpsonBits,
610  uint16_t repeat = kEpsonMinRepeat);
611 #endif
612 #if SEND_SYMPHONY
613  void sendSymphony(uint64_t data, uint16_t nbits = kSymphonyBits,
614  uint16_t repeat = kSymphonyDefaultRepeat);
615 #endif
616 #if SEND_AIRWELL
617  void sendAirwell(uint64_t data, uint16_t nbits = kAirwellBits,
618  uint16_t repeat = kAirwellMinRepeats);
619 #endif
620 #if SEND_DELONGHI_AC
621  void sendDelonghiAc(uint64_t data, uint16_t nbits = kDelonghiAcBits,
622  uint16_t repeat = kDelonghiAcDefaultRepeat);
623 #endif
624 #if SEND_DOSHISHA
625  void sendDoshisha(const uint64_t data, uint16_t nbits = kDoshishaBits,
626  const uint16_t repeat = kNoRepeat);
627  uint64_t encodeDoshisha(const uint8_t command, const uint8_t channel = 0);
628 #endif // SEND_DOSHISHA
629 #if SEND_MULTIBRACKETS
630  void sendMultibrackets(const uint64_t data,
631  const uint16_t nbits = kMultibracketsBits,
632  const uint16_t repeat = kMultibracketsDefaultRepeat);
633 #endif
634 #if SEND_CORONA_AC
635  void sendCoronaAc(const uint8_t data[],
636  const uint16_t nbytes = kCoronaAcStateLength,
637  const uint16_t repeat = kNoRepeat);
638 #endif // SEND_CORONA_AC
639 #if SEND_ZEPEAL
640  void sendZepeal(const uint64_t data,
641  const uint16_t nbits = kZepealBits,
642  const uint16_t repeat = kZepealMinRepeat);
643 #endif // SEND_ZEPEAL
644 #if SEND_VOLTAS
645  void sendVoltas(const unsigned char data[],
646  const uint16_t nbytes = kVoltasStateLength,
647  const uint16_t repeat = kNoRepeat);
648 #endif // SEND_VOLTAS
649 #if SEND_METZ
650  void sendMetz(const uint64_t data,
651  const uint16_t nbits = kMetzBits,
652  const uint16_t repeat = kMetzMinRepeat);
653  static uint32_t encodeMetz(const uint8_t address, const uint8_t command,
654  const bool toggle = false);
655 #endif // SEND_METZ
656 
657  protected:
658 #ifdef UNIT_TEST
659 #ifndef HIGH
660 #define HIGH 0x1
661 #endif
662 #ifndef LOW
663 #define LOW 0x0
664 #endif
665 #endif // UNIT_TEST
666  uint8_t outputOn;
667  uint8_t outputOff;
668  VIRTUAL void ledOff();
669  VIRTUAL void ledOn();
670 #ifndef UNIT_TEST
671 
672  private:
673 #else
674  uint32_t _freq_unittest;
675 #endif // UNIT_TEST
676  uint16_t onTimePeriod;
677  uint16_t offTimePeriod;
678  uint16_t IRpin;
679  int8_t periodOffset;
680  uint8_t _dutycycle;
682  uint32_t calcUSecPeriod(uint32_t hz, bool use_offset = true);
683 #if SEND_SONY
684  void _sendSony(const uint64_t data, const uint16_t nbits,
685  const uint16_t repeat, const uint16_t freq);
686 #endif // SEND_SONY
687 };
688 
689 #endif // IRSEND_H_
IRsend::calcUSecPeriod
uint32_t calcUSecPeriod(uint32_t hz, bool use_offset=true)
Calculate the period for a given frequency.
Definition: IRsend.cpp:71
kDaikin152DefaultRepeat
const uint16_t kDaikin152DefaultRepeat
Definition: IRremoteESP8266.h:879
IRsend::sendZepeal
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
kDelonghiAcBits
const uint16_t kDelonghiAcBits
Definition: IRremoteESP8266.h:886
IRsend::sendHaierACYRW02
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: Alpha / Untested on a real device.
Definition: ir_Haier.cpp:74
kHaierAcYrw02DefaultRepeat
const uint16_t kHaierAcYrw02DefaultRepeat
Definition: IRremoteESP8266.h:916
IRsend::sendPronto
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
IRsend::outputOff
uint8_t outputOff
Definition: IRsend.h:667
IRsend::periodOffset
int8_t periodOffset
Definition: IRsend.h:679
kMitsubishiACStateLength
const uint16_t kMitsubishiACStateLength
Definition: IRremoteESP8266.h:957
kMitsubishiHeavy152StateLength
const uint16_t kMitsubishiHeavy152StateLength
Definition: IRremoteESP8266.h:969
kAirwellMinRepeats
const uint16_t kAirwellMinRepeats
Definition: IRremoteESP8266.h:839
kMideaMinRepeat
const uint16_t kMideaMinRepeat
Definition: IRremoteESP8266.h:950
stdAc::state_t::clock
int16_t clock
Definition: IRsend.h:115
kGicableBits
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:904
kGreeStateLength
const uint16_t kGreeStateLength
Definition: IRremoteESP8266.h:908
IRsend::encodeNEC
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
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:736
IRsend::encodeDoshisha
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
kCarrierAcBits
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:851
stdAc::swingv_t::kLow
@ kLow
IRsend::sendHitachiAc344
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 sendHitatchiAC() ex...
Definition: ir_Hitachi.cpp:123
kDaikin2DefaultRepeat
const uint16_t kDaikin2DefaultRepeat
Definition: IRremoteESP8266.h:868
kVoltasUnknown
@ kVoltasUnknown
Definition: IRsend.h:153
kMultibracketsBits
const uint16_t kMultibracketsBits
Definition: IRremoteESP8266.h:972
kWhynterBits
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1041
stdAc::opmode_t::kAuto
@ kAuto
kAirwellBits
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:838
kHaierAcDefaultRepeat
const uint16_t kHaierAcDefaultRepeat
Definition: IRremoteESP8266.h:913
IRsend::sendMidea
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:52
kTrotecDefaultRepeat
const uint16_t kTrotecDefaultRepeat
Definition: IRremoteESP8266.h:1037
kFujitsuAcMinRepeat
const uint16_t kFujitsuAcMinRepeat
Definition: IRremoteESP8266.h:899
IRsend::sendLG
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:69
kPanasonicRkr
@ kPanasonicRkr
Definition: IRsend.h:148
kMitsubishi136MinRepeat
const uint16_t kMitsubishi136MinRepeat
Definition: IRremoteESP8266.h:962
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
IRsend::_delayMicroseconds
VIRTUAL void _delayMicroseconds(uint32_t usec)
An ESP8266 RTOS watch-dog timer friendly version of delayMicroseconds().
Definition: IRsend.cpp:114
stdAc::state_t::clean
bool clean
Definition: IRsend.h:112
IRsend::sendLegoPf
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
kArgoDefaultRepeat
const uint16_t kArgoDefaultRepeat
Definition: IRremoteESP8266.h:848
IRsend::outputOn
uint8_t outputOn
Definition: IRsend.h:666
kHaierACStateLength
const uint16_t kHaierACStateLength
Definition: IRremoteESP8266.h:911
kHitachiAcStateLength
const uint16_t kHitachiAcStateLength
Definition: IRremoteESP8266.h:917
stdAc::swingh_t::kLeft
@ kLeft
kDaikin176StateLength
const uint16_t kDaikin176StateLength
Definition: IRremoteESP8266.h:880
kRC5XBits
const uint16_t kRC5XBits
Definition: IRremoteESP8266.h:990
kEpsonMinRepeat
const uint16_t kEpsonMinRepeat
Definition: IRremoteESP8266.h:895
kAmcorStateLength
const uint16_t kAmcorStateLength
Definition: IRremoteESP8266.h:843
IRsend::send
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:755
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
R_LT0541_HTA_B
@ R_LT0541_HTA_B
Definition: IRsend.h:137
IRsend::sendWhynter
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
whirlpool_ac_remote_model_t
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:158
IRsend::sendMitsubishiAC
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:233
IRsend::sendNikai
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
kDefaultMessageGap
const uint32_t kDefaultMessageGap
Definition: IRsend.h:41
kMaxAccurateUsecDelay
const uint16_t kMaxAccurateUsecDelay
Definition: IRsend.h:39
IRsend::encodeJVC
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
IRsend::onTimePeriod
uint16_t onTimePeriod
Definition: IRsend.h:676
IRsend::sendAiwaRCT501
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
IRsend::IRpin
uint16_t IRpin
Definition: IRsend.h:678
kHitachiAc1StateLength
const uint16_t kHitachiAc1StateLength
Definition: IRremoteESP8266.h:920
kCoolixBits
const uint16_t kCoolixBits
Definition: IRremoteESP8266.h:849
kMitsubishi112MinRepeat
const uint16_t kMitsubishi112MinRepeat
Definition: IRremoteESP8266.h:965
IRsend::sendSymphony
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:42
IRsend::sendMetz
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
IRsend::sendGeneric
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:307
stdAc::fanspeed_t::kHigh
@ kHigh
kSamsung36Bits
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:995
kMagiquestBits
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:946
IRsend::minRepeats
static uint16_t minRepeats(const decode_type_t protocol)
Get the minimum number of repeats for a given protocol.
Definition: IRsend.cpp:557
kNeoclimaStateLength
const uint16_t kNeoclimaStateLength
Definition: IRremoteESP8266.h:976
gree_ac_remote_model_t
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:129
kSamsungAcDefaultRepeat
const uint16_t kSamsungAcDefaultRepeat
Definition: IRremoteESP8266.h:1000
kSanyoLC7461Bits
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1006
stdAc::state_t::degrees
float degrees
Definition: IRsend.h:102
IRsend::_dutycycle
uint8_t _dutycycle
Definition: IRsend.h:680
stdAc::state_t::celsius
bool celsius
Definition: IRsend.h:103
IRsend::sendLG2
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:103
kZepealMinRepeat
const uint16_t kZepealMinRepeat
Definition: IRremoteESP8266.h:1044
IRsend::mark
VIRTUAL uint16_t mark(uint16_t usec)
Modulate the IR LED for the given period (usec) and at the duty cycle set.
Definition: IRsend.cpp:157
IRsend::sendToshibaAC
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:49
ARRY4
@ ARRY4
Definition: IRsend.h:125
ARDB1
@ ARDB1
Definition: IRsend.h:122
kMetzMinRepeat
const uint16_t kMetzMinRepeat
Definition: IRremoteESP8266.h:948
stdAc::fanspeed_t::kMax
@ kMax
IRsend::sendDaikin152
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:3179
IRsend::sendAmcor
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:39
stdAc::state_t::swingv
stdAc::swingv_t swingv
Definition: IRsend.h:105
IRsend::sendLasertag
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
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:135
IRsend::sendEpson
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:24
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:176
IRsend::sendManchesterData
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:445
kAiwaRcT501MinRepeats
const uint16_t kAiwaRcT501MinRepeats
Definition: IRremoteESP8266.h:841
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
kVoltasStateLength
const uint16_t kVoltasStateLength
Definition: IRremoteESP8266.h:1046
stdAc::fanspeed_t::kMin
@ kMin
kMitsubishiMinRepeat
const uint16_t kMitsubishiMinRepeat
Definition: IRremoteESP8266.h:956
IRsend::encodeSanyoLC7461
uint64_t encodeSanyoLC7461(uint16_t address, uint8_t command)
Construct a Sanyo LC7461 message.
Definition: ir_Sanyo.cpp:81
ARJW2
@ ARJW2
Definition: IRsend.h:124
kArgoStateLength
const uint16_t kArgoStateLength
Definition: IRremoteESP8266.h:846
stdAc::swingh_t::kRightMax
@ kRightMax
IRsend::encodeSAMSUNG
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:97
kPanasonicBits
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:979
stdAc::state_t::model
int16_t model
Definition: IRsend.h:99
IRsend::toggleRC6
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
IRsend::sendSony
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:46
kDutyMax
const uint8_t kDutyMax
Definition: IRsend.h:36
IRsend::_freq_unittest
uint32_t _freq_unittest
Definition: IRsend.h:674
kDaikin152StateLength
const uint16_t kDaikin152StateLength
Definition: IRremoteESP8266.h:877
IRsend::encodeLG
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:131
IRsend::sendRaw
void sendRaw(const uint16_t buf[], const uint16_t len, const uint16_t hz)
Send a raw IRremote message.
Definition: IRsend.cpp:539
IRsend::sendMultibrackets
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
stdAc::swingv_t::kHigh
@ kHigh
kHaierACYRW02StateLength
const uint16_t kHaierACYRW02StateLength
Definition: IRremoteESP8266.h:914
IRsend::encodeRC6
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
kMultibracketsDefaultRepeat
const uint16_t kMultibracketsDefaultRepeat
Definition: IRremoteESP8266.h:973
IRsend::sendMitsubishi112
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:1184
kPanasonicCkp
@ kPanasonicCkp
Definition: IRsend.h:147
IRsend::sendWhirlpoolAC
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:50
stdAc::fanspeed_t::kLastFanspeedEnum
@ kLastFanspeedEnum
IRsend::sendData
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:246
kGoodweatherBits
const uint16_t kGoodweatherBits
Definition: IRremoteESP8266.h:906
IRsend::sendKelvinator
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:78
IRsend::ledOn
VIRTUAL void ledOn()
Turn on the IR LED.
Definition: IRsend.cpp:60
kGicableMinRepeat
const uint16_t kGicableMinRepeat
Definition: IRremoteESP8266.h:905
IRsend::sendHitachiAC1
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:89
kDaikin216StateLength
const uint16_t kDaikin216StateLength
Definition: IRremoteESP8266.h:883
IRsend::sendGICable
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
kSamsungAcStateLength
const uint16_t kSamsungAcStateLength
Definition: IRremoteESP8266.h:996
DG11J13A
@ DG11J13A
Definition: IRsend.h:159
IRsend::sendSharp
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:134
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:141
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
stdAc::opmode_t::kHeat
@ kHeat
AKB75215403
@ AKB75215403
Definition: IRsend.h:166
IRsend::sendDenon
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
IRsend::sendCarrierAC64
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:178
IRsend::sendPioneer
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:42
YAW1F
@ YAW1F
Definition: IRsend.h:130
kSymphonyBits
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1021
stdAc::swingh_t::kAuto
@ kAuto
kDaikin128StateLength
const uint16_t kDaikin128StateLength
Definition: IRremoteESP8266.h:874
kRC6Mode0Bits
const uint16_t kRC6Mode0Bits
Definition: IRremoteESP8266.h:991
kDaikin176DefaultRepeat
const uint16_t kDaikin176DefaultRepeat
Definition: IRremoteESP8266.h:882
IRsend::sendPanasonic64
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:74
kMitsubishiHeavy152MinRepeat
const uint16_t kMitsubishiHeavy152MinRepeat
Definition: IRremoteESP8266.h:971
IRsend::sendHaierAC
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:51
IRsend::sendSamsung36
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:162
IRsend::sendVoltas
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
kNoRepeat
const uint16_t kNoRepeat
Definition: IRremoteESP8266.h:835
IRsend::offTimePeriod
uint16_t offTimePeriod
Definition: IRsend.h:677
kSony20Bits
const uint16_t kSony20Bits
Definition: IRremoteESP8266.h:1018
kMitsubishiACMinRepeat
const uint16_t kMitsubishiACMinRepeat
Definition: IRremoteESP8266.h:959
kMetzBits
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:947
IRsend::sendSony38
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:62
IRsend::encodeSony
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:88
stdAc::swingv_t::kAuto
@ kAuto
kPanasonicUnknown
@ kPanasonicUnknown
Definition: IRsend.h:142
fujitsu_ac_remote_model_t
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
kPanasonicAcDefaultRepeat
const uint16_t kPanasonicAcDefaultRepeat
Definition: IRremoteESP8266.h:985
kSymphonyDefaultRepeat
const uint16_t kSymphonyDefaultRepeat
Definition: IRremoteESP8266.h:1022
ARREB1E
@ ARREB1E
Definition: IRsend.h:123
IRsend::sendPanasonicAC
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:173
stdAc::state_t::swingh
stdAc::swingh_t swingh
Definition: IRsend.h:106
kCoolixDefaultRepeat
const uint16_t kCoolixDefaultRepeat
Definition: IRremoteESP8266.h:850
kPanasonicNke
@ kPanasonicNke
Definition: IRsend.h:144
GE6711AR2853M
@ GE6711AR2853M
Definition: IRsend.h:165
IRsend::sendHitachiAc3
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:1362
kTcl112AcDefaultRepeat
const uint16_t kTcl112AcDefaultRepeat
Definition: IRremoteESP8266.h:1025
kDelonghiAcDefaultRepeat
const uint16_t kDelonghiAcDefaultRepeat
Definition: IRremoteESP8266.h:887
IRsend::sendSanyoAc
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:253
kCoronaAcStateLength
const uint16_t kCoronaAcStateLength
Definition: IRremoteESP8266.h:858
IRsend::sendRC5
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
IRsend::sendMitsubishi
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:104
IRsend::sendAirwell
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
kDoshishaBits
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:893
kCarrierAc40Bits
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:853
stdAc::fanspeed_t::kMedium
@ kMedium
kTrotecStateLength
const uint16_t kTrotecStateLength
Definition: IRremoteESP8266.h:1035
kWhirlpoolAcDefaultRepeat
const uint16_t kWhirlpoolAcDefaultRepeat
Definition: IRremoteESP8266.h:1040
IRsend::sendSAMSUNG
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:83
kHitachiAc424StateLength
const uint16_t kHitachiAc424StateLength
Definition: IRremoteESP8266.h:930
kMitsubishiHeavy88StateLength
const uint16_t kMitsubishiHeavy88StateLength
Definition: IRremoteESP8266.h:966
IRsend::sendNeoclima
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:41
IRsend::sendSharpRaw
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:64
stdAc::opmode_t::kLastOpmodeEnum
@ kLastOpmodeEnum
IRsend::sendGree
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:74
stdAc::opmode_t::kOff
@ kOff
kMitsubishiBits
const uint16_t kMitsubishiBits
Definition: IRremoteESP8266.h:953
IRsend::sendMitsubishi136
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:812
stdAc
Enumerators and Structures for the Common A/C API.
Definition: IRsend.h:44
R_LT0541_HTA_A
@ R_LT0541_HTA_A
Definition: IRsend.h:136
kPanasonicAcStateLength
const uint16_t kPanasonicAcStateLength
Definition: IRremoteESP8266.h:981
IRsend::sendMitsubishiHeavy88
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
IRsend::sendVestelAc
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:38
kMideaBits
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:949
IRsend::encodeMetz
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
kKelvinatorStateLength
const uint16_t kKelvinatorStateLength
Definition: IRremoteESP8266.h:935
IRsend::sendMidea24
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:504
IRsend::defaultBits
static uint16_t defaultBits(const decode_type_t protocol)
Get the default number of bits for a given protocol.
Definition: IRsend.cpp:598
stdAc::state_t::protocol
decode_type_t protocol
Definition: IRsend.h:98
stdAc::swingv_t::kLastSwingvEnum
@ kLastSwingvEnum
kDaikin216DefaultRepeat
const uint16_t kDaikin216DefaultRepeat
Definition: IRremoteESP8266.h:885
stdAc::opmode_t::kDry
@ kDry
stdAc::state_t::beep
bool beep
Definition: IRsend.h:113
kWhirlpoolAcStateLength
const uint16_t kWhirlpoolAcStateLength
Definition: IRremoteESP8266.h:1038
kNECBits
const uint16_t kNECBits
Definition: IRremoteESP8266.h:975
kDenonBits
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:888
kZepealBits
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1043
stdAc::state_t::filter
bool filter
Definition: IRsend.h:111
kCarrierAc40MinRepeat
const uint16_t kCarrierAc40MinRepeat
Definition: IRremoteESP8266.h:854
kMidea24Bits
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:951
IRsend::sendDelonghiAc
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:38
kDaikin160DefaultRepeat
const uint16_t kDaikin160DefaultRepeat
Definition: IRremoteESP8266.h:873
IRsend::_sendSony
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:73
kToshibaACMinRepeat
const uint16_t kToshibaACMinRepeat
Definition: IRremoteESP8266.h:1030
IRsend::enableIROut
void enableIROut(uint32_t freq, uint8_t duty=kDutyDefault)
Set the output frequency modulation and duty cycle.
Definition: IRsend.cpp:92
stdAc::swingv_t::kMiddle
@ kMiddle
kHitachiAc344StateLength
const uint16_t kHitachiAc344StateLength
Definition: IRremoteESP8266.h:928
kPanasonicDke
@ kPanasonicDke
Definition: IRsend.h:145
kCarrierAc64Bits
const uint16_t kCarrierAc64Bits
Definition: IRremoteESP8266.h:855
kDaikin128DefaultRepeat
const uint16_t kDaikin128DefaultRepeat
Definition: IRremoteESP8266.h:876
kPioneerBits
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:986
kSharpAcStateLength
const uint16_t kSharpAcStateLength
Definition: IRremoteESP8266.h:1011
IRsend::sendSharpAc
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:227
kPanasonicLke
@ kPanasonicLke
Definition: IRsend.h:143
kGreeBits
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:909
IRsend::sendCarrierAC
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:57
kJvcBits
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:934
kDaikinStateLength
const uint16_t kDaikinStateLength
Definition: IRremoteESP8266.h:861
kLasertagBits
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:938
IRsend::sendDaikin160
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:1840
kAiwaRcT501Bits
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:840
IRsend::sendDaikin2
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:689
ARRAH2E
@ ARRAH2E
Definition: IRsend.h:121
kToshibaACStateLength
const uint16_t kToshibaACStateLength
Definition: IRremoteESP8266.h:1028
kTecoBits
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1026
IRsend::sendMitsubishi2
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:161
kInaxMinRepeat
const uint16_t kInaxMinRepeat
Definition: IRremoteESP8266.h:933
IRsend::ledOff
VIRTUAL void ledOff()
Turn off the IR LED.
Definition: IRsend.cpp:53
stdAc::swingh_t::kLastSwinghEnum
@ kLastSwinghEnum
kSherwoodBits
const uint8_t kSherwoodBits
Definition: IRremoteESP8266.h:1014
stdAc::state_t::mode
stdAc::opmode_t mode
Definition: IRsend.h:101
kDaikinDefaultRepeat
const uint16_t kDaikinDefaultRepeat
Definition: IRremoteESP8266.h:865
kDaikin64DefaultRepeat
const uint16_t kDaikin64DefaultRepeat
Definition: IRremoteESP8266.h:870
IRsend::sendInax
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
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:164
kMitsubishiHeavy88MinRepeat
const uint16_t kMitsubishiHeavy88MinRepeat
Definition: IRremoteESP8266.h:968
stdAc::fanspeed_t::kAuto
@ kAuto
kVoltas122LZF
@ kVoltas122LZF
Definition: IRsend.h:154
kHitachiAcDefaultRepeat
const uint16_t kHitachiAcDefaultRepeat
Definition: IRremoteESP8266.h:919
stdAc::state_t::econo
bool econo
Definition: IRsend.h:109
IRsend::sendSherwood
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
kMidea24MinRepeat
const uint16_t kMidea24MinRepeat
Definition: IRremoteESP8266.h:952
IRsend::sendMitsubishiHeavy152
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
kDishBits
const uint16_t kDishBits
Definition: IRremoteESP8266.h:891
kDishMinRepeat
const uint16_t kDishMinRepeat
Definition: IRremoteESP8266.h:892
stdAc::swingv_t::kLowest
@ kLowest
IRsend::sendPanasonic
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:91
IRsend::space
VIRTUAL 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:194
kHitachiAc2StateLength
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:922
IRsend::sendGC
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
IRsend::encodeRC5
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
IRsend::sendJVC
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
IRsend::sendDoshisha
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
stdAc::swingh_t::kOff
@ kOff
IRsend::toggleRC5
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
IRsend::sendDaikin
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:61
kCarrierAcMinRepeat
const uint16_t kCarrierAcMinRepeat
Definition: IRremoteESP8266.h:852
kNikaiBits
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:974
IRsend::encodeMagiQuest
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
stdAc::swingh_t::kWide
@ kWide
kKelvinatorDefaultRepeat
const uint16_t kKelvinatorDefaultRepeat
Definition: IRremoteESP8266.h:937
IRsend::sendHitachiAC2
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 sendHitatch...
Definition: ir_Hitachi.cpp:107
kLutronBits
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:945
IRsend::sendDaikin128
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:2615
IRsend::sendCarrierAC40
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:129
kSharpAcDefaultRepeat
const uint16_t kSharpAcDefaultRepeat
Definition: IRremoteESP8266.h:1013
stdAc::swingv_t::kHighest
@ kHighest
IRsend::sendTrotec
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:43
IRsend::sendCoronaAc
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:51
stdAc::state_t::light
bool light
Definition: IRsend.h:110
stdAc::state_t::fanspeed
stdAc::fanspeed_t fanspeed
Definition: IRsend.h:104
kTcl112AcStateLength
const uint16_t kTcl112AcStateLength
Definition: IRremoteESP8266.h:1023
IRsend::sendRCMM
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:46
IRsend::sendManchester
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:506
kDaikin160StateLength
const uint16_t kDaikin160StateLength
Definition: IRremoteESP8266.h:871
IRsend::sendHitachiAC
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
kDaikin2StateLength
const uint16_t kDaikin2StateLength
Definition: IRremoteESP8266.h:866
IRsend::sendElectraAC
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:41
stdAc::swingh_t::kMiddle
@ kMiddle
kSherwoodMinRepeat
const uint16_t kSherwoodMinRepeat
Definition: IRremoteESP8266.h:1015
kCarrierAc64MinRepeat
const uint16_t kCarrierAc64MinRepeat
Definition: IRremoteESP8266.h:856
DG11J191
@ DG11J191
Definition: IRsend.h:160
IRsend::begin
void begin()
Enable the pin for output.
Definition: IRsend.cpp:45
kSanyoAcStateLength
const uint16_t kSanyoAcStateLength
Definition: IRremoteESP8266.h:1001
IRsend::sendFujitsuAC
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:47
stdAc::swingh_t::kLeftMax
@ kLeftMax
IRsend::encodeSharp
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:99
stdAc::opmode_t::kCool
@ kCool
kLegoPfBits
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:940
kSharpBits
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1010
stdAc::state_t::sleep
int16_t sleep
Definition: IRsend.h:114
stdAc::state_t::power
bool power
Definition: IRsend.h:100
stdAc::opmode_t::kFan
@ kFan
IRsend::sendHitachiAc424
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:951
IRsend::sendTeco
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:39
stdAc::swingv_t::kOff
@ kOff
kMitsubishi136StateLength
const uint16_t kMitsubishi136StateLength
Definition: IRremoteESP8266.h:960
IRsend::sendLutron
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
IRsend::sendSamsungAC
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:243
IRsend::encodePanasonic
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:105
IRsend::sendSanyoLC7461
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:113
IRsend::IRsend
IRsend(uint16_t IRsendPin, bool inverted=false, bool use_modulation=true)
Constructor for an IRsend object.
Definition: IRsend.cpp:28
IRsend::sendDISH
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
kRCMMBits
const uint16_t kRCMMBits
Definition: IRremoteESP8266.h:993
kVestelAcBits
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1042
kInaxBits
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:932
YBOFB
@ YBOFB
Definition: IRsend.h:131
kLegoPfMinRepeat
const uint16_t kLegoPfMinRepeat
Definition: IRremoteESP8266.h:941
kAmcorDefaultRepeat
const uint16_t kAmcorDefaultRepeat
Definition: IRremoteESP8266.h:845
IRsend::sendDaikin216
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:1476
kSamsungBits
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:994
IRsend::encodePioneer
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:77
kDaikin64Bits
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:869
stdAc::state_t::quiet
bool quiet
Definition: IRsend.h:107
IRsend::encodeRC5X
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
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
kLasertagMinRepeat
const uint16_t kLasertagMinRepeat
Definition: IRremoteESP8266.h:939
kDutyDefault
const uint8_t kDutyDefault
Definition: IRsend.h:35
stdAc::state_t::turbo
bool turbo
Definition: IRsend.h:108
IRsend::sendMagiQuest
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
IRsend::modulation
bool modulation
Definition: IRsend.h:681
kNeoclimaMinRepeat
const uint16_t kNeoclimaMinRepeat
Definition: IRremoteESP8266.h:978
kMitsubishi112StateLength
const uint16_t kMitsubishi112StateLength
Definition: IRremoteESP8266.h:963
stdAc::fanspeed_t::kLow
@ kLow
IRsend::sendArgo
void sendArgo(const unsigned char data[], const uint16_t nbytes=kArgoStateLength, const uint16_t repeat=kArgoDefaultRepeat)
Send a Argo A/C formatted message. Status: BETA / Probably works.
Definition: ir_Argo.cpp:40
IRsend::sendTcl112Ac
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:33
kPanasonicJke
@ kPanasonicJke
Definition: IRsend.h:146
stdAc::swingh_t::kRight
@ kRight
kSonyMinRepeat
const uint16_t kSonyMinRepeat
Definition: IRremoteESP8266.h:1020
IRsend::sendCOOLIX
void sendCOOLIX(uint64_t data, uint16_t nbits=kCoolixBits, uint16_t repeat=kCoolixDefaultRepeat)
Send a Coolix message Status: STABLE / Confirmed Working.
Definition: ir_Coolix.cpp:51
kEpsonBits
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:894
IRsend::sendNEC
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
IRsend::sendMWM
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
voltas_ac_remote_model_t
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:152
IRsend::sendDaikin64
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:3568
IRsend::sendRC6
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:190
kPeriodOffset
const int8_t kPeriodOffset
Definition: IRsend.h:26
kLgBits
const uint16_t kLgBits
Definition: IRremoteESP8266.h:942
IRsend::sendDaikin176
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:2212
kGoodweatherMinRepeat
const uint16_t kGoodweatherMinRepeat
Definition: IRremoteESP8266.h:907
kElectraAcStateLength
const uint16_t kElectraAcStateLength
Definition: IRremoteESP8266.h:896
kGreeDefaultRepeat
const uint16_t kGreeDefaultRepeat
Definition: IRremoteESP8266.h:910
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
IRsend::sendGoodweather
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:33