From 2bfdf9719250471f004b720e81c14ab00a244836 Mon Sep 17 00:00:00 2001 From: David Conran Date: Fri, 28 Jul 2023 11:59:56 +1000 Subject: [PATCH] v2.8.6 release (#2020) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## _v2.8.6 (20230727)_ **[Bug Fixes]** - Ensure `IRCoolixAC::toCommon()` returns `kNoTempValue` when no sensor temp is detected. (#2015 #2012) - Fix compilation dependency of LG on Samsung send protocol (#2011 #2010) - Fix missing parameter in call to `IRac::gree()` (#2008 #2007) **[Features]** - IRac: Ensure the `sleep` parameter is used for the `FUJITSU_AC` protocol. (#1992 #1991) **[Misc]** - Allow the BlynkIRRemote.ino code to compile again. (#2016) - do not list WHIRLPOOL_AC unconditionally as supported protocol (#2003) - IRUtils:typeToString() — simplify (#2002) - Fix brand Green -> Gree (#1994) - Fix undefined `std::round` compilation error (#1989) --- README.md | 4 +- README_de.md | 4 +- README_fr.md | 4 +- README_nl.md | 4 +- ReleaseNotes.md | 18 + SupportedProtocols.md | 5 +- docs/doxygen/html/IRac_8h_source.html | 184 +-- docs/doxygen/html/IRrecv_8h_source.html | 10 +- docs/doxygen/html/IRsend_8h_source.html | 1245 +++++++++-------- docs/doxygen/html/IRutils_8h_source.html | 92 +- docs/doxygen/html/ir__Bosch_8h_source.html | 8 +- docs/doxygen/html/ir__Coolix_8h_source.html | 2 +- .../html/ir__Kelvinator_8h_source.html | 2 +- docs/doxygen/html/ir__Samsung_8h_source.html | 120 +- library.json | 2 +- library.properties | 2 +- src/IRremoteESP8266.h | 2 +- 17 files changed, 863 insertions(+), 845 deletions(-) diff --git a/README.md b/README.md index 47178861a..5eac39e4b 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ This library enables you to **send _and_ receive** infra-red signals on an [ESP8266](https://github.com/esp8266/Arduino) or an [ESP32](https://github.com/espressif/arduino-esp32) using the [Arduino framework](https://www.arduino.cc/) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc. -## v2.8.5 Now Available -Version 2.8.5 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. +## v2.8.6 Now Available +Version 2.8.6 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. #### Upgrading from pre-v2.0 Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/README_de.md b/README_de.md index f55860528..9e584bb84 100644 --- a/README_de.md +++ b/README_de.md @@ -11,8 +11,8 @@ Diese Programmbibliothek ermöglicht das **Senden _und_ Empfangen** von Infrarotsignalen mit [ESP8266](https://github.com/esp8266/Arduino)- und [ESP32](https://github.com/espressif/arduino-esp32)-Mikrocontrollern mithilfe des [Arduino-Frameworks](https://www.arduino.cc/) und handelsüblichen 940nm Infrarot-LEDs undIR-Empfängermodulen, wie zum Beispiel TSOP{17,22,24,36,38,44,48}*-Demodulatoren. -## v2.8.5 jetzt verfügbar -Version 2.8.5 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.8.6 jetzt verfügbar +Version 2.8.6 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. #### Hinweis für Nutzer von Versionen vor v2.0 Die Benutzung der Bibliothek hat sich mit Version 2.0 leicht geändert. Einige Anpassungen im aufrufenden Code werden nötig sein, um mit Version ab 2.0 korrekt zu funktionieren. Mehr zu den Anpassungen finden sich auf unserer [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0)-Seite. diff --git a/README_fr.md b/README_fr.md index 430d32de3..f7bd69eaf 100644 --- a/README_fr.md +++ b/README_fr.md @@ -10,8 +10,8 @@ Cette librairie vous permetra de **recevoir et d'envoyer des signaux** infrarouge sur le protocole [ESP8266](https://github.com/esp8266/Arduino) ou sur le protocole [ESP32](https://github.com/espressif/arduino-esp32) en utilisant le [Arduino framework](https://www.arduino.cc/) qui utilise la norme 940nm IR LEDs et le module basique de reception d'onde IR. Exemple : TSOP{17,22,24,36,38,44,48}* modules etc. -## v2.8.5 disponible -Version 2.8.5 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. +## v2.8.6 disponible +Version 2.8.6 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. #### mise à jour depuis pre-v2.0 L'utilisation de la librairie à un peu changer depuis la version in v2.0. Si vous voulez l'utiliser vous devrez changer votre utilisation aussi. Vous pouvez vous renseigner sur les précondition d'utilisation ici : [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/README_nl.md b/README_nl.md index fdea85cae..8c4cb8e08 100644 --- a/README_nl.md +++ b/README_nl.md @@ -10,8 +10,8 @@ Deze library maakt het mogelijk om Infraroodsignalen **te versturen en ontvangen** via het [Arduino framework](https://www.arduino.cc/) met veelgebruikte 940nm IR LEDs en IR ontvang modules. b.v. TSOP{17,22,24,36,38,44,48}* demodulatoren enz. -## v2.8.5 nu beschikbaar -Versie 2.8.5 van de bibliotheek is nu [beschikbaar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Bekijk de [Release Notes](ReleaseNotes.md) voor alle belangrijke veranderingen. +## v2.8.6 nu beschikbaar +Versie 2.8.6 van de bibliotheek is nu [beschikbaar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Bekijk de [Release Notes](ReleaseNotes.md) voor alle belangrijke veranderingen. #### Upgraden vanaf pre-v2.0 Het gebruik van de bibliotheek is enigszins gewijzigd in v2.0. Je zult het gebruik moeten aanpassen om te kunnen werken met v2.0 en hoger. Je kunt meer lezen over de vereiste aanpassingen op onze [Upgraden naar v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) pagina. diff --git a/ReleaseNotes.md b/ReleaseNotes.md index d9e86c7e3..27b5b3fac 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,23 @@ # Release Notes +## _v2.8.6 (20230727)_ + +**[Bug Fixes]** +- Ensure `IRCoolixAC::toCommon()` returns `kNoTempValue` when no sensor temp is detected. (#2015 #2012) +- Fix compilation dependency of LG on Samsung send protocol (#2011 #2010) +- Fix missing parameter in call to `IRac::gree()` (#2008 #2007) + +**[Features]** +- IRac: Ensure the `sleep` parameter is used for the `FUJITSU_AC` protocol. (#1992 #1991) + +**[Misc]** +- Allow the BlynkIRRemote.ino code to compile again. (#2016) +- do not list WHIRLPOOL_AC unconditionally as supported protocol (#2003) +- IRUtils:typeToString() — simplify (#2002) +- Fix brand Green -> Gree (#1994) +- Fix undefined `std::round` compilation error (#1989) + + ## _v2.8.5 (20230508)_ **[Bug Fixes]** diff --git a/SupportedProtocols.md b/SupportedProtocols.md index 46b65ca5e..3c6d38a03 100644 --- a/SupportedProtocols.md +++ b/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Thu 27 Jul 2023 05:37:11 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -65,8 +65,7 @@ | [JVC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_JVC.cpp) | **JVC** | PTU94023B remote | | - | | [Kelon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelon.cpp) | **[Hisense](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelon.h)** | AST-09UW4RVETG00A A/C (KELON168) | | Yes | | [Kelon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelon.cpp) | **[Kelon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelon.h)** | AST-09UW4RVETG00A A/C (KELON168)
DG11R2-01 remote (KELON168)
ON/OFF 9000-12000 (KELON) | | Yes | -| [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | YAP0F8 remote | | Yes | -| [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Green](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | YAPOF3 remote | | Yes | +| [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | YAP0F8 remote
YAPOF3 remote | | Yes | | [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | KSV26CRC A/C
KSV26HRC A/C
KSV35CRC A/C
KSV35HRC A/C
KSV53HRC A/C
KSV62HRC A/C
KSV70CRC A/C
KSV70HRC A/C
KSV80HRC A/C
YALIF Remote | | Yes | | [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | A5VEY A/C
YB1FA remote | | Yes | | [LG](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.cpp) | **[General Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.h)** | 6711AR2853M Remote (LG - GE6711AR2853M)
AG1BH09AW101 A/C (LG - GE6711AR2853M) | | Yes | diff --git a/docs/doxygen/html/IRac_8h_source.html b/docs/doxygen/html/IRac_8h_source.html index 6ac997213..6d6fe9b99 100644 --- a/docs/doxygen/html/IRac_8h_source.html +++ b/docs/doxygen/html/IRac_8h_source.html @@ -646,145 +646,145 @@
581 #endif // IRAC_H_
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:104
-
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:421
+
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:428
Support for Kelvinator A/C protocols.
-
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:1166
+
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:1173
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:186
-
static String commandTypeToString(const stdAc::ac_command_t cmdType)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3971
-
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1529
+
static String commandTypeToString(const stdAc::ac_command_t cmdType)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3979
+
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1536
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:127
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:1011
-
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:177
-
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:172
+
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:182
+
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:177
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:184
-
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3803
-
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1663
+
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3811
+
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1670
@ kAuto
Class for handling detailed Airton 56-bit A/C messages.
Definition: ir_Airton.h:75
Support for Electra A/C protocols.
-
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3634
+
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3642
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:74
Airwell "Manchester code" based protocol. Some other Airwell products use the COOLIX protocol.
-
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:990
-
static stdAc::ac_command_t strToCommandType(const char *str, const stdAc::ac_command_t def=stdAc::ac_command_t::kControlCommand)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3671
+
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:997
+
static stdAc::ac_command_t strToCommandType(const char *str, const stdAc::ac_command_t def=stdAc::ac_command_t::kControlCommand)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3679
Support for Trotec protocols.
Support for Bosch A/C protocol.
-
void argoWrem3_SetTimer(IRArgoAC_WREM3 *ac, bool on, const uint16_t currentTime, const uint16_t delayMinutes)
Send an Argo A/C WREM-3 Delay timer command.
Definition: IRac.cpp:613
+
void argoWrem3_SetTimer(IRArgoAC_WREM3 *ac, bool on, const uint16_t currentTime, const uint16_t delayMinutes)
Send an Argo A/C WREM-3 Delay timer command.
Definition: IRac.cpp:620
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:723
Class for handling detailed Delonghi A/C messages.
Definition: ir_Delonghi.h:73
Class for handling detailed Corona A/C messages.
Definition: ir_Corona.h:107
-
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1766
+
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1773
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:805
-
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:1213
+
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:1220
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1070
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
Support for Sharp protocols.
-
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:4000
+
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:4008
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:211
Carrier A/C.
-
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2747
+
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2754
Results returned from the decoder.
Definition: IRrecv.h:99
-
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:1059
-
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:2234
-
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2706
-
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2784
+
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:1066
+
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:2241
+
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2713
+
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2791
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition: IRsend.h:199
-
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3640
-
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3651
-
void argoWrem3_ConfigSet(IRArgoAC_WREM3 *ac, const uint8_t param, const uint8_t value, bool safe=true)
Send an Argo A/C WREM-3 Config command.
Definition: IRac.cpp:581
+
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3648
+
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3659
+
void argoWrem3_ConfigSet(IRArgoAC_WREM3 *ac, const uint8_t param, const uint8_t value, bool safe=true)
Send an Argo A/C WREM-3 Config command.
Definition: IRac.cpp:588
Support for Midea protocols. Midea added by crankyoldgit & bwze.
Support for Daikin A/C protocols.
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:155
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1200
-
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1493
+
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1500
Support for Coolix A/C protocols.
-
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:2664
+
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:2671
Class for handling detailed Rhoss A/C messages.
Definition: ir_Rhoss.h:94
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:497
-
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:826
-
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:102
+
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:833
+
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:107
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:903
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:91
-
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:2367
+
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:2374
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:169
-
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1451
-
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:866
+
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1458
+
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:873
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:372
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:55
-
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:4047
+
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:4055
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:111
ac_command_t
Tyoe of A/C command (if the remote uses different codes for each)
Definition: IRsend.h:90
-
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1364
+
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1371
Definition: ir_Kelon.h:77
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
-
void haier160(IRHaierAC160 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool quiet, const bool filter, const bool clean, const bool light, const bool prevlight, const int16_t sleep=-1)
Send a Haier 160 bit A/C message with the supplied settings.
Definition: IRac.cpp:1406
+
void haier160(IRHaierAC160 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool quiet, const bool filter, const bool clean, const bool light, const bool prevlight, const int16_t sleep=-1)
Send a Haier 160 bit A/C message with the supplied settings.
Definition: IRac.cpp:1413
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:586
-
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3964
+
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3972
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:111
std::string String
Definition: IRremoteESP8266.h:1521
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:267
-
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:2563
-
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3844
-
void hitachi296(IRHitachiAc296 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 296-bit A/C message with the supplied settings.
Definition: IRac.cpp:1632
+
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:2570
+
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3852
+
void hitachi296(IRHitachiAc296 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 296-bit A/C message with the supplied settings.
Definition: IRac.cpp:1639
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
Support for the York AC protocol (remote GRYLH2A)
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:401
EcoClim A/C protocol.
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:125
-
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:958
+
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:965
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:114
Support for TCL protocols.
-
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3665
-
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:1029
+
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3673
+
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:1036
Support for Transcold A/C protocols.
Support for Hitachi A/C protocols.
Support for Panasonic protocols.
-
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2823
-
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2862
-
void argoWrem3_iFeelReport(IRArgoAC_WREM3 *ac, const float sensorTemp)
Send an Argo A/C WREM-3 iFeel (room temp) silent (no beep) report.
Definition: IRac.cpp:563
+
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2830
+
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2869
+
void argoWrem3_iFeelReport(IRArgoAC_WREM3 *ac, const float sensorTemp)
Send an Argo A/C WREM-3 iFeel (room temp) silent (no beep) report.
Definition: IRac.cpp:570
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:347
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:181
-
void hitachi264(IRHitachiAc264 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 264-bit A/C message with the supplied settings.
Definition: IRac.cpp:1603
+
void hitachi264(IRHitachiAc264 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 264-bit A/C message with the supplied settings.
Definition: IRac.cpp:1610
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:100
-
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1955
+
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1962
Class for handling detailed Hitachi 264-bit A/C messages.
Definition: ir_Hitachi.h:607
-
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:4517
+
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:4525
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:429
Class for handling detailed Mirage 120-bit A/C messages.
Definition: ir_Mirage.h:196
-
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1697
+
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1704
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
Supports Argo A/C SAC-WREM3 IR remote protocol.
Definition: ir_Argo.h:449
-
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3985
-
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:4053
-
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:903
+
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3993
+
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:4061
+
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:910
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:140
Support for Gree A/C protocols.
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:89
Definition: ir_Hitachi.h:624
-
void argoWrem3_ACCommand(IRArgoAC_WREM3 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool night, const bool econo, const bool turbo, const bool filter, const bool light)
Send an Argo A/C WREM-3 AC control message with the supplied settings.
Definition: IRac.cpp:529
+
void argoWrem3_ACCommand(IRArgoAC_WREM3 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool night, const bool econo, const bool turbo, const bool filter, const bool light)
Send an Argo A/C WREM-3 AC control message with the supplied settings.
Definition: IRac.cpp:536
Support for Mirage protocol.
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:175
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:132
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:124
-
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool quiet, const bool quiet_prev, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1861
+
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool quiet, const bool quiet_prev, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1868
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:179
Support for Airton protocol.
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:120
-
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:2152
-
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4016
+
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:2159
+
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4024
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:59
Support for Teco protocols.
Class for handling detailed Trotec 3550 A/C messages.
Definition: ir_Trotec.h:198
Delonghi A/C.
Class for handling detailed Haier 160 bit A/C messages.
Definition: ir_Haier.h:563
-
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2849
+
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2856
Support for Argo Ulisse 13 DCI Mobile Split ACs.
-
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1916
-
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:449
+
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1923
+
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:456
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
Class for handling detailed EcoClim A/C 56 bit messages.
Definition: ir_Ecoclim.h:84
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
@@ -792,84 +792,84 @@
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1140
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:114
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
-
void trotec3550(IRTrotec3550 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2595
+
void trotec3550(IRTrotec3550 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2602
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:376
-
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:484
-
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:2111
+
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:491
+
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:2118
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:959
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:153
Class for handling detailed Haier 176 bit A/C messages.
Definition: ir_Haier.h:446
Support for Goodweather compatible HVAC protocols.
-
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:2527
+
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:2534
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:217
-
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1991
+
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1998
@ kAuto
Support for Rhoss A/C protocol.
-
void airton(IRAirtonAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition: IRac.cpp:390
+
void airton(IRAirtonAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition: IRac.cpp:397
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:125
-
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:2493
-
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3691
+
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:2500
+
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3699
Support for Sanyo protocols. Sanyo LC7461 support originally by marcosamarinho Sanyo SA 8650B origina...
-
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1566
-
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1323
+
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1573
+
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1330
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
@ kOff
-
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:2188
+
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:2195
Support for Whirlpool protocols. Decoding help from: @redmusicxd, @josh929800, @raducostea.
-
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3946
-
void sanyo88(IRSanyoAc88 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2325
-
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2026
-
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3760
+
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3954
+
void sanyo88(IRSanyoAc88 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2332
+
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2033
+
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3768
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:100
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:223
-
void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2423
-
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1897
-
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:1115
+
void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2430
+
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1904
+
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:1122
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:133
Support for Truma protocol.
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
-
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2627
-
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4033
+
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2634
+
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4041
Class for handling detailed Truma A/C messages.
Definition: ir_Truma.h:69
Support for Technibel protocol.
-
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:1089
-
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1732
+
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:1096
+
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1739
Support for Kelan AC protocol.
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:126
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:544
-
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:936
-
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:791
-
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:132
-
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1805
-
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:2067
+
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:943
+
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:798
+
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:137
+
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1812
+
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:2074
@ kOff
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:271
-
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition: IRac.cpp:636
+
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition: IRac.cpp:643
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:156
-
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3727
+
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3735
Support for Toshiba protocols.
-
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:717
+
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:724
@ kControlCommand
-
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:1278
+
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:1285
Structure to hold a common A/C state.
Definition: IRsend.h:114
-
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool beep, const int16_t sleep=-1)
Send a Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:2281
+
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool beep, const int16_t sleep=-1)
Send a Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:2288
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:100
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
Supports Argo A/C SAC-WREM2 IR remote protocol.
Definition: ir_Argo.h:422
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:229
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:120
-
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:182
+
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:187
Class for handling detailed Bosch144 A/C messages.
Definition: ir_Bosch.h:140
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:1011
Amcor A/C protocol.
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:123
-
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:2460
+
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:2467
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:205
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:192
Support for LG protocols.
-
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:677
+
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:684
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:163
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49
diff --git a/docs/doxygen/html/IRrecv_8h_source.html b/docs/doxygen/html/IRrecv_8h_source.html index 0a48dea94..d0efe4abc 100644 --- a/docs/doxygen/html/IRrecv_8h_source.html +++ b/docs/doxygen/html/IRrecv_8h_source.html @@ -997,7 +997,7 @@
bool decodeDaikin200(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin200Bits, const bool strict=true)
Decode the supplied Daikin 200-bit message. (DAIKIN200) Status: STABLE / Known to be working.
Definition: ir_Daikin.cpp:3779
const uint16_t kVoltasBits
Definition: IRremoteESP8266.h:1426
bool decodeMitsubishi112(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishi112Bits, const bool strict=true)
Decode the supplied Mitsubishi/TCL 112-bit A/C message. (MITSUBISHI112, TCL112AC) Status: STABLE / Re...
Definition: ir_Mitsubishi.cpp:1291
-
bool decodeSamsungAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungAcBits, const bool strict=true)
Decode the supplied Samsung A/C message. Status: Stable / Known to be working.
Definition: ir_Samsung.cpp:954
+
bool decodeSamsungAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungAcBits, const bool strict=true)
Decode the supplied Samsung A/C message. Status: Stable / Known to be working.
Definition: ir_Samsung.cpp:955
const uint16_t kDaikin200Bits
Definition: IRremoteESP8266.h:1212
bool decodeAirwell(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAirwellBits, const bool strict=true)
Decode the supplied Airwell "Manchester code" message.
Definition: ir_Airwell.cpp:53
const uint16_t kRC5XBits
Definition: IRremoteESP8266.h:1350
@@ -1159,7 +1159,7 @@
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1346
uint16_t bits
Definition: IRrecv.h:113
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:1250
-
bool decodeCoolix48(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolix48Bits, const bool strict=true)
Decode the supplied Coolix 48-bit A/C message. Status: BETA / Probably Working.
Definition: ir_Coolix.cpp:735
+
bool decodeCoolix48(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolix48Bits, const bool strict=true)
Decode the supplied Coolix 48-bit A/C message. Status: BETA / Probably Working.
Definition: ir_Coolix.cpp:738
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:1285
const uint16_t kYorkBits
Definition: IRremoteESP8266.h:1436
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:1292
@@ -1189,7 +1189,7 @@
const uint16_t kAirtonBits
Definition: IRremoteESP8266.h:1148
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:1160
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:1269
-
bool decodeSamsung36(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsung36Bits, const bool strict=true)
Decode the supplied Samsung36 message. Status: STABLE / Expected to work.
Definition: ir_Samsung.cpp:206
+
bool decodeSamsung36(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsung36Bits, const bool strict=true)
Decode the supplied Samsung36 message. Status: STABLE / Expected to work.
Definition: ir_Samsung.cpp:207
bool decodeHitachiAc296(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc296Bits, const bool strict=true)
Decode the supplied Hitachi 37-byte A/C message. Status: STABLE / Working on a real device.
Definition: ir_Hitachi.cpp:1976
void pause(void)
Pause collection of received IR data.
Definition: IRrecv.cpp:411
const uint16_t kFooter
Definition: IRrecv.h:19
@@ -1215,7 +1215,7 @@
const uint16_t kMarkExcess
Definition: IRrecv.h:24
bool decodeHaierACYRW02(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHaierACYRW02Bits, const bool strict=true)
Decode the supplied Haier YR-W02 remote A/C message. Status: BETA / Appears to be working.
Definition: ir_Haier.cpp:1396
bool decodeLG(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLgBits, const bool strict=false)
Decode the supplied LG message. Status: STABLE / Working.
Definition: ir_LG.cpp:156
-
bool decodeCOOLIX(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolixBits, const bool strict=true)
Decode the supplied Coolix 24-bit A/C message. Status: STABLE / Known Working.
Definition: ir_Coolix.cpp:635
+
bool decodeCOOLIX(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolixBits, const bool strict=true)
Decode the supplied Coolix 24-bit A/C message. Status: STABLE / Known Working.
Definition: ir_Coolix.cpp:638
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:1294
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1376
bool decodeArgoWREM3(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kArgo3AcControlStateLength *8, const bool strict=true)
Decode the supplied Argo message (WREM3). Status: Confirmed working w/ Argo 13 ECO (WREM-3)
Definition: ir_Argo.cpp:1722
@@ -1227,7 +1227,7 @@
bool decodeInax(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kInaxBits, const bool strict=true)
Decode the supplied Inax Toilet message. Status: Stable / Known working.
Definition: ir_Inax.cpp:51
void crudeNoiseFilter(decode_results *results, const uint16_t floor=0)
Remove or merge pulses in the capture buffer that are too short.
Definition: IRrecv.cpp:490
bool decodeHitachiAC1(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc1Bits, const bool strict=true)
-
bool decodeSAMSUNG(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungBits, const bool strict=true)
Decode the supplied Samsung 32-bit message. Status: STABLE.
Definition: ir_Samsung.cpp:132
+
bool decodeSAMSUNG(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungBits, const bool strict=true)
Decode the supplied Samsung 32-bit message. Status: STABLE.
Definition: ir_Samsung.cpp:133
bool decodeLegoPf(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLegoPfBits, const bool strict=true)
Decode the supplied LEGO Power Functions message. Status: STABLE / Appears to work.
Definition: ir_Lego.cpp:71
const uint16_t kRCMMBits
Definition: IRremoteESP8266.h:1353
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1422
diff --git a/docs/doxygen/html/IRsend_8h_source.html b/docs/doxygen/html/IRsend_8h_source.html index a79e1d734..93a672199 100644 --- a/docs/doxygen/html/IRsend_8h_source.html +++ b/docs/doxygen/html/IRsend_8h_source.html @@ -349,614 +349,615 @@
310  void sendSherwood(uint64_t data, uint16_t nbits = kSherwoodBits,
311  uint16_t repeat = kSherwoodMinRepeat);
312 #endif
-
313 #if SEND_SAMSUNG
-
314  void sendSAMSUNG(const uint64_t data, const uint16_t nbits = kSamsungBits,
-
315  const uint16_t repeat = kNoRepeat);
-
316  uint32_t encodeSAMSUNG(const uint8_t customer, const uint8_t command);
-
317 #endif
-
318 #if SEND_SAMSUNG36
-
319  void sendSamsung36(const uint64_t data, const uint16_t nbits = kSamsung36Bits,
-
320  const uint16_t repeat = kNoRepeat);
-
321 #endif
-
322 #if SEND_SAMSUNG_AC
-
323  void sendSamsungAC(const unsigned char data[],
-
324  const uint16_t nbytes = kSamsungAcStateLength,
-
325  const uint16_t repeat = kSamsungAcDefaultRepeat);
-
326 #endif
-
327 #if SEND_LG
-
328  void sendLG(uint64_t data, uint16_t nbits = kLgBits,
-
329  uint16_t repeat = kNoRepeat);
-
330  void sendLG2(uint64_t data, uint16_t nbits = kLgBits,
-
331  uint16_t repeat = kNoRepeat);
-
332  uint32_t encodeLG(uint16_t address, uint16_t command);
-
333 #endif
-
334 #if (SEND_SHARP || SEND_DENON)
-
335  uint32_t encodeSharp(const uint16_t address, const uint16_t command,
-
336  const uint16_t expansion = 1, const uint16_t check = 0,
-
337  const bool MSBfirst = false);
-
338  void sendSharp(const uint16_t address, const uint16_t command,
-
339  const uint16_t nbits = kSharpBits,
-
340  const uint16_t repeat = kNoRepeat);
-
341  void sendSharpRaw(const uint64_t data, const uint16_t nbits = kSharpBits,
-
342  const uint16_t repeat = kNoRepeat);
-
343 #endif
-
344 #if SEND_SHARP_AC
-
345  void sendSharpAc(const unsigned char data[],
-
346  const uint16_t nbytes = kSharpAcStateLength,
-
347  const uint16_t repeat = kSharpAcDefaultRepeat);
-
348 #endif // SEND_SHARP_AC
-
349 #if SEND_JVC
-
350  void sendJVC(uint64_t data, uint16_t nbits = kJvcBits,
-
351  uint16_t repeat = kNoRepeat);
-
352  uint16_t encodeJVC(uint8_t address, uint8_t command);
-
353 #endif
-
354 #if SEND_DENON
-
355  void sendDenon(uint64_t data, uint16_t nbits = kDenonBits,
-
356  uint16_t repeat = kNoRepeat);
-
357 #endif
-
358 #if SEND_SANYO
-
359  uint64_t encodeSanyoLC7461(uint16_t address, uint8_t command);
-
360  void sendSanyoLC7461(const uint64_t data,
-
361  const uint16_t nbits = kSanyoLC7461Bits,
-
362  const uint16_t repeat = kNoRepeat);
-
363 #endif
-
364 #if SEND_SANYO_AC
-
365  void sendSanyoAc(const uint8_t *data,
-
366  const uint16_t nbytes = kSanyoAcStateLength,
-
367  const uint16_t repeat = kNoRepeat);
-
368 #endif // SEND_SANYO_AC
-
369 #if SEND_SANYO_AC88
-
370  void sendSanyoAc88(const uint8_t *data,
-
371  const uint16_t nbytes = kSanyoAc88StateLength,
-
372  const uint16_t repeat = kSanyoAc88MinRepeat);
-
373 #endif // SEND_SANYO_AC88
-
374 #if SEND_SANYO_AC152
-
375  void sendSanyoAc152(const uint8_t *data,
-
376  const uint16_t nbytes = kSanyoAc152StateLength,
-
377  const uint16_t repeat = kSanyoAc152MinRepeat);
-
378 #endif // SEND_SANYO_AC152
-
379 #if SEND_DISH
-
380  // sendDISH() should typically be called with repeat=3 as DISH devices
-
381  // expect the code to be sent at least 4 times. (code + 3 repeats = 4 codes)
-
382  // Legacy use of this procedure was only to send a single code
-
383  // so use repeat=0 for backward compatibility.
-
384  void sendDISH(uint64_t data, uint16_t nbits = kDishBits,
-
385  uint16_t repeat = kDishMinRepeat);
-
386 #endif
-
387 #if (SEND_PANASONIC || SEND_DENON)
-
388  void sendPanasonic64(const uint64_t data,
-
389  const uint16_t nbits = kPanasonicBits,
-
390  const uint16_t repeat = kNoRepeat);
-
391  void sendPanasonic(const uint16_t address, const uint32_t data,
-
392  const uint16_t nbits = kPanasonicBits,
-
393  const uint16_t repeat = kNoRepeat);
-
394  uint64_t encodePanasonic(const uint16_t manufacturer, const uint8_t device,
-
395  const uint8_t subdevice, const uint8_t function);
-
396 #endif
-
397 #if SEND_RC5
-
398  void sendRC5(const uint64_t data, uint16_t nbits = kRC5XBits,
-
399  const uint16_t repeat = kNoRepeat);
-
400  uint16_t encodeRC5(const uint8_t address, const uint8_t command,
-
401  const bool key_released = false);
-
402  uint16_t encodeRC5X(const uint8_t address, const uint8_t command,
-
403  const bool key_released = false);
-
404  uint64_t toggleRC5(const uint64_t data);
-
405 #endif
-
406 #if SEND_RC6
-
407  void sendRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits,
-
408  const uint16_t repeat = kNoRepeat);
-
409  uint64_t encodeRC6(const uint32_t address, const uint8_t command,
-
410  const uint16_t mode = kRC6Mode0Bits);
-
411  uint64_t toggleRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits);
-
412 #endif
-
413 #if SEND_RCMM
-
414  void sendRCMM(uint64_t data, uint16_t nbits = kRCMMBits,
-
415  uint16_t repeat = kNoRepeat);
-
416 #endif
-
417 #if SEND_COOLIX
-
418  void sendCOOLIX(const uint64_t data, const uint16_t nbits = kCoolixBits,
-
419  const uint16_t repeat = kCoolixDefaultRepeat);
-
420 #endif // SEND_COOLIX
-
421 #if SEND_COOLIX48
-
422  void sendCoolix48(const uint64_t data, const uint16_t nbits = kCoolix48Bits,
-
423  const uint16_t repeat = kCoolixDefaultRepeat);
-
424 #endif // SEND_COOLIX48
-
425 #if SEND_WHYNTER
-
426  void sendWhynter(const uint64_t data, const uint16_t nbits = kWhynterBits,
-
427  const uint16_t repeat = kNoRepeat);
-
428 #endif
-
429 #if SEND_MIRAGE
-
430  void sendMirage(const unsigned char data[],
-
431  const uint16_t nbytes = kMirageStateLength,
-
432  const uint16_t repeat = kMirageMinRepeat);
-
433 #endif // SEND_MIRAGE
-
434 #if SEND_MITSUBISHI
-
435  void sendMitsubishi(uint64_t data, uint16_t nbits = kMitsubishiBits,
-
436  uint16_t repeat = kMitsubishiMinRepeat);
-
437 #endif
-
438 #if SEND_MITSUBISHI136
-
439  void sendMitsubishi136(const unsigned char data[],
-
440  const uint16_t nbytes = kMitsubishi136StateLength,
-
441  const uint16_t repeat = kMitsubishi136MinRepeat);
-
442 #endif
-
443 #if SEND_MITSUBISHI112
-
444  void sendMitsubishi112(const unsigned char data[],
-
445  const uint16_t nbytes = kMitsubishi112StateLength,
-
446  const uint16_t repeat = kMitsubishi112MinRepeat);
-
447 #endif
-
448 #if SEND_MITSUBISHI2
-
449  void sendMitsubishi2(uint64_t data, uint16_t nbits = kMitsubishiBits,
-
450  uint16_t repeat = kMitsubishiMinRepeat);
-
451 #endif
-
452 #if SEND_MITSUBISHI_AC
-
453  void sendMitsubishiAC(const unsigned char data[],
-
454  const uint16_t nbytes = kMitsubishiACStateLength,
-
455  const uint16_t repeat = kMitsubishiACMinRepeat);
-
456 #endif
-
457 #if SEND_MITSUBISHIHEAVY
-
458  void sendMitsubishiHeavy88(
-
459  const unsigned char data[],
-
460  const uint16_t nbytes = kMitsubishiHeavy88StateLength,
-
461  const uint16_t repeat = kMitsubishiHeavy88MinRepeat);
-
462  void sendMitsubishiHeavy152(
-
463  const unsigned char data[],
-
464  const uint16_t nbytes = kMitsubishiHeavy152StateLength,
-
465  const uint16_t repeat = kMitsubishiHeavy152MinRepeat);
-
466 #endif
-
467 #if SEND_FUJITSU_AC
-
468  void sendFujitsuAC(const unsigned char data[], const uint16_t nbytes,
-
469  const uint16_t repeat = kFujitsuAcMinRepeat);
-
470 #endif
-
471 #if SEND_INAX
-
472  void sendInax(const uint64_t data, const uint16_t nbits = kInaxBits,
-
473  const uint16_t repeat = kInaxMinRepeat);
-
474 #endif // SEND_INAX
-
475 #if SEND_GLOBALCACHE
-
476  void sendGC(uint16_t buf[], uint16_t len);
-
477 #endif
-
478 #if SEND_KELVINATOR
-
479  void sendKelvinator(const unsigned char data[],
-
480  const uint16_t nbytes = kKelvinatorStateLength,
-
481  const uint16_t repeat = kKelvinatorDefaultRepeat);
-
482 #endif
-
483 #if SEND_DAIKIN
-
484  void sendDaikin(const unsigned char data[],
-
485  const uint16_t nbytes = kDaikinStateLength,
-
486  const uint16_t repeat = kDaikinDefaultRepeat);
-
487 #endif
-
488 #if SEND_DAIKIN64
-
489  void sendDaikin64(const uint64_t data, const uint16_t nbits = kDaikin64Bits,
-
490  const uint16_t repeat = kDaikin64DefaultRepeat);
-
491 #endif // SEND_DAIKIN64
-
492 #if SEND_DAIKIN128
-
493  void sendDaikin128(const unsigned char data[],
-
494  const uint16_t nbytes = kDaikin128StateLength,
-
495  const uint16_t repeat = kDaikin128DefaultRepeat);
-
496 #endif // SEND_DAIKIN128
-
497 #if SEND_DAIKIN152
-
498  void sendDaikin152(const unsigned char data[],
-
499  const uint16_t nbytes = kDaikin152StateLength,
-
500  const uint16_t repeat = kDaikin152DefaultRepeat);
-
501 #endif // SEND_DAIKIN152
-
502 #if SEND_DAIKIN160
-
503  void sendDaikin160(const unsigned char data[],
-
504  const uint16_t nbytes = kDaikin160StateLength,
-
505  const uint16_t repeat = kDaikin160DefaultRepeat);
-
506 #endif // SEND_DAIKIN160
-
507 #if SEND_DAIKIN176
-
508  void sendDaikin176(const unsigned char data[],
-
509  const uint16_t nbytes = kDaikin176StateLength,
-
510  const uint16_t repeat = kDaikin176DefaultRepeat);
-
511 #endif // SEND_DAIKIN176
-
512 #if SEND_DAIKIN2
-
513  void sendDaikin2(const unsigned char data[],
-
514  const uint16_t nbytes = kDaikin2StateLength,
-
515  const uint16_t repeat = kDaikin2DefaultRepeat);
-
516 #endif
-
517 #if SEND_DAIKIN200
-
518  void sendDaikin200(const unsigned char data[],
-
519  const uint16_t nbytes = kDaikin200StateLength,
-
520  const uint16_t repeat = kDaikin200DefaultRepeat);
-
521 #endif // SEND_DAIKIN200
-
522 #if SEND_DAIKIN216
-
523  void sendDaikin216(const unsigned char data[],
-
524  const uint16_t nbytes = kDaikin216StateLength,
-
525  const uint16_t repeat = kDaikin216DefaultRepeat);
-
526 #endif // SEND_DAIKIN216
-
527 #if SEND_DAIKIN312
-
528  void sendDaikin312(const unsigned char data[],
-
529  const uint16_t nbytes = kDaikin312StateLength,
-
530  const uint16_t repeat = kDaikin312DefaultRepeat);
-
531 #endif // SEND_DAIKIN312
-
532 #if SEND_AIWA_RC_T501
-
533  void sendAiwaRCT501(uint64_t data, uint16_t nbits = kAiwaRcT501Bits,
-
534  uint16_t repeat = kAiwaRcT501MinRepeats);
-
535 #endif
-
536 #if SEND_GREE
-
537  void sendGree(const uint64_t data, const uint16_t nbits = kGreeBits,
-
538  const uint16_t repeat = kGreeDefaultRepeat);
-
539  void sendGree(const uint8_t data[], const uint16_t nbytes = kGreeStateLength,
-
540  const uint16_t repeat = kGreeDefaultRepeat);
-
541 #endif
-
542 #if SEND_GOODWEATHER
-
543  void sendGoodweather(const uint64_t data,
-
544  const uint16_t nbits = kGoodweatherBits,
-
545  const uint16_t repeat = kGoodweatherMinRepeat);
-
546 #endif // SEND_GOODWEATHER
-
547 #if SEND_GORENJE
-
548  void sendGorenje(const uint64_t data, const uint16_t nbits = kGorenjeBits,
-
549  const uint16_t repeat = kNoRepeat);
-
550 #endif // SEND_GORENJE
-
551 #if SEND_PRONTO
-
552  void sendPronto(uint16_t data[], uint16_t len, uint16_t repeat = kNoRepeat);
-
553 #endif
-
554 #if SEND_ARGO
-
555  void sendArgo(const unsigned char data[],
-
556  const uint16_t nbytes = kArgoStateLength,
-
557  const uint16_t repeat = kArgoDefaultRepeat,
-
558  bool sendFooter = false);
-
559  void sendArgoWREM3(const unsigned char data[],
-
560  const uint16_t nbytes = kArgoStateLength,
-
561  const uint16_t repeat = kArgoDefaultRepeat);
-
562 #endif // SEND_ARGO
-
563 #if SEND_TROTEC
-
564  void sendTrotec(const unsigned char data[],
-
565  const uint16_t nbytes = kTrotecStateLength,
-
566  const uint16_t repeat = kTrotecDefaultRepeat);
-
567 #endif // SEND_TROTEC
-
568 #if SEND_TROTEC_3550
-
569  void sendTrotec3550(const unsigned char data[],
-
570  const uint16_t nbytes = kTrotecStateLength,
-
571  const uint16_t repeat = kTrotecDefaultRepeat);
-
572 #endif // SEND_TROTEC_3550
-
573 #if SEND_NIKAI
-
574  void sendNikai(uint64_t data, uint16_t nbits = kNikaiBits,
-
575  uint16_t repeat = kNoRepeat);
-
576 #endif
-
577 #if SEND_TOSHIBA_AC
-
578  void sendToshibaAC(const uint8_t data[],
-
579  const uint16_t nbytes = kToshibaACStateLength,
-
580  const uint16_t repeat = kToshibaACMinRepeat);
-
581 #endif
-
582 #if SEND_MIDEA
-
583  void sendMidea(uint64_t data, uint16_t nbits = kMideaBits,
-
584  uint16_t repeat = kMideaMinRepeat);
-
585 #endif // SEND_MIDEA
-
586 #if SEND_MIDEA24
-
587  void sendMidea24(const uint64_t data, const uint16_t nbits = kMidea24Bits,
-
588  const uint16_t repeat = kMidea24MinRepeat);
-
589 #endif // SEND_MIDEA24
-
590 #if SEND_MAGIQUEST
-
591  void sendMagiQuest(const uint64_t data, const uint16_t nbits = kMagiquestBits,
-
592  const uint16_t repeat = kNoRepeat);
-
593  uint64_t encodeMagiQuest(const uint32_t wand_id, const uint16_t magnitude);
-
594 #endif
-
595 #if SEND_LASERTAG
-
596  void sendLasertag(uint64_t data, uint16_t nbits = kLasertagBits,
-
597  uint16_t repeat = kLasertagMinRepeat);
-
598 #endif
-
599 #if SEND_CARRIER_AC
-
600  void sendCarrierAC(uint64_t data, uint16_t nbits = kCarrierAcBits,
-
601  uint16_t repeat = kCarrierAcMinRepeat);
-
602 #endif
-
603 #if SEND_CARRIER_AC40
-
604  void sendCarrierAC40(uint64_t data, uint16_t nbits = kCarrierAc40Bits,
-
605  uint16_t repeat = kCarrierAc40MinRepeat);
-
606 #endif
-
607 #if SEND_CARRIER_AC64
-
608  void sendCarrierAC64(uint64_t data, uint16_t nbits = kCarrierAc64Bits,
-
609  uint16_t repeat = kCarrierAc64MinRepeat);
-
610 #endif
-
611 #if SEND_CARRIER_AC84
-
612  void sendCarrierAC84(const uint8_t data[],
-
613  const uint16_t nbytes = kCarrierAc84StateLength,
-
614  const uint16_t repeat = kNoRepeat);
-
615 #endif // SEND_CARRIER_AC84
-
616 #if SEND_CARRIER_AC128
-
617  void sendCarrierAC128(const uint8_t data[],
-
618  uint16_t nbytes = kCarrierAc128StateLength,
-
619  uint16_t repeat = kCarrierAc128MinRepeat);
-
620 #endif // SEND_CARRIER_AC128
-
621 #if (SEND_HAIER_AC || SEND_HAIER_AC_YRW02 || SEND_HAIER_AC176)
-
622  void sendHaierAC(const unsigned char data[],
-
623  const uint16_t nbytes = kHaierACStateLength,
-
624  const uint16_t repeat = kHaierAcDefaultRepeat);
-
625 #endif // (SEND_HAIER_AC || SEND_HAIER_AC_YRW02 || SEND_HAIER_AC176)
-
626 #if SEND_HAIER_AC_YRW02
-
627  void sendHaierACYRW02(const unsigned char data[],
-
628  const uint16_t nbytes = kHaierACYRW02StateLength,
-
629  const uint16_t repeat = kHaierAcYrw02DefaultRepeat);
-
630 #endif // SEND_HAIER_AC_YRW02
-
631 #if SEND_HAIER_AC160
-
632  void sendHaierAC160(const unsigned char data[],
-
633  const uint16_t nbytes = kHaierAC160StateLength,
-
634  const uint16_t repeat = kHaierAc160DefaultRepeat);
-
635 #endif // SEND_HAIER_AC160
-
636 #if SEND_HAIER_AC176
-
637  void sendHaierAC176(const unsigned char data[],
-
638  const uint16_t nbytes = kHaierAC176StateLength,
-
639  const uint16_t repeat = kHaierAc176DefaultRepeat);
-
640 #endif // SEND_HAIER_AC176
-
641 #if SEND_HITACHI_AC
-
642  void sendHitachiAC(const unsigned char data[],
-
643  const uint16_t nbytes = kHitachiAcStateLength,
-
644  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
645 #endif
-
646 #if SEND_HITACHI_AC1
-
647  void sendHitachiAC1(const unsigned char data[],
-
648  const uint16_t nbytes = kHitachiAc1StateLength,
-
649  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
650 #endif
-
651 #if SEND_HITACHI_AC2
-
652  void sendHitachiAC2(const unsigned char data[],
-
653  const uint16_t nbytes = kHitachiAc2StateLength,
-
654  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
655 #endif
-
656 #if SEND_HITACHI_AC3
-
657  void sendHitachiAc3(const unsigned char data[],
-
658  const uint16_t nbytes, // No default as there as so many
-
659  // different sizes
-
660  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
661 #endif // SEND_HITACHI_AC3
-
662 #if SEND_HITACHI_AC264
-
663  void sendHitachiAc264(const unsigned char data[],
-
664  const uint16_t nbytes = kHitachiAc264StateLength,
-
665  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
666 #endif // SEND_HITACHI_AC264
-
667 #if SEND_HITACHI_AC296
-
668  void sendHitachiAc296(const unsigned char data[],
-
669  const uint16_t nbytes = kHitachiAc296StateLength,
-
670  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
671 #endif // SEND_HITACHI_AC296
-
672 #if SEND_HITACHI_AC344
-
673  void sendHitachiAc344(const unsigned char data[],
-
674  const uint16_t nbytes = kHitachiAc344StateLength,
-
675  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
676 #endif // SEND_HITACHI_AC344
-
677 #if SEND_HITACHI_AC424
-
678  void sendHitachiAc424(const unsigned char data[],
-
679  const uint16_t nbytes = kHitachiAc424StateLength,
-
680  const uint16_t repeat = kHitachiAcDefaultRepeat);
-
681 #endif // SEND_HITACHI_AC424
-
682 #if SEND_GICABLE
-
683  void sendGICable(uint64_t data, uint16_t nbits = kGicableBits,
-
684  uint16_t repeat = kGicableMinRepeat);
-
685 #endif
-
686 #if SEND_WHIRLPOOL_AC
-
687  void sendWhirlpoolAC(const unsigned char data[],
-
688  const uint16_t nbytes = kWhirlpoolAcStateLength,
-
689  const uint16_t repeat = kWhirlpoolAcDefaultRepeat);
-
690 #endif
-
691 #if SEND_LUTRON
-
692  void sendLutron(uint64_t data, uint16_t nbits = kLutronBits,
-
693  uint16_t repeat = kNoRepeat);
-
694 #endif
-
695 #if SEND_ELECTRA_AC
-
696  void sendElectraAC(const unsigned char data[],
-
697  const uint16_t nbytes = kElectraAcStateLength,
-
698  const uint16_t repeat = kNoRepeat);
-
699 #endif
-
700 #if SEND_PANASONIC_AC
-
701  void sendPanasonicAC(const unsigned char data[],
-
702  const uint16_t nbytes = kPanasonicAcStateLength,
-
703  const uint16_t repeat = kPanasonicAcDefaultRepeat);
-
704 #endif // SEND_PANASONIC_AC
-
705 #if SEND_PANASONIC_AC32
-
706  void sendPanasonicAC32(const uint64_t data,
-
707  const uint16_t nbits = kPanasonicAc32Bits,
-
708  const uint16_t repeat = kPanasonicAcDefaultRepeat);
-
709 #endif // SEND_PANASONIC_AC32
-
710 #if SEND_PIONEER
-
711  void sendPioneer(const uint64_t data, const uint16_t nbits = kPioneerBits,
-
712  const uint16_t repeat = kNoRepeat);
-
713  uint64_t encodePioneer(uint16_t address, uint16_t command);
-
714 #endif
-
715 #if SEND_MWM
-
716  void sendMWM(const unsigned char data[], const uint16_t nbytes,
-
717  const uint16_t repeat = kNoRepeat);
-
718 #endif
-
719 #if SEND_VESTEL_AC
-
720  void sendVestelAc(const uint64_t data, const uint16_t nbits = kVestelAcBits,
-
721  const uint16_t repeat = kNoRepeat);
-
722 #endif
-
723 #if SEND_TCL96AC
-
724  void sendTcl96Ac(const unsigned char data[],
-
725  const uint16_t nbytes = kTcl96AcStateLength,
-
726  const uint16_t repeat = kTcl96AcDefaultRepeat);
-
727 #endif // SEND_TCL96AC
-
728 #if SEND_TCL112AC
-
729  void sendTcl112Ac(const unsigned char data[],
-
730  const uint16_t nbytes = kTcl112AcStateLength,
-
731  const uint16_t repeat = kTcl112AcDefaultRepeat);
-
732 #endif // SEND_TCL112AC
-
733 #if SEND_TECO
-
734  void sendTeco(const uint64_t data, const uint16_t nbits = kTecoBits,
-
735  const uint16_t repeat = kNoRepeat);
-
736 #endif
-
737 #if SEND_LEGOPF
-
738  void sendLegoPf(const uint64_t data, const uint16_t nbits = kLegoPfBits,
-
739  const uint16_t repeat = kLegoPfMinRepeat);
-
740 #endif
-
741 #if SEND_NEOCLIMA
-
742  void sendNeoclima(const unsigned char data[],
-
743  const uint16_t nbytes = kNeoclimaStateLength,
-
744  const uint16_t repeat = kNeoclimaMinRepeat);
-
745 #endif // SEND_NEOCLIMA
-
746 #if SEND_AMCOR
-
747  void sendAmcor(const unsigned char data[],
-
748  const uint16_t nbytes = kAmcorStateLength,
-
749  const uint16_t repeat = kAmcorDefaultRepeat);
-
750 #endif // SEND_AMCOR
-
751 #if SEND_EPSON
-
752  void sendEpson(uint64_t data, uint16_t nbits = kEpsonBits,
-
753  uint16_t repeat = kEpsonMinRepeat);
-
754 #endif
-
755 #if SEND_SYMPHONY
-
756  void sendSymphony(uint64_t data, uint16_t nbits = kSymphonyBits,
-
757  uint16_t repeat = kSymphonyDefaultRepeat);
-
758 #endif
-
759 #if SEND_AIRWELL
-
760  void sendAirwell(uint64_t data, uint16_t nbits = kAirwellBits,
-
761  uint16_t repeat = kAirwellMinRepeats);
-
762 #endif
-
763 #if SEND_DELONGHI_AC
-
764  void sendDelonghiAc(uint64_t data, uint16_t nbits = kDelonghiAcBits,
-
765  uint16_t repeat = kDelonghiAcDefaultRepeat);
-
766 #endif
-
767 #if SEND_DOSHISHA
-
768  void sendDoshisha(const uint64_t data, uint16_t nbits = kDoshishaBits,
-
769  const uint16_t repeat = kNoRepeat);
-
770  uint64_t encodeDoshisha(const uint8_t command, const uint8_t channel = 0);
-
771 #endif // SEND_DOSHISHA
-
772 #if SEND_MULTIBRACKETS
-
773  void sendMultibrackets(const uint64_t data,
-
774  const uint16_t nbits = kMultibracketsBits,
-
775  const uint16_t repeat = kMultibracketsDefaultRepeat);
-
776 #endif
-
777 #if SEND_TECHNIBEL_AC
-
778  void sendTechnibelAc(uint64_t data, uint16_t nbits = kTechnibelAcBits,
-
779  uint16_t repeat = kTechnibelAcDefaultRepeat);
-
780 #endif
-
781 #if SEND_CORONA_AC
-
782  void sendCoronaAc(const uint8_t data[],
-
783  const uint16_t nbytes = kCoronaAcStateLength,
-
784  const uint16_t repeat = kNoRepeat);
-
785 #endif // SEND_CORONA_AC
-
786 #if SEND_ZEPEAL
-
787  void sendZepeal(const uint64_t data,
-
788  const uint16_t nbits = kZepealBits,
-
789  const uint16_t repeat = kZepealMinRepeat);
-
790 #endif // SEND_ZEPEAL
-
791 #if SEND_VOLTAS
-
792  void sendVoltas(const unsigned char data[],
-
793  const uint16_t nbytes = kVoltasStateLength,
-
794  const uint16_t repeat = kNoRepeat);
-
795 #endif // SEND_VOLTAS
-
796 #if SEND_METZ
-
797  void sendMetz(const uint64_t data,
-
798  const uint16_t nbits = kMetzBits,
-
799  const uint16_t repeat = kMetzMinRepeat);
-
800  static uint32_t encodeMetz(const uint8_t address, const uint8_t command,
-
801  const bool toggle = false);
-
802 #endif // SEND_METZ
-
803 #if SEND_TRANSCOLD
-
804  void sendTranscold(const uint64_t data, const uint16_t nbits = kTranscoldBits,
-
805  const uint16_t repeat = kTranscoldDefaultRepeat);
-
806 #endif // SEND_TRANSCOLD
-
807 #if SEND_ELITESCREENS
-
808  void sendElitescreens(const uint64_t data,
-
809  const uint16_t nbits = kEliteScreensBits,
-
810  const uint16_t repeat = kEliteScreensDefaultRepeat);
-
811 #endif // SEND_ELITESCREENS
-
812 #if SEND_MILESTAG2
-
813  // Since There 2 types of transmissions
-
814  // (14bits for Shooting by default, you can set 24 bit for msg delivery)
-
815  void sendMilestag2(const uint64_t data,
-
816  const uint16_t nbits = kMilesTag2ShotBits,
-
817  const uint16_t repeat = kMilesMinRepeat);
-
818 #endif // SEND_MILESTAG2
-
819 #if SEND_ECOCLIM
-
820  void sendEcoclim(const uint64_t data, const uint16_t nbits = kEcoclimBits,
-
821  const uint16_t repeat = kNoRepeat);
-
822 #endif // SEND_ECOCLIM
-
823 #if SEND_XMP
-
824  void sendXmp(const uint64_t data, const uint16_t nbits = kXmpBits,
-
825  const uint16_t repeat = kNoRepeat);
-
826 #endif // SEND_XMP
-
827 #if SEND_TRUMA
-
828  void sendTruma(const uint64_t data, const uint16_t nbits = kTrumaBits,
-
829  const uint16_t repeat = kNoRepeat);
-
830 #endif // SEND_TRUMA
-
831 #if SEND_TEKNOPOINT
-
832  void sendTeknopoint(const unsigned char data[],
-
833  const uint16_t nbytes = kTeknopointStateLength,
-
834  const uint16_t repeat = kNoRepeat);
-
835 #endif // SEND_TEKNOPOINT
-
836 #if SEND_KELON
-
837  void sendKelon(const uint64_t data, const uint16_t nbits = kKelonBits,
-
838  const uint16_t repeat = kNoRepeat);
-
839 #endif // SEND_KELON
-
840 #if SEND_KELON168
-
841  void sendKelon168(const unsigned char data[],
-
842  const uint16_t nbytes = kKelon168StateLength,
-
843  const uint16_t repeat = kNoRepeat);
-
844 #endif // SEND_KELON168
-
845 #if SEND_BOSE
-
846  void sendBose(const uint64_t data, const uint16_t nbits = kBoseBits,
-
847  const uint16_t repeat = kNoRepeat);
-
848 #endif // SEND_BOSE
-
849 #if SEND_ARRIS
-
850  void sendArris(const uint64_t data, const uint16_t nbits = kArrisBits,
-
851  const uint16_t repeat = kNoRepeat);
-
852  static uint32_t toggleArrisRelease(const uint32_t data);
-
853  static uint32_t encodeArris(const uint32_t command, const bool release);
-
854 #endif // SEND_ARRIS
-
855 #if SEND_RHOSS
-
856  void sendRhoss(const unsigned char data[],
-
857  const uint16_t nbytes = kRhossStateLength,
-
858  const uint16_t repeat = kRhossDefaultRepeat);
-
859 #endif // SEND_RHOSS
-
860 #if SEND_AIRTON
-
861  void sendAirton(const uint64_t data, const uint16_t nbits = kAirtonBits,
-
862  const uint16_t repeat = kAirtonDefaultRepeat);
-
863 #endif // SEND_AIRTON
-
864 #if SEND_TOTO
-
865  void sendToto(const uint64_t data, const uint16_t nbits = kTotoBits,
-
866  const uint16_t repeat = kTotoDefaultRepeat);
-
867 #endif // SEND_TOTO
-
868 #if SEND_CLIMABUTLER
-
869  void sendClimaButler(const uint64_t data,
-
870  const uint16_t nbits = kClimaButlerBits,
-
871  const uint16_t repeat = kNoRepeat);
-
872 #endif // SEND_CLIMABUTLER
-
873 #if SEND_BOSCH144
-
874  void sendBosch144(const unsigned char data[],
-
875  const uint16_t nbytes = kBosch144StateLength,
-
876  const uint16_t repeat = kNoRepeat);
-
877 #endif // SEND_BOSCH144
-
878 #if SEND_WOWWEE
-
879  void sendWowwee(const uint64_t data, const uint16_t nbits = kWowweeBits,
-
880  const uint16_t repeat = kWowweeDefaultRepeat);
-
881 #endif // SEND_WOWWEE
-
882 #if SEND_YORK
-
883  void sendYork(const unsigned char data[],
-
884  const uint16_t nbytes = kYorkStateLength,
-
885  const uint16_t repeat = kNoRepeat);
-
886 #endif // SEND_YORK
-
887 
-
888  protected:
-
889 #ifdef UNIT_TEST
-
890 #ifndef HIGH
-
891 #define HIGH 0x1
-
892 #endif
-
893 #ifndef LOW
-
894 #define LOW 0x0
-
895 #endif
-
896 #endif // UNIT_TEST
-
897  uint8_t outputOn;
-
898  uint8_t outputOff;
-
899  VIRTUAL void ledOff();
-
900  VIRTUAL void ledOn();
-
901 #ifndef UNIT_TEST
-
902 
-
903  private:
-
904 #else
-
905  uint32_t _freq_unittest;
-
906 #endif // UNIT_TEST
-
907  uint16_t onTimePeriod;
-
908  uint16_t offTimePeriod;
-
909  uint16_t IRpin;
-
910  int8_t periodOffset;
-
911  uint8_t _dutycycle;
-
912  bool modulation;
-
913  uint32_t calcUSecPeriod(uint32_t hz, bool use_offset = true);
-
914 #if SEND_SONY
-
915  void _sendSony(const uint64_t data, const uint16_t nbits,
-
916  const uint16_t repeat, const uint16_t freq);
-
917 #endif // SEND_SONY
-
918 };
-
919 
-
920 #endif // IRSEND_H_
+
313  // `sendSAMSUNG()` is required by `sendLG()`
+
314 #if (SEND_SAMSUNG || SEND_LG)
+
315  void sendSAMSUNG(const uint64_t data, const uint16_t nbits = kSamsungBits,
+
316  const uint16_t repeat = kNoRepeat);
+
317  uint32_t encodeSAMSUNG(const uint8_t customer, const uint8_t command);
+
318 #endif // (SEND_SAMSUNG || SEND_LG)
+
319 #if SEND_SAMSUNG36
+
320  void sendSamsung36(const uint64_t data, const uint16_t nbits = kSamsung36Bits,
+
321  const uint16_t repeat = kNoRepeat);
+
322 #endif
+
323 #if SEND_SAMSUNG_AC
+
324  void sendSamsungAC(const unsigned char data[],
+
325  const uint16_t nbytes = kSamsungAcStateLength,
+
326  const uint16_t repeat = kSamsungAcDefaultRepeat);
+
327 #endif
+
328 #if SEND_LG
+
329  void sendLG(uint64_t data, uint16_t nbits = kLgBits,
+
330  uint16_t repeat = kNoRepeat);
+
331  void sendLG2(uint64_t data, uint16_t nbits = kLgBits,
+
332  uint16_t repeat = kNoRepeat);
+
333  uint32_t encodeLG(uint16_t address, uint16_t command);
+
334 #endif
+
335 #if (SEND_SHARP || SEND_DENON)
+
336  uint32_t encodeSharp(const uint16_t address, const uint16_t command,
+
337  const uint16_t expansion = 1, const uint16_t check = 0,
+
338  const bool MSBfirst = false);
+
339  void sendSharp(const uint16_t address, const uint16_t command,
+
340  const uint16_t nbits = kSharpBits,
+
341  const uint16_t repeat = kNoRepeat);
+
342  void sendSharpRaw(const uint64_t data, const uint16_t nbits = kSharpBits,
+
343  const uint16_t repeat = kNoRepeat);
+
344 #endif
+
345 #if SEND_SHARP_AC
+
346  void sendSharpAc(const unsigned char data[],
+
347  const uint16_t nbytes = kSharpAcStateLength,
+
348  const uint16_t repeat = kSharpAcDefaultRepeat);
+
349 #endif // SEND_SHARP_AC
+
350 #if SEND_JVC
+
351  void sendJVC(uint64_t data, uint16_t nbits = kJvcBits,
+
352  uint16_t repeat = kNoRepeat);
+
353  uint16_t encodeJVC(uint8_t address, uint8_t command);
+
354 #endif
+
355 #if SEND_DENON
+
356  void sendDenon(uint64_t data, uint16_t nbits = kDenonBits,
+
357  uint16_t repeat = kNoRepeat);
+
358 #endif
+
359 #if SEND_SANYO
+
360  uint64_t encodeSanyoLC7461(uint16_t address, uint8_t command);
+
361  void sendSanyoLC7461(const uint64_t data,
+
362  const uint16_t nbits = kSanyoLC7461Bits,
+
363  const uint16_t repeat = kNoRepeat);
+
364 #endif
+
365 #if SEND_SANYO_AC
+
366  void sendSanyoAc(const uint8_t *data,
+
367  const uint16_t nbytes = kSanyoAcStateLength,
+
368  const uint16_t repeat = kNoRepeat);
+
369 #endif // SEND_SANYO_AC
+
370 #if SEND_SANYO_AC88
+
371  void sendSanyoAc88(const uint8_t *data,
+
372  const uint16_t nbytes = kSanyoAc88StateLength,
+
373  const uint16_t repeat = kSanyoAc88MinRepeat);
+
374 #endif // SEND_SANYO_AC88
+
375 #if SEND_SANYO_AC152
+
376  void sendSanyoAc152(const uint8_t *data,
+
377  const uint16_t nbytes = kSanyoAc152StateLength,
+
378  const uint16_t repeat = kSanyoAc152MinRepeat);
+
379 #endif // SEND_SANYO_AC152
+
380 #if SEND_DISH
+
381  // sendDISH() should typically be called with repeat=3 as DISH devices
+
382  // expect the code to be sent at least 4 times. (code + 3 repeats = 4 codes)
+
383  // Legacy use of this procedure was only to send a single code
+
384  // so use repeat=0 for backward compatibility.
+
385  void sendDISH(uint64_t data, uint16_t nbits = kDishBits,
+
386  uint16_t repeat = kDishMinRepeat);
+
387 #endif
+
388 #if (SEND_PANASONIC || SEND_DENON)
+
389  void sendPanasonic64(const uint64_t data,
+
390  const uint16_t nbits = kPanasonicBits,
+
391  const uint16_t repeat = kNoRepeat);
+
392  void sendPanasonic(const uint16_t address, const uint32_t data,
+
393  const uint16_t nbits = kPanasonicBits,
+
394  const uint16_t repeat = kNoRepeat);
+
395  uint64_t encodePanasonic(const uint16_t manufacturer, const uint8_t device,
+
396  const uint8_t subdevice, const uint8_t function);
+
397 #endif
+
398 #if SEND_RC5
+
399  void sendRC5(const uint64_t data, uint16_t nbits = kRC5XBits,
+
400  const uint16_t repeat = kNoRepeat);
+
401  uint16_t encodeRC5(const uint8_t address, const uint8_t command,
+
402  const bool key_released = false);
+
403  uint16_t encodeRC5X(const uint8_t address, const uint8_t command,
+
404  const bool key_released = false);
+
405  uint64_t toggleRC5(const uint64_t data);
+
406 #endif
+
407 #if SEND_RC6
+
408  void sendRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits,
+
409  const uint16_t repeat = kNoRepeat);
+
410  uint64_t encodeRC6(const uint32_t address, const uint8_t command,
+
411  const uint16_t mode = kRC6Mode0Bits);
+
412  uint64_t toggleRC6(const uint64_t data, const uint16_t nbits = kRC6Mode0Bits);
+
413 #endif
+
414 #if SEND_RCMM
+
415  void sendRCMM(uint64_t data, uint16_t nbits = kRCMMBits,
+
416  uint16_t repeat = kNoRepeat);
+
417 #endif
+
418 #if SEND_COOLIX
+
419  void sendCOOLIX(const uint64_t data, const uint16_t nbits = kCoolixBits,
+
420  const uint16_t repeat = kCoolixDefaultRepeat);
+
421 #endif // SEND_COOLIX
+
422 #if SEND_COOLIX48
+
423  void sendCoolix48(const uint64_t data, const uint16_t nbits = kCoolix48Bits,
+
424  const uint16_t repeat = kCoolixDefaultRepeat);
+
425 #endif // SEND_COOLIX48
+
426 #if SEND_WHYNTER
+
427  void sendWhynter(const uint64_t data, const uint16_t nbits = kWhynterBits,
+
428  const uint16_t repeat = kNoRepeat);
+
429 #endif
+
430 #if SEND_MIRAGE
+
431  void sendMirage(const unsigned char data[],
+
432  const uint16_t nbytes = kMirageStateLength,
+
433  const uint16_t repeat = kMirageMinRepeat);
+
434 #endif // SEND_MIRAGE
+
435 #if SEND_MITSUBISHI
+
436  void sendMitsubishi(uint64_t data, uint16_t nbits = kMitsubishiBits,
+
437  uint16_t repeat = kMitsubishiMinRepeat);
+
438 #endif
+
439 #if SEND_MITSUBISHI136
+
440  void sendMitsubishi136(const unsigned char data[],
+
441  const uint16_t nbytes = kMitsubishi136StateLength,
+
442  const uint16_t repeat = kMitsubishi136MinRepeat);
+
443 #endif
+
444 #if SEND_MITSUBISHI112
+
445  void sendMitsubishi112(const unsigned char data[],
+
446  const uint16_t nbytes = kMitsubishi112StateLength,
+
447  const uint16_t repeat = kMitsubishi112MinRepeat);
+
448 #endif
+
449 #if SEND_MITSUBISHI2
+
450  void sendMitsubishi2(uint64_t data, uint16_t nbits = kMitsubishiBits,
+
451  uint16_t repeat = kMitsubishiMinRepeat);
+
452 #endif
+
453 #if SEND_MITSUBISHI_AC
+
454  void sendMitsubishiAC(const unsigned char data[],
+
455  const uint16_t nbytes = kMitsubishiACStateLength,
+
456  const uint16_t repeat = kMitsubishiACMinRepeat);
+
457 #endif
+
458 #if SEND_MITSUBISHIHEAVY
+
459  void sendMitsubishiHeavy88(
+
460  const unsigned char data[],
+
461  const uint16_t nbytes = kMitsubishiHeavy88StateLength,
+
462  const uint16_t repeat = kMitsubishiHeavy88MinRepeat);
+
463  void sendMitsubishiHeavy152(
+
464  const unsigned char data[],
+
465  const uint16_t nbytes = kMitsubishiHeavy152StateLength,
+
466  const uint16_t repeat = kMitsubishiHeavy152MinRepeat);
+
467 #endif
+
468 #if SEND_FUJITSU_AC
+
469  void sendFujitsuAC(const unsigned char data[], const uint16_t nbytes,
+
470  const uint16_t repeat = kFujitsuAcMinRepeat);
+
471 #endif
+
472 #if SEND_INAX
+
473  void sendInax(const uint64_t data, const uint16_t nbits = kInaxBits,
+
474  const uint16_t repeat = kInaxMinRepeat);
+
475 #endif // SEND_INAX
+
476 #if SEND_GLOBALCACHE
+
477  void sendGC(uint16_t buf[], uint16_t len);
+
478 #endif
+
479 #if SEND_KELVINATOR
+
480  void sendKelvinator(const unsigned char data[],
+
481  const uint16_t nbytes = kKelvinatorStateLength,
+
482  const uint16_t repeat = kKelvinatorDefaultRepeat);
+
483 #endif
+
484 #if SEND_DAIKIN
+
485  void sendDaikin(const unsigned char data[],
+
486  const uint16_t nbytes = kDaikinStateLength,
+
487  const uint16_t repeat = kDaikinDefaultRepeat);
+
488 #endif
+
489 #if SEND_DAIKIN64
+
490  void sendDaikin64(const uint64_t data, const uint16_t nbits = kDaikin64Bits,
+
491  const uint16_t repeat = kDaikin64DefaultRepeat);
+
492 #endif // SEND_DAIKIN64
+
493 #if SEND_DAIKIN128
+
494  void sendDaikin128(const unsigned char data[],
+
495  const uint16_t nbytes = kDaikin128StateLength,
+
496  const uint16_t repeat = kDaikin128DefaultRepeat);
+
497 #endif // SEND_DAIKIN128
+
498 #if SEND_DAIKIN152
+
499  void sendDaikin152(const unsigned char data[],
+
500  const uint16_t nbytes = kDaikin152StateLength,
+
501  const uint16_t repeat = kDaikin152DefaultRepeat);
+
502 #endif // SEND_DAIKIN152
+
503 #if SEND_DAIKIN160
+
504  void sendDaikin160(const unsigned char data[],
+
505  const uint16_t nbytes = kDaikin160StateLength,
+
506  const uint16_t repeat = kDaikin160DefaultRepeat);
+
507 #endif // SEND_DAIKIN160
+
508 #if SEND_DAIKIN176
+
509  void sendDaikin176(const unsigned char data[],
+
510  const uint16_t nbytes = kDaikin176StateLength,
+
511  const uint16_t repeat = kDaikin176DefaultRepeat);
+
512 #endif // SEND_DAIKIN176
+
513 #if SEND_DAIKIN2
+
514  void sendDaikin2(const unsigned char data[],
+
515  const uint16_t nbytes = kDaikin2StateLength,
+
516  const uint16_t repeat = kDaikin2DefaultRepeat);
+
517 #endif
+
518 #if SEND_DAIKIN200
+
519  void sendDaikin200(const unsigned char data[],
+
520  const uint16_t nbytes = kDaikin200StateLength,
+
521  const uint16_t repeat = kDaikin200DefaultRepeat);
+
522 #endif // SEND_DAIKIN200
+
523 #if SEND_DAIKIN216
+
524  void sendDaikin216(const unsigned char data[],
+
525  const uint16_t nbytes = kDaikin216StateLength,
+
526  const uint16_t repeat = kDaikin216DefaultRepeat);
+
527 #endif // SEND_DAIKIN216
+
528 #if SEND_DAIKIN312
+
529  void sendDaikin312(const unsigned char data[],
+
530  const uint16_t nbytes = kDaikin312StateLength,
+
531  const uint16_t repeat = kDaikin312DefaultRepeat);
+
532 #endif // SEND_DAIKIN312
+
533 #if SEND_AIWA_RC_T501
+
534  void sendAiwaRCT501(uint64_t data, uint16_t nbits = kAiwaRcT501Bits,
+
535  uint16_t repeat = kAiwaRcT501MinRepeats);
+
536 #endif
+
537 #if SEND_GREE
+
538  void sendGree(const uint64_t data, const uint16_t nbits = kGreeBits,
+
539  const uint16_t repeat = kGreeDefaultRepeat);
+
540  void sendGree(const uint8_t data[], const uint16_t nbytes = kGreeStateLength,
+
541  const uint16_t repeat = kGreeDefaultRepeat);
+
542 #endif
+
543 #if SEND_GOODWEATHER
+
544  void sendGoodweather(const uint64_t data,
+
545  const uint16_t nbits = kGoodweatherBits,
+
546  const uint16_t repeat = kGoodweatherMinRepeat);
+
547 #endif // SEND_GOODWEATHER
+
548 #if SEND_GORENJE
+
549  void sendGorenje(const uint64_t data, const uint16_t nbits = kGorenjeBits,
+
550  const uint16_t repeat = kNoRepeat);
+
551 #endif // SEND_GORENJE
+
552 #if SEND_PRONTO
+
553  void sendPronto(uint16_t data[], uint16_t len, uint16_t repeat = kNoRepeat);
+
554 #endif
+
555 #if SEND_ARGO
+
556  void sendArgo(const unsigned char data[],
+
557  const uint16_t nbytes = kArgoStateLength,
+
558  const uint16_t repeat = kArgoDefaultRepeat,
+
559  bool sendFooter = false);
+
560  void sendArgoWREM3(const unsigned char data[],
+
561  const uint16_t nbytes = kArgoStateLength,
+
562  const uint16_t repeat = kArgoDefaultRepeat);
+
563 #endif // SEND_ARGO
+
564 #if SEND_TROTEC
+
565  void sendTrotec(const unsigned char data[],
+
566  const uint16_t nbytes = kTrotecStateLength,
+
567  const uint16_t repeat = kTrotecDefaultRepeat);
+
568 #endif // SEND_TROTEC
+
569 #if SEND_TROTEC_3550
+
570  void sendTrotec3550(const unsigned char data[],
+
571  const uint16_t nbytes = kTrotecStateLength,
+
572  const uint16_t repeat = kTrotecDefaultRepeat);
+
573 #endif // SEND_TROTEC_3550
+
574 #if SEND_NIKAI
+
575  void sendNikai(uint64_t data, uint16_t nbits = kNikaiBits,
+
576  uint16_t repeat = kNoRepeat);
+
577 #endif
+
578 #if SEND_TOSHIBA_AC
+
579  void sendToshibaAC(const uint8_t data[],
+
580  const uint16_t nbytes = kToshibaACStateLength,
+
581  const uint16_t repeat = kToshibaACMinRepeat);
+
582 #endif
+
583 #if SEND_MIDEA
+
584  void sendMidea(uint64_t data, uint16_t nbits = kMideaBits,
+
585  uint16_t repeat = kMideaMinRepeat);
+
586 #endif // SEND_MIDEA
+
587 #if SEND_MIDEA24
+
588  void sendMidea24(const uint64_t data, const uint16_t nbits = kMidea24Bits,
+
589  const uint16_t repeat = kMidea24MinRepeat);
+
590 #endif // SEND_MIDEA24
+
591 #if SEND_MAGIQUEST
+
592  void sendMagiQuest(const uint64_t data, const uint16_t nbits = kMagiquestBits,
+
593  const uint16_t repeat = kNoRepeat);
+
594  uint64_t encodeMagiQuest(const uint32_t wand_id, const uint16_t magnitude);
+
595 #endif
+
596 #if SEND_LASERTAG
+
597  void sendLasertag(uint64_t data, uint16_t nbits = kLasertagBits,
+
598  uint16_t repeat = kLasertagMinRepeat);
+
599 #endif
+
600 #if SEND_CARRIER_AC
+
601  void sendCarrierAC(uint64_t data, uint16_t nbits = kCarrierAcBits,
+
602  uint16_t repeat = kCarrierAcMinRepeat);
+
603 #endif
+
604 #if SEND_CARRIER_AC40
+
605  void sendCarrierAC40(uint64_t data, uint16_t nbits = kCarrierAc40Bits,
+
606  uint16_t repeat = kCarrierAc40MinRepeat);
+
607 #endif
+
608 #if SEND_CARRIER_AC64
+
609  void sendCarrierAC64(uint64_t data, uint16_t nbits = kCarrierAc64Bits,
+
610  uint16_t repeat = kCarrierAc64MinRepeat);
+
611 #endif
+
612 #if SEND_CARRIER_AC84
+
613  void sendCarrierAC84(const uint8_t data[],
+
614  const uint16_t nbytes = kCarrierAc84StateLength,
+
615  const uint16_t repeat = kNoRepeat);
+
616 #endif // SEND_CARRIER_AC84
+
617 #if SEND_CARRIER_AC128
+
618  void sendCarrierAC128(const uint8_t data[],
+
619  uint16_t nbytes = kCarrierAc128StateLength,
+
620  uint16_t repeat = kCarrierAc128MinRepeat);
+
621 #endif // SEND_CARRIER_AC128
+
622 #if (SEND_HAIER_AC || SEND_HAIER_AC_YRW02 || SEND_HAIER_AC176)
+
623  void sendHaierAC(const unsigned char data[],
+
624  const uint16_t nbytes = kHaierACStateLength,
+
625  const uint16_t repeat = kHaierAcDefaultRepeat);
+
626 #endif // (SEND_HAIER_AC || SEND_HAIER_AC_YRW02 || SEND_HAIER_AC176)
+
627 #if SEND_HAIER_AC_YRW02
+
628  void sendHaierACYRW02(const unsigned char data[],
+
629  const uint16_t nbytes = kHaierACYRW02StateLength,
+
630  const uint16_t repeat = kHaierAcYrw02DefaultRepeat);
+
631 #endif // SEND_HAIER_AC_YRW02
+
632 #if SEND_HAIER_AC160
+
633  void sendHaierAC160(const unsigned char data[],
+
634  const uint16_t nbytes = kHaierAC160StateLength,
+
635  const uint16_t repeat = kHaierAc160DefaultRepeat);
+
636 #endif // SEND_HAIER_AC160
+
637 #if SEND_HAIER_AC176
+
638  void sendHaierAC176(const unsigned char data[],
+
639  const uint16_t nbytes = kHaierAC176StateLength,
+
640  const uint16_t repeat = kHaierAc176DefaultRepeat);
+
641 #endif // SEND_HAIER_AC176
+
642 #if SEND_HITACHI_AC
+
643  void sendHitachiAC(const unsigned char data[],
+
644  const uint16_t nbytes = kHitachiAcStateLength,
+
645  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
646 #endif
+
647 #if SEND_HITACHI_AC1
+
648  void sendHitachiAC1(const unsigned char data[],
+
649  const uint16_t nbytes = kHitachiAc1StateLength,
+
650  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
651 #endif
+
652 #if SEND_HITACHI_AC2
+
653  void sendHitachiAC2(const unsigned char data[],
+
654  const uint16_t nbytes = kHitachiAc2StateLength,
+
655  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
656 #endif
+
657 #if SEND_HITACHI_AC3
+
658  void sendHitachiAc3(const unsigned char data[],
+
659  const uint16_t nbytes, // No default as there as so many
+
660  // different sizes
+
661  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
662 #endif // SEND_HITACHI_AC3
+
663 #if SEND_HITACHI_AC264
+
664  void sendHitachiAc264(const unsigned char data[],
+
665  const uint16_t nbytes = kHitachiAc264StateLength,
+
666  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
667 #endif // SEND_HITACHI_AC264
+
668 #if SEND_HITACHI_AC296
+
669  void sendHitachiAc296(const unsigned char data[],
+
670  const uint16_t nbytes = kHitachiAc296StateLength,
+
671  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
672 #endif // SEND_HITACHI_AC296
+
673 #if SEND_HITACHI_AC344
+
674  void sendHitachiAc344(const unsigned char data[],
+
675  const uint16_t nbytes = kHitachiAc344StateLength,
+
676  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
677 #endif // SEND_HITACHI_AC344
+
678 #if SEND_HITACHI_AC424
+
679  void sendHitachiAc424(const unsigned char data[],
+
680  const uint16_t nbytes = kHitachiAc424StateLength,
+
681  const uint16_t repeat = kHitachiAcDefaultRepeat);
+
682 #endif // SEND_HITACHI_AC424
+
683 #if SEND_GICABLE
+
684  void sendGICable(uint64_t data, uint16_t nbits = kGicableBits,
+
685  uint16_t repeat = kGicableMinRepeat);
+
686 #endif
+
687 #if SEND_WHIRLPOOL_AC
+
688  void sendWhirlpoolAC(const unsigned char data[],
+
689  const uint16_t nbytes = kWhirlpoolAcStateLength,
+
690  const uint16_t repeat = kWhirlpoolAcDefaultRepeat);
+
691 #endif
+
692 #if SEND_LUTRON
+
693  void sendLutron(uint64_t data, uint16_t nbits = kLutronBits,
+
694  uint16_t repeat = kNoRepeat);
+
695 #endif
+
696 #if SEND_ELECTRA_AC
+
697  void sendElectraAC(const unsigned char data[],
+
698  const uint16_t nbytes = kElectraAcStateLength,
+
699  const uint16_t repeat = kNoRepeat);
+
700 #endif
+
701 #if SEND_PANASONIC_AC
+
702  void sendPanasonicAC(const unsigned char data[],
+
703  const uint16_t nbytes = kPanasonicAcStateLength,
+
704  const uint16_t repeat = kPanasonicAcDefaultRepeat);
+
705 #endif // SEND_PANASONIC_AC
+
706 #if SEND_PANASONIC_AC32
+
707  void sendPanasonicAC32(const uint64_t data,
+
708  const uint16_t nbits = kPanasonicAc32Bits,
+
709  const uint16_t repeat = kPanasonicAcDefaultRepeat);
+
710 #endif // SEND_PANASONIC_AC32
+
711 #if SEND_PIONEER
+
712  void sendPioneer(const uint64_t data, const uint16_t nbits = kPioneerBits,
+
713  const uint16_t repeat = kNoRepeat);
+
714  uint64_t encodePioneer(uint16_t address, uint16_t command);
+
715 #endif
+
716 #if SEND_MWM
+
717  void sendMWM(const unsigned char data[], const uint16_t nbytes,
+
718  const uint16_t repeat = kNoRepeat);
+
719 #endif
+
720 #if SEND_VESTEL_AC
+
721  void sendVestelAc(const uint64_t data, const uint16_t nbits = kVestelAcBits,
+
722  const uint16_t repeat = kNoRepeat);
+
723 #endif
+
724 #if SEND_TCL96AC
+
725  void sendTcl96Ac(const unsigned char data[],
+
726  const uint16_t nbytes = kTcl96AcStateLength,
+
727  const uint16_t repeat = kTcl96AcDefaultRepeat);
+
728 #endif // SEND_TCL96AC
+
729 #if SEND_TCL112AC
+
730  void sendTcl112Ac(const unsigned char data[],
+
731  const uint16_t nbytes = kTcl112AcStateLength,
+
732  const uint16_t repeat = kTcl112AcDefaultRepeat);
+
733 #endif // SEND_TCL112AC
+
734 #if SEND_TECO
+
735  void sendTeco(const uint64_t data, const uint16_t nbits = kTecoBits,
+
736  const uint16_t repeat = kNoRepeat);
+
737 #endif
+
738 #if SEND_LEGOPF
+
739  void sendLegoPf(const uint64_t data, const uint16_t nbits = kLegoPfBits,
+
740  const uint16_t repeat = kLegoPfMinRepeat);
+
741 #endif
+
742 #if SEND_NEOCLIMA
+
743  void sendNeoclima(const unsigned char data[],
+
744  const uint16_t nbytes = kNeoclimaStateLength,
+
745  const uint16_t repeat = kNeoclimaMinRepeat);
+
746 #endif // SEND_NEOCLIMA
+
747 #if SEND_AMCOR
+
748  void sendAmcor(const unsigned char data[],
+
749  const uint16_t nbytes = kAmcorStateLength,
+
750  const uint16_t repeat = kAmcorDefaultRepeat);
+
751 #endif // SEND_AMCOR
+
752 #if SEND_EPSON
+
753  void sendEpson(uint64_t data, uint16_t nbits = kEpsonBits,
+
754  uint16_t repeat = kEpsonMinRepeat);
+
755 #endif
+
756 #if SEND_SYMPHONY
+
757  void sendSymphony(uint64_t data, uint16_t nbits = kSymphonyBits,
+
758  uint16_t repeat = kSymphonyDefaultRepeat);
+
759 #endif
+
760 #if SEND_AIRWELL
+
761  void sendAirwell(uint64_t data, uint16_t nbits = kAirwellBits,
+
762  uint16_t repeat = kAirwellMinRepeats);
+
763 #endif
+
764 #if SEND_DELONGHI_AC
+
765  void sendDelonghiAc(uint64_t data, uint16_t nbits = kDelonghiAcBits,
+
766  uint16_t repeat = kDelonghiAcDefaultRepeat);
+
767 #endif
+
768 #if SEND_DOSHISHA
+
769  void sendDoshisha(const uint64_t data, uint16_t nbits = kDoshishaBits,
+
770  const uint16_t repeat = kNoRepeat);
+
771  uint64_t encodeDoshisha(const uint8_t command, const uint8_t channel = 0);
+
772 #endif // SEND_DOSHISHA
+
773 #if SEND_MULTIBRACKETS
+
774  void sendMultibrackets(const uint64_t data,
+
775  const uint16_t nbits = kMultibracketsBits,
+
776  const uint16_t repeat = kMultibracketsDefaultRepeat);
+
777 #endif
+
778 #if SEND_TECHNIBEL_AC
+
779  void sendTechnibelAc(uint64_t data, uint16_t nbits = kTechnibelAcBits,
+
780  uint16_t repeat = kTechnibelAcDefaultRepeat);
+
781 #endif
+
782 #if SEND_CORONA_AC
+
783  void sendCoronaAc(const uint8_t data[],
+
784  const uint16_t nbytes = kCoronaAcStateLength,
+
785  const uint16_t repeat = kNoRepeat);
+
786 #endif // SEND_CORONA_AC
+
787 #if SEND_ZEPEAL
+
788  void sendZepeal(const uint64_t data,
+
789  const uint16_t nbits = kZepealBits,
+
790  const uint16_t repeat = kZepealMinRepeat);
+
791 #endif // SEND_ZEPEAL
+
792 #if SEND_VOLTAS
+
793  void sendVoltas(const unsigned char data[],
+
794  const uint16_t nbytes = kVoltasStateLength,
+
795  const uint16_t repeat = kNoRepeat);
+
796 #endif // SEND_VOLTAS
+
797 #if SEND_METZ
+
798  void sendMetz(const uint64_t data,
+
799  const uint16_t nbits = kMetzBits,
+
800  const uint16_t repeat = kMetzMinRepeat);
+
801  static uint32_t encodeMetz(const uint8_t address, const uint8_t command,
+
802  const bool toggle = false);
+
803 #endif // SEND_METZ
+
804 #if SEND_TRANSCOLD
+
805  void sendTranscold(const uint64_t data, const uint16_t nbits = kTranscoldBits,
+
806  const uint16_t repeat = kTranscoldDefaultRepeat);
+
807 #endif // SEND_TRANSCOLD
+
808 #if SEND_ELITESCREENS
+
809  void sendElitescreens(const uint64_t data,
+
810  const uint16_t nbits = kEliteScreensBits,
+
811  const uint16_t repeat = kEliteScreensDefaultRepeat);
+
812 #endif // SEND_ELITESCREENS
+
813 #if SEND_MILESTAG2
+
814  // Since There 2 types of transmissions
+
815  // (14bits for Shooting by default, you can set 24 bit for msg delivery)
+
816  void sendMilestag2(const uint64_t data,
+
817  const uint16_t nbits = kMilesTag2ShotBits,
+
818  const uint16_t repeat = kMilesMinRepeat);
+
819 #endif // SEND_MILESTAG2
+
820 #if SEND_ECOCLIM
+
821  void sendEcoclim(const uint64_t data, const uint16_t nbits = kEcoclimBits,
+
822  const uint16_t repeat = kNoRepeat);
+
823 #endif // SEND_ECOCLIM
+
824 #if SEND_XMP
+
825  void sendXmp(const uint64_t data, const uint16_t nbits = kXmpBits,
+
826  const uint16_t repeat = kNoRepeat);
+
827 #endif // SEND_XMP
+
828 #if SEND_TRUMA
+
829  void sendTruma(const uint64_t data, const uint16_t nbits = kTrumaBits,
+
830  const uint16_t repeat = kNoRepeat);
+
831 #endif // SEND_TRUMA
+
832 #if SEND_TEKNOPOINT
+
833  void sendTeknopoint(const unsigned char data[],
+
834  const uint16_t nbytes = kTeknopointStateLength,
+
835  const uint16_t repeat = kNoRepeat);
+
836 #endif // SEND_TEKNOPOINT
+
837 #if SEND_KELON
+
838  void sendKelon(const uint64_t data, const uint16_t nbits = kKelonBits,
+
839  const uint16_t repeat = kNoRepeat);
+
840 #endif // SEND_KELON
+
841 #if SEND_KELON168
+
842  void sendKelon168(const unsigned char data[],
+
843  const uint16_t nbytes = kKelon168StateLength,
+
844  const uint16_t repeat = kNoRepeat);
+
845 #endif // SEND_KELON168
+
846 #if SEND_BOSE
+
847  void sendBose(const uint64_t data, const uint16_t nbits = kBoseBits,
+
848  const uint16_t repeat = kNoRepeat);
+
849 #endif // SEND_BOSE
+
850 #if SEND_ARRIS
+
851  void sendArris(const uint64_t data, const uint16_t nbits = kArrisBits,
+
852  const uint16_t repeat = kNoRepeat);
+
853  static uint32_t toggleArrisRelease(const uint32_t data);
+
854  static uint32_t encodeArris(const uint32_t command, const bool release);
+
855 #endif // SEND_ARRIS
+
856 #if SEND_RHOSS
+
857  void sendRhoss(const unsigned char data[],
+
858  const uint16_t nbytes = kRhossStateLength,
+
859  const uint16_t repeat = kRhossDefaultRepeat);
+
860 #endif // SEND_RHOSS
+
861 #if SEND_AIRTON
+
862  void sendAirton(const uint64_t data, const uint16_t nbits = kAirtonBits,
+
863  const uint16_t repeat = kAirtonDefaultRepeat);
+
864 #endif // SEND_AIRTON
+
865 #if SEND_TOTO
+
866  void sendToto(const uint64_t data, const uint16_t nbits = kTotoBits,
+
867  const uint16_t repeat = kTotoDefaultRepeat);
+
868 #endif // SEND_TOTO
+
869 #if SEND_CLIMABUTLER
+
870  void sendClimaButler(const uint64_t data,
+
871  const uint16_t nbits = kClimaButlerBits,
+
872  const uint16_t repeat = kNoRepeat);
+
873 #endif // SEND_CLIMABUTLER
+
874 #if SEND_BOSCH144
+
875  void sendBosch144(const unsigned char data[],
+
876  const uint16_t nbytes = kBosch144StateLength,
+
877  const uint16_t repeat = kNoRepeat);
+
878 #endif // SEND_BOSCH144
+
879 #if SEND_WOWWEE
+
880  void sendWowwee(const uint64_t data, const uint16_t nbits = kWowweeBits,
+
881  const uint16_t repeat = kWowweeDefaultRepeat);
+
882 #endif // SEND_WOWWEE
+
883 #if SEND_YORK
+
884  void sendYork(const unsigned char data[],
+
885  const uint16_t nbytes = kYorkStateLength,
+
886  const uint16_t repeat = kNoRepeat);
+
887 #endif // SEND_YORK
+
888 
+
889  protected:
+
890 #ifdef UNIT_TEST
+
891 #ifndef HIGH
+
892 #define HIGH 0x1
+
893 #endif
+
894 #ifndef LOW
+
895 #define LOW 0x0
+
896 #endif
+
897 #endif // UNIT_TEST
+
898  uint8_t outputOn;
+
899  uint8_t outputOff;
+
900  VIRTUAL void ledOff();
+
901  VIRTUAL void ledOn();
+
902 #ifndef UNIT_TEST
+
903 
+
904  private:
+
905 #else
+
906  uint32_t _freq_unittest;
+
907 #endif // UNIT_TEST
+
908  uint16_t onTimePeriod;
+
909  uint16_t offTimePeriod;
+
910  uint16_t IRpin;
+
911  int8_t periodOffset;
+
912  uint8_t _dutycycle;
+
913  bool modulation;
+
914  uint32_t calcUSecPeriod(uint32_t hz, bool use_offset = true);
+
915 #if SEND_SONY
+
916  void _sendSony(const uint64_t data, const uint16_t nbits,
+
917  const uint16_t repeat, const uint16_t freq);
+
918 #endif // SEND_SONY
+
919 };
+
920 
+
921 #endif // IRSEND_H_
uint32_t calcUSecPeriod(uint32_t hz, bool use_offset=true)
Calculate the period for a given frequency.
Definition: IRsend.cpp:71
@ kUpperMiddle
@@ -968,8 +969,8 @@
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 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
const uint16_t kHaierAC160StateLength
Definition: IRremoteESP8266.h:1258
-
uint8_t outputOff
Definition: IRsend.h:898
-
int8_t periodOffset
Definition: IRsend.h:910
+
uint8_t outputOff
Definition: IRsend.h:899
+
int8_t periodOffset
Definition: IRsend.h:911
const uint16_t kMitsubishiACStateLength
Definition: IRremoteESP8266.h:1314
const uint16_t kMitsubishiHeavy152StateLength
Definition: IRremoteESP8266.h:1326
const uint16_t kAirwellMinRepeats
Definition: IRremoteESP8266.h:1151
@@ -1015,7 +1016,7 @@
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
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:1222
const uint16_t kArgoDefaultRepeat
Definition: IRremoteESP8266.h:1166
-
uint8_t outputOn
Definition: IRsend.h:897
+
uint8_t outputOn
Definition: IRsend.h:898
const uint16_t kRhossStateLength
Definition: IRremoteESP8266.h:1432
const uint16_t kHaierACStateLength
Definition: IRremoteESP8266.h:1252
const uint16_t kHitachiAcStateLength
Definition: IRremoteESP8266.h:1264
@@ -1036,11 +1037,11 @@
const uint32_t kDefaultMessageGap
Definition: IRsend.h:41
const uint16_t kMaxAccurateUsecDelay
Definition: IRsend.h:39
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
-
uint16_t onTimePeriod
Definition: IRsend.h:907
+
uint16_t onTimePeriod
Definition: IRsend.h:908
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 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 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
-
uint16_t IRpin
Definition: IRsend.h:909
+
uint16_t IRpin
Definition: IRsend.h:910
const uint16_t kBoseBits
Definition: IRremoteESP8266.h:1431
const uint16_t kClimaButlerBits
Definition: IRremoteESP8266.h:1435
const uint16_t kHitachiAc1StateLength
Definition: IRremoteESP8266.h:1267
@@ -1068,7 +1069,7 @@
@ V9014557_B
Definition: IRsend.h:165
float degrees
Definition: IRsend.h:119
const uint16_t kMirageMinRepeat
Definition: IRremoteESP8266.h:1309
-
uint8_t _dutycycle
Definition: IRsend.h:911
+
uint8_t _dutycycle
Definition: IRsend.h:912
bool celsius
Definition: IRsend.h:120
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 sendKelon168(const unsigned char data[], const uint16_t nbytes=kKelon168StateLength, const uint16_t repeat=kNoRepeat)
Send a Kelon 168 bit / 21 byte message. Status: BETA / Probably works.
Definition: ir_Kelon.cpp:457
@@ -1087,7 +1088,7 @@
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 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
stdAc::swingv_t swingv
Definition: IRsend.h:122
-
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:713
+
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:716
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 A/C model numbers.
Definition: IRsend.h:169
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
@@ -1109,7 +1110,7 @@
const uint16_t kArgoStateLength
Definition: IRremoteESP8266.h:1158
@ kRightMax
const uint16_t kSanyoAc88MinRepeat
Definition: IRremoteESP8266.h:1365
-
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:109
+
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
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:1336
int16_t model
Definition: IRsend.h:116
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:357
@@ -1118,7 +1119,7 @@
const uint8_t kDutyMax
Definition: IRsend.h:36
const uint16_t kMilesTag2ShotBits
Definition: IRremoteESP8266.h:1428
@ kTimerCommand
-
uint32_t _freq_unittest
Definition: IRsend.h:905
+
uint32_t _freq_unittest
Definition: IRsend.h:906
const uint16_t kDaikin152StateLength
Definition: IRremoteESP8266.h:1205
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 sendRaw(const uint16_t buf[], const uint16_t len, const uint16_t hz)
Send a raw IRremote message.
Definition: IRsend.cpp:539
@@ -1168,11 +1169,11 @@
const uint16_t kCarrierAc128MinRepeat
Definition: IRremoteESP8266.h:1184
const uint16_t kMitsubishiHeavy152MinRepeat
Definition: IRremoteESP8266.h:1328
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:56
-
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:174
+
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
const uint16_t kDaikin200DefaultRepeat
Definition: IRremoteESP8266.h:1213
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
const uint16_t kNoRepeat
Definition: IRremoteESP8266.h:1145
-
uint16_t offTimePeriod
Definition: IRsend.h:908
+
uint16_t offTimePeriod
Definition: IRsend.h:909
@ TAC09CHSD
Definition: IRsend.h:200
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:91
const uint16_t kSony20Bits
Definition: IRremoteESP8266.h:1384
@@ -1211,7 +1212,7 @@
const uint16_t kTrotecStateLength
Definition: IRremoteESP8266.h:1412
const uint16_t kWhirlpoolAcDefaultRepeat
Definition: IRremoteESP8266.h:1418
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
-
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:95
+
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
const uint16_t kHitachiAc424StateLength
Definition: IRremoteESP8266.h:1281
const uint16_t kMitsubishiHeavy88StateLength
Definition: IRremoteESP8266.h:1323
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
@@ -1381,7 +1382,7 @@
@ kOff
const uint16_t kMitsubishi136StateLength
Definition: IRremoteESP8266.h:1317
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
-
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:255
+
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
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:103
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
IRsend(uint16_t IRsendPin, bool inverted=false, bool use_modulation=true)
Constructor for an IRsend object.
Definition: IRsend.cpp:28
@@ -1411,7 +1412,7 @@
bool turbo
Definition: IRsend.h:125
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 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
-
bool modulation
Definition: IRsend.h:912
+
bool modulation
Definition: IRsend.h:913
const uint16_t kNeoclimaMinRepeat
Definition: IRremoteESP8266.h:1335
const uint16_t kMitsubishi112StateLength
Definition: IRremoteESP8266.h:1320
const uint16_t kDaikin312DefaultRepeat
Definition: IRremoteESP8266.h:1219
diff --git a/docs/doxygen/html/IRutils_8h_source.html b/docs/doxygen/html/IRutils_8h_source.html index d3197ef1e..50aa28916 100644 --- a/docs/doxygen/html/IRutils_8h_source.html +++ b/docs/doxygen/html/IRutils_8h_source.html @@ -224,67 +224,67 @@
155 #endif // IRUTILS_H_
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:1011
-
String addDayToString(const uint8_t day_of_week, const int8_t offset, const bool precomma)
Create a String of the 3-letter day of the week from a numerical day of the week. e....
Definition: IRutils.cpp:799
-
uint16_t * resultToRawArray(const decode_results *const decode)
Convert a decode_results into an array suitable for sendRaw().
Definition: IRutils.cpp:429
-
void setBits(uint8_t *const dst, const uint8_t offset, const uint8_t nbits, const uint8_t data)
Alter an uint8_t value by overwriting an arbitrary given number of bits.
Definition: IRutils.cpp:1313
-
String resultToSourceCode(const decode_results *const results)
Return a String containing the key values of a decode_results structure in a C/C++ code style format.
Definition: IRutils.cpp:254
+
String addDayToString(const uint8_t day_of_week, const int8_t offset, const bool precomma)
Create a String of the 3-letter day of the week from a numerical day of the week. e....
Definition: IRutils.cpp:795
+
uint16_t * resultToRawArray(const decode_results *const decode)
Convert a decode_results into an array suitable for sendRaw().
Definition: IRutils.cpp:425
+
void setBits(uint8_t *const dst, const uint8_t offset, const uint8_t nbits, const uint8_t data)
Alter an uint8_t value by overwriting an arbitrary given number of bits.
Definition: IRutils.cpp:1309
+
String resultToSourceCode(const decode_results *const results)
Return a String containing the key values of a decode_results structure in a C/C++ code style format.
Definition: IRutils.cpp:250
Results returned from the decoder.
Definition: IRrecv.h:99
-
uint16_t getCorrectedRawLength(const decode_results *const results)
Return the corrected length of a 'raw' format array structure after over-large values are converted i...
Definition: IRutils.cpp:240
-
String addModelToString(const decode_type_t protocol, const int16_t model, const bool precomma)
Create a String of human output for a given protocol model number. e.g. "Model: JKE".
Definition: IRutils.cpp:718
-
String addSignedIntToString(const int16_t value, const String label, const bool precomma)
Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23".
Definition: IRutils.cpp:592
-
uint16_t countBits(const uint8_t *const start, const uint16_t length, const bool ones=true, const uint16_t init=0)
Count the number of bits of a certain type in an array.
Definition: IRutils.cpp:480
-
String msToString(uint32_t const msecs)
Convert a nr. of milliSeconds into a Human-readable string. e.g. "1 Day 6 Hours 34 Minutes 17 Seconds...
Definition: IRutils.cpp:1116
-
uint8_t lowLevelSanityCheck(void)
Perform a low level bit manipulation sanity check for the given cpu architecture and the compiler ope...
Definition: IRutils.cpp:1402
-
String addModeToString(const uint8_t mode, const uint8_t automatic, const uint8_t cool, const uint8_t heat, const uint8_t dry, const uint8_t fan)
Create a String of human output for the given operating mode. e.g. "Mode: 1 (Cool)".
Definition: IRutils.cpp:774
-
String resultToHumanReadableBasic(const decode_results *const results)
Dump out the decode_results structure into a human readable format.
Definition: IRutils.cpp:400
-
String resultToTimingInfo(const decode_results *const results)
Dump out the decode_results structure.
Definition: IRutils.cpp:348
+
uint16_t getCorrectedRawLength(const decode_results *const results)
Return the corrected length of a 'raw' format array structure after over-large values are converted i...
Definition: IRutils.cpp:236
+
String addModelToString(const decode_type_t protocol, const int16_t model, const bool precomma)
Create a String of human output for a given protocol model number. e.g. "Model: JKE".
Definition: IRutils.cpp:714
+
String addSignedIntToString(const int16_t value, const String label, const bool precomma)
Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23".
Definition: IRutils.cpp:588
+
uint16_t countBits(const uint8_t *const start, const uint16_t length, const bool ones=true, const uint16_t init=0)
Count the number of bits of a certain type in an array.
Definition: IRutils.cpp:476
+
String msToString(uint32_t const msecs)
Convert a nr. of milliSeconds into a Human-readable string. e.g. "1 Day 6 Hours 34 Minutes 17 Seconds...
Definition: IRutils.cpp:1112
+
uint8_t lowLevelSanityCheck(void)
Perform a low level bit manipulation sanity check for the given cpu architecture and the compiler ope...
Definition: IRutils.cpp:1398
+
String addModeToString(const uint8_t mode, const uint8_t automatic, const uint8_t cool, const uint8_t heat, const uint8_t dry, const uint8_t fan)
Create a String of human output for the given operating mode. e.g. "Mode: 1 (Cool)".
Definition: IRutils.cpp:770
+
String resultToHumanReadableBasic(const decode_results *const results)
Dump out the decode_results structure into a human readable format.
Definition: IRutils.cpp:396
+
String resultToTimingInfo(const decode_results *const results)
Dump out the decode_results structure.
Definition: IRutils.cpp:344
std::string String
Definition: IRremoteESP8266.h:1521
const uint8_t kNibbleSize
Definition: IRutils.h:17
-
String dayToString(const uint8_t day_of_week, const int8_t offset)
Create a String of the 3-letter day of the week from a numerical day of the week. e....
Definition: IRutils.cpp:816
-
String modelToStr(const decode_type_t protocol, const int16_t model)
Generate the model string for a given Protocol/Model pair.
Definition: IRutils.cpp:603
+
String dayToString(const uint8_t day_of_week, const int8_t offset)
Create a String of the 3-letter day of the week from a numerical day of the week. e....
Definition: IRutils.cpp:812
+
String modelToStr(const decode_type_t protocol, const int16_t model)
Generate the model string for a given Protocol/Model pair.
Definition: IRutils.cpp:599
const uint8_t kLowNibble
Definition: IRutils.h:18
-
uint8_t uint8ToBcd(const uint8_t integer)
Convert an Integer into a byte of Binary Coded Decimal(BCD).
Definition: IRutils.cpp:1218
-
String addTimerModeToString(const uint8_t timerMode, const uint8_t noTimer, const uint8_t delayTimer, const uint8_t schedule1, const uint8_t schedule2, const uint8_t schedule3, const bool precomma)
Create a String of human output for the given timer setting. e.g. "Timer Mode: 2 (Schedule 1)".
Definition: IRutils.cpp:991
+
uint8_t uint8ToBcd(const uint8_t integer)
Convert an Integer into a byte of Binary Coded Decimal(BCD).
Definition: IRutils.cpp:1214
+
String addTimerModeToString(const uint8_t timerMode, const uint8_t noTimer, const uint8_t delayTimer, const uint8_t schedule1, const uint8_t schedule2, const uint8_t schedule3, const bool precomma)
Create a String of human output for the given timer setting. e.g. "Timer Mode: 2 (Schedule 1)".
Definition: IRutils.cpp:987
decode_type_t strToDecodeType(const char *str)
Convert a C-style string to a decode_type_t.
Definition: IRutils.cpp:120
-
bool checkInvertedBytePairs(const uint8_t *const ptr, const uint16_t length)
Check an array to see if every second byte of a pair is a bit inverted/flipped copy of the first/prev...
Definition: IRutils.cpp:1380
+
bool checkInvertedBytePairs(const uint8_t *const ptr, const uint16_t length)
Check an array to see if every second byte of a pair is a bit inverted/flipped copy of the first/prev...
Definition: IRutils.cpp:1376
const uint8_t kHighNibble
Definition: IRutils.h:19
-
String addTempToString(const uint16_t degrees, const bool celsius, const bool precomma, const bool isSensorTemp)
Create a String of human output for a given temperature. e.g. "Temp: 25C".
Definition: IRutils.cpp:737
-
uint8_t sumNibbles(const uint8_t *const start, const uint16_t length, const uint8_t init)
Sum all the nibbles together in a series of bytes.
Definition: IRutils.cpp:1168
+
String addTempToString(const uint16_t degrees, const bool celsius, const bool precomma, const bool isSensorTemp)
Create a String of human output for a given temperature. e.g. "Temp: 25C".
Definition: IRutils.cpp:733
+
uint8_t sumNibbles(const uint8_t *const start, const uint16_t length, const uint8_t init)
Sum all the nibbles together in a series of bytes.
Definition: IRutils.cpp:1164
String uint64ToString(uint64_t input, uint8_t base=10)
Convert a uint64_t (unsigned long long) to a string. Arduino String/toInt/Serial.print() can't handle...
Definition: IRutils.cpp:66
-
float celsiusToFahrenheit(const float deg)
Convert degrees Celsius to degrees Fahrenheit.
Definition: IRutils.cpp:528
-
String addIntToString(const uint16_t value, const String label, const bool precomma)
Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23".
Definition: IRutils.cpp:580
-
uint8_t xorBytes(const uint8_t *const start, const uint16_t length, const uint8_t init=0)
Calculate a rolling XOR of all the bytes of an array.
Definition: IRutils.cpp:466
-
String addSwingVToString(const uint8_t position, const uint8_t automatic, const uint8_t highest, const uint8_t high, const uint8_t uppermiddle, const uint8_t middle, const uint8_t lowermiddle, const uint8_t low, const uint8_t lowest, const uint8_t off, const uint8_t swing, const uint8_t breeze, const uint8_t circulate)
Create a String of human output for the given vertical swing setting. e.g. "Swing(V): 0 (Auto)".
Definition: IRutils.cpp:935
+
float celsiusToFahrenheit(const float deg)
Convert degrees Celsius to degrees Fahrenheit.
Definition: IRutils.cpp:524
+
String addIntToString(const uint16_t value, const String label, const bool precomma)
Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23".
Definition: IRutils.cpp:576
+
uint8_t xorBytes(const uint8_t *const start, const uint16_t length, const uint8_t init=0)
Calculate a rolling XOR of all the bytes of an array.
Definition: IRutils.cpp:462
+
String addSwingVToString(const uint8_t position, const uint8_t automatic, const uint8_t highest, const uint8_t high, const uint8_t uppermiddle, const uint8_t middle, const uint8_t lowermiddle, const uint8_t low, const uint8_t lowest, const uint8_t off, const uint8_t swing, const uint8_t breeze, const uint8_t circulate)
Create a String of human output for the given vertical swing setting. e.g. "Swing(V): 0 (Auto)".
Definition: IRutils.cpp:931
const uint8_t kModeBitsSize
Definition: IRutils.h:20
-
bool getBit(const uint64_t data, const uint8_t position, const uint8_t size)
Return the value of positionth bit of an Integer.
Definition: IRutils.cpp:1228
-
uint16_t sumBytes(const uint64_t data, const uint8_t count, const uint8_t init, const bool byteonly)
Sum all the bytes together in an integer.
Definition: IRutils.cpp:1198
-
float fahrenheitToCelsius(const float deg)
Convert degrees Fahrenheit to degrees Celsius.
Definition: IRutils.cpp:531
+
bool getBit(const uint64_t data, const uint8_t position, const uint8_t size)
Return the value of positionth bit of an Integer.
Definition: IRutils.cpp:1224
+
uint16_t sumBytes(const uint64_t data, const uint8_t count, const uint8_t init, const bool byteonly)
Sum all the bytes together in an integer.
Definition: IRutils.cpp:1194
+
float fahrenheitToCelsius(const float deg)
Convert degrees Fahrenheit to degrees Celsius.
Definition: IRutils.cpp:527
-
uint8_t sumBytes(const uint8_t *const start, const uint16_t length, const uint8_t init=0)
Sum all the bytes of an array and return the least significant 8-bits of the result.
Definition: IRutils.cpp:453
-
String addSwingHToString(const uint8_t position, const uint8_t automatic, const uint8_t maxleft, const uint8_t left, const uint8_t middle, const uint8_t right, const uint8_t maxright, const uint8_t off, const uint8_t leftright, const uint8_t rightleft, const uint8_t threed, const uint8_t wide)
Create a String of human output for the given horizontal swing setting. e.g. "Swing(H): 0 (Auto)".
Definition: IRutils.cpp:876
+
uint8_t sumBytes(const uint8_t *const start, const uint16_t length, const uint8_t init=0)
Sum all the bytes of an array and return the least significant 8-bits of the result.
Definition: IRutils.cpp:449
+
String addSwingHToString(const uint8_t position, const uint8_t automatic, const uint8_t maxleft, const uint8_t left, const uint8_t middle, const uint8_t right, const uint8_t maxright, const uint8_t off, const uint8_t leftright, const uint8_t rightleft, const uint8_t threed, const uint8_t wide)
Create a String of human output for the given horizontal swing setting. e.g. "Swing(H): 0 (Auto)".
Definition: IRutils.cpp:872
String typeToString(const decode_type_t protocol, const bool isRepeat=false)
Convert a protocol type (enum etc) to a human readable string.
Definition: IRutils.cpp:141
-
String addToggleToString(const bool toggle, const String label, const bool precomma)
Create a String with a colon separated toggle flag suitable for Humans. e.g. "Light: Toggle",...
Definition: IRutils.cpp:568
-
String irCommandTypeToString(uint8_t irCommandType, uint8_t acControlCmd, uint8_t iFeelReportCmd, uint8_t timerCmd, uint8_t configCmd)
Create a String of human output for the given command type e.g. "IFeel Report".
Definition: IRutils.cpp:1040
-
String resultToHexidecimal(const decode_results *const result)
Convert the decode_results structure's value/state to simple hexadecimal.
Definition: IRutils.cpp:380
-
String addBoolToString(const bool value, const String label, const bool precomma)
Create a String with a colon separated flag suitable for Humans. e.g. "Power: On".
Definition: IRutils.cpp:557
-
String addFanToString(const uint8_t speed, const uint8_t high, const uint8_t low, const uint8_t automatic, const uint8_t quiet, const uint8_t medium, const uint8_t maximum, const uint8_t medium_high)
Create a String of human output for the given fan speed. e.g. "Fan: 0 (Auto)".
Definition: IRutils.cpp:841
-
String minsToString(const uint16_t mins)
Convert a nr. of minutes into a 24h clock format Human-readable string. e.g. "23:59".
Definition: IRutils.cpp:1153
-
String addTempFloatToString(const float degrees, const bool celsius, const bool precomma, const bool isSensorTemp)
Create a String of human output for a given temperature. e.g. "Temp: 25.5C".
Definition: IRutils.cpp:753
-
uint8_t * invertBytePairs(uint8_t *ptr, const uint16_t length)
Create byte pairs where the second byte of the pair is a bit inverted/flipped copy of the first/previ...
Definition: IRutils.cpp:1365
-
uint8_t bcdToUint8(const uint8_t bcd)
Convert a byte of Binary Coded Decimal(BCD) into an Integer.
Definition: IRutils.cpp:1210
-
Namespace for covering common functions & procedures for advancd protocol handlers.
Definition: IRutils.cpp:533
+
String addToggleToString(const bool toggle, const String label, const bool precomma)
Create a String with a colon separated toggle flag suitable for Humans. e.g. "Light: Toggle",...
Definition: IRutils.cpp:564
+
String irCommandTypeToString(uint8_t irCommandType, uint8_t acControlCmd, uint8_t iFeelReportCmd, uint8_t timerCmd, uint8_t configCmd)
Create a String of human output for the given command type e.g. "IFeel Report".
Definition: IRutils.cpp:1036
+
String resultToHexidecimal(const decode_results *const result)
Convert the decode_results structure's value/state to simple hexadecimal.
Definition: IRutils.cpp:376
+
String addBoolToString(const bool value, const String label, const bool precomma)
Create a String with a colon separated flag suitable for Humans. e.g. "Power: On".
Definition: IRutils.cpp:553
+
String addFanToString(const uint8_t speed, const uint8_t high, const uint8_t low, const uint8_t automatic, const uint8_t quiet, const uint8_t medium, const uint8_t maximum, const uint8_t medium_high)
Create a String of human output for the given fan speed. e.g. "Fan: 0 (Auto)".
Definition: IRutils.cpp:837
+
String minsToString(const uint16_t mins)
Convert a nr. of minutes into a 24h clock format Human-readable string. e.g. "23:59".
Definition: IRutils.cpp:1149
+
String addTempFloatToString(const float degrees, const bool celsius, const bool precomma, const bool isSensorTemp)
Create a String of human output for a given temperature. e.g. "Temp: 25.5C".
Definition: IRutils.cpp:749
+
uint8_t * invertBytePairs(uint8_t *ptr, const uint16_t length)
Create byte pairs where the second byte of the pair is a bit inverted/flipped copy of the first/previ...
Definition: IRutils.cpp:1361
+
uint8_t bcdToUint8(const uint8_t bcd)
Convert a byte of Binary Coded Decimal(BCD) into an Integer.
Definition: IRutils.cpp:1206
+
Namespace for covering common functions & procedures for advancd protocol handlers.
Definition: IRutils.cpp:529
uint64_t reverseBits(uint64_t input, uint16_t nbits)
Reverse the order of the requested least significant nr. of bits.
Definition: IRutils.cpp:46
bool isRepeat(const uint64_t data, const uint16_t nbits)
Test if an XMP message code is a repeat or not.
Definition: ir_Xmp.cpp:85
-
String htmlEscape(const String unescaped)
Escape any special HTML (unsafe) characters in a string. e.g. anti-XSS.
Definition: IRutils.cpp:1084
-
String channelToString(const uint8_t channel)
Create a String of human output for the given channel e.g. "[CH#0]".
Definition: IRutils.cpp:1022
-
bool hasACState(const decode_type_t protocol)
Does the given protocol use a complex state as part of the decode?
Definition: IRutils.cpp:171
-
uint64_t setBit(const uint64_t data, const uint8_t position, const bool on, const uint8_t size)
Return the value of an Integer with the positionth bit changed.
Definition: IRutils.cpp:1248
+
String htmlEscape(const String unescaped)
Escape any special HTML (unsafe) characters in a string. e.g. anti-XSS.
Definition: IRutils.cpp:1080
+
String channelToString(const uint8_t channel)
Create a String of human output for the given channel e.g. "[CH#0]".
Definition: IRutils.cpp:1018
+
bool hasACState(const decode_type_t protocol)
Does the given protocol use a complex state as part of the decode?
Definition: IRutils.cpp:167
+
uint64_t setBit(const uint64_t data, const uint8_t position, const bool on, const uint8_t size)
Return the value of an Integer with the positionth bit changed.
Definition: IRutils.cpp:1244
void serialPrintUint64(uint64_t input, uint8_t base=10)
Print a uint64_t/unsigned long long to the Serial port Serial.print() can't handle printing long long...
Definition: IRutils.cpp:112
String int64ToString(int64_t input, uint8_t base=10)
Convert a int64_t (signed long long) to a string. Arduino String/toInt/Serial.print() can't handle pr...
Definition: IRutils.cpp:97
-
String daysBitmaskToString(uint8_t daysBitmap, uint8_t offset)
Create a String of the 3-letter day of the week bitmap.
Definition: IRutils.cpp:1066
-
String addLabeledString(const String value, const String label, const bool precomma)
Create a String with a colon separated "label: value" pair suitable for Humans.
Definition: IRutils.cpp:540
-
uint64_t invertBits(const uint64_t data, const uint16_t nbits)
Invert/Flip the bits in an Integer.
Definition: IRutils.cpp:517
+
String daysBitmaskToString(uint8_t daysBitmap, uint8_t offset)
Create a String of the 3-letter day of the week bitmap.
Definition: IRutils.cpp:1062
+
String addLabeledString(const String value, const String label, const bool precomma)
Create a String with a colon separated "label: value" pair suitable for Humans.
Definition: IRutils.cpp:536
+
uint64_t invertBits(const uint64_t data, const uint16_t nbits)
Invert/Flip the bits in an Integer.
Definition: IRutils.cpp:513