From 42c5af1b702aa25b8e59cee5c4ad57724ee9e82c Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Fri, 12 Feb 2021 16:26:51 +0100 Subject: [PATCH 01/27] Remove ESP32 minimal support --- platformio_override_sample.ini | 1 - platformio_tasmota32.ini | 2 +- platformio_tasmota_env32.ini | 5 ----- tasmota/support_tasmota.ino | 26 ++++++++++++++------------ tasmota/tasmota_globals.h | 2 ++ 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/platformio_override_sample.ini b/platformio_override_sample.ini index 9b7ddfa53..37a9b345d 100644 --- a/platformio_override_sample.ini +++ b/platformio_override_sample.ini @@ -29,7 +29,6 @@ default_envs = ; tasmota32 ; tasmota32-bluetooth ; tasmota32-webcam -; tasmota32-minimal ; tasmota32-lite ; tasmota32-knx ; tasmota32-sensors diff --git a/platformio_tasmota32.ini b/platformio_tasmota32.ini index 4cf662f8e..c857f5ec9 100644 --- a/platformio_tasmota32.ini +++ b/platformio_tasmota32.ini @@ -7,10 +7,10 @@ default_envs = ${build_envs.default_envs} ; *** Uncomment by deleting ";" in the line(s) below to select version(s) ; tasmota32 +; tasmota32-bluetooth ; tasmota32-webcam ; tasmota32-odroidgo ; tasmota32-core2 -; tasmota32-minimal ; tasmota32-lite ; tasmota32-knx ; tasmota32-sensors diff --git a/platformio_tasmota_env32.ini b/platformio_tasmota_env32.ini index d0b4e97c3..5a1b1ec93 100644 --- a/platformio_tasmota_env32.ini +++ b/platformio_tasmota_env32.ini @@ -63,11 +63,6 @@ extends = env:tasmota32 build_flags = ${common32.build_flags} -DFIRMWARE_BLUETOOTH lib_extra_dirs = lib/libesp32, lib/lib_basic, lib/lib_i2c, lib/lib_ssl -[env:tasmota32-minimal] -extends = env:tasmota32 -build_flags = ${common32.build_flags} -DFIRMWARE_MINIMAL -lib_extra_dirs = lib/libesp32 - [env:tasmota32-lite] extends = env:tasmota32 build_flags = ${common32.build_flags} -DFIRMWARE_LITE diff --git a/tasmota/support_tasmota.ino b/tasmota/support_tasmota.ino index be533ede8..033af4bf6 100644 --- a/tasmota/support_tasmota.ino +++ b/tasmota/support_tasmota.ino @@ -1019,23 +1019,23 @@ void Every250mSeconds(void) if (TasmotaGlobal.ota_state_flag && BACKLOG_EMPTY) { TasmotaGlobal.ota_state_flag--; if (2 == TasmotaGlobal.ota_state_flag) { - RtcSettings.ota_loader = 0; // Try requested image first + RtcSettings.ota_loader = 0; // Try requested image first ota_retry_counter = OTA_ATTEMPTS; ESPhttpUpdate.rebootOnUpdate(false); - SettingsSave(1); // Free flash for OTA update + SettingsSave(1); // Free flash for OTA update } if (TasmotaGlobal.ota_state_flag <= 0) { #ifdef USE_BLE_ESP32 ExtStopBLE(); #endif // USE_BLE_ESP32 #ifdef USE_COUNTER - CounterInterruptDisable(true); // Prevent OTA failures on 100Hz counter interrupts + CounterInterruptDisable(true); // Prevent OTA failures on 100Hz counter interrupts #endif // USE_COUNTER #ifdef USE_WEBSERVER if (Settings.webserver) StopWebserver(); #endif // USE_WEBSERVER #ifdef USE_ARILUX_RF - AriluxRfDisable(); // Prevent restart exception on Arilux Interrupt routine + AriluxRfDisable(); // Prevent restart exception on Arilux Interrupt routine #endif // USE_ARILUX_RF TasmotaGlobal.ota_state_flag = 92; ota_result = 0; @@ -1043,6 +1043,7 @@ void Every250mSeconds(void) if (ota_retry_counter) { char ota_url[TOPSZ]; strlcpy(TasmotaGlobal.mqtt_data, GetOtaUrl(ota_url, sizeof(ota_url)), sizeof(TasmotaGlobal.mqtt_data)); +#ifdef ESP8266 #ifndef FIRMWARE_MINIMAL if (RtcSettings.ota_loader) { // OTA File too large so try OTA minimal version @@ -1061,8 +1062,8 @@ void Every250mSeconds(void) // Replace http://192.168.2.17:80/api/arduino/tasmota.bin with http://192.168.2.17:80/api/arduino/tasmota-minimal.bin // Replace http://192.168.2.17/api/arduino/tasmota.bin.gz with http://192.168.2.17/api/arduino/tasmota-minimal.bin.gz - char *bch = strrchr(TasmotaGlobal.mqtt_data, '/'); // Only consider filename after last backslash prevent change of urls having "-" in it - if (bch == nullptr) { bch = TasmotaGlobal.mqtt_data; } // No path found so use filename only + char *bch = strrchr(TasmotaGlobal.mqtt_data, '/'); // Only consider filename after last backslash prevent change of urls having "-" in it + if (bch == nullptr) { bch = TasmotaGlobal.mqtt_data; } // No path found so use filename only char *ech = strchr(bch, '.'); // Find file type in filename (none, .ino.bin, .ino.bin.gz, .bin, .bin.gz or .gz) if (ech == nullptr) { ech = TasmotaGlobal.mqtt_data + strlen(TasmotaGlobal.mqtt_data); } // Point to '/0' at end of mqtt_data becoming an empty string @@ -1077,7 +1078,6 @@ void Every250mSeconds(void) snprintf_P(TasmotaGlobal.mqtt_data, sizeof(TasmotaGlobal.mqtt_data), PSTR("%s-" D_JSON_MINIMAL "%s"), TasmotaGlobal.mqtt_data, ota_url_type); // Minimal filename must be filename-minimal } #endif // FIRMWARE_MINIMAL -#ifdef ESP8266 if (ota_retry_counter < OTA_ATTEMPTS / 2) { if (!strcasecmp_P(TasmotaGlobal.mqtt_data, PSTR(".gz"))) { ota_retry_counter = 1; @@ -1093,26 +1093,28 @@ void Every250mSeconds(void) #ifndef FIRMWARE_MINIMAL int ota_error = ESPhttpUpdate.getLastError(); DEBUG_CORE_LOG(PSTR("OTA: Error %d"), ota_error); +#ifdef ESP8266 if ((HTTP_UE_TOO_LESS_SPACE == ota_error) || (HTTP_UE_BIN_FOR_WRONG_FLASH == ota_error)) { - RtcSettings.ota_loader = 1; // Try minimal image next + RtcSettings.ota_loader = 1; // Try minimal image next } +#endif // ESP8266 #endif // FIRMWARE_MINIMAL - TasmotaGlobal.ota_state_flag = 2; // Upgrade failed - retry + TasmotaGlobal.ota_state_flag = 2; // Upgrade failed - retry } } } - if (90 == TasmotaGlobal.ota_state_flag) { // Allow MQTT to reconnect + if (90 == TasmotaGlobal.ota_state_flag) { // Allow MQTT to reconnect TasmotaGlobal.ota_state_flag = 0; Response_P(PSTR("{\"" D_CMND_UPGRADE "\":\"")); if (ota_result) { -// SetFlashModeDout(); // Force DOUT for both ESP8266 and ESP8285 +// SetFlashModeDout(); // Force DOUT for both ESP8266 and ESP8285 ResponseAppend_P(PSTR(D_JSON_SUCCESSFUL ". " D_JSON_RESTARTING)); TasmotaGlobal.restart_flag = 2; } else { ResponseAppend_P(PSTR(D_JSON_FAILED " %s"), ESPhttpUpdate.getLastErrorString().c_str()); } ResponseAppend_P(PSTR("\"}")); -// TasmotaGlobal.restart_flag = 2; // Restart anyway to keep memory clean webserver +// TasmotaGlobal.restart_flag = 2; // Restart anyway to keep memory clean webserver MqttPublishPrefixTopic_P(STAT, PSTR(D_CMND_UPGRADE)); #ifdef USE_COUNTER CounterInterruptDisable(false); diff --git a/tasmota/tasmota_globals.h b/tasmota/tasmota_globals.h index 71e345b2b..2ac6a2343 100644 --- a/tasmota/tasmota_globals.h +++ b/tasmota/tasmota_globals.h @@ -132,6 +132,8 @@ String EthernetMacAddress(void); #define USE_UFILESYS +#undef FIRMWARE_MINIMAL // Minimal is not supported as not needed + // Hardware has no ESP32 #undef USE_TUYA_DIMMER #undef USE_PWM_DIMMER From 3f4fda44a41bafec1bfffaf600440d4cb1f09b41 Mon Sep 17 00:00:00 2001 From: gemu2015 Date: Sat, 13 Feb 2021 07:43:59 +0100 Subject: [PATCH 02/27] ili9341 update --- tasmota/support_tasmota.ino | 36 +++++++++++++----------------------- tasmota/xdrv_13_display.ino | 13 ++++++++++--- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/tasmota/support_tasmota.ino b/tasmota/support_tasmota.ino index 033af4bf6..fe4cf34d8 100644 --- a/tasmota/support_tasmota.ino +++ b/tasmota/support_tasmota.ino @@ -1019,23 +1019,23 @@ void Every250mSeconds(void) if (TasmotaGlobal.ota_state_flag && BACKLOG_EMPTY) { TasmotaGlobal.ota_state_flag--; if (2 == TasmotaGlobal.ota_state_flag) { - RtcSettings.ota_loader = 0; // Try requested image first + RtcSettings.ota_loader = 0; // Try requested image first ota_retry_counter = OTA_ATTEMPTS; ESPhttpUpdate.rebootOnUpdate(false); - SettingsSave(1); // Free flash for OTA update + SettingsSave(1); // Free flash for OTA update } if (TasmotaGlobal.ota_state_flag <= 0) { #ifdef USE_BLE_ESP32 ExtStopBLE(); #endif // USE_BLE_ESP32 #ifdef USE_COUNTER - CounterInterruptDisable(true); // Prevent OTA failures on 100Hz counter interrupts + CounterInterruptDisable(true); // Prevent OTA failures on 100Hz counter interrupts #endif // USE_COUNTER #ifdef USE_WEBSERVER if (Settings.webserver) StopWebserver(); #endif // USE_WEBSERVER #ifdef USE_ARILUX_RF - AriluxRfDisable(); // Prevent restart exception on Arilux Interrupt routine + AriluxRfDisable(); // Prevent restart exception on Arilux Interrupt routine #endif // USE_ARILUX_RF TasmotaGlobal.ota_state_flag = 92; ota_result = 0; @@ -1043,7 +1043,6 @@ void Every250mSeconds(void) if (ota_retry_counter) { char ota_url[TOPSZ]; strlcpy(TasmotaGlobal.mqtt_data, GetOtaUrl(ota_url, sizeof(ota_url)), sizeof(TasmotaGlobal.mqtt_data)); -#ifdef ESP8266 #ifndef FIRMWARE_MINIMAL if (RtcSettings.ota_loader) { // OTA File too large so try OTA minimal version @@ -1062,8 +1061,8 @@ void Every250mSeconds(void) // Replace http://192.168.2.17:80/api/arduino/tasmota.bin with http://192.168.2.17:80/api/arduino/tasmota-minimal.bin // Replace http://192.168.2.17/api/arduino/tasmota.bin.gz with http://192.168.2.17/api/arduino/tasmota-minimal.bin.gz - char *bch = strrchr(TasmotaGlobal.mqtt_data, '/'); // Only consider filename after last backslash prevent change of urls having "-" in it - if (bch == nullptr) { bch = TasmotaGlobal.mqtt_data; } // No path found so use filename only + char *bch = strrchr(TasmotaGlobal.mqtt_data, '/'); // Only consider filename after last backslash prevent change of urls having "-" in it + if (bch == nullptr) { bch = TasmotaGlobal.mqtt_data; } // No path found so use filename only char *ech = strchr(bch, '.'); // Find file type in filename (none, .ino.bin, .ino.bin.gz, .bin, .bin.gz or .gz) if (ech == nullptr) { ech = TasmotaGlobal.mqtt_data + strlen(TasmotaGlobal.mqtt_data); } // Point to '/0' at end of mqtt_data becoming an empty string @@ -1078,14 +1077,6 @@ void Every250mSeconds(void) snprintf_P(TasmotaGlobal.mqtt_data, sizeof(TasmotaGlobal.mqtt_data), PSTR("%s-" D_JSON_MINIMAL "%s"), TasmotaGlobal.mqtt_data, ota_url_type); // Minimal filename must be filename-minimal } #endif // FIRMWARE_MINIMAL - if (ota_retry_counter < OTA_ATTEMPTS / 2) { - if (!strcasecmp_P(TasmotaGlobal.mqtt_data, PSTR(".gz"))) { - ota_retry_counter = 1; - } else { - strcat_P(TasmotaGlobal.mqtt_data, PSTR(".gz")); - } - } -#endif // ESP8266 AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_UPLOAD "%s"), TasmotaGlobal.mqtt_data); WiFiClient OTAclient; ota_result = (HTTP_UPDATE_FAILED != ESPhttpUpdate.update(OTAclient, TasmotaGlobal.mqtt_data)); @@ -1093,28 +1084,26 @@ void Every250mSeconds(void) #ifndef FIRMWARE_MINIMAL int ota_error = ESPhttpUpdate.getLastError(); DEBUG_CORE_LOG(PSTR("OTA: Error %d"), ota_error); -#ifdef ESP8266 if ((HTTP_UE_TOO_LESS_SPACE == ota_error) || (HTTP_UE_BIN_FOR_WRONG_FLASH == ota_error)) { - RtcSettings.ota_loader = 1; // Try minimal image next + RtcSettings.ota_loader = 1; // Try minimal image next } -#endif // ESP8266 #endif // FIRMWARE_MINIMAL - TasmotaGlobal.ota_state_flag = 2; // Upgrade failed - retry + TasmotaGlobal.ota_state_flag = 2; // Upgrade failed - retry } } } - if (90 == TasmotaGlobal.ota_state_flag) { // Allow MQTT to reconnect + if (90 == TasmotaGlobal.ota_state_flag) { // Allow MQTT to reconnect TasmotaGlobal.ota_state_flag = 0; Response_P(PSTR("{\"" D_CMND_UPGRADE "\":\"")); if (ota_result) { -// SetFlashModeDout(); // Force DOUT for both ESP8266 and ESP8285 +// SetFlashModeDout(); // Force DOUT for both ESP8266 and ESP8285 ResponseAppend_P(PSTR(D_JSON_SUCCESSFUL ". " D_JSON_RESTARTING)); TasmotaGlobal.restart_flag = 2; } else { ResponseAppend_P(PSTR(D_JSON_FAILED " %s"), ESPhttpUpdate.getLastErrorString().c_str()); } ResponseAppend_P(PSTR("\"}")); -// TasmotaGlobal.restart_flag = 2; // Restart anyway to keep memory clean webserver +// TasmotaGlobal.restart_flag = 2; // Restart anyway to keep memory clean webserver MqttPublishPrefixTopic_P(STAT, PSTR(D_CMND_UPGRADE)); #ifdef USE_COUNTER CounterInterruptDisable(false); @@ -1655,7 +1644,8 @@ void GpioInit(void) bool valid_cs = (ValidSpiPinUsed(GPIO_SPI_CS) || ValidSpiPinUsed(GPIO_RC522_CS) || (ValidSpiPinUsed(GPIO_NRF24_CS) && ValidSpiPinUsed(GPIO_NRF24_DC)) || - (ValidSpiPinUsed(GPIO_ILI9341_CS) && ValidSpiPinUsed(GPIO_ILI9341_DC)) || + ValidSpiPinUsed(GPIO_ILI9341_CS) || + ValidSpiPinUsed(GPIO_ILI9341_DC) || // there are also boards without cs ValidSpiPinUsed(GPIO_EPAPER29_CS) || ValidSpiPinUsed(GPIO_EPAPER42_CS) || ValidSpiPinUsed(GPIO_ILI9488_CS) || diff --git a/tasmota/xdrv_13_display.ino b/tasmota/xdrv_13_display.ino index 817898d56..4838a91fc 100755 --- a/tasmota/xdrv_13_display.ino +++ b/tasmota/xdrv_13_display.ino @@ -658,9 +658,16 @@ void DisplayText(void) break; case 'f': // font sx - if (renderer) renderer->setTextFont(*cp&7); - else DisplaySetFont(*cp&7); - cp += 1; + { uint8_t font = *cp&7; + if (renderer) renderer->setTextFont(font); + else DisplaySetFont(font); + if (font) { + // for backward compatibility set size to 1 on non GFX fonts + if (renderer) renderer->setTextSize(1); + else DisplaySetSize(1); + } + cp += 1; + } break; case 'a': // rotation angle From 74912e7cc28b969ff2f8665796911cb1d68e5f5a Mon Sep 17 00:00:00 2001 From: gemu2015 Date: Sat, 13 Feb 2021 07:48:20 +0100 Subject: [PATCH 03/27] update ili9341 --- .../.github/ISSUE_TEMPLATE.md | 46 - .../.github/PULL_REQUEST_TEMPLATE.md | 26 - .../.gitignore | 4 - .../.travis.yml | 38 - .../Adafruit_ILI9341.cpp | 282 ------ .../Adafruit_ILI9341.h | 144 --- .../README.md | 35 - .../breakouttouchpaint/.esp8266.test.skip | 0 .../breakouttouchpaint/breakouttouchpaint.ino | 145 --- .../fulltest_featherwing/.mega2560.test.skip | 0 .../fulltest_featherwing.ino | 265 ------ .../examples/graphicstest/graphicstest.ino | 365 -------- .../.mega2560.test.skip | 0 .../graphicstest_featherwing.ino | 404 -------- .../examples/onoffbutton/onoffbutton.ino | 125 --- .../onoffbutton_breakout/.esp8266.test.skip | 0 .../onoffbutton_breakout.ino | 133 --- .../examples/pictureEmbed/dragon.h | 861 ------------------ .../examples/pictureEmbed/pictureEmbed.ino | 69 -- .../examples/spitftbitmap/spitftbitmap.ino | 218 ----- .../examples/touchpaint/touchpaint.ino | 146 --- .../.mega2560.test.skip | 0 .../touchpaint_featherwing.ino | 165 ---- .../library.properties | 9 - .../Arduino_ST7789.cpp | 33 +- .../Arduino_ST7789-gemu-1.0/Arduino_ST7789.h | 6 +- .../src/renderer.cpp | 37 +- .../Display_Renderer-gemu-1.0/src/renderer.h | 4 + .../ILI9341-gemu-1.0/ILI9341_2.cpp | 121 ++- lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h | 47 +- tasmota/xdsp_04_ili9341.ino | 393 ++++---- tasmota/xdsp_13_ILI9341-2.ino | 290 ------ 32 files changed, 368 insertions(+), 4043 deletions(-) delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/ISSUE_TEMPLATE.md delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.gitignore delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.travis.yml delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.cpp delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.h delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/README.md delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/.esp8266.test.skip delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/breakouttouchpaint.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/.mega2560.test.skip delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/fulltest_featherwing.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest/graphicstest.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/.mega2560.test.skip delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/graphicstest_featherwing.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton/onoffbutton.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/.esp8266.test.skip delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/onoffbutton_breakout.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/dragon.h delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/pictureEmbed.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/spitftbitmap/spitftbitmap.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint/touchpaint.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/.mega2560.test.skip delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/touchpaint_featherwing.ino delete mode 100644 lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/library.properties delete mode 100644 tasmota/xdsp_13_ILI9341-2.ino diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/ISSUE_TEMPLATE.md b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index f0e26146f..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,46 +0,0 @@ -Thank you for opening an issue on an Adafruit Arduino library repository. To -improve the speed of resolution please review the following guidelines and -common troubleshooting steps below before creating the issue: - -- **Do not use GitHub issues for troubleshooting projects and issues.** Instead use - the forums at http://forums.adafruit.com to ask questions and troubleshoot why - something isn't working as expected. In many cases the problem is a common issue - that you will more quickly receive help from the forum community. GitHub issues - are meant for known defects in the code. If you don't know if there is a defect - in the code then start with troubleshooting on the forum first. - -- **If following a tutorial or guide be sure you didn't miss a step.** Carefully - check all of the steps and commands to run have been followed. Consult the - forum if you're unsure or have questions about steps in a guide/tutorial. - -- **For Arduino projects check these very common issues to ensure they don't apply**: - - - For uploading sketches or communicating with the board make sure you're using - a **USB data cable** and **not** a **USB charge-only cable**. It is sometimes - very hard to tell the difference between a data and charge cable! Try using the - cable with other devices or swapping to another cable to confirm it is not - the problem. - - - **Be sure you are supplying adequate power to the board.** Check the specs of - your board and plug in an external power supply. In many cases just - plugging a board into your computer is not enough to power it and other - peripherals. - - - **Double check all soldering joints and connections.** Flakey connections - cause many mysterious problems. See the [guide to excellent soldering](https://learn.adafruit.com/adafruit-guide-excellent-soldering/tools) for examples of good solder joints. - - - **Ensure you are using an official Arduino or Adafruit board.** We can't - guarantee a clone board will have the same functionality and work as expected - with this code and don't support them. - -If you're sure this issue is a defect in the code and checked the steps above -please fill in the following fields to provide enough troubleshooting information. -You may delete the guideline and text above to just leave the following details: - -- Arduino board: **INSERT ARDUINO BOARD NAME/TYPE HERE** - -- Arduino IDE version (found in Arduino -> About Arduino menu): **INSERT ARDUINO - VERSION HERE** - -- List the steps to reproduce the problem below (if possible attach a sketch or - copy the sketch code in too): **LIST REPRO STEPS BELOW** diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/PULL_REQUEST_TEMPLATE.md b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 7b641eb86..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,26 +0,0 @@ -Thank you for creating a pull request to contribute to Adafruit's GitHub code! -Before you open the request please review the following guidelines and tips to -help it be more easily integrated: - -- **Describe the scope of your change--i.e. what the change does and what parts - of the code were modified.** This will help us understand any risks of integrating - the code. - -- **Describe any known limitations with your change.** For example if the change - doesn't apply to a supported platform of the library please mention it. - -- **Please run any tests or examples that can exercise your modified code.** We - strive to not break users of the code and running tests/examples helps with this - process. - -Thank you again for contributing! We will try to test and integrate the change -as soon as we can, but be aware we have many GitHub repositories to manage and -can't immediately respond to every request. There is no need to bump or check in -on a pull request (it will clutter the discussion of the request). - -Also don't be worried if the request is closed or not integrated--sometimes the -priorities of Adafruit's GitHub code (education, ease of use) might not match the -priorities of the pull request. Don't fret, the open source community thrives on -forks and GitHub makes it easy to keep your changes in a forked repo. - -After reviewing the guidelines above you can delete this text from the pull request. diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.gitignore b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.gitignore deleted file mode 100644 index c2a26c038..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Our handy .gitignore for automation ease -Doxyfile* -doxygen_sqlite3.db -html diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.travis.yml b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.travis.yml deleted file mode 100644 index 3e5672cd6..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/.travis.yml +++ /dev/null @@ -1,38 +0,0 @@ -language: c -sudo: false - -cache: - directories: - - ~/arduino_ide - # Caches Arduino IDE + ESP32 platform - - ~/.arduino15/packages/ - # Caches Arduino platforms -git: - depth: false - quiet: true - -# Blacklist -branches: - except: - - gh-pages - -env: - global: - - PRETTYNAME="Adafruit ILI9341 Arduino Library" -# Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" -# - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile - -before_install: - - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) - -install: - - arduino --install-library "Adafruit GFX Library","Adafruit STMPE610","Adafruit TouchScreen" - -script: - - build_main_platforms - -# Generate and deploy documentation -after_success: - - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) - - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) - diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.cpp b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.cpp deleted file mode 100644 index 442975ada..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.cpp +++ /dev/null @@ -1,282 +0,0 @@ -/*! -* @file Adafruit_ILI9341.cpp -* -* @mainpage Adafruit ILI9341 TFT Displays -* -* @section intro_sec Introduction -* -* This is the documentation for Adafruit's ILI9341 driver for the -* Arduino platform. -* -* This library works with the Adafruit 2.8" Touch Shield V2 (SPI) -* http://www.adafruit.com/products/1651 -* -* Adafruit 2.4" TFT LCD with Touchscreen Breakout w/MicroSD Socket - ILI9341 -* https://www.adafruit.com/product/2478 -* -* 2.8" TFT LCD with Touchscreen Breakout Board w/MicroSD Socket - ILI9341 -* https://www.adafruit.com/product/1770 -* -* 2.2" 18-bit color TFT LCD display with microSD card breakout - ILI9340 -* https://www.adafruit.com/product/1770 -* -* TFT FeatherWing - 2.4" 320x240 Touchscreen For All Feathers -* https://www.adafruit.com/product/3315 -* -* These displays use SPI to communicate, 4 or 5 pins are required -* to interface (RST is optional). -* -* Adafruit invests time and resources providing this open source code, -* please support Adafruit and open-source hardware by purchasing -* products from Adafruit! -* -* @section dependencies Dependencies -* -* This library depends on -* Adafruit_GFX being present on your system. Please make sure you have -* installed the latest version before using this library. -* -* @section author Author -* -* Written by Limor "ladyada" Fried for Adafruit Industries. -* -* @section license License -* -* BSD license, all text here must be included in any redistribution. -* -*/ - -#include "Adafruit_ILI9341.h" -#ifndef ARDUINO_STM32_FEATHER - #include "pins_arduino.h" - #ifndef RASPI - #include "wiring_private.h" - #endif -#endif -#include - -#if defined (ARDUINO_ARCH_ARC32) || defined (ARDUINO_MAXIM) - #define SPI_DEFAULT_FREQ 16000000 -#elif defined (__AVR__) || defined(TEENSYDUINO) - #define SPI_DEFAULT_FREQ 8000000 -#elif defined(ESP8266) || defined(ESP32) - #define SPI_DEFAULT_FREQ 40000000 -#elif defined(RASPI) - #define SPI_DEFAULT_FREQ 80000000 -#elif defined(ARDUINO_ARCH_STM32F1) - #define SPI_DEFAULT_FREQ 36000000 -#else - #define SPI_DEFAULT_FREQ 24000000 ///< Default SPI data clock frequency -#endif - -#define MADCTL_MY 0x80 ///< Bottom to top -#define MADCTL_MX 0x40 ///< Right to left -#define MADCTL_MV 0x20 ///< Reverse Mode -#define MADCTL_ML 0x10 ///< LCD refresh Bottom to top -#define MADCTL_RGB 0x00 ///< Red-Green-Blue pixel order -#define MADCTL_BGR 0x08 ///< Blue-Green-Red pixel order -#define MADCTL_MH 0x04 ///< LCD refresh right to left - -/**************************************************************************/ -/*! - @brief Instantiate Adafruit ILI9341 driver with software SPI - @param cs Chip select pin # - @param dc Data/Command pin # - @param mosi SPI MOSI pin # - @param sclk SPI Clock pin # - @param rst Reset pin # (optional, pass -1 if unused) - @param miso SPI MISO pin # (optional, pass -1 if unused) -*/ -/**************************************************************************/ -Adafruit_ILI9341::Adafruit_ILI9341(int8_t cs, int8_t dc, int8_t mosi, - int8_t sclk, int8_t rst, int8_t miso) : Adafruit_SPITFT(ILI9341_TFTWIDTH, ILI9341_TFTHEIGHT, cs, dc, mosi, sclk, rst, miso) { -} - -/**************************************************************************/ -/*! - @brief Instantiate Adafruit ILI9341 driver with hardware SPI - @param cs Chip select pin # - @param dc Data/Command pin # - @param rst Reset pin # (optional, pass -1 if unused) -*/ -/**************************************************************************/ -Adafruit_ILI9341::Adafruit_ILI9341(int8_t cs, int8_t dc, int8_t rst) : Adafruit_SPITFT(ILI9341_TFTWIDTH, ILI9341_TFTHEIGHT, cs, dc, rst) { -} - -static const uint8_t PROGMEM initcmd[] = { - 0xEF, 3, 0x03, 0x80, 0x02, - 0xCF, 3, 0x00, 0xC1, 0x30, - 0xED, 4, 0x64, 0x03, 0x12, 0x81, - 0xE8, 3, 0x85, 0x00, 0x78, - 0xCB, 5, 0x39, 0x2C, 0x00, 0x34, 0x02, - 0xF7, 1, 0x20, - 0xEA, 2, 0x00, 0x00, - ILI9341_PWCTR1 , 1, 0x23, // Power control VRH[5:0] - ILI9341_PWCTR2 , 1, 0x10, // Power control SAP[2:0];BT[3:0] - ILI9341_VMCTR1 , 2, 0x3e, 0x28, // VCM control - ILI9341_VMCTR2 , 1, 0x86, // VCM control2 - ILI9341_MADCTL , 1, 0x48, // Memory Access Control - ILI9341_VSCRSADD, 1, 0x00, // Vertical scroll zero - ILI9341_PIXFMT , 1, 0x55, - ILI9341_FRMCTR1 , 2, 0x00, 0x18, - ILI9341_DFUNCTR , 3, 0x08, 0x82, 0x27, // Display Function Control - 0xF2, 1, 0x00, // 3Gamma Function Disable - ILI9341_GAMMASET , 1, 0x01, // Gamma curve selected - ILI9341_GMCTRP1 , 15, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, // Set Gamma - 0x4E, 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00, - ILI9341_GMCTRN1 , 15, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, // Set Gamma - 0x31, 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F, - ILI9341_SLPOUT , 0x80, // Exit Sleep - ILI9341_DISPON , 0x80, // Display on - 0x00 // End of list -}; - -/**************************************************************************/ -/*! - @brief Initialize ILI9341 chip - Connects to the ILI9341 over SPI and sends initialization procedure commands - @param freq Desired SPI clock frequency -*/ -/**************************************************************************/ -void Adafruit_ILI9341::begin(uint32_t freq) { - if(!freq) freq = SPI_DEFAULT_FREQ; - _freq = freq; - - initSPI(freq); - - startWrite(); - - uint8_t cmd, x, numArgs; - const uint8_t *addr = initcmd; - while((cmd = pgm_read_byte(addr++)) > 0) { - writeCommand(cmd); - x = pgm_read_byte(addr++); - numArgs = x & 0x7F; - while(numArgs--) spiWrite(pgm_read_byte(addr++)); - if(x & 0x80) delay(120); - } - - endWrite(); - - _width = ILI9341_TFTWIDTH; - _height = ILI9341_TFTHEIGHT; -} - - -/**************************************************************************/ -/*! - @brief Set origin of (0,0) and orientation of TFT display - @param m The index for rotation, from 0-3 inclusive -*/ -/**************************************************************************/ -void Adafruit_ILI9341::setRotation(uint8_t m) { - rotation = m % 4; // can't be higher than 3 - switch (rotation) { - case 0: - m = (MADCTL_MX | MADCTL_BGR); - _width = ILI9341_TFTWIDTH; - _height = ILI9341_TFTHEIGHT; - break; - case 1: - m = (MADCTL_MV | MADCTL_BGR); - _width = ILI9341_TFTHEIGHT; - _height = ILI9341_TFTWIDTH; - break; - case 2: - m = (MADCTL_MY | MADCTL_BGR); - _width = ILI9341_TFTWIDTH; - _height = ILI9341_TFTHEIGHT; - break; - case 3: - m = (MADCTL_MX | MADCTL_MY | MADCTL_MV | MADCTL_BGR); - _width = ILI9341_TFTHEIGHT; - _height = ILI9341_TFTWIDTH; - break; - } - - startWrite(); - writeCommand(ILI9341_MADCTL); - spiWrite(m); - endWrite(); -} - -/**************************************************************************/ -/*! - @brief Enable/Disable display color inversion - @param invert True to invert, False to have normal color -*/ -/**************************************************************************/ -void Adafruit_ILI9341::invertDisplay(boolean invert) { - startWrite(); - writeCommand(invert ? ILI9341_INVON : ILI9341_INVOFF); - endWrite(); -} - -/**************************************************************************/ -/*! - @brief Scroll display memory - @param y How many pixels to scroll display by -*/ -/**************************************************************************/ -void Adafruit_ILI9341::scrollTo(uint16_t y) { - startWrite(); - writeCommand(ILI9341_VSCRSADD); - SPI_WRITE16(y); - endWrite(); -} - -/**************************************************************************/ - -void Adafruit_ILI9341::setScrollMargins(uint16_t top, uint16_t bottom) -{ - uint16_t height = _height - (top + bottom); - - startWrite(); - writeCommand(0x33); - SPI_WRITE16(top); - SPI_WRITE16(height); - SPI_WRITE16(bottom); - endWrite(); -} - -/**************************************************************************/ -/*! - @brief Set the "address window" - the rectangle we will write to RAM with the next chunk of SPI data writes. The ILI9341 will automatically wrap the data as each row is filled - @param x TFT memory 'x' origin - @param y TFT memory 'y' origin - @param w Width of rectangle - @param h Height of rectangle -*/ -/**************************************************************************/ -void Adafruit_ILI9341::setAddrWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h) { - uint32_t xa = ((uint32_t)x << 16) | (x+w-1); - uint32_t ya = ((uint32_t)y << 16) | (y+h-1); - writeCommand(ILI9341_CASET); // Column addr set - SPI_WRITE32(xa); - writeCommand(ILI9341_PASET); // Row addr set - SPI_WRITE32(ya); - writeCommand(ILI9341_RAMWR); // write to RAM -} - -/**************************************************************************/ -/*! - @brief Read 8 bits of data from ILI9341 configuration memory. NOT from RAM! - This is highly undocumented/supported, it's really a hack but kinda works? - @param command The command register to read data from - @param index The byte index into the command to read from - @return Unsigned 8-bit data read from ILI9341 register -*/ -/**************************************************************************/ -uint8_t Adafruit_ILI9341::readcommand8(uint8_t command, uint8_t index) { - uint32_t freq = _freq; - if(_freq > 24000000) _freq = 24000000; - startWrite(); - writeCommand(0xD9); // woo sekret command? - spiWrite(0x10 + index); - writeCommand(command); - uint8_t r = spiRead(); - endWrite(); - _freq = freq; - return r; -} - diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.h b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.h deleted file mode 100644 index 368e1cc0f..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/Adafruit_ILI9341.h +++ /dev/null @@ -1,144 +0,0 @@ -/*! -* @file Adafruit_ILI9341.h -* -* This is the documentation for Adafruit's ILI9341 driver for the -* Arduino platform. -* -* This library works with the Adafruit 2.8" Touch Shield V2 (SPI) -* http://www.adafruit.com/products/1651 -* Adafruit 2.4" TFT LCD with Touchscreen Breakout w/MicroSD Socket - ILI9341 -* https://www.adafruit.com/product/2478 -* 2.8" TFT LCD with Touchscreen Breakout Board w/MicroSD Socket - ILI9341 -* https://www.adafruit.com/product/1770 -* 2.2" 18-bit color TFT LCD display with microSD card breakout - ILI9340 -* https://www.adafruit.com/product/1770 -* TFT FeatherWing - 2.4" 320x240 Touchscreen For All Feathers -* https://www.adafruit.com/product/3315 -* -* These displays use SPI to communicate, 4 or 5 pins are required -* to interface (RST is optional). -* -* Adafruit invests time and resources providing this open source code, -* please support Adafruit and open-source hardware by purchasing -* products from Adafruit! -* -* -* This library depends on -* Adafruit_GFX being present on your system. Please make sure you have -* installed the latest version before using this library. -* -* Written by Limor "ladyada" Fried for Adafruit Industries. -* -* BSD license, all text here must be included in any redistribution. -* -*/ - -#ifndef _ADAFRUIT_ILI9341H_ -#define _ADAFRUIT_ILI9341H_ - -#include "Arduino.h" -#include "Print.h" -#include -#include "Adafruit_GFX.h" -#include -#include - -#define ILI9341_TFTWIDTH 240 ///< ILI9341 max TFT width -#define ILI9341_TFTHEIGHT 320 ///< ILI9341 max TFT height - -#define ILI9341_NOP 0x00 ///< No-op register -#define ILI9341_SWRESET 0x01 ///< Software reset register -#define ILI9341_RDDID 0x04 ///< Read display identification information -#define ILI9341_RDDST 0x09 ///< Read Display Status - -#define ILI9341_SLPIN 0x10 ///< Enter Sleep Mode -#define ILI9341_SLPOUT 0x11 ///< Sleep Out -#define ILI9341_PTLON 0x12 ///< Partial Mode ON -#define ILI9341_NORON 0x13 ///< Normal Display Mode ON - -#define ILI9341_RDMODE 0x0A ///< Read Display Power Mode -#define ILI9341_RDMADCTL 0x0B ///< Read Display MADCTL -#define ILI9341_RDPIXFMT 0x0C ///< Read Display Pixel Format -#define ILI9341_RDIMGFMT 0x0D ///< Read Display Image Format -#define ILI9341_RDSELFDIAG 0x0F ///< Read Display Self-Diagnostic Result - -#define ILI9341_INVOFF 0x20 ///< Display Inversion OFF -#define ILI9341_INVON 0x21 ///< Display Inversion ON -#define ILI9341_GAMMASET 0x26 ///< Gamma Set -#define ILI9341_DISPOFF 0x28 ///< Display OFF -#define ILI9341_DISPON 0x29 ///< Display ON - -#define ILI9341_CASET 0x2A ///< Column Address Set -#define ILI9341_PASET 0x2B ///< Page Address Set -#define ILI9341_RAMWR 0x2C ///< Memory Write -#define ILI9341_RAMRD 0x2E ///< Memory Read - -#define ILI9341_PTLAR 0x30 ///< Partial Area -#define ILI9341_MADCTL 0x36 ///< Memory Access Control -#define ILI9341_VSCRSADD 0x37 ///< Vertical Scrolling Start Address -#define ILI9341_PIXFMT 0x3A ///< COLMOD: Pixel Format Set - -#define ILI9341_FRMCTR1 0xB1 ///< Frame Rate Control (In Normal Mode/Full Colors) -#define ILI9341_FRMCTR2 0xB2 ///< Frame Rate Control (In Idle Mode/8 colors) -#define ILI9341_FRMCTR3 0xB3 ///< Frame Rate control (In Partial Mode/Full Colors) -#define ILI9341_INVCTR 0xB4 ///< Display Inversion Control -#define ILI9341_DFUNCTR 0xB6 ///< Display Function Control - -#define ILI9341_PWCTR1 0xC0 ///< Power Control 1 -#define ILI9341_PWCTR2 0xC1 ///< Power Control 2 -#define ILI9341_PWCTR3 0xC2 ///< Power Control 3 -#define ILI9341_PWCTR4 0xC3 ///< Power Control 4 -#define ILI9341_PWCTR5 0xC4 ///< Power Control 5 -#define ILI9341_VMCTR1 0xC5 ///< VCOM Control 1 -#define ILI9341_VMCTR2 0xC7 ///< VCOM Control 2 - -#define ILI9341_RDID1 0xDA ///< Read ID 1 -#define ILI9341_RDID2 0xDB ///< Read ID 2 -#define ILI9341_RDID3 0xDC ///< Read ID 3 -#define ILI9341_RDID4 0xDD ///< Read ID 4 - -#define ILI9341_GMCTRP1 0xE0 ///< Positive Gamma Correction -#define ILI9341_GMCTRN1 0xE1 ///< Negative Gamma Correction -//#define ILI9341_PWCTR6 0xFC - -// Color definitions -#define ILI9341_BLACK 0x0000 ///< 0, 0, 0 -#define ILI9341_NAVY 0x000F ///< 0, 0, 123 -#define ILI9341_DARKGREEN 0x03E0 ///< 0, 125, 0 -#define ILI9341_DARKCYAN 0x03EF ///< 0, 125, 123 -#define ILI9341_MAROON 0x7800 ///< 123, 0, 0 -#define ILI9341_PURPLE 0x780F ///< 123, 0, 123 -#define ILI9341_OLIVE 0x7BE0 ///< 123, 125, 0 -#define ILI9341_LIGHTGREY 0xC618 ///< 198, 195, 198 -#define ILI9341_DARKGREY 0x7BEF ///< 123, 125, 123 -#define ILI9341_BLUE 0x001F ///< 0, 0, 255 -#define ILI9341_GREEN 0x07E0 ///< 0, 255, 0 -#define ILI9341_CYAN 0x07FF ///< 0, 255, 255 -#define ILI9341_RED 0xF800 ///< 255, 0, 0 -#define ILI9341_MAGENTA 0xF81F ///< 255, 0, 255 -#define ILI9341_YELLOW 0xFFE0 ///< 255, 255, 0 -#define ILI9341_WHITE 0xFFFF ///< 255, 255, 255 -#define ILI9341_ORANGE 0xFD20 ///< 255, 165, 0 -#define ILI9341_GREENYELLOW 0xAFE5 ///< 173, 255, 41 -#define ILI9341_PINK 0xFC18 ///< 255, 130, 198 - -///< Class to manage hardware interface with ILI9341 chipset (also seems to work with ILI9340) -class Adafruit_ILI9341 : public Adafruit_SPITFT { - public: - Adafruit_ILI9341(int8_t _CS, int8_t _DC, int8_t _MOSI, int8_t _SCLK, int8_t _RST = -1, int8_t _MISO = -1); - Adafruit_ILI9341(int8_t _CS, int8_t _DC, int8_t _RST = -1); - - void begin(uint32_t freq=0); - void setRotation(uint8_t r); - void invertDisplay(boolean i); - void scrollTo(uint16_t y); - - void setScrollMargins(uint16_t top, uint16_t bottom); - - // Transaction API not used by GFX - void setAddrWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h); - - uint8_t readcommand8(uint8_t reg, uint8_t index=0); -}; - -#endif // _ADAFRUIT_ILI9341H_ diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/README.md b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/README.md deleted file mode 100644 index b08f63086..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Adafruit ILI9341 Arduino Library [![Build Status](https://travis-ci.org/adafruit/Adafruit_ILI9341.svg?branch=master)](https://travis-ci.org/adafruit/Adafruit_ILI9341) - -This is a library for the Adafruit ILI9341 display products - -This library works with the Adafruit 2.8" Touch Shield V2 (SPI) - * http://www.adafruit.com/products/1651 - -Adafruit 2.4" TFT LCD with Touchscreen Breakout w/MicroSD Socket - ILI9341 - * https://www.adafruit.com/product/2478 - -2.8" TFT LCD with Touchscreen Breakout Board w/MicroSD Socket - ILI9341 - * https://www.adafruit.com/product/1770 - -2.2" 18-bit color TFT LCD display with microSD card breakout - ILI9340 - * https://www.adafruit.com/product/1480 - -TFT FeatherWing - 2.4" 320x240 Touchscreen For All Feathers - * https://www.adafruit.com/product/3315 - -Check out the links above for our tutorials and wiring diagrams. -These displays use SPI to communicate, 4 or 5 pins are required -to interface (RST is optional). - -Adafruit invests time and resources providing this open source code, -please support Adafruit and open-source hardware by purchasing -products from Adafruit! - -Written by Limor Fried/Ladyada for Adafruit Industries. -MIT license, all text above must be included in any redistribution - -To download. click the DOWNLOADS button in the top right corner, rename the uncompressed folder Adafruit_ILI9341. Check that the Adafruit_ILI9341 folder contains Adafruit_ILI9341.cpp and Adafruit_ILI9341. - -Place the Adafruit_ILI9341 library folder your arduinosketchfolder/libraries/ folder. You may need to create the libraries subfolder if its your first library. Restart the IDE - -Also requires the Adafruit_GFX library for Arduino. diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/.esp8266.test.skip b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/.esp8266.test.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/breakouttouchpaint.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/breakouttouchpaint.ino deleted file mode 100644 index 298bcad6b..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/breakouttouchpaint/breakouttouchpaint.ino +++ /dev/null @@ -1,145 +0,0 @@ -/*************************************************** - This is our touchscreen painting example for the Adafruit ILI9341 Breakout - ----> http://www.adafruit.com/products/1770 - - Check out the links above for our tutorials and wiring diagrams - These displays use SPI to communicate, 4 or 5 pins are required to - interface (RST is optional) - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried/Ladyada for Adafruit Industries. - MIT license, all text above must be included in any redistribution - ****************************************************/ - -/** NOT FOR USE WITH THE TOUCH SHIELD, ONLY FOR THE BREAKOUT! **/ - -#include // Core graphics library -#include -#include -#include "TouchScreen.h" - -// These are the four touchscreen analog pins -#define YP A2 // must be an analog pin, use "An" notation! -#define XM A3 // must be an analog pin, use "An" notation! -#define YM 5 // can be a digital pin -#define XP 4 // can be a digital pin - -// This is calibration data for the raw touch data to the screen coordinates -#define TS_MINX 150 -#define TS_MINY 120 -#define TS_MAXX 920 -#define TS_MAXY 940 - -#define MINPRESSURE 10 -#define MAXPRESSURE 1000 - -// The display uses hardware SPI, plus #9 & #10 -#define TFT_CS 10 -#define TFT_DC 9 -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); - -// For better pressure precision, we need to know the resistance -// between X+ and X- Use any multimeter to read it -// For the one we're using, its 300 ohms across the X plate -TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); - -// Size of the color selection boxes and the paintbrush size -#define BOXSIZE 40 -#define PENRADIUS 3 -int oldcolor, currentcolor; - -void setup(void) { - // while (!Serial); // used for leonardo debugging - - Serial.begin(9600); - Serial.println(F("Touch Paint!")); - - tft.begin(); - tft.fillScreen(ILI9341_BLACK); - - // make the color selection boxes - tft.fillRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_RED); - tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_YELLOW); - tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_GREEN); - tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_CYAN); - tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_BLUE); - tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_MAGENTA); - - // select the current color 'red' - tft.drawRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - currentcolor = ILI9341_RED; -} - - -void loop() -{ - // Retrieve a point - TSPoint p = ts.getPoint(); - - /* - Serial.print("X = "); Serial.print(p.x); - Serial.print("\tY = "); Serial.print(p.y); - Serial.print("\tPressure = "); Serial.println(p.z); - */ - - // we have some minimum pressure we consider 'valid' - // pressure of 0 means no pressing! - if (p.z < MINPRESSURE || p.z > MAXPRESSURE) { - return; - } - - // Scale from ~0->1000 to tft.width using the calibration #'s - p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width()); - p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height()); - - /* - Serial.print("("); Serial.print(p.x); - Serial.print(", "); Serial.print(p.y); - Serial.println(")"); - */ - - - if (p.y < BOXSIZE) { - oldcolor = currentcolor; - - if (p.x < BOXSIZE) { - currentcolor = ILI9341_RED; - tft.drawRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*2) { - currentcolor = ILI9341_YELLOW; - tft.drawRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*3) { - currentcolor = ILI9341_GREEN; - tft.drawRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*4) { - currentcolor = ILI9341_CYAN; - tft.drawRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*5) { - currentcolor = ILI9341_BLUE; - tft.drawRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*6) { - currentcolor = ILI9341_MAGENTA; - tft.drawRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } - - if (oldcolor != currentcolor) { - if (oldcolor == ILI9341_RED) - tft.fillRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_RED); - if (oldcolor == ILI9341_YELLOW) - tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_YELLOW); - if (oldcolor == ILI9341_GREEN) - tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_GREEN); - if (oldcolor == ILI9341_CYAN) - tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_CYAN); - if (oldcolor == ILI9341_BLUE) - tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_BLUE); - if (oldcolor == ILI9341_MAGENTA) - tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_MAGENTA); - } - } - if (((p.y-PENRADIUS) > BOXSIZE) && ((p.y+PENRADIUS) < tft.height())) { - tft.fillCircle(p.x, p.y, PENRADIUS, currentcolor); - } -} diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/.mega2560.test.skip b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/.mega2560.test.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/fulltest_featherwing.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/fulltest_featherwing.ino deleted file mode 100644 index 25f32f2e6..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/fulltest_featherwing/fulltest_featherwing.ino +++ /dev/null @@ -1,265 +0,0 @@ -/*************************************************** - This is our touchscreen painting example for the Adafruit TFT FeatherWing - ----> http://www.adafruit.com/products/3315 - - Check out the links above for our tutorials and wiring diagrams - - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried/Ladyada for Adafruit Industries. - MIT license, all text above must be included in any redistribution - ****************************************************/ - -#include -#include // this is needed even tho we aren't using it - -#include // Core graphics library -#include // Hardware-specific library -#include -#include - -#ifdef ESP8266 - #define STMPE_CS 16 - #define TFT_CS 0 - #define TFT_DC 15 - #define SD_CS 2 -#endif -#ifdef ESP32 - #define STMPE_CS 32 - #define TFT_CS 15 - #define TFT_DC 33 - #define SD_CS 14 -#endif -#ifdef TEENSYDUINO - #define TFT_DC 10 - #define TFT_CS 4 - #define STMPE_CS 3 - #define SD_CS 8 -#endif -#ifdef ARDUINO_STM32_FEATHER - #define TFT_DC PB4 - #define TFT_CS PA15 - #define STMPE_CS PC7 - #define SD_CS PC5 -#endif -#ifdef ARDUINO_NRF52_FEATHER /* BSP 0.6.5 and higher! */ - #define TFT_DC 11 - #define TFT_CS 31 - #define STMPE_CS 30 - #define SD_CS 27 -#endif -#if defined(ARDUINO_MAX32620FTHR) || defined(ARDUINO_MAX32630FTHR) - #define TFT_DC P5_4 - #define TFT_CS P5_3 - #define STMPE_CS P3_3 - #define SD_CS P3_2 -#endif - -// Anything else! -#if defined (__AVR_ATmega32U4__) || defined(ARDUINO_SAMD_FEATHER_M0) || defined (__AVR_ATmega328P__) || defined(ARDUINO_SAMD_ZERO) || defined(__SAMD51__) || defined(__SAM3X8E__) - #define STMPE_CS 6 - #define TFT_CS 9 - #define TFT_DC 10 - #define SD_CS 5 -#endif - -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); -Adafruit_STMPE610 ts = Adafruit_STMPE610(STMPE_CS); - - -// This is calibration data for the raw touch data to the screen coordinates -#define TS_MINX 3800 -#define TS_MAXX 100 -#define TS_MINY 100 -#define TS_MAXY 3750 - -#define PENRADIUS 3 - -void setup(void) { - Serial.begin(115200); - - delay(10); - Serial.println("FeatherWing TFT"); - if (!ts.begin()) { - Serial.println("Couldn't start touchscreen controller"); - while (1); - } - Serial.println("Touchscreen started"); - - tft.begin(); - tft.fillScreen(ILI9341_BLUE); - - yield(); - - Serial.print("Initializing SD card..."); - if (!SD.begin(SD_CS)) { - Serial.println("failed!"); - } - Serial.println("OK!"); - - bmpDraw("purple.bmp", 0, 0); -} - -void loop() { - // Retrieve a point - TS_Point p = ts.getPoint(); - - Serial.print("X = "); Serial.print(p.x); - Serial.print("\tY = "); Serial.print(p.y); - Serial.print("\tPressure = "); Serial.println(p.z); - - // Scale from ~0->4000 to tft.width using the calibration #'s - p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width()); - p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height()); - - if (((p.y-PENRADIUS) > 0) && ((p.y+PENRADIUS) < tft.height())) { - tft.fillCircle(p.x, p.y, PENRADIUS, ILI9341_RED); - } -} - -// This function opens a Windows Bitmap (BMP) file and -// displays it at the given coordinates. It's sped up -// by reading many pixels worth of data at a time -// (rather than pixel by pixel). Increasing the buffer -// size takes more of the Arduino's precious RAM but -// makes loading a little faster. 20 pixels seems a -// good balance. - -#define BUFFPIXEL 20 - -void bmpDraw(char *filename, int16_t x, int16_t y) { - - File bmpFile; - int bmpWidth, bmpHeight; // W+H in pixels - uint8_t bmpDepth; // Bit depth (currently must be 24) - uint32_t bmpImageoffset; // Start of image data in file - uint32_t rowSize; // Not always = bmpWidth; may have padding - uint8_t sdbuffer[3*BUFFPIXEL]; // pixel buffer (R+G+B per pixel) - uint8_t buffidx = sizeof(sdbuffer); // Current position in sdbuffer - boolean goodBmp = false; // Set to true on valid header parse - boolean flip = true; // BMP is stored bottom-to-top - int w, h, row, col; - uint8_t r, g, b; - uint32_t pos = 0, startTime = millis(); - - if((x >= tft.width()) || (y >= tft.height())) return; - - Serial.println(); - Serial.print(F("Loading image '")); - Serial.print(filename); - Serial.println('\''); - - // Open requested file on SD card - if ((bmpFile = SD.open(filename)) == NULL) { - Serial.print(F("File not found")); - return; - } - - // Parse BMP header - if(read16(bmpFile) == 0x4D42) { // BMP signature - Serial.print(F("File size: ")); Serial.println(read32(bmpFile)); - (void)read32(bmpFile); // Read & ignore creator bytes - bmpImageoffset = read32(bmpFile); // Start of image data - Serial.print(F("Image Offset: ")); Serial.println(bmpImageoffset, DEC); - // Read DIB header - Serial.print(F("Header size: ")); Serial.println(read32(bmpFile)); - bmpWidth = read32(bmpFile); - bmpHeight = read32(bmpFile); - if(read16(bmpFile) == 1) { // # planes -- must be '1' - bmpDepth = read16(bmpFile); // bits per pixel - Serial.print(F("Bit Depth: ")); Serial.println(bmpDepth); - if((bmpDepth == 24) && (read32(bmpFile) == 0)) { // 0 = uncompressed - - goodBmp = true; // Supported BMP format -- proceed! - Serial.print(F("Image size: ")); - Serial.print(bmpWidth); - Serial.print('x'); - Serial.println(bmpHeight); - - // BMP rows are padded (if needed) to 4-byte boundary - rowSize = (bmpWidth * 3 + 3) & ~3; - - // If bmpHeight is negative, image is in top-down order. - // This is not canon but has been observed in the wild. - if(bmpHeight < 0) { - bmpHeight = -bmpHeight; - flip = false; - } - - // Crop area to be loaded - w = bmpWidth; - h = bmpHeight; - if((x+w-1) >= tft.width()) w = tft.width() - x; - if((y+h-1) >= tft.height()) h = tft.height() - y; - - // Set TFT address window to clipped image bounds - tft.startWrite(); - tft.setAddrWindow(x, y, w, h); - - for (row=0; row= sizeof(sdbuffer)) { // Indeed - tft.endWrite(); - bmpFile.read(sdbuffer, sizeof(sdbuffer)); - tft.startWrite(); - buffidx = 0; // Set index to beginning - } - - // Convert pixel from BMP to TFT format, push to display - b = sdbuffer[buffidx++]; - g = sdbuffer[buffidx++]; - r = sdbuffer[buffidx++]; - tft.pushColor(tft.color565(r,g,b)); - } // end pixel - tft.endWrite(); - } // end scanline - Serial.print(F("Loaded in ")); - Serial.print(millis() - startTime); - Serial.println(" ms"); - } // end goodBmp - } - } - - bmpFile.close(); - if(!goodBmp) Serial.println(F("BMP format not recognized.")); -} - -// These read 16- and 32-bit types from the SD card file. -// BMP data is stored little-endian, Arduino is little-endian too. -// May need to reverse subscript order if porting elsewhere. - -uint16_t read16(File &f) { - uint16_t result; - ((uint8_t *)&result)[0] = f.read(); // LSB - ((uint8_t *)&result)[1] = f.read(); // MSB - return result; -} - -uint32_t read32(File &f) { - uint32_t result; - ((uint8_t *)&result)[0] = f.read(); // LSB - ((uint8_t *)&result)[1] = f.read(); - ((uint8_t *)&result)[2] = f.read(); - ((uint8_t *)&result)[3] = f.read(); // MSB - return result; -} diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest/graphicstest.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest/graphicstest.ino deleted file mode 100644 index 3154d4095..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest/graphicstest.ino +++ /dev/null @@ -1,365 +0,0 @@ -/*************************************************** - This is our GFX example for the Adafruit ILI9341 Breakout and Shield - ----> http://www.adafruit.com/products/1651 - - Check out the links above for our tutorials and wiring diagrams - These displays use SPI to communicate, 4 or 5 pins are required to - interface (RST is optional) - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried/Ladyada for Adafruit Industries. - MIT license, all text above must be included in any redistribution - ****************************************************/ - - -#include "SPI.h" -#include "Adafruit_GFX.h" -#include "Adafruit_ILI9341.h" - -// For the Adafruit shield, these are the default. -#define TFT_DC 9 -#define TFT_CS 10 - -// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); -// If using the breakout, change pins as desired -//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO); - -void setup() { - Serial.begin(9600); - Serial.println("ILI9341 Test!"); - - tft.begin(); - - // read diagnostics (optional but can help debug problems) - uint8_t x = tft.readcommand8(ILI9341_RDMODE); - Serial.print("Display Power Mode: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDMADCTL); - Serial.print("MADCTL Mode: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDPIXFMT); - Serial.print("Pixel Format: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDIMGFMT); - Serial.print("Image Format: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDSELFDIAG); - Serial.print("Self Diagnostic: 0x"); Serial.println(x, HEX); - - Serial.println(F("Benchmark Time (microseconds)")); - delay(10); - Serial.print(F("Screen fill ")); - Serial.println(testFillScreen()); - delay(500); - - Serial.print(F("Text ")); - Serial.println(testText()); - delay(3000); - - Serial.print(F("Lines ")); - Serial.println(testLines(ILI9341_CYAN)); - delay(500); - - Serial.print(F("Horiz/Vert Lines ")); - Serial.println(testFastLines(ILI9341_RED, ILI9341_BLUE)); - delay(500); - - Serial.print(F("Rectangles (outline) ")); - Serial.println(testRects(ILI9341_GREEN)); - delay(500); - - Serial.print(F("Rectangles (filled) ")); - Serial.println(testFilledRects(ILI9341_YELLOW, ILI9341_MAGENTA)); - delay(500); - - Serial.print(F("Circles (filled) ")); - Serial.println(testFilledCircles(10, ILI9341_MAGENTA)); - - Serial.print(F("Circles (outline) ")); - Serial.println(testCircles(10, ILI9341_WHITE)); - delay(500); - - Serial.print(F("Triangles (outline) ")); - Serial.println(testTriangles()); - delay(500); - - Serial.print(F("Triangles (filled) ")); - Serial.println(testFilledTriangles()); - delay(500); - - Serial.print(F("Rounded rects (outline) ")); - Serial.println(testRoundRects()); - delay(500); - - Serial.print(F("Rounded rects (filled) ")); - Serial.println(testFilledRoundRects()); - delay(500); - - Serial.println(F("Done!")); - -} - - -void loop(void) { - for(uint8_t rotation=0; rotation<4; rotation++) { - tft.setRotation(rotation); - testText(); - delay(1000); - } -} - -unsigned long testFillScreen() { - unsigned long start = micros(); - tft.fillScreen(ILI9341_BLACK); - yield(); - tft.fillScreen(ILI9341_RED); - yield(); - tft.fillScreen(ILI9341_GREEN); - yield(); - tft.fillScreen(ILI9341_BLUE); - yield(); - tft.fillScreen(ILI9341_BLACK); - yield(); - return micros() - start; -} - -unsigned long testText() { - tft.fillScreen(ILI9341_BLACK); - unsigned long start = micros(); - tft.setCursor(0, 0); - tft.setTextColor(ILI9341_WHITE); tft.setTextSize(1); - tft.println("Hello World!"); - tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2); - tft.println(1234.56); - tft.setTextColor(ILI9341_RED); tft.setTextSize(3); - tft.println(0xDEADBEEF, HEX); - tft.println(); - tft.setTextColor(ILI9341_GREEN); - tft.setTextSize(5); - tft.println("Groop"); - tft.setTextSize(2); - tft.println("I implore thee,"); - tft.setTextSize(1); - tft.println("my foonting turlingdromes."); - tft.println("And hooptiously drangle me"); - tft.println("with crinkly bindlewurdles,"); - tft.println("Or I will rend thee"); - tft.println("in the gobberwarts"); - tft.println("with my blurglecruncheon,"); - tft.println("see if I don't!"); - return micros() - start; -} - -unsigned long testLines(uint16_t color) { - unsigned long start, t; - int x1, y1, x2, y2, - w = tft.width(), - h = tft.height(); - - tft.fillScreen(ILI9341_BLACK); - yield(); - - x1 = y1 = 0; - y2 = h - 1; - start = micros(); - for(x2=0; x20; i-=6) { - i2 = i / 2; - start = micros(); - tft.fillRect(cx-i2, cy-i2, i, i, color1); - t += micros() - start; - // Outlines are not included in timing results - tft.drawRect(cx-i2, cy-i2, i, i, color2); - yield(); - } - - return t; -} - -unsigned long testFilledCircles(uint8_t radius, uint16_t color) { - unsigned long start; - int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2; - - tft.fillScreen(ILI9341_BLACK); - start = micros(); - for(x=radius; x10; i-=5) { - start = micros(); - tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.color565(0, i*10, i*10)); - t += micros() - start; - tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.color565(i*10, i*10, 0)); - yield(); - } - - return t; -} - -unsigned long testRoundRects() { - unsigned long start; - int w, i, i2, - cx = tft.width() / 2 - 1, - cy = tft.height() / 2 - 1; - - tft.fillScreen(ILI9341_BLACK); - w = min(tft.width(), tft.height()); - start = micros(); - for(i=0; i20; i-=6) { - i2 = i / 2; - tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0)); - yield(); - } - - return micros() - start; -} \ No newline at end of file diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/.mega2560.test.skip b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/.mega2560.test.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/graphicstest_featherwing.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/graphicstest_featherwing.ino deleted file mode 100644 index 2a108d29c..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/graphicstest_featherwing/graphicstest_featherwing.ino +++ /dev/null @@ -1,404 +0,0 @@ -/*************************************************** - This is our GFX example for the Adafruit ILI9341 TFT FeatherWing - ----> http://www.adafruit.com/products/3315 - - Check out the links above for our tutorials and wiring diagrams - - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried/Ladyada for Adafruit Industries. - MIT license, all text above must be included in any redistribution - ****************************************************/ - -#include -#include -#include - -#ifdef ESP8266 - #define STMPE_CS 16 - #define TFT_CS 0 - #define TFT_DC 15 - #define SD_CS 2 -#endif -#ifdef ESP32 - #define STMPE_CS 32 - #define TFT_CS 15 - #define TFT_DC 33 - #define SD_CS 14 -#endif -#ifdef TEENSYDUINO - #define TFT_DC 10 - #define TFT_CS 4 - #define STMPE_CS 3 - #define SD_CS 8 -#endif -#ifdef ARDUINO_STM32_FEATHER - #define TFT_DC PB4 - #define TFT_CS PA15 - #define STMPE_CS PC7 - #define SD_CS PC5 -#endif -#ifdef ARDUINO_NRF52_FEATHER /* BSP 0.6.5 and higher! */ - #define TFT_DC 11 - #define TFT_CS 31 - #define STMPE_CS 30 - #define SD_CS 27 -#endif -#if defined(ARDUINO_MAX32620FTHR) || defined(ARDUINO_MAX32630FTHR) - #define TFT_DC P5_4 - #define TFT_CS P5_3 - #define STMPE_CS P3_3 - #define SD_CS P3_2 -#endif - -// Anything else! -#if defined (__AVR_ATmega32U4__) || defined(ARDUINO_SAMD_FEATHER_M0) || defined (__AVR_ATmega328P__) || defined(ARDUINO_SAMD_ZERO) || defined(__SAMD51__) || defined(__SAM3X8E__) - #define STMPE_CS 6 - #define TFT_CS 9 - #define TFT_DC 10 - #define SD_CS 5 -#endif - - -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); - -void setup() { - Serial.begin(115200); - - delay(10); - Serial.println("FeatherWing TFT Test!"); - - tft.begin(); - - // read diagnostics (optional but can help debug problems) - uint8_t x = tft.readcommand8(ILI9341_RDMODE); - Serial.print("Display Power Mode: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDMADCTL); - Serial.print("MADCTL Mode: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDPIXFMT); - Serial.print("Pixel Format: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDIMGFMT); - Serial.print("Image Format: 0x"); Serial.println(x, HEX); - x = tft.readcommand8(ILI9341_RDSELFDIAG); - Serial.print("Self Diagnostic: 0x"); Serial.println(x, HEX); - - Serial.println(F("Benchmark Time (microseconds)")); - delay(10); - Serial.print(F("Screen fill ")); - Serial.println(testFillScreen()); - delay(500); - - Serial.print(F("Text ")); - Serial.println(testText()); - delay(3000); - - Serial.print(F("Lines ")); - Serial.println(testLines(ILI9341_CYAN)); - delay(500); - - Serial.print(F("Horiz/Vert Lines ")); - Serial.println(testFastLines(ILI9341_RED, ILI9341_BLUE)); - delay(500); - - Serial.print(F("Rectangles (outline) ")); - Serial.println(testRects(ILI9341_GREEN)); - delay(500); - - Serial.print(F("Rectangles (filled) ")); - Serial.println(testFilledRects(ILI9341_YELLOW, ILI9341_MAGENTA)); - delay(500); - - Serial.print(F("Circles (filled) ")); - Serial.println(testFilledCircles(10, ILI9341_MAGENTA)); - - Serial.print(F("Circles (outline) ")); - Serial.println(testCircles(10, ILI9341_WHITE)); - delay(500); - - Serial.print(F("Triangles (outline) ")); - Serial.println(testTriangles()); - delay(500); - - Serial.print(F("Triangles (filled) ")); - Serial.println(testFilledTriangles()); - delay(500); - - Serial.print(F("Rounded rects (outline) ")); - Serial.println(testRoundRects()); - delay(500); - - Serial.print(F("Rounded rects (filled) ")); - Serial.println(testFilledRoundRects()); - delay(500); - - Serial.println(F("Done!")); - -} - - -void loop(void) { - for(uint8_t rotation=0; rotation<4; rotation++) { - tft.setRotation(rotation); - testText(); - delay(1000); - } -} - -unsigned long testFillScreen() { - unsigned long start = micros(); - tft.fillScreen(ILI9341_BLACK); - yield(); - tft.fillScreen(ILI9341_RED); - yield(); - tft.fillScreen(ILI9341_GREEN); - yield(); - tft.fillScreen(ILI9341_BLUE); - yield(); - tft.fillScreen(ILI9341_BLACK); - yield(); - return micros() - start; -} - -unsigned long testText() { - tft.fillScreen(ILI9341_BLACK); - unsigned long start = micros(); - tft.setCursor(0, 0); - tft.setTextColor(ILI9341_WHITE); tft.setTextSize(1); - tft.println("Hello World!"); - tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2); - tft.println(1234.56); - tft.setTextColor(ILI9341_RED); tft.setTextSize(3); - tft.println(0xDEADBEEF, HEX); - tft.println(); - tft.setTextColor(ILI9341_GREEN); - tft.setTextSize(5); - tft.println("Groop"); - tft.setTextSize(2); - tft.println("I implore thee,"); - tft.setTextSize(1); - tft.println("my foonting turlingdromes."); - tft.println("And hooptiously drangle me"); - tft.println("with crinkly bindlewurdles,"); - tft.println("Or I will rend thee"); - tft.println("in the gobberwarts"); - tft.println("with my blurglecruncheon,"); - tft.println("see if I don't!"); - return micros() - start; -} - -unsigned long testLines(uint16_t color) { - unsigned long start, t; - int x1, y1, x2, y2, - w = tft.width(), - h = tft.height(); - - tft.fillScreen(ILI9341_BLACK); - yield(); - - x1 = y1 = 0; - y2 = h - 1; - start = micros(); - for(x2=0; x20; i-=6) { - i2 = i / 2; - start = micros(); - tft.fillRect(cx-i2, cy-i2, i, i, color1); - t += micros() - start; - // Outlines are not included in timing results - tft.drawRect(cx-i2, cy-i2, i, i, color2); - yield(); - } - - return t; -} - -unsigned long testFilledCircles(uint8_t radius, uint16_t color) { - unsigned long start; - int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2; - - tft.fillScreen(ILI9341_BLACK); - start = micros(); - for(x=radius; x10; i-=5) { - start = micros(); - tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.color565(0, i*10, i*10)); - t += micros() - start; - tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, - tft.color565(i*10, i*10, 0)); - yield(); - } - - return t; -} - -unsigned long testRoundRects() { - unsigned long start; - int w, i, i2, - cx = tft.width() / 2 - 1, - cy = tft.height() / 2 - 1; - - tft.fillScreen(ILI9341_BLACK); - w = min(tft.width(), tft.height()); - start = micros(); - for(i=0; i20; i-=6) { - i2 = i / 2; - tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0)); - yield(); - } - - return micros() - start; -} diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton/onoffbutton.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton/onoffbutton.ino deleted file mode 100644 index 3365d3385..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton/onoffbutton.ino +++ /dev/null @@ -1,125 +0,0 @@ -//This example implements a simple sliding On/Off button. The example -// demonstrates drawing and touch operations. -// -//Thanks to Adafruit forums member Asteroid for the original sketch! -// -#include -#include -#include -#include -#include - -// This is calibration data for the raw touch data to the screen coordinates -#define TS_MINX 150 -#define TS_MINY 130 -#define TS_MAXX 3800 -#define TS_MAXY 4000 - -#define STMPE_CS 8 -Adafruit_STMPE610 ts = Adafruit_STMPE610(STMPE_CS); -#define TFT_CS 10 -#define TFT_DC 9 -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); - -boolean RecordOn = false; - -#define FRAME_X 210 -#define FRAME_Y 180 -#define FRAME_W 100 -#define FRAME_H 50 - -#define REDBUTTON_X FRAME_X -#define REDBUTTON_Y FRAME_Y -#define REDBUTTON_W (FRAME_W/2) -#define REDBUTTON_H FRAME_H - -#define GREENBUTTON_X (REDBUTTON_X + REDBUTTON_W) -#define GREENBUTTON_Y FRAME_Y -#define GREENBUTTON_W (FRAME_W/2) -#define GREENBUTTON_H FRAME_H - -void drawFrame() -{ - tft.drawRect(FRAME_X, FRAME_Y, FRAME_W, FRAME_H, ILI9341_BLACK); -} - -void redBtn() -{ - tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_RED); - tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_BLUE); - drawFrame(); - tft.setCursor(GREENBUTTON_X + 6 , GREENBUTTON_Y + (GREENBUTTON_H/2)); - tft.setTextColor(ILI9341_WHITE); - tft.setTextSize(2); - tft.println("ON"); - RecordOn = false; -} - -void greenBtn() -{ - tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_GREEN); - tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_BLUE); - drawFrame(); - tft.setCursor(REDBUTTON_X + 6 , REDBUTTON_Y + (REDBUTTON_H/2)); - tft.setTextColor(ILI9341_WHITE); - tft.setTextSize(2); - tft.println("OFF"); - RecordOn = true; -} - -void setup(void) -{ - Serial.begin(9600); - tft.begin(); - if (!ts.begin()) { - Serial.println("Unable to start touchscreen."); - } - else { - Serial.println("Touchscreen started."); - } - - tft.fillScreen(ILI9341_BLUE); - // origin = left,top landscape (USB left upper) - tft.setRotation(1); - redBtn(); -} - -void loop() -{ - // See if there's any touch data for us - if (!ts.bufferEmpty()) - { - // Retrieve a point - TS_Point p = ts.getPoint(); - // Scale using the calibration #'s - // and rotate coordinate system - p.x = map(p.x, TS_MINY, TS_MAXY, 0, tft.height()); - p.y = map(p.y, TS_MINX, TS_MAXX, 0, tft.width()); - int y = tft.height() - p.x; - int x = p.y; - - if (RecordOn) - { - if((x > REDBUTTON_X) && (x < (REDBUTTON_X + REDBUTTON_W))) { - if ((y > REDBUTTON_Y) && (y <= (REDBUTTON_Y + REDBUTTON_H))) { - Serial.println("Red btn hit"); - redBtn(); - } - } - } - else //Record is off (RecordOn == false) - { - if((x > GREENBUTTON_X) && (x < (GREENBUTTON_X + GREENBUTTON_W))) { - if ((y > GREENBUTTON_Y) && (y <= (GREENBUTTON_Y + GREENBUTTON_H))) { - Serial.println("Green btn hit"); - greenBtn(); - } - } - } - - Serial.println(RecordOn); - } -} - - - diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/.esp8266.test.skip b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/.esp8266.test.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/onoffbutton_breakout.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/onoffbutton_breakout.ino deleted file mode 100644 index aa8cb9992..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/onoffbutton_breakout/onoffbutton_breakout.ino +++ /dev/null @@ -1,133 +0,0 @@ -//This example implements a simple sliding On/Off button. The example -// demonstrates drawing and touch operations. -// -//Thanks to Adafruit forums member Asteroid for the original sketch! -// -#include -#include -#include -#include -#include - -//Touchscreen X+ X- Y+ Y- pins -#define YP A3 // must be an analog pin, use "An" notation! -#define XM A2 // must be an analog pin, use "An" notation! -#define YM 5 // can be a digital pin -#define XP 4 // can be a digital pin - -// This is calibration data for the raw touch data to the screen coordinates -#define TS_MINX 150 -#define TS_MINY 120 -#define TS_MAXX 920 -#define TS_MAXY 940 - -#define MINPRESSURE 10 -#define MAXPRESSURE 1000 - -// For better pressure precision, we need to know the resistance -// between X+ and X- Use any multimeter to read it -// For the one we're using, its 300 ohms across the X plate -TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); - - -#define TFT_CS 10 -#define TFT_DC 9 -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); - -boolean RecordOn = false; - -#define FRAME_X 210 -#define FRAME_Y 180 -#define FRAME_W 100 -#define FRAME_H 50 - -#define REDBUTTON_X FRAME_X -#define REDBUTTON_Y FRAME_Y -#define REDBUTTON_W (FRAME_W/2) -#define REDBUTTON_H FRAME_H - -#define GREENBUTTON_X (REDBUTTON_X + REDBUTTON_W) -#define GREENBUTTON_Y FRAME_Y -#define GREENBUTTON_W (FRAME_W/2) -#define GREENBUTTON_H FRAME_H - -void drawFrame() -{ - tft.drawRect(FRAME_X, FRAME_Y, FRAME_W, FRAME_H, ILI9341_BLACK); -} - -void redBtn() -{ - tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_RED); - tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_BLUE); - drawFrame(); - tft.setCursor(GREENBUTTON_X + 6 , GREENBUTTON_Y + (GREENBUTTON_H/2)); - tft.setTextColor(ILI9341_WHITE); - tft.setTextSize(2); - tft.println("ON"); - RecordOn = false; -} - -void greenBtn() -{ - tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_GREEN); - tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_BLUE); - drawFrame(); - tft.setCursor(REDBUTTON_X + 6 , REDBUTTON_Y + (REDBUTTON_H/2)); - tft.setTextColor(ILI9341_WHITE); - tft.setTextSize(2); - tft.println("OFF"); - RecordOn = true; -} - -void setup(void) -{ - Serial.begin(9600); - tft.begin(); - - tft.fillScreen(ILI9341_BLUE); - // origin = left,top landscape (USB left upper) - tft.setRotation(1); - redBtn(); -} - -void loop() -{ - // Retrieve a point - TSPoint p = ts.getPoint(); - - // See if there's any touch data for us - if (p.z > MINPRESSURE && p.z < MAXPRESSURE) - { - // Scale using the calibration #'s - // and rotate coordinate system - p.x = map(p.x, TS_MINY, TS_MAXY, 0, tft.height()); - p.y = map(p.y, TS_MINX, TS_MAXX, 0, tft.width()); - int y = tft.height() - p.x; - int x = p.y; - - if (RecordOn) - { - if((x > REDBUTTON_X) && (x < (REDBUTTON_X + REDBUTTON_W))) { - if ((y > REDBUTTON_Y) && (y <= (REDBUTTON_Y + REDBUTTON_H))) { - Serial.println("Red btn hit"); - redBtn(); - } - } - } - else //Record is off (RecordOn == false) - { - if((x > GREENBUTTON_X) && (x < (GREENBUTTON_X + GREENBUTTON_W))) { - if ((y > GREENBUTTON_Y) && (y <= (GREENBUTTON_Y + GREENBUTTON_H))) { - Serial.println("Green btn hit"); - greenBtn(); - } - } - } - - Serial.println(RecordOn); - } -} - - - diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/dragon.h b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/dragon.h deleted file mode 100644 index ab61bb77c..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/dragon.h +++ /dev/null @@ -1,861 +0,0 @@ -#define DRAGON_WIDTH 110 -#define DRAGON_HEIGHT 70 - -const PROGMEM uint16_t dragonBitmap[DRAGON_WIDTH * DRAGON_HEIGHT] = { - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0X8C10, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XBD14, 0XAC92, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XDEFB, 0XB431, 0XA1C9, 0XAA4B, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCE18, 0X9A2A, 0X9044, - 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XDEFB, 0XB3B0, 0XA148, 0XB865, 0XC066, 0XC066, 0XAA4B, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XAB2E, 0X9864, - 0XA865, 0XAAAC, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XAC92, - 0X728B, 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XCE18, 0XAB2E, 0XAA4B, 0XAA4B, 0XAA4B, 0XA3AF, - 0XB431, 0XB431, 0XB431, 0XA411, 0XA8E6, 0XD086, 0XB865, 0X7043, 0XA865, - 0XD086, 0XAA4B, 0XCE79, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XB493, 0XA8E6, - 0X9864, 0XC066, 0XD086, 0XB493, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCE79, 0X830D, - 0X80C5, 0XAB2E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XB431, 0XC066, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XB865, 0X9864, - 0XC066, 0XD086, 0XB8E7, 0XB493, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDE9A, 0XA1C9, - 0XB865, 0X9864, 0XD086, 0XD086, 0XD086, 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XAD14, 0X71A8, - 0X9864, 0XC066, 0XC515, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XDEFB, 0XBDF7, 0XBD14, 0XA411, 0XB431, 0XB148, 0XD086, 0XC066, - 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0XD086, 0XA865, - 0XB865, 0XD086, 0XD086, 0XB1CA, 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XB3B0, - 0XB865, 0XA865, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XBD14, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCE79, 0X932D, 0X78C5, - 0XA865, 0XD086, 0XC066, 0XC515, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XDEFB, 0XAB2E, 0XA0C6, 0XB865, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, - 0XB865, 0X78C5, 0X4208, 0X2104, 0X8947, 0X9864, 0X9864, 0X9864, 0XD086, - 0XD086, 0XA865, 0X9864, 0XD086, 0XB865, 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCE18, - 0XB148, 0XC066, 0XA865, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XAA4B, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XB493, 0X89A8, 0X9044, - 0XB865, 0XD086, 0XD086, 0XC066, 0XC515, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0X7B8E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XAD14, 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XB431, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0XA865, - 0X9864, 0XD086, 0XD086, 0XD086, 0XAA4B, 0X9A2A, 0XC066, 0XD086, 0XD086, - 0XD086, 0XD086, 0XC066, 0X9044, 0X9864, 0X9864, 0X9044, 0XCE18, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, - 0XB3B0, 0XC066, 0XB865, 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XAAAC, 0XBD96, 0XAD14, 0XAAAC, 0X8044, 0X9864, - 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XB431, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XB3B0, 0XAA4B, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XBD96, 0XB8E7, 0XB431, 0XEF7D, 0XFFFF, - 0XFFFF, 0XFFFF, 0XA32E, 0X9864, 0X9864, 0XAA4B, 0XAA4B, 0X9147, 0XB865, - 0X9044, 0XD086, 0XA865, 0XD086, 0XC066, 0XC066, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, - 0XAA4B, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XDE9A, 0XB148, 0XD086, 0XA865, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0X9864, 0X9864, 0XA865, 0X9864, - 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA148, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XC515, 0XC066, 0XAA4B, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XAA4B, 0XD086, - 0XA865, 0XAB2E, 0XBD96, 0XEF7D, 0XCE79, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XDEFB, 0XB1CA, 0XD086, 0XD086, 0X9864, 0X822A, 0XBDF7, 0XB493, - 0XB148, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0X9864, - 0XD086, 0XD086, 0XD086, 0XAA4B, 0XBD14, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XB431, 0XB865, 0XD086, 0X9864, 0XC066, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XC066, 0X9864, 0X9864, 0XC066, 0XA865, 0X9864, - 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XB3B0, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCD96, 0XC066, 0XD086, 0XAA4B, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XDE9A, 0XB865, 0XD086, 0XD086, 0XD086, 0XA865, 0X9147, 0X9C92, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCE18, 0X80C5, 0X5822, 0X5A08, 0XDEFB, - 0XFFFF, 0XFFFF, 0XCE79, 0XA0C6, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0X9044, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XAB2E, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XEF7D, 0XAA4B, 0XD086, 0XC066, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XA865, 0X9864, 0XA865, 0XD086, 0X9864, 0X9864, - 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XAB2E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDE9A, 0XB8E7, 0XD086, 0XD086, - 0XAA4B, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XC515, 0XC066, 0XD086, 0XB865, 0X8044, 0X82AB, - 0XBDF7, 0XBDF7, 0XBDF7, 0XBDF7, 0XBDF7, 0XBDF7, 0XAC92, 0XA3AF, 0X92AC, - 0XAB2E, 0XAA4B, 0XA1C9, 0X9864, 0XB865, 0XA865, 0XC066, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XB1CA, 0XBD14, - 0X9CF3, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XCE18, 0XA8E6, 0XD086, 0XC066, 0XA865, 0XD086, 0XD086, - 0XD086, 0XD086, 0XC066, 0X9864, 0X9864, 0XC066, 0XD086, 0X9864, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XC066, 0XC515, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDE9A, 0XB8E7, 0XD086, - 0XD086, 0XD086, 0XAA4B, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XB3B0, 0XD086, 0XA865, - 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XC066, 0XA865, 0X8044, 0X4822, 0X9044, 0X9044, - 0XD086, 0XD086, 0XD086, 0XD086, 0X8044, 0X9864, 0XD086, 0XD086, 0XD086, - 0XAA4B, 0XCE18, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XB493, 0XC066, 0XD086, 0XC066, 0XA865, 0XD086, - 0XD086, 0XD086, 0XA865, 0X9864, 0XA865, 0XD086, 0XC066, 0X9864, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X9044, 0X3986, 0XCE79, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDE9A, 0XB8E7, - 0XD086, 0XD086, 0XC066, 0XD086, 0XAA4B, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XB431, 0XC066, 0X90C6, 0XAA4B, 0XAA4B, 0XAA4B, 0XAA4B, 0X99C9, 0X9864, - 0X9864, 0X9864, 0X6843, 0X6843, 0X5822, 0X4822, 0X7043, 0X9044, 0XC066, - 0X9864, 0X7043, 0XC066, 0XB865, 0XD086, 0X7043, 0X8044, 0XC066, 0XD086, - 0XD086, 0XD086, 0XD086, 0XC066, 0XB431, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XAB2E, 0XD086, 0XD086, 0XC066, 0XA865, - 0XD086, 0XD086, 0X9864, 0X9044, 0XC066, 0XD086, 0XC066, 0X9864, 0XA865, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XB865, 0X9864, 0X9864, 0X9864, 0X9044, 0X6843, 0X6843, 0X8044, 0X7B0C, - 0XCE79, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDE9A, - 0XB8E7, 0XD086, 0X9864, 0XC066, 0X9864, 0XD086, 0XAA4B, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XC515, 0XA8E6, 0XCE18, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XA148, 0XD086, 0XD086, 0XD086, 0XD086, - 0XB148, 0XBD14, 0X9A2A, 0XD086, 0X9864, 0X9864, 0X6843, 0XD086, 0XC066, - 0XC066, 0XD086, 0XD086, 0XD086, 0XA865, 0XC066, 0XA865, 0XEF7D, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XB1CA, 0XD086, 0XD086, 0XD086, - 0X9864, 0XC066, 0X9864, 0X9864, 0XD086, 0XD086, 0XC066, 0X9864, 0XA865, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0X9864, 0X9864, 0X9864, - 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0XA865, 0XD086, 0XA1C9, - 0XDE9A, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XDE9A, 0XB8E7, 0XD086, 0XD086, 0X9864, 0XD086, 0X9864, 0XD086, 0XAA4B, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDEFB, 0XCE18, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XAA4B, 0XD086, 0XC066, - 0XD086, 0XAAAC, 0XEF7D, 0XFFFF, 0X932D, 0XB865, 0XB865, 0XC066, 0X7043, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XB148, 0XEF7D, 0XBD14, 0XA148, - 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XAA4B, 0XD086, 0XD086, - 0XD086, 0X8044, 0X9864, 0XA865, 0XD086, 0XD086, 0XC066, 0X9864, 0XA865, - 0XD086, 0XD086, 0XA865, 0X9864, 0X9864, 0X9864, 0X9864, 0XA865, 0XD086, - 0XB865, 0X9864, 0X9864, 0X9864, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XAB2E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XDE9A, 0XB8E7, 0XD086, 0XD086, 0XC066, 0XA865, 0XD086, 0X9864, - 0XD086, 0XA0C6, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0X8C10, 0XB431, 0XEF7D, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XBD14, - 0XD086, 0XA1C9, 0X80C5, 0XEF7D, 0XFFFF, 0XB431, 0XD086, 0XB865, 0X9864, - 0X8044, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XAA4B, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XBD14, 0XD086, - 0XD086, 0XD086, 0XA865, 0XB865, 0XD086, 0XD086, 0XC066, 0X9864, 0X9864, - 0X9864, 0X9044, 0X9864, 0X9864, 0XC066, 0XD086, 0XD086, 0XB865, 0X9864, - 0X9864, 0X9864, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XAB2E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XDE9A, 0XB8E7, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, - 0XD086, 0X9864, 0XD086, 0X9864, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XB148, - 0XA1C9, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XBDF7, 0XD086, 0XBD14, 0XEF7D, 0XFFFF, 0XFFFF, 0XA148, 0XD086, - 0XD086, 0XD086, 0X9864, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XC066, 0XB431, 0XEF7D, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XAA4B, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XC066, 0X7043, - 0X9864, 0XA865, 0XD086, 0XD086, 0XD086, 0XC066, 0X9864, 0X9864, 0X9864, - 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XAAAC, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XA32E, 0XAA4B, 0XAA4B, 0XAA4B, 0XAB2E, - 0X9044, 0XD086, 0XA865, 0X9864, 0XD086, 0XD086, 0XBDF7, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XBDF7, 0XDEFB, 0XFFFF, 0XFFFF, - 0XFFFF, 0XB431, 0XB865, 0XAC92, 0XFFFF, 0XEF7D, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0X8947, 0XEF7D, 0XFFFF, 0XFFFF, 0XEF7D, - 0X9044, 0XD086, 0XD086, 0XB865, 0XB865, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XA0C6, 0XEF7D, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0X9864, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, 0X9864, 0XA865, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XA8E6, 0XEF7D, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XCE18, 0XC066, 0XD086, 0XA1C9, 0XB431, 0XD086, 0XD086, 0XB493, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XAB2E, 0XB865, - 0XB3B0, 0XFFFF, 0XFFFF, 0X9AAC, 0XB865, 0XA148, 0XFFFF, 0X9AAC, 0XCD96, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XAA4B, 0XB865, 0X9864, 0X9864, 0X8044, 0X9044, 0X8044, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XA1C9, 0X90C6, 0XD086, 0XB3B0, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0X9864, 0XD086, 0XD086, 0X9864, 0XD086, - 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XAB2E, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XDEFB, 0XB3B0, 0XAA4B, 0X9864, 0X9864, 0XA1C9, - 0XAB2E, 0XBD96, 0XFFFF, 0XAA4B, 0XD086, 0XD086, 0XB493, 0XFFFF, 0XAB2E, - 0XC066, 0XAAAC, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0X8947, 0X9864, 0X9A2A, 0XFFFF, 0X9864, 0XD086, 0XA148, 0XEF7D, - 0XA8E6, 0XB431, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XCE79, 0XC066, 0XD086, 0XD086, 0XD086, 0X9044, 0X7043, - 0X8044, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XFFFF, 0XFFFF, 0XBD14, - 0X92AC, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0X9864, 0XD086, 0XB865, - 0XB865, 0XD086, 0XD086, 0X8044, 0X6843, 0X9864, 0X9864, 0X9864, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XBD96, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XB431, 0XB865, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X9147, 0XA865, 0XD086, 0XC066, 0XCE79, - 0XFFFF, 0XFFFF, 0XCD96, 0X7926, 0XEF7D, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0X9864, 0XD086, 0XC066, 0X9CF3, 0XC066, 0XD086, - 0X8A2A, 0X8947, 0XD086, 0XBD14, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XAD14, 0XC066, 0XD086, 0XD086, 0XD086, - 0X9864, 0X9864, 0X8044, 0XD086, 0XD086, 0XD086, 0XD086, 0XB865, 0XDEFB, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0X9864, - 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, - 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XB493, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0XA865, - 0XA148, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XAA4B, 0XD086, 0XD086, 0X71A8, - 0XD086, 0XD086, 0X9044, 0XD086, 0X9864, 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDE9A, 0XB865, 0XA865, 0XA865, - 0XD086, 0XD086, 0X7043, 0X9864, 0X9044, 0XA865, 0XD086, 0XD086, 0XD086, - 0XD086, 0XA8E6, 0XB493, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0X9864, 0XB865, 0XB865, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, - 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XA865, 0X9864, 0X9864, 0X9864, 0X9864, 0XD086, 0XD086, - 0XD086, 0XD086, 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XA0C6, 0XD086, - 0XD086, 0XD086, 0XA865, 0X80C5, 0X9864, 0XC066, 0XD086, 0XD086, 0XD086, - 0XD086, 0XC066, 0X8B8E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XB493, 0XD086, - 0XD086, 0X9864, 0XA865, 0XA865, 0XC066, 0XD086, 0XA8E6, 0XEF7D, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XAAAC, 0XD086, - 0XD086, 0XC066, 0X9864, 0X8044, 0XA865, 0X9044, 0XC066, 0X8044, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9A2A, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XEF7D, 0XA865, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, - 0X9864, 0X9864, 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0X9864, - 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0XD086, 0XD086, - 0X9864, 0X9864, 0X9864, 0XC066, 0XAB2E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0X9864, 0XD086, 0XD086, 0X90C6, 0XCE79, 0XFFFF, 0XFFFF, 0X9C92, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XAB2E, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XEF7D, 0XA0C6, 0XD086, 0XD086, 0XB865, 0X9864, 0XD086, 0XB1CA, 0XDE9A, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XAA4B, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X7043, 0XA865, 0X9044, - 0X9044, 0XD086, 0XD086, 0XD086, 0XD086, 0XB1CA, 0XB431, 0X82AB, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XBD14, 0XA865, 0XC066, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0X9864, 0XC066, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X7043, 0X8044, 0XDEFB, 0XFFFF, - 0XFFFF, 0XFFFF, 0X9864, 0XD086, 0XD086, 0XA32E, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0X728B, 0XB865, 0XD086, 0XD086, 0XD086, 0X9864, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0XAA4B, 0XD086, 0XD086, 0XB865, 0X90C6, - 0XEF7D, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XC515, 0X9044, 0XC066, 0XD086, 0XD086, 0XD086, 0X9864, 0X8044, - 0XC066, 0X8044, 0X9044, 0XC066, 0XD086, 0XD086, 0XD086, 0XBDF7, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XEF7D, 0X6926, 0XC066, 0XD086, - 0XD086, 0XD086, 0X9044, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, - 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA8E6, 0XAAAC, 0XB431, 0X8410, - 0X8C71, 0XFFFF, 0XFFFF, 0XFFFF, 0XAAAC, 0XD086, 0XD086, 0XA865, 0XA32E, - 0XB431, 0XB431, 0X8947, 0XC066, 0X9864, 0XD086, 0XD086, 0XD086, 0XC066, - 0XCE79, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XB431, 0XD086, 0XD086, - 0XD086, 0XB8E7, 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XA0C6, 0XD086, 0XA865, 0X9864, 0X9864, 0X9864, - 0X9044, 0X9044, 0XA865, 0X9864, 0XA865, 0X9864, 0XD086, 0XD086, 0XD086, - 0XB3B0, 0XFFFF, 0XEF7D, 0XBDF7, 0XB431, 0XAAAC, 0XA148, 0XA865, 0XD086, - 0XD086, 0XD086, 0XC066, 0XD086, 0XB865, 0X9044, 0X9864, 0X9864, 0XC066, - 0XD086, 0XD086, 0XD086, 0X9864, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XB8E7, 0XB493, 0XEF7D, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDE9A, 0XB8E7, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, - 0XD086, 0XD086, 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XAAAC, - 0XD086, 0XD086, 0XD086, 0XD086, 0XB3B0, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XDEFB, 0XB865, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0X8044, 0X9864, 0XB865, 0X8044, 0XC066, 0X6843, 0XD086, - 0XD086, 0X9864, 0XA0C6, 0X99C9, 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X8044, 0XB865, 0XD086, 0XC066, 0XA865, - 0XD086, 0XA865, 0X9864, 0X9864, 0XD086, 0XD086, 0XB865, 0X9864, 0XC066, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XB1CA, 0XDEFB, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XDEFB, 0XAB2E, 0X9864, 0XC066, 0XD086, 0XC066, 0X9864, 0X89A8, 0XA865, - 0XD086, 0XD086, 0XD086, 0XA865, 0XEF7D, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XAA4B, 0XD086, 0XD086, 0XD086, 0XD086, 0XA148, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XBDF7, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X7043, 0XC066, 0X6843, 0XD086, 0X7043, - 0XC066, 0X9044, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0XD086, 0X9864, 0XB865, 0XB865, - 0XD086, 0XC066, 0XA865, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, 0XC066, - 0XD086, 0XA865, 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0X9C92, - 0XBDF7, 0XBDF7, 0XBDF7, 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCE79, 0XBDF7, 0XCE79, 0XEF7D, - 0XAAAC, 0XD086, 0XD086, 0XD086, 0XD086, 0XA1C9, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XA148, 0XD086, 0XD086, 0XD086, 0XD086, 0XB865, - 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCD96, - 0X8044, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X6843, 0X9044, 0X9864, - 0XA865, 0XA865, 0X9044, 0XB865, 0XD086, 0XD086, 0XB865, 0X9864, 0X8044, - 0XC066, 0XD086, 0XD086, 0XB865, 0XD086, 0XA865, 0X9044, 0XD086, 0XB865, - 0XB865, 0XB865, 0XA865, 0XD086, 0XB865, 0XB865, 0XD086, 0XD086, 0XD086, - 0XD086, 0XA865, 0X9864, 0XB865, 0XC066, 0X9864, 0XD086, 0XD086, 0XD086, - 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, 0XA1C9, - 0XAB2E, 0XBD14, 0XCE79, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XCE79, - 0XB493, 0XB148, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XBD14, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XBDF7, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XA148, 0XD086, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, 0X9864, - 0X9864, 0X9864, 0X7043, 0X9864, 0XD086, 0XD086, 0XA865, 0X9864, 0XB865, - 0XD086, 0X9864, 0XD086, 0XC066, 0X7043, 0XD086, 0XD086, 0X9864, 0XC066, - 0XA865, 0XD086, 0X9864, 0XD086, 0XC066, 0XA865, 0XD086, 0XA865, 0XC066, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0X9864, 0X9044, 0X9864, - 0XC066, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0X9864, 0X9864, 0X9864, 0X9864, - 0X9864, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA1C9, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XC515, 0XC066, 0XA865, - 0XD086, 0XD086, 0XD086, 0XD086, 0XAD14, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0X9044, 0X8044, 0X9864, 0XA865, 0XD086, 0XA865, 0X9864, 0XC066, - 0XD086, 0XD086, 0XA865, 0XC066, 0XC066, 0XA865, 0X9864, 0XD086, 0XA865, - 0XC066, 0XD086, 0X9864, 0XD086, 0X9864, 0XD086, 0XD086, 0XB865, 0XB865, - 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0X9864, 0X8044, 0X8044, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, - 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XB8E7, 0XDEFB, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, - 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X04A6, 0XB865, - 0XD086, 0X31C3, 0XC066, 0XD086, 0XD086, 0X9864, 0XB865, 0X2305, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0X6843, 0X9864, 0XA865, 0XB865, 0X9864, 0XC066, - 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XC066, 0XA865, 0XD086, 0X9864, - 0XD086, 0X9864, 0XD086, 0XD086, 0XA865, 0XC066, 0X9864, 0XD086, 0XD086, - 0XD086, 0XC066, 0XA865, 0XB865, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0X8044, 0X8044, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0X9864, 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0X8145, 0X0C66, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0506, - 0X8145, 0XD086, 0X9105, 0X0506, 0X80E5, 0XD086, 0XD086, 0X9864, 0XD086, - 0X9864, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X80E5, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X8044, 0XB865, 0X9864, 0XB865, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0XC066, 0X9864, 0XD086, - 0XD086, 0X9864, 0XC066, 0XA865, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0XA865, 0X9864, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XA865, 0X9864, 0X9864, 0X7043, 0X9864, 0XA865, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0XC066, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XC066, 0X59E5, 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X2305, 0XB865, 0XD086, 0X2305, 0X0547, 0X1B65, 0XD086, 0XD086, - 0XB865, 0XB865, 0X9864, 0X6985, 0X1B65, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0C05, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0X9044, 0X8044, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, - 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, - 0X9864, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XB865, 0XA865, - 0XA865, 0XD086, 0XD086, 0XA865, 0X9864, 0XC066, 0XD086, 0XD086, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XA865, 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0X80E5, 0X0C05, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X1B65, 0XC066, 0X8044, 0X04A6, 0X0547, 0X0547, - 0X80E5, 0XD086, 0XD086, 0X9864, 0XA865, 0XD086, 0XD086, 0X1AC4, 0X0405, - 0X0547, 0X0547, 0X4285, 0XC066, 0X9864, 0X9864, 0X9864, 0X9864, 0X8044, - 0XA865, 0XD086, 0XD086, 0XC066, 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, - 0X7043, 0XC066, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, 0XD086, 0XD086, - 0XD086, 0XD086, 0XA865, 0XA865, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XB865, 0X8044, 0XD086, 0XA865, 0XC066, 0XD086, 0XD086, 0XD086, - 0XD086, 0XC066, 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XA865, 0X59E5, 0X0BA5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0506, 0X3264, 0X98A5, 0X7145, 0X04A6, 0X0547, - 0X0547, 0X0547, 0X1BC5, 0XC066, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, - 0X9864, 0XD086, 0X7145, 0X4984, 0X80A4, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0X9864, 0X7043, 0X9864, 0X9864, 0XB865, 0X9864, 0XD086, 0XD086, - 0XD086, 0X8044, 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, 0X9044, 0XA865, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X8044, 0XC066, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0XC066, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9044, 0XA865, 0X9864, - 0X6985, 0X4285, 0X1B65, 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0445, 0X0445, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X4A25, 0XD086, 0XD086, 0XD086, - 0X9864, 0X9864, 0XC066, 0XD086, 0XD086, 0X9864, 0X9864, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0X9864, - 0XD086, 0XB865, 0X9864, 0X4822, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0X6843, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0X9864, - 0XD086, 0XC066, 0X9864, 0X8044, 0X9864, 0X9864, 0X9864, 0X8044, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XA8C5, 0X32C5, 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X4A25, - 0XD086, 0XD086, 0XD086, 0XA865, 0X9864, 0XB865, 0XD086, 0X9864, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0X9864, 0XA865, 0XB865, 0XD086, 0X8044, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0X6843, 0XD086, 0X9044, 0X9864, 0X9044, 0X9864, 0XB865, - 0X9864, 0X9864, 0XB865, 0XA865, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, - 0XA865, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XC066, 0X9864, 0XA865, 0X9864, 0X9044, 0XA865, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X98A5, 0X32C5, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X32C5, 0XC066, 0XD086, 0XD086, 0XD086, 0XB865, 0X9864, - 0X8044, 0X9864, 0X8044, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, - 0XD086, 0XD086, 0XD086, 0X9864, 0XC066, 0XA865, 0X9864, 0X9864, 0XA865, - 0X9864, 0X9044, 0X9864, 0XD086, 0X6843, 0X9864, 0XC066, 0XA865, 0XD086, - 0XD086, 0XB865, 0X8044, 0X7043, 0XB865, 0XD086, 0X9864, 0X9864, 0X9864, - 0X9864, 0X9864, 0XA865, 0XB865, 0X9864, 0X9864, 0X9864, 0XA865, 0XD086, - 0XD086, 0XD086, 0X9044, 0XD086, 0XD086, 0XC066, 0XA865, 0XC066, 0X9864, - 0X9864, 0X9044, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X80E5, - 0X1BC5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X4285, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, - 0XB865, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, 0X9044, 0X7043, 0XD086, - 0X8044, 0X9044, 0XD086, 0XD086, 0X9044, 0X9864, 0X6843, 0XD086, 0XD086, - 0X9864, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XB865, 0XA865, - 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X6985, - 0X04A6, 0X4A25, 0X80A4, 0XA865, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, - 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0X9864, 0X8044, 0X9864, 0XC066, - 0XD086, 0XD086, 0XC066, 0X6985, 0X0C66, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X4A25, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, - 0XD086, 0XD086, 0XA865, 0X9044, 0XB865, 0XA865, 0X9864, 0X9044, 0X9864, - 0XB865, 0X9044, 0XC066, 0X9864, 0XD086, 0XD086, 0X9864, 0XD086, 0XA865, - 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0X9864, 0XC066, 0X9864, - 0XB865, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0X4A25, 0X0506, 0X0547, 0X0547, 0X1BC5, 0XA8C5, 0XD086, 0XD086, 0XB865, - 0XB865, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0X9864, - 0XD086, 0X9864, 0XB865, 0XD086, 0XD086, 0XD086, 0XB865, 0X32C5, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0506, 0X8145, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, - 0XA865, 0XD086, 0XD086, 0XB865, 0XB865, 0XD086, 0XB865, 0X8044, 0XB865, - 0XA865, 0X8044, 0XA865, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0X9864, - 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0X8044, 0X7043, - 0X7043, 0XC066, 0XD086, 0XC066, 0XA865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0X6985, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X04A6, 0X2305, - 0X32C5, 0X6944, 0XD086, 0XD086, 0XD086, 0X9864, 0XC066, 0XD086, 0XD086, - 0X9864, 0XD086, 0XD086, 0X9864, 0XB865, 0XB865, 0XD086, 0XC066, 0XB865, - 0XD086, 0X7145, 0X0C66, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0C66, 0XB865, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XA865, 0XC066, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, - 0X9044, 0XB865, 0X9044, 0XD086, 0XD086, 0XD086, 0XC066, 0XA865, 0XD086, - 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XB865, 0XA865, 0XD086, 0XB865, - 0XB865, 0XD086, 0XD086, 0XB865, 0X9864, 0X7043, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0X32C5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0405, 0X2305, 0X0BA5, 0X0BA5, 0X7145, - 0X9864, 0X90A4, 0X58E3, 0XD086, 0XB865, 0XB865, 0XD086, 0X9864, 0XD086, - 0XD086, 0X1A63, 0XA8C5, 0XD086, 0XA8C5, 0X0C66, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X32C5, 0XD086, - 0XD086, 0XD086, 0XD086, 0XA865, 0X90A4, 0X4183, 0X6985, 0X5924, 0X9044, - 0XD086, 0XB865, 0XB865, 0X9044, 0X9864, 0XD086, 0XD086, 0XD086, 0X9864, - 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0XD086, 0XA8C5, 0X1B65, 0X0405, - 0X0405, 0X9044, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X9864, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X4A25, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0405, 0X1AC4, 0XD086, 0XD086, - 0X9864, 0XD086, 0XD086, 0X4285, 0X04A6, 0X59E5, 0X9864, 0X4224, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0506, 0X98A5, 0XD086, 0XD086, 0X22C4, 0X0506, 0X0547, 0X0547, 0X0547, - 0X2305, 0XD086, 0XA865, 0X8044, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0X9864, 0XD086, 0XD086, 0X9044, 0XD086, 0XB865, 0X6985, 0X04A6, - 0X0547, 0X0547, 0X0547, 0X90A4, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XA865, 0XC066, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XB865, 0X0BA5, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X22C4, 0XA865, 0X9044, 0X9864, 0XD086, 0X6985, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X4A25, 0XD086, 0X98A5, 0X0506, 0X0547, 0X0547, - 0X0547, 0X0506, 0X4183, 0X9864, 0X9044, 0XB865, 0XD086, 0XD086, 0XD086, - 0X9864, 0XD086, 0XD086, 0X9864, 0XD086, 0X7145, 0X0BA5, 0X0405, 0X04A6, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X32C5, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0X9044, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0X90A4, 0X4285, 0X04A6, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0405, 0XD086, 0XD086, 0X9864, 0XD086, 0X6985, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X1B65, 0XD086, 0X4A25, 0X0547, - 0X0547, 0X0547, 0X0547, 0X4A25, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, - 0XD086, 0X8145, 0X0B64, 0XD086, 0XD086, 0XA865, 0X32C5, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X2305, - 0X98A5, 0XC066, 0X9864, 0X9864, 0X9864, 0XC066, 0X9864, 0XA865, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0X80E5, 0X59E5, - 0X0C05, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0445, 0XC066, 0XD086, 0X9044, 0XD086, - 0X6985, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0405, 0X98A5, - 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, 0X59E5, 0XD086, 0XB865, 0XB865, - 0XD086, 0XD086, 0XA8C5, 0X0C66, 0X0506, 0X98A5, 0XD086, 0X90A4, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0506, 0X70E4, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, - 0X9864, 0X9864, 0X9864, 0X9044, 0X9864, 0XC066, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XC066, 0X1BC5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X68E4, 0X9044, - 0X9864, 0XD086, 0X6985, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0445, 0X1BC5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0C66, 0X90A4, 0XA865, - 0X9044, 0XD086, 0XD086, 0XA8C5, 0X0C66, 0X0547, 0X0547, 0X32C5, 0XD086, - 0X4A25, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0C66, 0X7145, 0X9864, 0X9864, - 0XA865, 0XA865, 0XD086, 0XD086, 0X9864, 0XD086, 0XD086, 0X9864, 0XD086, - 0XD086, 0X90A4, 0X80E5, 0XC066, 0XD086, 0X7145, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X9864, 0XD086, 0X9864, 0XD086, 0X6985, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X80E5, - 0XD086, 0XB865, 0XB865, 0XD086, 0XA8C5, 0X0C66, 0X0547, 0X0547, 0X0547, - 0X0506, 0X9044, 0X04A6, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X4285, 0XB865, 0XA865, 0X9864, 0XC066, 0XD086, 0XA865, - 0XC066, 0XD086, 0XC066, 0X0C05, 0X0547, 0X0445, 0X4285, 0X58E3, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X9864, 0XD086, 0X9864, 0XD086, 0X4285, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X9864, 0XD086, 0X9864, 0XD086, 0XA8C5, 0X0C66, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0405, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0405, 0X04A6, 0X2305, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0C66, 0X80E5, 0X9864, 0X9864, 0X9864, - 0X8044, 0XB865, 0XD086, 0XD086, 0X32C5, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X4285, 0XA865, 0X7043, 0XB865, 0XD086, 0X2305, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X2365, 0X9864, 0XB865, 0XB865, 0XA8C5, 0X0C66, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0506, 0X70A4, 0XA865, 0X8044, 0XD086, 0X7145, 0X0506, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X04A6, 0X3224, 0XD086, 0XD086, - 0XC066, 0X9864, 0XC066, 0XD086, 0XD086, 0X4A25, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X1B65, 0X32C5, 0X68E4, 0X2365, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X9864, 0XD086, 0X9864, 0XD086, - 0XC066, 0X0445, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X2305, 0X6985, 0X59E5, 0X22C4, 0X0445, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0C66, 0XA8C5, 0XA865, 0XA865, 0XD086, 0X2305, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0BA5, 0X0C05, 0X0C66, 0X9044, 0XD086, 0XD086, 0X8145, - 0X04A6, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0C05, 0XB865, 0XC066, - 0X9864, 0X9044, 0XA865, 0XD086, 0XD086, 0XD086, 0X4A25, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X22C4, 0X70E4, 0XB865, 0X9864, 0XC066, - 0X2365, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X5924, 0X9864, - 0XA865, 0XD086, 0X9864, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X3224, 0X22C4, 0X9864, 0XA865, 0XC066, 0X6985, - 0X0BA5, 0X0506, 0X0547, 0X0506, 0X32C5, 0XB865, 0XD086, 0XD086, 0XD086, - 0X80E5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0C05, 0X4A25, - 0X80E5, 0XD086, 0XB865, 0X4A25, 0X0BA5, 0X22C4, 0X6985, 0X90A4, 0X9864, - 0X9864, 0X9864, 0X9044, 0XD086, 0XD086, 0XD086, 0XB865, 0X2305, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X04A6, 0X0547, 0X1B04, - 0XC066, 0XD086, 0XC066, 0X4285, 0X0506, 0X0547, 0X0547, 0X0547, 0X4A25, - 0XD086, 0XD086, 0XD086, 0XD086, 0X59E5, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X7043, 0XA865, - 0XD086, 0XD086, 0XB865, 0X7043, 0X6843, 0X9864, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0X1B65, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0506, 0X32C5, 0X3264, 0X6985, - 0X59E5, 0X04A6, 0X0547, 0X4A25, 0XC066, 0X9864, 0XA865, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0X6985, 0X04A6, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0C66, 0X59E5, 0X6883, 0X9864, 0X9864, 0XD086, 0X98A5, 0X4285, 0X32C5, - 0X6944, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X2305, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0506, 0X32C5, 0X6985, 0X6944, - 0XC066, 0XC066, 0X9864, 0X9864, 0XB865, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XA865, 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0506, 0X80E5, 0X9864, - 0X9864, 0XD086, 0XD086, 0XB865, 0X6985, 0X6985, 0X9044, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XA865, 0X59E5, 0X0C05, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0506, 0X6985, 0XA865, 0XA865, 0XD086, 0XD086, 0XD086, 0X9864, 0XB865, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X6985, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X3264, 0X7145, - 0X6985, 0X9864, 0X9044, 0X9864, 0X9864, 0X9864, 0XA865, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X90A4, 0X6985, 0X4285, - 0X1BC5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0445, - 0X2305, 0X04A6, 0X90A4, 0XC066, 0X9864, 0X9044, 0X9864, 0X9864, 0X9864, - 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0X58E3, 0X3264, - 0X1B65, 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X4224, 0X4224, 0X3264, 0X7043, 0X4A25, 0X32C5, 0X49C4, - 0X9864, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0X7145, 0X1B65, 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X04A6, 0X0547, 0X0547, 0X04A6, 0X80E5, 0XD086, 0XD086, 0XD086, 0XD086, - 0XD086, 0XD086, 0XD086, 0XD086, 0XC066, 0X7145, 0X49C4, 0XB865, 0XD086, - 0XD086, 0XD086, 0X9044, 0X9864, 0X32C5, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0445, 0X5883, 0XA865, 0XD086, 0XD086, - 0XC066, 0X9864, 0X7145, 0X6985, 0X3264, 0X80E5, 0X7145, 0X32C5, 0X70E4, - 0XD086, 0XD086, 0XD086, 0X68E4, 0X4285, 0X04A6, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0405, 0X0547, 0X0547, 0X0547, 0X0506, - 0X6985, 0X9864, 0XD086, 0XD086, 0XA865, 0X9864, 0XD086, 0XD086, 0XD086, - 0XB865, 0X80E5, 0X80A4, 0XC066, 0XD086, 0XD086, 0X58E3, 0X32C5, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0C66, 0X90A4, 0XA865, 0XA865, 0XD086, - 0XD086, 0XD086, 0X6985, 0X0BA5, 0X0405, 0X22C4, 0X0C05, 0X0547, 0X0547, - 0X0C66, 0X7145, 0XC066, 0XD086, 0X70A4, 0X4285, 0X58E3, 0X0506, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X59E5, 0XA865, 0X9044, - 0X9864, 0X4A25, 0X0445, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X1B65, 0X98A5, 0XD086, 0X9044, 0X7145, 0X8044, 0X04A6, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X1BC5, 0X7145, 0X9864, 0XD086, 0X98A5, 0X2305, 0X0506, 0X0506, 0X32C5, - 0X6985, 0X32C5, 0X04A6, 0X0547, 0X0547, 0X0C05, 0X5984, 0XA865, 0X9864, - 0X9864, 0X32C5, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X49C4, 0X59E5, 0X22C4, - 0X70E4, 0X9864, 0X7145, 0X1B65, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0445, 0X0405, 0X0506, 0X0547, 0X0506, - 0X0506, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X2264, - 0X0506, 0X0506, 0X0445, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0506, 0X0405, 0X0445, 0X0547, - 0X0C66, 0X0445, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0506, 0X90A4, 0X80E5, 0X4224, 0X3224, 0X0506, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0405, 0X0547, 0X0506, 0X1A03, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0B64, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X04A6, 0X1BC5, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, 0X0547, - 0X0547, 0X0547, 0X0547, 0X0547, 0X0547 }; - diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/pictureEmbed.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/pictureEmbed.ino deleted file mode 100644 index 5c5475756..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/pictureEmbed/pictureEmbed.ino +++ /dev/null @@ -1,69 +0,0 @@ -// ILI9341 example with embedded color bitmaps in sketch. -// WILL NOT FIT ON ARDUINO UNO OR OTHER AVR BOARDS; -// uses large bitmap image stored in array! - -// Options for converting images to the format used here include: -// http://www.rinkydinkelectronics.com/t_imageconverter565.php -// or -// GIMP (https://www.gimp.org/) as follows: -// 1. File -> Export As -// 2. In Export Image dialog, use 'C source code (*.c)' as filetype. -// 3. Press export to get the export options dialog. -// 4. Type the desired variable name into the 'prefixed name' box. -// 5. Uncheck 'GLIB types (guint8*)' -// 6. Check 'Save as RGB565 (16-bit)' -// 7. Press export to save your image. -// Assuming 'image_name' was typed in the 'prefixed name' box of step 4, -// you can have to include the c file, then using the image can be done with: -// tft.drawRGBBitmap(0, 0, image_name.pixel_data, image_name.width, image_name.height); -// See also https://forum.pjrc.com/threads/35575-Export-for-ILI9341_t3-with-GIMP - -#include "SPI.h" -#include -#include "dragon.h" - -// For the Adafruit shield, these are the default. -//#define TFT_DC 9 -//#define TFT_CS 10 - -// Feather 32u4 or M0 with TFT FeatherWing: -#define TFT_DC 10 -#define TFT_CS 9 -// ESP8266: -//#define TFT_DC 15 -//#define TFT_CS 0 -// Other boards (including Feather boards) may have other pinouts; -// see learn.adafruit.com/adafruit-2-4-tft-touch-screen-featherwing/pinouts - -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); -// If using the breakout, change pins as desired -//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO); - -void setup() { - tft.begin(); -} - -void loop(void) { - for(uint8_t r=0; r<4; r++) { - tft.setRotation(r); - tft.fillScreen(ILI9341_BLACK); - for(uint8_t j=0; j<20; j++) { - tft.drawRGBBitmap( - random(-DRAGON_WIDTH , tft.width()), - random(-DRAGON_HEIGHT, tft.height()), -#if defined(__AVR__) || defined(ESP8266) - dragonBitmap, -#else - // Some non-AVR MCU's have a "flat" memory model and don't - // distinguish between flash and RAM addresses. In this case, - // the RAM-resident-optimized drawRGBBitmap in the ILI9341 - // library can be invoked by forcibly type-converting the - // PROGMEM bitmap pointer to a non-const uint16_t *. - (uint16_t *)dragonBitmap, -#endif - DRAGON_WIDTH, DRAGON_HEIGHT); - delay(1); // Allow ESP8266 to handle watchdog & WiFi stuff - } - delay(3000); - } -} diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/spitftbitmap/spitftbitmap.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/spitftbitmap/spitftbitmap.ino deleted file mode 100644 index 7e2fedc5e..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/spitftbitmap/spitftbitmap.ino +++ /dev/null @@ -1,218 +0,0 @@ -/*************************************************** - This is our Bitmap drawing example for the Adafruit ILI9341 Breakout and Shield - ----> http://www.adafruit.com/products/1651 - - Check out the links above for our tutorials and wiring diagrams - These displays use SPI to communicate, 4 or 5 pins are required to - interface (RST is optional) - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried/Ladyada for Adafruit Industries. - MIT license, all text above must be included in any redistribution - ****************************************************/ - - -#include // Core graphics library -#include "Adafruit_ILI9341.h" // Hardware-specific library -#include -#include - -// TFT display and SD card will share the hardware SPI interface. -// Hardware SPI pins are specific to the Arduino board type and -// cannot be remapped to alternate pins. For Arduino Uno, -// Duemilanove, etc., pin 11 = MOSI, pin 12 = MISO, pin 13 = SCK. - -#define TFT_DC 9 -#define TFT_CS 10 -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); - -#define SD_CS 4 - -void setup(void) { - Serial.begin(9600); - - tft.begin(); - - yield(); - - Serial.print("Initializing SD card..."); - if (!SD.begin(SD_CS)) { - Serial.println("failed!"); - } - Serial.println("OK!"); - -} - -void loop() { - for(uint8_t r=0; r<4; r++) { - tft.setRotation(r); - tft.fillScreen(ILI9341_BLUE); - for(int8_t i=-2; i<1; i++) { - bmpDraw("purple.bmp", - (tft.width() / 2) + (i * 120), - (tft.height() / 2) + (i * 160)); - } - } -} - -// This function opens a Windows Bitmap (BMP) file and -// displays it at the given coordinates. It's sped up -// by reading many pixels worth of data at a time -// (rather than pixel by pixel). Increasing the buffer -// size takes more of the Arduino's precious RAM but -// makes loading a little faster. 20 pixels seems a -// good balance. - -#define BUFFPIXEL 20 - -void bmpDraw(char *filename, int16_t x, int16_t y) { - - File bmpFile; - int bmpWidth, bmpHeight; // W+H in pixels - uint8_t bmpDepth; // Bit depth (currently must be 24) - uint32_t bmpImageoffset; // Start of image data in file - uint32_t rowSize; // Not always = bmpWidth; may have padding - uint8_t sdbuffer[3*BUFFPIXEL]; // pixel buffer (R+G+B per pixel) - uint8_t buffidx = sizeof(sdbuffer); // Current position in sdbuffer - boolean goodBmp = false; // Set to true on valid header parse - boolean flip = true; // BMP is stored bottom-to-top - int w, h, row, col, x2, y2, bx1, by1; - uint8_t r, g, b; - uint32_t pos = 0, startTime = millis(); - - if((x >= tft.width()) || (y >= tft.height())) return; - - Serial.println(); - Serial.print(F("Loading image '")); - Serial.print(filename); - Serial.println('\''); - - // Open requested file on SD card - if ((bmpFile = SD.open(filename)) == NULL) { - Serial.print(F("File not found")); - return; - } - - // Parse BMP header - if(read16(bmpFile) == 0x4D42) { // BMP signature - Serial.print(F("File size: ")); Serial.println(read32(bmpFile)); - (void)read32(bmpFile); // Read & ignore creator bytes - bmpImageoffset = read32(bmpFile); // Start of image data - Serial.print(F("Image Offset: ")); Serial.println(bmpImageoffset, DEC); - // Read DIB header - Serial.print(F("Header size: ")); Serial.println(read32(bmpFile)); - bmpWidth = read32(bmpFile); - bmpHeight = read32(bmpFile); - if(read16(bmpFile) == 1) { // # planes -- must be '1' - bmpDepth = read16(bmpFile); // bits per pixel - Serial.print(F("Bit Depth: ")); Serial.println(bmpDepth); - if((bmpDepth == 24) && (read32(bmpFile) == 0)) { // 0 = uncompressed - - goodBmp = true; // Supported BMP format -- proceed! - Serial.print(F("Image size: ")); - Serial.print(bmpWidth); - Serial.print('x'); - Serial.println(bmpHeight); - - // BMP rows are padded (if needed) to 4-byte boundary - rowSize = (bmpWidth * 3 + 3) & ~3; - - // If bmpHeight is negative, image is in top-down order. - // This is not canon but has been observed in the wild. - if(bmpHeight < 0) { - bmpHeight = -bmpHeight; - flip = false; - } - - // Crop area to be loaded - x2 = x + bmpWidth - 1; // Lower-right corner - y2 = y + bmpHeight - 1; - if((x2 >= 0) && (y2 >= 0)) { // On screen? - w = bmpWidth; // Width/height of section to load/display - h = bmpHeight; - bx1 = by1 = 0; // UL coordinate in BMP file - if(x < 0) { // Clip left - bx1 = -x; - x = 0; - w = x2 + 1; - } - if(y < 0) { // Clip top - by1 = -y; - y = 0; - h = y2 + 1; - } - if(x2 >= tft.width()) w = tft.width() - x; // Clip right - if(y2 >= tft.height()) h = tft.height() - y; // Clip bottom - - // Set TFT address window to clipped image bounds - tft.startWrite(); // Requires start/end transaction now - tft.setAddrWindow(x, y, w, h); - - for (row=0; row= sizeof(sdbuffer)) { // Indeed - tft.endWrite(); // End TFT transaction - bmpFile.read(sdbuffer, sizeof(sdbuffer)); - buffidx = 0; // Set index to beginning - tft.startWrite(); // Start new TFT transaction - } - // Convert pixel from BMP to TFT format, push to display - b = sdbuffer[buffidx++]; - g = sdbuffer[buffidx++]; - r = sdbuffer[buffidx++]; - tft.writePixel(tft.color565(r,g,b)); - } // end pixel - } // end scanline - tft.endWrite(); // End last TFT transaction - } // end onscreen - Serial.print(F("Loaded in ")); - Serial.print(millis() - startTime); - Serial.println(" ms"); - } // end goodBmp - } - } - - bmpFile.close(); - if(!goodBmp) Serial.println(F("BMP format not recognized.")); -} - -// These read 16- and 32-bit types from the SD card file. -// BMP data is stored little-endian, Arduino is little-endian too. -// May need to reverse subscript order if porting elsewhere. - -uint16_t read16(File &f) { - uint16_t result; - ((uint8_t *)&result)[0] = f.read(); // LSB - ((uint8_t *)&result)[1] = f.read(); // MSB - return result; -} - -uint32_t read32(File &f) { - uint32_t result; - ((uint8_t *)&result)[0] = f.read(); // LSB - ((uint8_t *)&result)[1] = f.read(); - ((uint8_t *)&result)[2] = f.read(); - ((uint8_t *)&result)[3] = f.read(); // MSB - return result; -} diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint/touchpaint.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint/touchpaint.ino deleted file mode 100644 index 227abdc84..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint/touchpaint.ino +++ /dev/null @@ -1,146 +0,0 @@ -/*************************************************** - This is our touchscreen painting example for the Adafruit ILI9341 Shield - ----> http://www.adafruit.com/products/1651 - - Check out the links above for our tutorials and wiring diagrams - These displays use SPI to communicate, 4 or 5 pins are required to - interface (RST is optional) - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried/Ladyada for Adafruit Industries. - MIT license, all text above must be included in any redistribution - ****************************************************/ - - -#include // Core graphics library -#include -#include // this is needed even tho we aren't using it -#include -#include - -// This is calibration data for the raw touch data to the screen coordinates -#define TS_MINX 150 -#define TS_MINY 130 -#define TS_MAXX 3800 -#define TS_MAXY 4000 - -// The STMPE610 uses hardware SPI on the shield, and #8 -#define STMPE_CS 8 -Adafruit_STMPE610 ts = Adafruit_STMPE610(STMPE_CS); - -// The display also uses hardware SPI, plus #9 & #10 -#define TFT_CS 10 -#define TFT_DC 9 -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); - -// Size of the color selection boxes and the paintbrush size -#define BOXSIZE 40 -#define PENRADIUS 3 -int oldcolor, currentcolor; - -void setup(void) { - // while (!Serial); // used for leonardo debugging - - Serial.begin(9600); - Serial.println(F("Touch Paint!")); - - tft.begin(); - - if (!ts.begin()) { - Serial.println("Couldn't start touchscreen controller"); - while (1); - } - Serial.println("Touchscreen started"); - - tft.fillScreen(ILI9341_BLACK); - - // make the color selection boxes - tft.fillRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_RED); - tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_YELLOW); - tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_GREEN); - tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_CYAN); - tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_BLUE); - tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_MAGENTA); - - // select the current color 'red' - tft.drawRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - currentcolor = ILI9341_RED; -} - - -void loop() -{ - // See if there's any touch data for us - if (ts.bufferEmpty()) { - return; - } - /* - // You can also wait for a touch - if (! ts.touched()) { - return; - } - */ - - // Retrieve a point - TS_Point p = ts.getPoint(); - - /* - Serial.print("X = "); Serial.print(p.x); - Serial.print("\tY = "); Serial.print(p.y); - Serial.print("\tPressure = "); Serial.println(p.z); - */ - - // Scale from ~0->4000 to tft.width using the calibration #'s - p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width()); - p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height()); - - /* - Serial.print("("); Serial.print(p.x); - Serial.print(", "); Serial.print(p.y); - Serial.println(")"); - */ - - if (p.y < BOXSIZE) { - oldcolor = currentcolor; - - if (p.x < BOXSIZE) { - currentcolor = ILI9341_RED; - tft.drawRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*2) { - currentcolor = ILI9341_YELLOW; - tft.drawRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*3) { - currentcolor = ILI9341_GREEN; - tft.drawRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*4) { - currentcolor = ILI9341_CYAN; - tft.drawRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*5) { - currentcolor = ILI9341_BLUE; - tft.drawRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*6) { - currentcolor = ILI9341_MAGENTA; - tft.drawRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } - - if (oldcolor != currentcolor) { - if (oldcolor == ILI9341_RED) - tft.fillRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_RED); - if (oldcolor == ILI9341_YELLOW) - tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_YELLOW); - if (oldcolor == ILI9341_GREEN) - tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_GREEN); - if (oldcolor == ILI9341_CYAN) - tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_CYAN); - if (oldcolor == ILI9341_BLUE) - tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_BLUE); - if (oldcolor == ILI9341_MAGENTA) - tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_MAGENTA); - } - } - if (((p.y-PENRADIUS) > BOXSIZE) && ((p.y+PENRADIUS) < tft.height())) { - tft.fillCircle(p.x, p.y, PENRADIUS, currentcolor); - } -} diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/.mega2560.test.skip b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/.mega2560.test.skip deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/touchpaint_featherwing.ino b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/touchpaint_featherwing.ino deleted file mode 100644 index 5d317abcd..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/examples/touchpaint_featherwing/touchpaint_featherwing.ino +++ /dev/null @@ -1,165 +0,0 @@ -/*************************************************** - This is our touchscreen painting example for the Adafruit TFT FeatherWing - ----> http://www.adafruit.com/products/3315 - - Check out the links above for our tutorials and wiring diagrams - - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing - products from Adafruit! - - Written by Limor Fried/Ladyada for Adafruit Industries. - MIT license, all text above must be included in any redistribution - ****************************************************/ - -#include -#include // this is needed even tho we aren't using it - -#include // Core graphics library -#include // Hardware-specific library -#include - -#ifdef ESP8266 - #define STMPE_CS 16 - #define TFT_CS 0 - #define TFT_DC 15 - #define SD_CS 2 -#endif -#ifdef ESP32 - #define STMPE_CS 32 - #define TFT_CS 15 - #define TFT_DC 33 - #define SD_CS 14 -#endif -#ifdef TEENSYDUINO - #define TFT_DC 10 - #define TFT_CS 4 - #define STMPE_CS 3 - #define SD_CS 8 -#endif -#ifdef ARDUINO_STM32_FEATHER - #define TFT_DC PB4 - #define TFT_CS PA15 - #define STMPE_CS PC7 - #define SD_CS PC5 -#endif -#ifdef ARDUINO_NRF52_FEATHER /* BSP 0.6.5 and higher! */ - #define TFT_DC 11 - #define TFT_CS 31 - #define STMPE_CS 30 - #define SD_CS 27 -#endif -#if defined(ARDUINO_MAX32620FTHR) || defined(ARDUINO_MAX32630FTHR) - #define TFT_DC P5_4 - #define TFT_CS P5_3 - #define STMPE_CS P3_3 - #define SD_CS P3_2 -#endif - -// Anything else! -#if defined (__AVR_ATmega32U4__) || defined(ARDUINO_SAMD_FEATHER_M0) || defined (__AVR_ATmega328P__) || defined(ARDUINO_SAMD_ZERO) || defined(__SAMD51__) || defined(__SAM3X8E__) - #define STMPE_CS 6 - #define TFT_CS 9 - #define TFT_DC 10 - #define SD_CS 5 -#endif - - -Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); -Adafruit_STMPE610 ts = Adafruit_STMPE610(STMPE_CS); - - -// This is calibration data for the raw touch data to the screen coordinates -#define TS_MINX 3800 -#define TS_MAXX 100 -#define TS_MINY 100 -#define TS_MAXY 3750 - -// Size of the color selection boxes and the paintbrush size -#define BOXSIZE 40 -#define PENRADIUS 3 -int oldcolor, currentcolor; - -void setup(void) { - Serial.begin(115200); - - delay(10); - Serial.println("FeatherWing TFT"); - if (!ts.begin()) { - Serial.println("Couldn't start touchscreen controller"); - while (1); - } - Serial.println("Touchscreen started"); - - tft.begin(); - tft.fillScreen(ILI9341_BLACK); - - // make the color selection boxes - tft.fillRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_RED); - tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_YELLOW); - tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_GREEN); - tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_CYAN); - tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_BLUE); - tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_MAGENTA); - - // select the current color 'red' - tft.drawRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - currentcolor = ILI9341_RED; -} - -void loop() { - // Retrieve a point - TS_Point p = ts.getPoint(); - - Serial.print("X = "); Serial.print(p.x); - Serial.print("\tY = "); Serial.print(p.y); - Serial.print("\tPressure = "); Serial.println(p.z); - - - // Scale from ~0->4000 to tft.width using the calibration #'s - p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width()); - p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height()); - - if (p.y < BOXSIZE) { - oldcolor = currentcolor; - - if (p.x < BOXSIZE) { - currentcolor = ILI9341_RED; - tft.drawRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*2) { - currentcolor = ILI9341_YELLOW; - tft.drawRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*3) { - currentcolor = ILI9341_GREEN; - tft.drawRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*4) { - currentcolor = ILI9341_CYAN; - tft.drawRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*5) { - currentcolor = ILI9341_BLUE; - tft.drawRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } else if (p.x < BOXSIZE*6) { - currentcolor = ILI9341_MAGENTA; - tft.drawRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_WHITE); - } - - if (oldcolor != currentcolor) { - if (oldcolor == ILI9341_RED) - tft.fillRect(0, 0, BOXSIZE, BOXSIZE, ILI9341_RED); - if (oldcolor == ILI9341_YELLOW) - tft.fillRect(BOXSIZE, 0, BOXSIZE, BOXSIZE, ILI9341_YELLOW); - if (oldcolor == ILI9341_GREEN) - tft.fillRect(BOXSIZE*2, 0, BOXSIZE, BOXSIZE, ILI9341_GREEN); - if (oldcolor == ILI9341_CYAN) - tft.fillRect(BOXSIZE*3, 0, BOXSIZE, BOXSIZE, ILI9341_CYAN); - if (oldcolor == ILI9341_BLUE) - tft.fillRect(BOXSIZE*4, 0, BOXSIZE, BOXSIZE, ILI9341_BLUE); - if (oldcolor == ILI9341_MAGENTA) - tft.fillRect(BOXSIZE*5, 0, BOXSIZE, BOXSIZE, ILI9341_MAGENTA); - } - } - - if (((p.y-PENRADIUS) > 0) && ((p.y+PENRADIUS) < tft.height())) { - tft.fillCircle(p.x, p.y, PENRADIUS, currentcolor); - } -} diff --git a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/library.properties b/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/library.properties deleted file mode 100644 index 8c93d49ee..000000000 --- a/lib/lib_display/Adafruit_ILI9341-1.2.0-Tasmota-1.0/library.properties +++ /dev/null @@ -1,9 +0,0 @@ -name=Adafruit ILI9341 -version=1.2.0 -author=Adafruit -maintainer=Adafruit -sentence=Library for Adafruit ILI9341 displays -paragraph=Library for Adafruit ILI9341 displays -category=Display -url=https://github.com/adafruit/Adafruit_ILI9341 -architectures=* diff --git a/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.cpp b/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.cpp index 9946286b2..7347fa74f 100644 --- a/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.cpp +++ b/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.cpp @@ -21,6 +21,8 @@ ST7789_LIGHTGREY,ST7789_DARKGREY,ST7789_ORANGE,ST7789_GREENYELLOW,ST7789_PINK}; #define ST7789_DIMMER #endif + + uint16_t Arduino_ST7789::GetColorFromIndex(uint8_t index) { if (index>=sizeof(ST7789_colors)/2) index=0; return ST7789_colors[index]; @@ -50,7 +52,7 @@ inline uint16_t swapcolor(uint16_t x) { } #if defined (SPI_HAS_TRANSACTION) - static SPISettings mySPISettings; + static SPISettings ST7789_SPISettings; #elif defined (__AVR__) || defined(CORE_TEENSY) static uint8_t SPCRbackup; static uint8_t mySPCR; @@ -58,7 +60,7 @@ inline uint16_t swapcolor(uint16_t x) { #if defined (SPI_HAS_TRANSACTION) -#define SPI_BEGIN_TRANSACTION() if (_hwSPI) SPI.beginTransaction(mySPISettings) +#define SPI_BEGIN_TRANSACTION() if (_hwSPI) SPI.beginTransaction(ST7789_SPISettings) #define SPI_END_TRANSACTION() if (_hwSPI) SPI.endTransaction() #else #define SPI_BEGIN_TRANSACTION() (void) @@ -217,26 +219,28 @@ void Arduino_ST7789::displayInit(const uint8_t *addr) { uint16_t ms; //<----------------------------------------------------------------------------------------- DC_HIGH(); - #if defined(USE_FAST_IO) + if (!_hwSPI) { +#if defined(USE_FAST_IO) *clkport |= clkpinmask; - #else +#else digitalWrite(_sclk, HIGH); - #endif +#endif + } //<----------------------------------------------------------------------------------------- numCommands = pgm_read_byte(addr++); // Number of commands to follow - while(numCommands--) { // For each command... + while (numCommands--) { // For each command... writecommand(pgm_read_byte(addr++)); // Read, issue command numArgs = pgm_read_byte(addr++); // Number of args to follow ms = numArgs & ST_CMD_DELAY; // If hibit set, delay follows args numArgs &= ~ST_CMD_DELAY; // Mask out delay bit - while(numArgs--) { // For each argument... + while (numArgs--) { // For each argument... writedata(pgm_read_byte(addr++)); // Read, issue argument } - if(ms) { + if (ms) { ms = pgm_read_byte(addr++); // Read post-command delay time (ms) - if(ms == 255) ms = 500; // If 255, delay for 500 ms + if (ms == 255) ms = 500; // If 255, delay for 500 ms delay(ms); } } @@ -270,16 +274,16 @@ void Arduino_ST7789::commonInit(const uint8_t *cmdList) { dcport = portOutputRegister(digitalPinToPort(_dc)); dcpinmask = digitalPinToBitMask(_dc); if (_cs>=0) { - csport = portOutputRegister(digitalPinToPort(_cs)); - cspinmask = digitalPinToBitMask(_cs); + csport = portOutputRegister(digitalPinToPort(_cs)); + cspinmask = digitalPinToBitMask(_cs); } - #endif if(_hwSPI) { // Using hardware SPI #if defined (SPI_HAS_TRANSACTION) SPI.begin(); - mySPISettings = SPISettings(24000000, MSBFIRST, SPI_MODE2); + // ST7789_SPISettings = SPISettings(24000000, MSBFIRST, SPI_MODE2); + ST7789_SPISettings = SPISettings(1000000, MSBFIRST, SPI_MODE2); #elif defined (__AVR__) || defined(CORE_TEENSY) SPCRbackup = SPCR; SPI.begin(); @@ -318,7 +322,7 @@ void Arduino_ST7789::commonInit(const uint8_t *cmdList) { delay(50); } - if(cmdList) + if (cmdList) displayInit(cmdList); } @@ -391,7 +395,6 @@ void Arduino_ST7789::setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16 setAddrWindow_int(x0,y0,x1-1,y1-1); } - void Arduino_ST7789::setAddrWindow_int(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { uint16_t x_start = x0 + _xstart, x_end = x1 + _xstart; uint16_t y_start = y0 + _ystart, y_end = y1 + _ystart; diff --git a/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.h b/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.h index b8cbabeb8..ebd39dc25 100644 --- a/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.h +++ b/lib/lib_display/Arduino_ST7789-gemu-1.0/Arduino_ST7789.h @@ -15,6 +15,10 @@ #include #include +#ifdef ESP8266 +#define USE_FAST_IO +#endif + #if defined(__AVR__) || defined(CORE_TEENSY) #include #define USE_FAST_IO @@ -177,7 +181,7 @@ class Arduino_ST7789 : public Renderer { int8_t _cs, _dc, _rst, _sid, _sclk, _bp; #if defined(USE_FAST_IO) - volatile RwReg *dataport, *clkport, *csport, *dcport; + volatile uint32_t *dataport, *clkport, *csport, *dcport; #if defined(__AVR__) || defined(CORE_TEENSY) // 8 bit! uint8_t datapinmask, clkpinmask, cspinmask, dcpinmask; diff --git a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp index c05faee13..911d4809f 100644 --- a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp +++ b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp @@ -87,6 +87,14 @@ void Renderer::Updateframe() { } + +void Renderer::setTextSize(uint8_t sf) { + if (sf < 1) sf = 1; + if (sf > 4) sf = 4; + tsize = sf; + Adafruit_GFX::setTextSize(sf); +} + /** * @brief: this draws a charactor on the frame buffer but not refresh */ @@ -96,14 +104,25 @@ void Renderer::DrawCharAt(int16_t x, int16_t y, char ascii_char,int16_t colored) int i, j; unsigned int char_offset = (ascii_char - ' ') * xfont->Height * (xfont->Width / 8 + (xfont->Width % 8 ? 1 : 0)); const unsigned char* ptr = &xfont->table[char_offset]; + uint8_t sf = tsize; for (j = 0; j < xfont->Height; j++) { for (i = 0; i < xfont->Width; i++) { if (pgm_read_byte(ptr) & (0x80 >> (i % 8))) { - writePixel(x + i, y + j, colored); + if (sf == 1) { + writePixel(x + i, y + j, colored); + } else { + writeFillRect(x + i * sf, y + j * sf, sf, sf, colored); + } } else { // fill background - if (!drawmode) writePixel(x + i, y + j, textbgcolor); + if (!drawmode) { + if (sf == 1) { + writePixel(x + i, y + j, textbgcolor); + } else { + writeFillRect(x + i * sf, y + j * sf, sf, sf, textbgcolor); + } + } } if (i % 8 == 7) { ptr++; @@ -146,8 +165,8 @@ void Renderer::DrawStringAt(int16_t x, int16_t y, const char* text, uint16_t col if (flag) { - x=(x-1)*xfont->Width; - y=(y-1)*xfont->Height; + x=(x-1)*xfont->Width*tsize; + y=(y-1)*xfont->Height*tsize; refcolumn = x; } @@ -159,7 +178,7 @@ void Renderer::DrawStringAt(int16_t x, int16_t y, const char* text, uint16_t col /* Display one character on EPD */ DrawCharAt(refcolumn, y, *p_text, colored); /* increment the column position */ - refcolumn += xfont->Width; + refcolumn += xfont->Width*tsize; /* Point on the next character */ p_text++; counter++; @@ -527,6 +546,13 @@ void Renderer::setDrawMode(uint8_t mode) { void Renderer::invertDisplay(boolean i) { } +void Renderer::setScrollMargins(uint16_t top, uint16_t bottom) { + +} +void Renderer::scrollTo(uint16_t y) { + +} + void VButton::xdrawButton(bool inverted) { wr_redir=1; drawButton(inverted); @@ -626,4 +652,5 @@ uint16_t VButton::UpdateSlider(int16_t x, int16_t y) { + /* END OF FILE */ diff --git a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h index b50745686..cae4b420b 100644 --- a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h +++ b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h @@ -36,15 +36,19 @@ public: virtual void pushColors(uint16_t *data, uint16_t len, boolean first); virtual void setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); virtual void invertDisplay(boolean i); + virtual void setScrollMargins(uint16_t top, uint16_t bottom); + virtual void scrollTo(uint16_t y); void setDrawMode(uint8_t mode); uint8_t drawmode; virtual void FastString(uint16_t x,uint16_t y,uint16_t tcolor, const char* str); + void setTextSize(uint8_t s); private: void DrawCharAt(int16_t x, int16_t y, char ascii_char,int16_t colored); inline void drawFastVLineInternal(int16_t x, int16_t y, int16_t h, uint16_t color) __attribute__((always_inline)); inline void drawFastHLineInternal(int16_t x, int16_t y, int16_t w, uint16_t color) __attribute__((always_inline)); sFONT *selected_font; uint8_t font; + uint8_t tsize = 1; }; typedef union { diff --git a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp index 428f7cb80..f8a365f8e 100644 --- a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp +++ b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp @@ -46,7 +46,7 @@ * */ -#ifdef ESP32 +//#ifdef ESP32 #include "ILI9341_2.h" #include @@ -57,25 +57,26 @@ #define ILI9341_2_DIMMER #undef ESP32_PWM_CHANNEL #define ESP32_PWM_CHANNEL 1 -#define ILI9341_2_HWSPI #endif +#define ILI9341_2_HWSPI + #if defined (ILI9341_2_HWSPI) #define SPI_BEGIN_TRANSACTION() if (_hwspi) spi2->beginTransaction(sspi2) #define SPI_END_TRANSACTION() if (_hwspi) spi2->endTransaction() #else -#define SPI_BEGIN_TRANSACTION() (void) -#define SPI_END_TRANSACTION() (void) +#define SPI_BEGIN_TRANSACTION() +#define SPI_END_TRANSACTION() #endif -const uint16_t ili9341_2_colors[]={ILI9341_2_BLACK,ILI9341_2_WHITE,ILI9341_2_RED,ILI9341_2_GREEN,ILI9341_2_BLUE,ILI9341_2_CYAN,ILI9341_2_MAGENTA,\ - ILI9341_2_YELLOW,ILI9341_2_NAVY,ILI9341_2_DARKGREEN,ILI9341_2_DARKCYAN,ILI9341_2_MAROON,ILI9341_2_PURPLE,ILI9341_2_OLIVE,\ -ILI9341_2_LIGHTGREY,ILI9341_2_DARKGREY,ILI9341_2_ORANGE,ILI9341_2_GREENYELLOW,ILI9341_2_PINK}; +const uint16_t ili9341_2_colors[]={ILI9341_BLACK,ILI9341_WHITE,ILI9341_RED,ILI9341_GREEN,ILI9341_BLUE,ILI9341_CYAN,ILI9341_MAGENTA,\ + ILI9341_YELLOW,ILI9341_NAVY,ILI9341_DARKGREEN,ILI9341_DARKCYAN,ILI9341_MAROON,ILI9341_PURPLE,ILI9341_OLIVE,\ +ILI9341_LIGHTGREY,ILI9341_DARKGREY,ILI9341_ORANGE,ILI9341_GREENYELLOW,ILI9341_PINK}; uint16_t ILI9341_2::GetColorFromIndex(uint8_t index) { - if (index>=sizeof(ili9341_2_colors)/2) index=0; + if (index >= sizeof(ili9341_2_colors) / 2) index = 0; return ili9341_2_colors[index]; } @@ -135,7 +136,7 @@ static const uint8_t PROGMEM ili9342_initcmd[] = { 0x00 // End of list }; -ILI9341_2::ILI9341_2(int8_t cs, int8_t mosi, int8_t miso, int8_t sclk, int8_t res, int8_t dc, int8_t bp) : Renderer(ILI9341_2_TFTWIDTH, ILI9341_2_TFTHEIGHT) { +ILI9341_2::ILI9341_2(int8_t cs, int8_t mosi, int8_t miso, int8_t sclk, int8_t res, int8_t dc, int8_t bp, int8_t spibus) : Renderer(ILI9341_TFTWIDTH, ILI9341_TFTHEIGHT) { _cs = cs; _mosi = mosi; _miso = miso; @@ -143,20 +144,22 @@ ILI9341_2::ILI9341_2(int8_t cs, int8_t mosi, int8_t miso, int8_t sclk, int8_t re _res = res; _dc = dc; _bp = bp; - _hwspi = 1; + _hwspi = 1; // sign ili9341 + _spibus = spibus; } -// special init for ILI9342 -ILI9341_2::ILI9341_2(int8_t cs, int8_t res, int8_t dc, int8_t bp) : Renderer(ILI9341_2_TFTWIDTH, ILI9341_2_TFTHEIGHT) { +// special init for ILI9342 uses SPI1 previously defined with SDCard +ILI9341_2::ILI9341_2(int8_t cs, int8_t res, int8_t dc, int8_t bp) : Renderer(ILI9341_TFTWIDTH, ILI9341_TFTHEIGHT) { _cs = cs; _res = res; _dc = dc; _bp = bp; - _hwspi = 2; + _hwspi = 2; // sign ili9342 + _spibus = 1; } -#define ILI9341_2_CS_LOW digitalWrite( _cs, LOW); -#define ILI9341_2_CS_HIGH digitalWrite( _cs, HIGH); +#define ILI9341_2_CS_LOW if (_cs>=0) digitalWrite( _cs, LOW); +#define ILI9341_2_CS_HIGH if (_cs>=0) digitalWrite( _cs, HIGH); void ILI9341_2::writecmd(uint8_t d) { @@ -172,12 +175,12 @@ void ILI9341_2::writecmd(uint8_t d) { void ILI9341_2::init(uint16_t width, uint16_t height) { //sspi2 = SPISettings(2500000, MSBFIRST, SPI_MODE3); - if (_hwspi==2) { - iwidth=ILI9341_2_TFTWIDTH; - iheight=ILI9341_2_TFTHEIGHT; + if (_hwspi == 2) { + iwidth = ILI9341_TFTWIDTH; + iheight = ILI9341_TFTHEIGHT; } else { - iwidth=ILI9341_2_TFTHEIGHT; - iheight=ILI9341_2_TFTWIDTH; + iwidth = ILI9341_TFTHEIGHT; + iheight = ILI9341_TFTWIDTH; } #ifdef ILI9341_2_HWSPI @@ -187,8 +190,17 @@ void ILI9341_2::init(uint16_t width, uint16_t height) { if (_hwspi==2) { spi2=&SPI; } else { - spi2 = new SPIClass(HSPI); +#ifdef ESP32 + if (_spibus == 2) { + spi2 = new SPIClass(HSPI); + } else { + spi2 = &SPI; + } spi2->begin(_sclk, _miso, _mosi, -1); +#else + SPI.begin(); + spi2 = &SPI; +#endif } #else @@ -205,12 +217,12 @@ void ILI9341_2::init(uint16_t width, uint16_t height) { pinMode(_dc, OUTPUT); digitalWrite(_dc,HIGH); - if (_bp>=0) { + if (_bp >= 0) { pinMode(_bp, OUTPUT); digitalWrite(_bp,HIGH); } - if (_res>=0) { + if (_res >= 0) { pinMode(_res, OUTPUT); digitalWrite(_res, HIGH); delay(100); @@ -227,11 +239,11 @@ void ILI9341_2::init(uint16_t width, uint16_t height) { delay(150); } - if (_bp>=0) { + if (_bp >= 0) { #ifdef ILI9341_2_DIMMER - ledcSetup(ESP32_PWM_CHANNEL,4000,8); - ledcAttachPin(_bp,ESP32_PWM_CHANNEL); - ledcWrite(ESP32_PWM_CHANNEL,128); + ledcSetup(ESP32_PWM_CHANNEL, 4000, 8); + ledcAttachPin(_bp, ESP32_PWM_CHANNEL); + ledcWrite(ESP32_PWM_CHANNEL, 128); #else pinMode(_bp, OUTPUT); #endif @@ -261,11 +273,9 @@ void ILI9341_2::init(uint16_t width, uint16_t height) { #endif ILI9341_2_CS_HIGH - if(x & 0x80) delay(120); + if (x & 0x80) delay(120); } SPI_END_TRANSACTION(); - -// endWrite(); } void ILI9341_2::DisplayInit(int8_t p,int8_t size,int8_t rot,int8_t font) { @@ -275,9 +285,9 @@ void ILI9341_2::DisplayInit(int8_t p,int8_t size,int8_t rot,int8_t font) { setRotation(rot); setTextFont(font&3); setTextSize(size&7); - setTextColor(ILI9341_2_WHITE,ILI9341_2_BLACK); + setTextColor(ILI9341_WHITE,ILI9341_BLACK); setCursor(0,0); - fillScreen(ILI9341_2_BLACK); + fillScreen(ILI9341_BLACK); } void ILI9341_2::setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { @@ -331,21 +341,20 @@ void ILI9341_2::setAddrWindow_int(uint16_t x, uint16_t y, uint16_t w, uint16_t h void ILI9341_2::drawPixel(int16_t x, int16_t y, uint16_t color) { - if((x < 0) ||(x >= _width) || (y < 0) || (y >= _height)) return; - ILI9341_2_CS_LOW - SPI_BEGIN_TRANSACTION(); - setAddrWindow_int(x,y,1,1); + ILI9341_2_CS_LOW + setAddrWindow_int(x,y,1,1); #ifdef ILI9341_2_HWSPI spi2->write16(color); #else spiwrite16(color); #endif + ILI9341_2_CS_HIGH SPI_END_TRANSACTION(); @@ -354,7 +363,7 @@ void ILI9341_2::drawPixel(int16_t x, int16_t y, uint16_t color) { void ILI9341_2::setRotation(uint8_t m) { - if (_hwspi<2) { + if (_hwspi < 2) { rotation = m % 4; // can't be higher than 3 switch (rotation) { case 0: @@ -425,15 +434,14 @@ void ILI9341_2::setRotation(uint8_t m) { void ILI9341_2::drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color) { // Rudimentary clipping - if((x >= _width) || (y >= _height)) return; - if((y+h-1) >= _height) h = _height-y; - - ILI9341_2_CS_LOW + if ((x >= _width) || (y >= _height)) return; + if ((y + h - 1) >= _height) h = _height - y; SPI_BEGIN_TRANSACTION(); - setAddrWindow_int(x, y, 1, h); + ILI9341_2_CS_LOW + setAddrWindow_int(x, y, 1, h); while (h--) { #ifdef ILI9341_2_HWSPI @@ -454,10 +462,11 @@ void ILI9341_2::drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color) { if((x >= _width) || (y >= _height)) return; if((x+w-1) >= _width) w = _width-x; - ILI9341_2_CS_LOW SPI_BEGIN_TRANSACTION(); + ILI9341_2_CS_LOW + setAddrWindow_int(x, y, w, 1); @@ -486,10 +495,11 @@ void ILI9341_2::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t co if((x + w - 1) >= _width) w = _width - x; if((y + h - 1) >= _height) h = _height - y; - ILI9341_2_CS_LOW SPI_BEGIN_TRANSACTION(); + ILI9341_2_CS_LOW + setAddrWindow_int(x, y, w, h); for (y=h; y>0; y--) { @@ -605,4 +615,25 @@ void ILI9341_2::spiwrite32(uint32_t c) { #endif } -#endif +void ILI9341_2::setScrollMargins(uint16_t top, uint16_t bottom) { + uint16_t height = _height - (top + bottom); + SPI_BEGIN_TRANSACTION(); + ILI9341_2_CS_LOW + writecmd(0x33); + + spiwrite16(top); + spiwrite16(height); + spiwrite16(bottom); + ILI9341_2_CS_HIGH + SPI_END_TRANSACTION(); +} + + +void ILI9341_2::scrollTo(uint16_t y) { + SPI_BEGIN_TRANSACTION(); + ILI9341_2_CS_LOW + writecmd(ILI9341_2_VSCRSADD); + spiwrite16(y); + ILI9341_2_CS_HIGH + SPI_END_TRANSACTION(); +} diff --git a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h index 482df9472..4b39ebf38 100644 --- a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h +++ b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h @@ -22,8 +22,8 @@ #include #include -#define ILI9341_2_TFTWIDTH 320 -#define ILI9341_2_TFTHEIGHT 240 +#define ILI9341_TFTWIDTH 320 +#define ILI9341_TFTHEIGHT 240 #define ILI9341_2_NOP 0x00 ///< No-op register #define ILI9341_2_SWRESET 0x01 ///< Software reset register @@ -81,25 +81,25 @@ // Color definitions -#define ILI9341_2_BLACK 0x0000 /* 0, 0, 0 */ -#define ILI9341_2_NAVY 0x000F /* 0, 0, 128 */ -#define ILI9341_2_DARKGREEN 0x03E0 /* 0, 128, 0 */ -#define ILI9341_2_DARKCYAN 0x03EF /* 0, 128, 128 */ -#define ILI9341_2_MAROON 0x7800 /* 128, 0, 0 */ -#define ILI9341_2_PURPLE 0x780F /* 128, 0, 128 */ -#define ILI9341_2_OLIVE 0x7BE0 /* 128, 128, 0 */ -#define ILI9341_2_LIGHTGREY 0xC618 /* 192, 192, 192 */ -#define ILI9341_2_DARKGREY 0x7BEF /* 128, 128, 128 */ -#define ILI9341_2_BLUE 0x001F /* 0, 0, 255 */ -#define ILI9341_2_GREEN 0x07E0 /* 0, 255, 0 */ -#define ILI9341_2_CYAN 0x07FF /* 0, 255, 255 */ -#define ILI9341_2_RED 0xF800 /* 255, 0, 0 */ -#define ILI9341_2_MAGENTA 0xF81F /* 255, 0, 255 */ -#define ILI9341_2_YELLOW 0xFFE0 /* 255, 255, 0 */ -#define ILI9341_2_WHITE 0xFFFF /* 255, 255, 255 */ -#define ILI9341_2_ORANGE 0xFD20 /* 255, 165, 0 */ -#define ILI9341_2_GREENYELLOW 0xAFE5 /* 173, 255, 47 */ -#define ILI9341_2_PINK 0xF81F +#define ILI9341_BLACK 0x0000 /* 0, 0, 0 */ +#define ILI9341_NAVY 0x000F /* 0, 0, 128 */ +#define ILI9341_DARKGREEN 0x03E0 /* 0, 128, 0 */ +#define ILI9341_DARKCYAN 0x03EF /* 0, 128, 128 */ +#define ILI9341_MAROON 0x7800 /* 128, 0, 0 */ +#define ILI9341_PURPLE 0x780F /* 128, 0, 128 */ +#define ILI9341_OLIVE 0x7BE0 /* 128, 128, 0 */ +#define ILI9341_LIGHTGREY 0xC618 /* 192, 192, 192 */ +#define ILI9341_DARKGREY 0x7BEF /* 128, 128, 128 */ +#define ILI9341_BLUE 0x001F /* 0, 0, 255 */ +#define ILI9341_GREEN 0x07E0 /* 0, 255, 0 */ +#define ILI9341_CYAN 0x07FF /* 0, 255, 255 */ +#define ILI9341_RED 0xF800 /* 255, 0, 0 */ +#define ILI9341_MAGENTA 0xF81F /* 255, 0, 255 */ +#define ILI9341_YELLOW 0xFFE0 /* 255, 255, 0 */ +#define ILI9341_WHITE 0xFFFF /* 255, 255, 255 */ +#define ILI9341_ORANGE 0xFD20 /* 255, 165, 0 */ +#define ILI9341_GREENYELLOW 0xAFE5 /* 173, 255, 47 */ +#define ILI9341_PINK 0xF81F #define MADCTL_2_MY 0x80 ///< Bottom to top @@ -115,7 +115,7 @@ class ILI9341_2 : public Renderer { public: - ILI9341_2(int8_t cs, int8_t mosi, int8_t miso, int8_t sclk, int8_t res, int8_t dc, int8_t bp); + ILI9341_2(int8_t cs, int8_t mosi, int8_t miso, int8_t sclk, int8_t res, int8_t dc, int8_t bp, int8_t spibus); ILI9341_2(int8_t cs, int8_t res, int8_t dc, int8_t bp); void init(uint16_t width, uint16_t height); @@ -141,6 +141,8 @@ class ILI9341_2 : public Renderer { void spiwrite(uint8_t c); void spiwrite16(uint16_t c); void spiwrite32(uint32_t c); + void setScrollMargins(uint16_t top, uint16_t bottom); + void scrollTo(uint16_t y); uint8_t tabcolor; uint8_t dimmer; @@ -151,6 +153,7 @@ class ILI9341_2 : public Renderer { int8_t _res; int8_t _dc; int8_t _bp; + int8_t _spibus; int8_t _hwspi; uint16_t iwidth; uint16_t iheight; diff --git a/tasmota/xdsp_04_ili9341.ino b/tasmota/xdsp_04_ili9341.ino index e6b38ca7d..56e904ba4 100644 --- a/tasmota/xdsp_04_ili9341.ino +++ b/tasmota/xdsp_04_ili9341.ino @@ -1,7 +1,7 @@ /* - xdsp_04_ili9341.ino - Display Tft Ili9341 support for Tasmota + xdsp_04_ILI9341.ino - Display ILI9341/2 support for Tasmota - Copyright (C) 2021 Theo Arends and Adafruit + Copyright (C) 2021 Gerhard Mutz and Theo Arends This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,29 +19,181 @@ #ifdef USE_SPI #ifdef USE_DISPLAY -#ifdef USE_DISPLAY_ILI9341 +#if (defined(USE_DISPLAY_ILI9341) || defined(USE_DISPLAY_ILI9342)) #define XDSP_04 4 +#include + +extern uint8_t *buffer; +extern uint8_t color_type; +ILI9341_2 *ili9341_2; + +#ifdef USE_FT5206 +#include +uint8_t ili9342_ctouch_counter = 0; +#endif // USE_FT5206 + + +/*********************************************************************************************/ + +void ILI9341_InitDriver() +{ + if (!Settings.display_model) { + Settings.display_model = XDSP_04; + } + + if (XDSP_04 == Settings.display_model) { + + if (Settings.display_width != ILI9341_TFTWIDTH) { + Settings.display_width = ILI9341_TFTWIDTH; + } + if (Settings.display_height != ILI9341_TFTHEIGHT) { + Settings.display_height = ILI9341_TFTHEIGHT; + } + + // disable screen buffer + buffer=NULL; + + // default colors + fg_color = ILI9341_WHITE; + bg_color = ILI9341_BLACK; + +#ifdef USE_M5STACK_CORE2 + // fixed pins on m5stack core2 + ili9341_2 = new ILI9341_2(5, -2, 15, -2); +#else + // check for special case with 2 SPI busses (ESP32 bitcoin) + if (TasmotaGlobal.soft_spi_enabled) { + // init renderer, may use hardware spi, however we use SSPI defintion because SD card uses SPI definition (2 spi busses) + if (PinUsed(GPIO_SSPI_CS) && PinUsed(GPIO_OLED_RESET) && PinUsed(GPIO_BACKLIGHT) && PinUsed(GPIO_SSPI_MOSI) && PinUsed(GPIO_SSPI_MISO) && PinUsed(GPIO_SSPI_SCLK) && PinUsed(GPIO_SSPI_DC)) { + ili9341_2 = new ILI9341_2(Pin(GPIO_SSPI_CS), Pin(GPIO_SSPI_MOSI), Pin(GPIO_SSPI_MISO), Pin(GPIO_SSPI_SCLK), Pin(GPIO_OLED_RESET), Pin(GPIO_SSPI_DC), Pin(GPIO_BACKLIGHT), 2); + } else { + return; + } + } else if (TasmotaGlobal.spi_enabled) { + // there are displays without CS + int8_t cs = -1; + if (PinUsed(GPIO_ILI9341_CS)) { + cs = Pin(GPIO_ILI9341_CS); + } + if (PinUsed(GPIO_OLED_RESET) && PinUsed(GPIO_BACKLIGHT) && PinUsed(GPIO_ILI9341_DC)) { + ili9341_2 = new ILI9341_2(Pin(GPIO_ILI9341_CS), Pin(GPIO_SPI_MOSI), Pin(GPIO_SPI_MISO), Pin(GPIO_SPI_CLK), Pin(GPIO_OLED_RESET), Pin(GPIO_ILI9341_DC), Pin(GPIO_BACKLIGHT), 1); + } else { + return; + } + } else { + return; + } +#endif // USE_M5STACK_CORE2 + + ili9341_2->init(Settings.display_width,Settings.display_height); + renderer = ili9341_2; + renderer->DisplayInit(DISPLAY_INIT_MODE,Settings.display_size,Settings.display_rotate,Settings.display_font); + renderer->dim(Settings.display_dimmer); + +#ifdef SHOW_SPLASH + // Welcome text + renderer->setTextFont(2); + renderer->setTextColor(ILI9341_WHITE, ILI9341_BLACK); + renderer->DrawStringAt(30, (Settings.display_height/2)-12, "ILI9341 TFT!", ILI9341_WHITE, 0); + delay(1000); +#endif // SHOW_SPLASH + + color_type = COLOR_COLOR; + +#ifdef ESP32 +#ifdef USE_FT5206 + // start digitizer with fixed adress and pins for esp32 + #undef SDA_2 + #define SDA_2 21 + #undef SCL_2 + #define SCL_2 22 + Wire1.begin(SDA_2, SCL_2, 400000); + Touch_Init(Wire1); +#endif // USE_FT5206 +#endif // ESP32 + +#ifdef USE_DISPLAY_ILI9341 + AddLog(LOG_LEVEL_INFO, PSTR("DSP: ILI9341")); +#else + AddLog(LOG_LEVEL_INFO, PSTR("DSP: ILI9342")); +#endif + } +} + +void core2_disp_pwr(uint8_t on); +void core2_disp_dim(uint8_t dim); + +void ili9342_bpwr(uint8_t on) { +#ifdef USE_M5STACK_CORE2 + core2_disp_pwr(on); +#endif +} + +void ili9342_dimm(uint8_t dim) { +#ifdef USE_M5STACK_CORE2 + core2_disp_dim(dim); +#endif +} + +#ifdef ESP32 +#ifdef USE_FT5206 +#ifdef USE_TOUCH_BUTTONS + +void ili9342_RotConvert(int16_t *x, int16_t *y) { + +int16_t temp; + if (renderer) { + uint8_t rot = renderer->getRotation(); + switch (rot) { + case 0: + break; + case 1: + temp = *y; + *y = renderer->height() - *x; + *x = temp; + break; + case 2: + *x = renderer->width() - *x; + *y = renderer->height() - *y; + break; + case 3: + temp = *y; + *y = *x; + *x = renderer->width() - temp; + break; + } + } +} + +// check digitizer hit +void ili9342_CheckTouch() { +ili9342_ctouch_counter++; + if (2 == ili9342_ctouch_counter) { + // every 100 ms should be enough + ili9342_ctouch_counter = 0; + Touch_Check(ili9342_RotConvert); + } +} +#endif // USE_TOUCH_BUTTONS +#endif // USE_FT5206 +#endif // ESP32 + + +#ifdef USE_DISPLAY_MODES1TO5 + #define TFT_TOP 16 #define TFT_BOTTOM 16 #define TFT_FONT_WIDTH 6 #define TFT_FONT_HEIGTH 8 // Adafruit minimal font heigth pixels -#include -#include -#include // TFT 320x240 and 480x320 - -Adafruit_ILI9341 *tft; - uint16_t tft_top = TFT_TOP; uint16_t tft_bottom = TFT_BOTTOM; uint16_t tft_scroll = TFT_TOP; uint16_t tft_cols = 0; bool tft_init_done = false; -/*********************************************************************************************/ - bool Ili9341Header(void) { if (Settings.display_cols[0] != tft_cols) { tft_cols = Settings.display_cols[0]; @@ -53,107 +205,11 @@ bool Ili9341Header(void) { tft_bottom = 0; } tft_scroll = tft_top; - tft->setScrollMargins(tft_top, tft_bottom); + renderer->setScrollMargins(tft_top, tft_bottom); } return (tft_cols > 17); } -void Ili9341InitMode(void) { - tft->setRotation(Settings.display_rotate); // 0 - tft->invertDisplay(0); - tft->fillScreen(ILI9341_BLACK); - tft->setTextWrap(false); // Allow text to run off edges - tft->cp437(true); - if (!Settings.display_mode) { - tft->setCursor(0, 0); - tft->setTextColor(ILI9341_WHITE, ILI9341_BLACK); - tft->setTextSize(1); - } else { - Ili9341Header(); - tft->setCursor(0, 0); - tft->setTextColor(ILI9341_YELLOW, ILI9341_BLACK); - tft->setTextSize(2); -// tft->println("HEADER"); - - } -} - -void Ili9341Init(uint8_t mode) { - switch(mode) { - case DISPLAY_INIT_MODE: - Ili9341InitMode(); -#ifdef USE_DISPLAY_MODES1TO5 - if (Settings.display_rotate) { - DisplayClearScreenBuffer(); - } -#endif // USE_DISPLAY_MODES1TO5 - break; - case DISPLAY_INIT_PARTIAL: - case DISPLAY_INIT_FULL: - break; - } -} - -void Ili9341InitDriver(void) { - if (PinUsed(GPIO_ILI9341_CS) && PinUsed(GPIO_ILI9341_DC) && TasmotaGlobal.spi_enabled) { - - Settings.display_model = XDSP_04; - - if (Settings.display_width != ILI9341_TFTWIDTH) { - Settings.display_width = ILI9341_TFTWIDTH; - } - if (Settings.display_height != ILI9341_TFTHEIGHT) { - Settings.display_height = ILI9341_TFTHEIGHT; - } - - tft = new Adafruit_ILI9341(Pin(GPIO_ILI9341_CS), Pin(GPIO_ILI9341_DC)); - tft->begin(); - -#ifdef USE_DISPLAY_MODES1TO5 - if (Settings.display_rotate) { - DisplayAllocScreenBuffer(); - } -#endif // USE_DISPLAY_MODES1TO5 - - Ili9341InitMode(); - - tft_init_done = true; - AddLog(LOG_LEVEL_INFO, PSTR("DSP: ILI9341")); - } -} - -void Ili9341Clear(void) { - tft->fillScreen(ILI9341_BLACK); - tft->setCursor(0, 0); -} - -void Ili9341DrawStringAt(uint16_t x, uint16_t y, char *str, uint16_t color, uint8_t flag) { - uint16_t active_color = ILI9341_WHITE; - - tft->setTextSize(Settings.display_size); - if (!flag) { - tft->setCursor(x, y); - } else { - tft->setCursor((x-1) * TFT_FONT_WIDTH * Settings.display_size, (y-1) * TFT_FONT_HEIGTH * Settings.display_size); - } - if (color) { active_color = color; } - tft->setTextColor(active_color, ILI9341_BLACK); - tft->println(str); -} - -void Ili9341DisplayOnOff() { -// tft->showDisplay(disp_power); -// tft->invertDisplay(disp_power); - if (PinUsed(GPIO_BACKLIGHT)) { - pinMode(Pin(GPIO_BACKLIGHT), OUTPUT); - digitalWrite(Pin(GPIO_BACKLIGHT), disp_power); - } -} - -/*********************************************************************************************/ - -#ifdef USE_DISPLAY_MODES1TO5 - void Ili9341PrintLog(void) { disp_refresh--; if (!disp_refresh) { @@ -167,40 +223,40 @@ void Ili9341PrintLog(void) { uint8_t size = Settings.display_size; uint16_t theight = size * TFT_FONT_HEIGTH; - tft->setTextSize(size); - tft->setTextColor(ILI9341_CYAN, ILI9341_BLACK); // Add background color to solve flicker + renderer->setTextSize(size); + renderer->setTextColor(ILI9341_CYAN, ILI9341_BLACK); // Add background color to solve flicker if (!Settings.display_rotate) { // Use hardware scroll - tft->setCursor(0, tft_scroll); - tft->fillRect(0, tft_scroll, tft->width(), theight, ILI9341_BLACK); // Erase line - tft->print(txt); + renderer->setCursor(0, tft_scroll); + renderer->fillRect(0, tft_scroll, renderer->width(), theight, ILI9341_BLACK); // Erase line + renderer->print(txt); tft_scroll += theight; - if (tft_scroll >= (tft->height() - tft_bottom)) { + if (tft_scroll >= (renderer->height() - tft_bottom)) { tft_scroll = tft_top; } - tft->scrollTo(tft_scroll); + renderer->scrollTo(tft_scroll); } else { uint8_t last_row = Settings.display_rows -1; tft_scroll = (tft_top) ? theight : 0; // Start below header - tft->setCursor(0, tft_scroll); + renderer->setCursor(0, tft_scroll); for (uint32_t i = 0; i < last_row; i++) { strlcpy(disp_screen_buffer[i], disp_screen_buffer[i +1], disp_screen_buffer_cols); // tft->fillRect(0, tft_scroll, tft->width(), theight, ILI9341_BLACK); // Erase line - tft->print(disp_screen_buffer[i]); + renderer->print(disp_screen_buffer[i]); tft_scroll += theight; - tft->setCursor(0, tft_scroll); + renderer->setCursor(0, tft_scroll); delay(1); // Fix background runs heap usage due to long runtime of this loop (up to 1 second) } strlcpy(disp_screen_buffer[last_row], txt, disp_screen_buffer_cols); DisplayFillScreen(last_row); - tft->print(disp_screen_buffer[last_row]); + renderer->print(disp_screen_buffer[last_row]); } AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION "[%s]"), txt); } } } -void Ili9341Refresh(void) { // Every second +void ILI9341_Refresh(void) { // Every second if (Settings.display_mode) { // Mode 0 is User text // 24-04-2017 13:45:43 = 19 + 1 ('\0') = 20 // 24-04-2017 13:45 = 16 + 1 ('\0') = 17 @@ -212,9 +268,9 @@ void Ili9341Refresh(void) { // Every second char spaces[Settings.display_cols[0] - (8 + time_size)]; char time[time_size]; // 13:45:43 - tft->setTextSize(Settings.display_size); - tft->setTextColor(ILI9341_YELLOW, ILI9341_RED); // Add background color to solve flicker - tft->setCursor(0, 0); + renderer->setTextSize(Settings.display_size); + renderer->setTextColor(ILI9341_YELLOW, ILI9341_RED); // Add background color to solve flicker + renderer->setCursor(0, 0); snprintf_P(date4, sizeof(date4), PSTR("%02d" D_MONTH_DAY_SEPARATOR "%02d" D_YEAR_MONTH_SEPARATOR "%04d"), RtcTime.day_of_month, RtcTime.month, RtcTime.year); memset(spaces, 0x20, sizeof(spaces)); @@ -222,9 +278,9 @@ void Ili9341Refresh(void) { // Every second snprintf_P(time, sizeof(time), PSTR("%02d" D_HOUR_MINUTE_SEPARATOR "%02d" D_MINUTE_SECOND_SEPARATOR "%02d"), RtcTime.hour, RtcTime.minute, RtcTime.second); snprintf_P(tftdt, sizeof(tftdt), PSTR("%s%s%s"), date4, spaces, time); - tft->print(tftdt); + renderer->print(tftdt); } else { - tft->setCursor(0, 0); + renderer->setCursor(0, 0); } switch (Settings.display_mode) { @@ -238,77 +294,44 @@ void Ili9341Refresh(void) { // Every second } } } - #endif // USE_DISPLAY_MODES1TO5 +/*********************************************************************************************/ /*********************************************************************************************\ * Interface \*********************************************************************************************/ - -bool Xdsp04(uint8_t function) { +bool Xdsp04(uint8_t function) +{ bool result = false; if (FUNC_DISPLAY_INIT_DRIVER == function) { - Ili9341InitDriver(); + ILI9341_InitDriver(); } - else if (tft_init_done && (XDSP_04 == Settings.display_model)) { - - if (!dsp_color) { dsp_color = ILI9341_WHITE; } - - switch (function) { - case FUNC_DISPLAY_MODEL: - result = true; - break; - case FUNC_DISPLAY_INIT: - Ili9341Init(dsp_init); - break; - case FUNC_DISPLAY_POWER: - Ili9341DisplayOnOff(); - break; - case FUNC_DISPLAY_CLEAR: - Ili9341Clear(); - break; - case FUNC_DISPLAY_DRAW_HLINE: - tft->writeFastHLine(dsp_x, dsp_y, dsp_len, dsp_color); - break; - case FUNC_DISPLAY_DRAW_VLINE: - tft->writeFastVLine(dsp_x, dsp_y, dsp_len, dsp_color); - break; - case FUNC_DISPLAY_DRAW_LINE: - tft->writeLine(dsp_x, dsp_y, dsp_x2, dsp_y2, dsp_color); - break; - case FUNC_DISPLAY_DRAW_CIRCLE: - tft->drawCircle(dsp_x, dsp_y, dsp_rad, dsp_color); - break; - case FUNC_DISPLAY_FILL_CIRCLE: - tft->fillCircle(dsp_x, dsp_y, dsp_rad, dsp_color); - break; - case FUNC_DISPLAY_DRAW_RECTANGLE: - tft->drawRect(dsp_x, dsp_y, dsp_x2, dsp_y2, dsp_color); - break; - case FUNC_DISPLAY_FILL_RECTANGLE: - tft->fillRect(dsp_x, dsp_y, dsp_x2, dsp_y2, dsp_color); - break; -// case FUNC_DISPLAY_DRAW_FRAME: -// oled->display(); -// break; - case FUNC_DISPLAY_TEXT_SIZE: - tft->setTextSize(Settings.display_size); - break; - case FUNC_DISPLAY_FONT_SIZE: -// tft->setTextSize(Settings.display_font); - break; - case FUNC_DISPLAY_DRAW_STRING: - Ili9341DrawStringAt(dsp_x, dsp_y, dsp_str, dsp_color, dsp_flag); - break; - case FUNC_DISPLAY_ROTATION: - tft->setRotation(Settings.display_rotate); - break; + else if (XDSP_04 == Settings.display_model) { + switch (function) { + case FUNC_DISPLAY_MODEL: + result = true; + break; + case FUNC_DISPLAY_TEXT_SIZE: + case FUNC_DISPLAY_FONT_SIZE: + case DISPLAY_INIT_MODE: + renderer->clearDisplay(); + break; +#ifdef USE_FT5206 +#ifdef USE_TOUCH_BUTTONS + case FUNC_DISPLAY_EVERY_50_MSECOND: + if (FT5206_found) { + ili9342_CheckTouch(); + } + break; +#endif // USE_TOUCH_BUTTONS +#endif // USE_FT5206 #ifdef USE_DISPLAY_MODES1TO5 - case FUNC_DISPLAY_EVERY_SECOND: - Ili9341Refresh(); - break; + case FUNC_DISPLAY_EVERY_SECOND: + ILI9341_Refresh(); + break; #endif // USE_DISPLAY_MODES1TO5 + } } return result; diff --git a/tasmota/xdsp_13_ILI9341-2.ino b/tasmota/xdsp_13_ILI9341-2.ino deleted file mode 100644 index 785dfc51f..000000000 --- a/tasmota/xdsp_13_ILI9341-2.ino +++ /dev/null @@ -1,290 +0,0 @@ -/* - xdsp_13_ILI9341-TTGO-TS.ino - Display ILI9341 support for Tasmota - - Copyright (C) 2021 Gerhard Mutz and Theo Arends - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -//#ifdef USE_SPI -#ifdef USE_SPI -#ifdef USE_DISPLAY -#if (defined(USE_DISPLAY_ILI9341_2) || defined(USE_DISPLAY_ILI9342)) - -#define XDSP_13 13 - -#undef COLORED -#define COLORED 1 -#undef UNCOLORED -#define UNCOLORED 0 - - -// using font 8 is opional (num=3) -// very badly readable, but may be useful for graphs -#undef USE_TINY_FONT -#define USE_TINY_FONT - - -#include - -extern uint8_t *buffer; -extern uint8_t color_type; -ILI9341_2 *ili9341_2; - -#ifdef USE_FT5206 -#include -#undef FT6336_address -#define FT6336_address 0x38 -uint8_t ili9342_ctouch_counter = 0; -#endif // USE_FT5206 - - -/*********************************************************************************************/ - -void ILI9341_2_InitDriver() -{ - if (!Settings.display_model) { - Settings.display_model = XDSP_13; - } - - - if (XDSP_13 == Settings.display_model) { - - if (Settings.display_width != ILI9341_2_TFTWIDTH) { - Settings.display_width = ILI9341_2_TFTWIDTH; - } - if (Settings.display_height != ILI9341_2_TFTHEIGHT) { - Settings.display_height = ILI9341_2_TFTHEIGHT; - } - - // disable screen buffer - buffer=NULL; - - // default colors - fg_color = ILI9341_2_WHITE; - bg_color = ILI9341_2_BLACK; - -#ifdef USE_M5STACK_CORE2 - ili9341_2 = new ILI9341_2(5, -2, 15, -2); -#else - // init renderer, may use hardware spi, however we use SSPI defintion because SD card uses SPI definition (2 spi busses) - if (PinUsed(GPIO_SSPI_CS) && PinUsed(GPIO_OLED_RESET) && PinUsed(GPIO_BACKLIGHT) && PinUsed(GPIO_SSPI_MOSI) && PinUsed(GPIO_SSPI_MISO) && PinUsed(GPIO_SSPI_SCLK) && PinUsed(GPIO_SSPI_DC)) { - ili9341_2 = new ILI9341_2(Pin(GPIO_SSPI_CS), Pin(GPIO_SSPI_MOSI), Pin(GPIO_SSPI_MISO), Pin(GPIO_SSPI_SCLK), Pin(GPIO_OLED_RESET), Pin(GPIO_SSPI_DC), Pin(GPIO_BACKLIGHT)); - } else { - return; - } -#endif - - ili9341_2->init(Settings.display_width,Settings.display_height); - renderer = ili9341_2; - renderer->DisplayInit(DISPLAY_INIT_MODE,Settings.display_size,Settings.display_rotate,Settings.display_font); - renderer->dim(Settings.display_dimmer); - -#ifdef SHOW_SPLASH - // Welcome text - renderer->setTextFont(2); - renderer->setTextColor(ILI9341_2_WHITE, ILI9341_2_BLACK); - renderer->DrawStringAt(30, (Settings.display_height/2)-12, "ILI9341 TFT!", ILI9341_2_WHITE, 0); - delay(1000); -#endif - - color_type = COLOR_COLOR; - -#ifdef ESP32 -#ifdef USE_FT5206 - // start digitizer with fixed adress and pins for esp32 - #define SDA_2 21 - #define SCL_2 22 - Wire1.begin(SDA_2, SCL_2, 400000); - Touch_Init(Wire1); -#endif // USE_FT5206 -#endif // ESP32 - - - } -} - -void core2_disp_pwr(uint8_t on); -void core2_disp_dim(uint8_t dim); - -void ili9342_bpwr(uint8_t on) { -#ifdef USE_M5STACK_CORE2 - core2_disp_pwr(on); -#endif -} - -void ili9342_dimm(uint8_t dim) { -#ifdef USE_M5STACK_CORE2 - core2_disp_dim(dim); -#endif -} - -#ifdef ESP32 -#ifdef USE_FT5206 -#ifdef USE_TOUCH_BUTTONS - -void ili9342_RotConvert(int16_t *x, int16_t *y) { - -int16_t temp; - if (renderer) { - uint8_t rot=renderer->getRotation(); - switch (rot) { - case 0: - break; - case 1: - temp=*y; - *y=renderer->height()-*x; - *x=temp; - break; - case 2: - *x=renderer->width()-*x; - *y=renderer->height()-*y; - break; - case 3: - temp=*y; - *y=*x; - *x=renderer->width()-temp; - break; - } - } -} - -// check digitizer hit -void ili9342_CheckTouch() { -ili9342_ctouch_counter++; - if (2 == ili9342_ctouch_counter) { - // every 100 ms should be enough - ili9342_ctouch_counter = 0; - Touch_Check(ili9342_RotConvert); - } -} -#endif // USE_TOUCH_BUTTONS -#endif // USE_FT5206 -#endif // ESP32 - - -#ifdef USE_DISPLAY_MODES1TO5 - -void ILI9341_2_PrintLog(bool withDateTime) { - disp_refresh--; - if (!disp_refresh) { - disp_refresh = Settings.display_refresh; - if (!disp_screen_buffer_cols) { DisplayAllocScreenBuffer(); } - - char* txt = DisplayLogBuffer('\370'); - if (txt != NULL) { - uint8_t last_row = Settings.display_rows -1; - - renderer->clearDisplay(); /** TODO: Would be smoother without clear, like ILI9341_2_Time() does. **/ - renderer->setCursor(0,0); - - if (withDateTime) { - char line[21]; - snprintf_P(line, sizeof(line), PSTR("%02d" D_HOUR_MINUTE_SEPARATOR "%02d" D_MINUTE_SECOND_SEPARATOR "%02d %02d" D_MONTH_DAY_SEPARATOR "%02d" D_YEAR_MONTH_SEPARATOR "%04d"), RtcTime.hour, RtcTime.minute, RtcTime.second, RtcTime.day_of_month, RtcTime.month, RtcTime.year); // [12:34:56 31-12-2021] - renderer->setTextColor(ILI9341_2_BLUE); - renderer->println(line); - renderer->setTextColor(fg_color); - last_row--; - } - - for (byte i = 0; i < last_row; i++) { - strlcpy(disp_screen_buffer[i], disp_screen_buffer[i +1], disp_screen_buffer_cols); - renderer->println(disp_screen_buffer[i]); - } - strlcpy(disp_screen_buffer[last_row], txt, disp_screen_buffer_cols); - DisplayFillScreen(last_row); - - AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "[%s]"), disp_screen_buffer[last_row]); - - renderer->println(disp_screen_buffer[last_row]); - renderer->Updateframe(); - } - } -} - -void ILI9341_2_Time(void) { - char line[12]; - /** TODO: DisplaySize is working, but renderer->println() does not respect DisplayFont **/ - snprintf_P(line, sizeof(line), PSTR(" %02d" D_HOUR_MINUTE_SEPARATOR "%02d" D_MINUTE_SECOND_SEPARATOR "%02d"), RtcTime.hour, RtcTime.minute, RtcTime.second); // [ 12:34:56 ] - renderer->setCursor(60, 140); - renderer->println(line); - snprintf_P(line, sizeof(line), PSTR("%02d" D_MONTH_DAY_SEPARATOR "%02d" D_YEAR_MONTH_SEPARATOR "%04d"), RtcTime.day_of_month, RtcTime.month, RtcTime.year); // [01-02-2018] - renderer->setCursor(60, 160); - renderer->println(line); - renderer->Updateframe(); -} - -void ILI9341_2_Refresh(void) { // Every second - if (Settings.display_mode) { // Mode 0 is User text - switch (Settings.display_mode) { - case 1: // Time - ILI9341_2_Time(); - break; - case 2: // Local - case 4: // Mqtt - ILI9341_2_PrintLog(false); - break; - case 3: // Local + Time - case 5: // Mqtt + Time - ILI9341_2_PrintLog(true); - break; - } - } -} - -#endif // USE_DISPLAY_MODES1TO5 - -/*********************************************************************************************/ -/*********************************************************************************************\ - * Interface -\*********************************************************************************************/ -bool Xdsp13(uint8_t function) -{ - bool result = false; - - if (FUNC_DISPLAY_INIT_DRIVER == function) { - ILI9341_2_InitDriver(); - } - else if (XDSP_13 == Settings.display_model) { - switch (function) { - case FUNC_DISPLAY_MODEL: - result = true; - break; - case FUNC_DISPLAY_TEXT_SIZE: - case FUNC_DISPLAY_FONT_SIZE: - case DISPLAY_INIT_MODE: - renderer->clearDisplay(); - break; -#ifdef USE_FT5206 -#ifdef USE_TOUCH_BUTTONS - case FUNC_DISPLAY_EVERY_50_MSECOND: - if (FT5206_found) { - ili9342_CheckTouch(); - } - break; -#endif // USE_TOUCH_BUTTONS -#endif // USE_FT5206 -#ifdef USE_DISPLAY_MODES1TO5 - case FUNC_DISPLAY_EVERY_SECOND: - ILI9341_2_Refresh(); - break; -#endif // USE_DISPLAY_MODES1TO5 - } - } - return result; -} - -#endif // USE_DISPLAY_ILI9341_2 -#endif // USE_DISPLAY -#endif // USE_SPI From c5df7ed1ae8905ebed49231f8da4ee05a8fc978a Mon Sep 17 00:00:00 2001 From: gemu2015 Date: Sat, 13 Feb 2021 07:52:21 +0100 Subject: [PATCH 04/27] Update support_tasmota.ino --- tasmota/support_tasmota.ino | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/tasmota/support_tasmota.ino b/tasmota/support_tasmota.ino index fe4cf34d8..7318b9076 100644 --- a/tasmota/support_tasmota.ino +++ b/tasmota/support_tasmota.ino @@ -1019,23 +1019,23 @@ void Every250mSeconds(void) if (TasmotaGlobal.ota_state_flag && BACKLOG_EMPTY) { TasmotaGlobal.ota_state_flag--; if (2 == TasmotaGlobal.ota_state_flag) { - RtcSettings.ota_loader = 0; // Try requested image first + RtcSettings.ota_loader = 0; // Try requested image first ota_retry_counter = OTA_ATTEMPTS; ESPhttpUpdate.rebootOnUpdate(false); - SettingsSave(1); // Free flash for OTA update + SettingsSave(1); // Free flash for OTA update } if (TasmotaGlobal.ota_state_flag <= 0) { #ifdef USE_BLE_ESP32 ExtStopBLE(); #endif // USE_BLE_ESP32 #ifdef USE_COUNTER - CounterInterruptDisable(true); // Prevent OTA failures on 100Hz counter interrupts + CounterInterruptDisable(true); // Prevent OTA failures on 100Hz counter interrupts #endif // USE_COUNTER #ifdef USE_WEBSERVER if (Settings.webserver) StopWebserver(); #endif // USE_WEBSERVER #ifdef USE_ARILUX_RF - AriluxRfDisable(); // Prevent restart exception on Arilux Interrupt routine + AriluxRfDisable(); // Prevent restart exception on Arilux Interrupt routine #endif // USE_ARILUX_RF TasmotaGlobal.ota_state_flag = 92; ota_result = 0; @@ -1043,6 +1043,7 @@ void Every250mSeconds(void) if (ota_retry_counter) { char ota_url[TOPSZ]; strlcpy(TasmotaGlobal.mqtt_data, GetOtaUrl(ota_url, sizeof(ota_url)), sizeof(TasmotaGlobal.mqtt_data)); +#ifdef ESP8266 #ifndef FIRMWARE_MINIMAL if (RtcSettings.ota_loader) { // OTA File too large so try OTA minimal version @@ -1061,8 +1062,8 @@ void Every250mSeconds(void) // Replace http://192.168.2.17:80/api/arduino/tasmota.bin with http://192.168.2.17:80/api/arduino/tasmota-minimal.bin // Replace http://192.168.2.17/api/arduino/tasmota.bin.gz with http://192.168.2.17/api/arduino/tasmota-minimal.bin.gz - char *bch = strrchr(TasmotaGlobal.mqtt_data, '/'); // Only consider filename after last backslash prevent change of urls having "-" in it - if (bch == nullptr) { bch = TasmotaGlobal.mqtt_data; } // No path found so use filename only + char *bch = strrchr(TasmotaGlobal.mqtt_data, '/'); // Only consider filename after last backslash prevent change of urls having "-" in it + if (bch == nullptr) { bch = TasmotaGlobal.mqtt_data; } // No path found so use filename only char *ech = strchr(bch, '.'); // Find file type in filename (none, .ino.bin, .ino.bin.gz, .bin, .bin.gz or .gz) if (ech == nullptr) { ech = TasmotaGlobal.mqtt_data + strlen(TasmotaGlobal.mqtt_data); } // Point to '/0' at end of mqtt_data becoming an empty string @@ -1077,6 +1078,14 @@ void Every250mSeconds(void) snprintf_P(TasmotaGlobal.mqtt_data, sizeof(TasmotaGlobal.mqtt_data), PSTR("%s-" D_JSON_MINIMAL "%s"), TasmotaGlobal.mqtt_data, ota_url_type); // Minimal filename must be filename-minimal } #endif // FIRMWARE_MINIMAL + if (ota_retry_counter < OTA_ATTEMPTS / 2) { + if (!strcasecmp_P(TasmotaGlobal.mqtt_data, PSTR(".gz"))) { + ota_retry_counter = 1; + } else { + strcat_P(TasmotaGlobal.mqtt_data, PSTR(".gz")); + } + } +#endif // ESP8266 AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_UPLOAD "%s"), TasmotaGlobal.mqtt_data); WiFiClient OTAclient; ota_result = (HTTP_UPDATE_FAILED != ESPhttpUpdate.update(OTAclient, TasmotaGlobal.mqtt_data)); @@ -1084,26 +1093,28 @@ void Every250mSeconds(void) #ifndef FIRMWARE_MINIMAL int ota_error = ESPhttpUpdate.getLastError(); DEBUG_CORE_LOG(PSTR("OTA: Error %d"), ota_error); +#ifdef ESP8266 if ((HTTP_UE_TOO_LESS_SPACE == ota_error) || (HTTP_UE_BIN_FOR_WRONG_FLASH == ota_error)) { - RtcSettings.ota_loader = 1; // Try minimal image next + RtcSettings.ota_loader = 1; // Try minimal image next } +#endif // ESP8266 #endif // FIRMWARE_MINIMAL - TasmotaGlobal.ota_state_flag = 2; // Upgrade failed - retry + TasmotaGlobal.ota_state_flag = 2; // Upgrade failed - retry } } } - if (90 == TasmotaGlobal.ota_state_flag) { // Allow MQTT to reconnect + if (90 == TasmotaGlobal.ota_state_flag) { // Allow MQTT to reconnect TasmotaGlobal.ota_state_flag = 0; Response_P(PSTR("{\"" D_CMND_UPGRADE "\":\"")); if (ota_result) { -// SetFlashModeDout(); // Force DOUT for both ESP8266 and ESP8285 +// SetFlashModeDout(); // Force DOUT for both ESP8266 and ESP8285 ResponseAppend_P(PSTR(D_JSON_SUCCESSFUL ". " D_JSON_RESTARTING)); TasmotaGlobal.restart_flag = 2; } else { ResponseAppend_P(PSTR(D_JSON_FAILED " %s"), ESPhttpUpdate.getLastErrorString().c_str()); } ResponseAppend_P(PSTR("\"}")); -// TasmotaGlobal.restart_flag = 2; // Restart anyway to keep memory clean webserver +// TasmotaGlobal.restart_flag = 2; // Restart anyway to keep memory clean webserver MqttPublishPrefixTopic_P(STAT, PSTR(D_CMND_UPGRADE)); #ifdef USE_COUNTER CounterInterruptDisable(false); From 2220b2d3e339e6784abd205f50936e2d59926ad2 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sat, 13 Feb 2021 12:01:45 +0100 Subject: [PATCH 05/27] Berry language improved Tasmota integration --- CHANGELOG.md | 1 + .../Berry-0.1.10/generate/be_const_strtab.h | 239 +++++----- .../generate/be_const_strtab_def.h | 340 +++++++------- .../generate/be_fixed_be_class_map.h | 21 +- .../Berry-0.1.10/generate/be_fixed_string.h | 16 +- lib/lib_div/Berry-0.1.10/src/be_gc.h | 8 +- lib/lib_div/Berry-0.1.10/src/be_lexer.c | 3 +- lib/lib_div/Berry-0.1.10/src/be_maplib.c | 33 ++ lib/lib_div/Berry-0.1.10/src/be_object.h | 31 ++ lib/lib_div/Berry-0.1.10/src/be_parser.c | 2 +- lib/lib_div/Berry-0.1.10/src/be_string.c | 19 +- lib/lib_div/Berry-0.1.10/src/be_string.h | 2 +- lib/lib_div/Berry-0.1.10/src/be_strlib.c | 41 +- lib/lib_div/Berry-0.1.10/src/be_vector.c | 8 +- lib/lib_div/Berry-0.1.10/src/port/be_modtab.c | 5 + lib/lib_div/Berry-0.1.10/src/port/be_port.cpp | 63 ++- .../Berry-0.1.10/src/port/be_tasmotalib.c | 34 ++ .../Berry-0.1.10/src/port/berry_conf.h | 14 +- tasmota/berry/tasmota.be | 157 +++++++ tasmota/support_command.ino | 78 +++- tasmota/tasmota.h | 4 +- tasmota/xdrv_52_berry.ino | 416 +++++++++++++++--- tasmota/xdrv_interface.ino | 7 + 23 files changed, 1081 insertions(+), 461 deletions(-) create mode 100644 lib/lib_div/Berry-0.1.10/src/port/be_tasmotalib.c create mode 100644 tasmota/berry/tasmota.be diff --git a/CHANGELOG.md b/CHANGELOG.md index 671dbbc94..196566592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file. - Support for Eastron SDM72D-M three phase 100A Modbus energy meter (#10862) - Support for Frysk language translations by Christiaan Heerze - ESP8266 Fallback to ``*.bin.gz`` binary when OTA upload of ``*.bin`` binary fails +- Berry language improved Tasmota integration ## [9.2.0.6] 20210210 ### Changed diff --git a/lib/lib_div/Berry-0.1.10/generate/be_const_strtab.h b/lib/lib_div/Berry-0.1.10/generate/be_const_strtab.h index df695ac4a..9234199bb 100644 --- a/lib/lib_div/Berry-0.1.10/generate/be_const_strtab.h +++ b/lib/lib_div/Berry-0.1.10/generate/be_const_strtab.h @@ -1,125 +1,128 @@ -extern const bcstring be_const_str_count; -extern const bcstring be_const_str_rad; -extern const bcstring be_const_str_str; -extern const bcstring be_const_str_import; -extern const bcstring be_const_str_opt_connect; -extern const bcstring be_const_str_open; -extern const bcstring be_const_str_codedump; -extern const bcstring be_const_str_imax; -extern const bcstring be_const_str_item; -extern const bcstring be_const_str_splitext; -extern const bcstring be_const_str___upper__; -extern const bcstring be_const_str_byte; -extern const bcstring be_const_str_isfile; -extern const bcstring be_const_str_issubclass; -extern const bcstring be_const_str_iter; -extern const bcstring be_const_str_classname; -extern const bcstring be_const_str_cos; -extern const bcstring be_const_str_number; -extern const bcstring be_const_str_true; -extern const bcstring be_const_str_hex; -extern const bcstring be_const_str_range; -extern const bcstring be_const_str_cosh; -extern const bcstring be_const_str_exp; -extern const bcstring be_const_str_exit; -extern const bcstring be_const_str_list; -extern const bcstring be_const_str_path; -extern const bcstring be_const_str_dot_p; -extern const bcstring be_const_str___iterator__; -extern const bcstring be_const_str_dump; -extern const bcstring be_const_str_deinit; -extern const bcstring be_const_str_size; -extern const bcstring be_const_str_false; -extern const bcstring be_const_str_clock; -extern const bcstring be_const_str_floor; -extern const bcstring be_const_str_module; -extern const bcstring be_const_str_tostring; -extern const bcstring be_const_str_type; -extern const bcstring be_const_str_upvname; -extern const bcstring be_const_str_opt_add; -extern const bcstring be_const_str___lower__; -extern const bcstring be_const_str_pi; -extern const bcstring be_const_str_assert; -extern const bcstring be_const_str_ceil; -extern const bcstring be_const_str_setitem; -extern const bcstring be_const_str_except; -extern const bcstring be_const_str_pow; -extern const bcstring be_const_str_sin; -extern const bcstring be_const_str_traceback; extern const bcstring be_const_str_calldepth; -extern const bcstring be_const_str_classof; -extern const bcstring be_const_str_init; -extern const bcstring be_const_str_sinh; -extern const bcstring be_const_str_split; -extern const bcstring be_const_str_raise; -extern const bcstring be_const_str_map; -extern const bcstring be_const_str_srand; -extern const bcstring be_const_str_allocated; -extern const bcstring be_const_str_asin; -extern const bcstring be_const_str_int; -extern const bcstring be_const_str_lower; -extern const bcstring be_const_str_var; -extern const bcstring be_const_str_abs; -extern const bcstring be_const_str_deg; -extern const bcstring be_const_str_setrange; -extern const bcstring be_const_str_time; -extern const bcstring be_const_str_real; -extern const bcstring be_const_str_end; -extern const bcstring be_const_str_isdir; -extern const bcstring be_const_str_; -extern const bcstring be_const_str_getcwd; -extern const bcstring be_const_str_attrdump; -extern const bcstring be_const_str_copy; -extern const bcstring be_const_str_imin; +extern const bcstring be_const_str_clock; +extern const bcstring be_const_str_size; extern const bcstring be_const_str_system; -extern const bcstring be_const_str_top; -extern const bcstring be_const_str_nil; -extern const bcstring be_const_str_push; -extern const bcstring be_const_str_remove; -extern const bcstring be_const_str_compile; -extern const bcstring be_const_str_atan; -extern const bcstring be_const_str_class; -extern const bcstring be_const_str_insert; -extern const bcstring be_const_str_pop; -extern const bcstring be_const_str_tanh; -extern const bcstring be_const_str_chdir; -extern const bcstring be_const_str_load; -extern const bcstring be_const_str_log; -extern const bcstring be_const_str_varname; -extern const bcstring be_const_str_find; -extern const bcstring be_const_str_isinstance; +extern const bcstring be_const_str_type; extern const bcstring be_const_str_if; -extern const bcstring be_const_str_super; -extern const bcstring be_const_str_break; -extern const bcstring be_const_str_do; -extern const bcstring be_const_str_else; -extern const bcstring be_const_str_for; +extern const bcstring be_const_str_int; +extern const bcstring be_const_str_isfile; +extern const bcstring be_const_str_log; +extern const bcstring be_const_str_raise; extern const bcstring be_const_str_concat; -extern const bcstring be_const_str_resize; -extern const bcstring be_const_str_reverse; -extern const bcstring be_const_str_while; -extern const bcstring be_const_str_input; -extern const bcstring be_const_str_sqrt; -extern const bcstring be_const_str_elif; -extern const bcstring be_const_str_log10; -extern const bcstring be_const_str_print; -extern const bcstring be_const_str_continue; -extern const bcstring be_const_str_collect; -extern const bcstring be_const_str_clear; -extern const bcstring be_const_str_rand; -extern const bcstring be_const_str_opt_neq; -extern const bcstring be_const_str_opt_eq; -extern const bcstring be_const_str_acos; -extern const bcstring be_const_str_listdir; +extern const bcstring be_const_str_list; +extern const bcstring be_const_str_map; +extern const bcstring be_const_str_for; +extern const bcstring be_const_str_dot_p; +extern const bcstring be_const_str_isdir; extern const bcstring be_const_str_mkdir; -extern const bcstring be_const_str_sethook; -extern const bcstring be_const_str_tan; -extern const bcstring be_const_str_def; -extern const bcstring be_const_str_char; -extern const bcstring be_const_str_exists; -extern const bcstring be_const_str_join; -extern const bcstring be_const_str_as; +extern const bcstring be_const_str_remove; +extern const bcstring be_const_str_cosh; +extern const bcstring be_const_str_abs; +extern const bcstring be_const_str_reverse; +extern const bcstring be_const_str_sinh; +extern const bcstring be_const_str_hex; +extern const bcstring be_const_str_tostring; +extern const bcstring be_const_str_opt_add; +extern const bcstring be_const_str_atan; +extern const bcstring be_const_str_real; +extern const bcstring be_const_str_iter; +extern const bcstring be_const_str_top; +extern const bcstring be_const_str_except; +extern const bcstring be_const_str_getcwd; +extern const bcstring be_const_str_listdir; +extern const bcstring be_const_str_log10; +extern const bcstring be_const_str_allocated; +extern const bcstring be_const_str_init; +extern const bcstring be_const_str_module; +extern const bcstring be_const_str_ceil; +extern const bcstring be_const_str_clear; +extern const bcstring be_const_str_collect; +extern const bcstring be_const_str_find; +extern const bcstring be_const_str_item; extern const bcstring be_const_str_format; -extern const bcstring be_const_str_try; -extern const bcstring be_const_str_upper; +extern const bcstring be_const_str_sqrt; +extern const bcstring be_const_str_classname; +extern const bcstring be_const_str_byte; +extern const bcstring be_const_str_else; +extern const bcstring be_const_str_deinit; +extern const bcstring be_const_str_end; +extern const bcstring be_const_str_true; +extern const bcstring be_const_str___upper__; +extern const bcstring be_const_str_char; +extern const bcstring be_const_str_load; +extern const bcstring be_const_str_resize; +extern const bcstring be_const_str_sethook; +extern const bcstring be_const_str_varname; +extern const bcstring be_const_str_deg; +extern const bcstring be_const_str_srand; +extern const bcstring be_const_str_str; +extern const bcstring be_const_str_range; +extern const bcstring be_const_str_toupper; +extern const bcstring be_const_str_; +extern const bcstring be_const_str_copy; +extern const bcstring be_const_str_exp; +extern const bcstring be_const_str_time; +extern const bcstring be_const_str_break; +extern const bcstring be_const_str_opt_neq; +extern const bcstring be_const_str_assert; +extern const bcstring be_const_str_attrdump; +extern const bcstring be_const_str_chdir; +extern const bcstring be_const_str_isinstance; +extern const bcstring be_const_str_continue; +extern const bcstring be_const_str_do; +extern const bcstring be_const_str_lower; +extern const bcstring be_const_str_pow; +extern const bcstring be_const_str_false; +extern const bcstring be_const_str_count; +extern const bcstring be_const_str_exit; +extern const bcstring be_const_str_print; +extern const bcstring be_const_str_def; +extern const bcstring be_const_str_pop; +extern const bcstring be_const_str_tolower; +extern const bcstring be_const_str_classof; +extern const bcstring be_const_str_cos; +extern const bcstring be_const_str_dump; +extern const bcstring be_const_str_join; +extern const bcstring be_const_str_push; +extern const bcstring be_const_str_sin; extern const bcstring be_const_str_return; +extern const bcstring be_const_str_path; +extern const bcstring be_const_str_rand; +extern const bcstring be_const_str_class; +extern const bcstring be_const_str_nil; +extern const bcstring be_const_str_input; +extern const bcstring be_const_str_floor; +extern const bcstring be_const_str_keys; +extern const bcstring be_const_str_number; +extern const bcstring be_const_str_rad; +extern const bcstring be_const_str_imin; +extern const bcstring be_const_str_pi; +extern const bcstring be_const_str_splitext; +extern const bcstring be_const_str_compile; +extern const bcstring be_const_str_setrange; +extern const bcstring be_const_str_traceback; +extern const bcstring be_const_str_upper; +extern const bcstring be_const_str_var; +extern const bcstring be_const_str_opt_eq; +extern const bcstring be_const_str_codedump; +extern const bcstring be_const_str_tan; +extern const bcstring be_const_str_setitem; +extern const bcstring be_const_str_tanh; +extern const bcstring be_const_str_as; +extern const bcstring be_const_str_issubclass; +extern const bcstring be_const_str_upvname; +extern const bcstring be_const_str_opt_connect; +extern const bcstring be_const_str_try; +extern const bcstring be_const_str_while; +extern const bcstring be_const_str_import; +extern const bcstring be_const_str___lower__; +extern const bcstring be_const_str_open; +extern const bcstring be_const_str_acos; +extern const bcstring be_const_str_asin; +extern const bcstring be_const_str_imax; +extern const bcstring be_const_str_insert; +extern const bcstring be_const_str_split; +extern const bcstring be_const_str___iterator__; +extern const bcstring be_const_str_exists; +extern const bcstring be_const_str_super; +extern const bcstring be_const_str_elif; diff --git a/lib/lib_div/Berry-0.1.10/generate/be_const_strtab_def.h b/lib/lib_div/Berry-0.1.10/generate/be_const_strtab_def.h index f3503a6f5..25b5b9221 100644 --- a/lib/lib_div/Berry-0.1.10/generate/be_const_strtab_def.h +++ b/lib/lib_div/Berry-0.1.10/generate/be_const_strtab_def.h @@ -1,186 +1,190 @@ -be_define_const_str(count, "count", 967958004u, 0, 5, &be_const_str_rad); -be_define_const_str(rad, "rad", 1358899048u, 0, 3, &be_const_str_str); -be_define_const_str(str, "str", 3259748752u, 0, 3, &be_const_str_import); -be_define_const_str(import, "import", 288002260u, 66, 6, NULL); -be_define_const_str(opt_connect, "..", 2748622605u, 0, 2, &be_const_str_open); -be_define_const_str(open, "open", 3546203337u, 0, 4, NULL); -be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, &be_const_str_imax); -be_define_const_str(imax, "imax", 3084515410u, 0, 4, &be_const_str_item); -be_define_const_str(item, "item", 2671260646u, 0, 4, &be_const_str_splitext); -be_define_const_str(splitext, "splitext", 2150391934u, 0, 8, NULL); -be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, &be_const_str_byte); -be_define_const_str(byte, "byte", 1683620383u, 0, 4, &be_const_str_isfile); -be_define_const_str(isfile, "isfile", 3131505107u, 0, 6, &be_const_str_issubclass); -be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, &be_const_str_iter); -be_define_const_str(iter, "iter", 3124256359u, 0, 4, NULL); -be_define_const_str(classname, "classname", 1998589948u, 0, 9, &be_const_str_cos); -be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_number); -be_define_const_str(number, "number", 467038368u, 0, 6, NULL); -be_define_const_str(true, "true", 1303515621u, 61, 4, NULL); -be_define_const_str(hex, "hex", 4273249610u, 0, 3, &be_const_str_range); -be_define_const_str(range, "range", 4208725202u, 0, 5, NULL); -be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, &be_const_str_exp); -be_define_const_str(exp, "exp", 1923516200u, 0, 3, NULL); -be_define_const_str(exit, "exit", 3454868101u, 0, 4, &be_const_str_list); -be_define_const_str(list, "list", 217798785u, 0, 4, NULL); -be_define_const_str(path, "path", 2223459638u, 0, 4, NULL); -be_define_const_str(dot_p, ".p", 1171526419u, 0, 2, &be_const_str___iterator__); -be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_dump); -be_define_const_str(dump, "dump", 3663001223u, 0, 4, NULL); -be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, &be_const_str_size); -be_define_const_str(size, "size", 597743964u, 0, 4, &be_const_str_false); -be_define_const_str(false, "false", 184981848u, 62, 5, NULL); -be_define_const_str(clock, "clock", 363073373u, 0, 5, &be_const_str_floor); -be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_module); -be_define_const_str(module, "module", 3617558685u, 0, 6, &be_const_str_tostring); -be_define_const_str(tostring, "tostring", 2299708645u, 0, 8, &be_const_str_type); -be_define_const_str(type, "type", 1361572173u, 0, 4, &be_const_str_upvname); -be_define_const_str(upvname, "upvname", 3848760617u, 0, 7, NULL); -be_define_const_str(opt_add, "+", 772578730u, 0, 1, &be_const_str___lower__); -be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str_pi); -be_define_const_str(pi, "pi", 1213090802u, 0, 2, NULL); -be_define_const_str(assert, "assert", 2774883451u, 0, 6, NULL); -be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, &be_const_str_setitem); -be_define_const_str(setitem, "setitem", 1554834596u, 0, 7, &be_const_str_except); -be_define_const_str(except, "except", 950914032u, 69, 6, NULL); -be_define_const_str(pow, "pow", 1479764693u, 0, 3, &be_const_str_sin); -be_define_const_str(sin, "sin", 3761252941u, 0, 3, &be_const_str_traceback); -be_define_const_str(traceback, "traceback", 3385188109u, 0, 9, NULL); -be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, &be_const_str_classof); -be_define_const_str(classof, "classof", 1796577762u, 0, 7, NULL); -be_define_const_str(init, "init", 380752755u, 0, 4, &be_const_str_sinh); -be_define_const_str(sinh, "sinh", 282220607u, 0, 4, &be_const_str_split); -be_define_const_str(split, "split", 2276994531u, 0, 5, &be_const_str_raise); -be_define_const_str(raise, "raise", 1593437475u, 70, 5, NULL); -be_define_const_str(map, "map", 3751997361u, 0, 3, &be_const_str_srand); -be_define_const_str(srand, "srand", 465518633u, 0, 5, NULL); -be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_asin); -be_define_const_str(asin, "asin", 4272848550u, 0, 4, &be_const_str_int); -be_define_const_str(int, "int", 2515107422u, 0, 3, &be_const_str_lower); -be_define_const_str(lower, "lower", 3038577850u, 0, 5, &be_const_str_var); -be_define_const_str(var, "var", 2317739966u, 64, 3, NULL); -be_define_const_str(abs, "abs", 709362235u, 0, 3, &be_const_str_deg); -be_define_const_str(deg, "deg", 3327754271u, 0, 3, NULL); -be_define_const_str(setrange, "setrange", 3794019032u, 0, 8, &be_const_str_time); -be_define_const_str(time, "time", 1564253156u, 0, 4, NULL); -be_define_const_str(real, "real", 3604983901u, 0, 4, NULL); -be_define_const_str(end, "end", 1787721130u, 56, 3, NULL); -be_define_const_str(isdir, "isdir", 2340917412u, 0, 5, NULL); -be_define_const_str(, "", 2166136261u, 0, 0, NULL); -be_define_const_str(getcwd, "getcwd", 652026575u, 0, 6, NULL); -be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, &be_const_str_copy); -be_define_const_str(copy, "copy", 3848464964u, 0, 4, &be_const_str_imin); -be_define_const_str(imin, "imin", 2714127864u, 0, 4, &be_const_str_system); -be_define_const_str(system, "system", 1226705564u, 0, 6, &be_const_str_top); -be_define_const_str(top, "top", 2802900028u, 0, 3, &be_const_str_nil); -be_define_const_str(nil, "nil", 228849900u, 63, 3, NULL); -be_define_const_str(push, "push", 2272264157u, 0, 4, &be_const_str_remove); -be_define_const_str(remove, "remove", 3683784189u, 0, 6, NULL); -be_define_const_str(compile, "compile", 1000265118u, 0, 7, NULL); -be_define_const_str(atan, "atan", 108579519u, 0, 4, &be_const_str_class); -be_define_const_str(class, "class", 2872970239u, 57, 5, NULL); -be_define_const_str(insert, "insert", 3332609576u, 0, 6, &be_const_str_pop); -be_define_const_str(pop, "pop", 1362321360u, 0, 3, &be_const_str_tanh); -be_define_const_str(tanh, "tanh", 153638352u, 0, 4, NULL); -be_define_const_str(chdir, "chdir", 806634853u, 0, 5, &be_const_str_load); -be_define_const_str(load, "load", 3859241449u, 0, 4, &be_const_str_log); -be_define_const_str(log, "log", 1062293841u, 0, 3, &be_const_str_varname); -be_define_const_str(varname, "varname", 2273276445u, 0, 7, NULL); -be_define_const_str(find, "find", 3186656602u, 0, 4, &be_const_str_isinstance); -be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, &be_const_str_if); +be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, &be_const_str_clock); +be_define_const_str(clock, "clock", 363073373u, 0, 5, &be_const_str_size); +be_define_const_str(size, "size", 597743964u, 0, 4, &be_const_str_system); +be_define_const_str(system, "system", 1226705564u, 0, 6, &be_const_str_type); +be_define_const_str(type, "type", 1361572173u, 0, 4, &be_const_str_if); be_define_const_str(if, "if", 959999494u, 50, 2, NULL); -be_define_const_str(super, "super", 4152230356u, 0, 5, &be_const_str_break); -be_define_const_str(break, "break", 3378807160u, 58, 5, &be_const_str_do); -be_define_const_str(do, "do", 1646057492u, 65, 2, &be_const_str_else); -be_define_const_str(else, "else", 3183434736u, 52, 4, &be_const_str_for); +be_define_const_str(int, "int", 2515107422u, 0, 3, &be_const_str_isfile); +be_define_const_str(isfile, "isfile", 3131505107u, 0, 6, &be_const_str_log); +be_define_const_str(log, "log", 1062293841u, 0, 3, &be_const_str_raise); +be_define_const_str(raise, "raise", 1593437475u, 70, 5, NULL); +be_define_const_str(concat, "concat", 4124019837u, 0, 6, &be_const_str_list); +be_define_const_str(list, "list", 217798785u, 0, 4, &be_const_str_map); +be_define_const_str(map, "map", 3751997361u, 0, 3, &be_const_str_for); be_define_const_str(for, "for", 2901640080u, 54, 3, NULL); -be_define_const_str(concat, "concat", 4124019837u, 0, 6, &be_const_str_resize); -be_define_const_str(resize, "resize", 3514612129u, 0, 6, &be_const_str_reverse); -be_define_const_str(reverse, "reverse", 558918661u, 0, 7, NULL); -be_define_const_str(while, "while", 231090382u, 53, 5, NULL); -be_define_const_str(input, "input", 4191711099u, 0, 5, &be_const_str_sqrt); -be_define_const_str(sqrt, "sqrt", 2112764879u, 0, 4, &be_const_str_elif); -be_define_const_str(elif, "elif", 3232090307u, 51, 4, NULL); -be_define_const_str(log10, "log10", 2346846000u, 0, 5, &be_const_str_print); -be_define_const_str(print, "print", 372738696u, 0, 5, &be_const_str_continue); -be_define_const_str(continue, "continue", 2977070660u, 59, 8, NULL); -be_define_const_str(collect, "collect", 2399039025u, 0, 7, NULL); -be_define_const_str(clear, "clear", 1550717474u, 0, 5, &be_const_str_rand); -be_define_const_str(rand, "rand", 2711325910u, 0, 4, NULL); -be_define_const_str(opt_neq, "!=", 2428715011u, 0, 2, &be_const_str_opt_eq); -be_define_const_str(opt_eq, "==", 2431966415u, 0, 2, &be_const_str_acos); -be_define_const_str(acos, "acos", 1006755615u, 0, 4, NULL); -be_define_const_str(listdir, "listdir", 2005220720u, 0, 7, &be_const_str_mkdir); -be_define_const_str(mkdir, "mkdir", 2883839448u, 0, 5, &be_const_str_sethook); -be_define_const_str(sethook, "sethook", 3963967276u, 0, 7, &be_const_str_tan); -be_define_const_str(tan, "tan", 2633446552u, 0, 3, &be_const_str_def); +be_define_const_str(dot_p, ".p", 1171526419u, 0, 2, &be_const_str_isdir); +be_define_const_str(isdir, "isdir", 2340917412u, 0, 5, &be_const_str_mkdir); +be_define_const_str(mkdir, "mkdir", 2883839448u, 0, 5, &be_const_str_remove); +be_define_const_str(remove, "remove", 3683784189u, 0, 6, NULL); +be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, NULL); +be_define_const_str(abs, "abs", 709362235u, 0, 3, &be_const_str_reverse); +be_define_const_str(reverse, "reverse", 558918661u, 0, 7, &be_const_str_sinh); +be_define_const_str(sinh, "sinh", 282220607u, 0, 4, NULL); +be_define_const_str(hex, "hex", 4273249610u, 0, 3, NULL); +be_define_const_str(tostring, "tostring", 2299708645u, 0, 8, NULL); +be_define_const_str(opt_add, "+", 772578730u, 0, 1, &be_const_str_atan); +be_define_const_str(atan, "atan", 108579519u, 0, 4, &be_const_str_real); +be_define_const_str(real, "real", 3604983901u, 0, 4, NULL); +be_define_const_str(iter, "iter", 3124256359u, 0, 4, &be_const_str_top); +be_define_const_str(top, "top", 2802900028u, 0, 3, &be_const_str_except); +be_define_const_str(except, "except", 950914032u, 69, 6, NULL); +be_define_const_str(getcwd, "getcwd", 652026575u, 0, 6, &be_const_str_listdir); +be_define_const_str(listdir, "listdir", 2005220720u, 0, 7, &be_const_str_log10); +be_define_const_str(log10, "log10", 2346846000u, 0, 5, NULL); +be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_init); +be_define_const_str(init, "init", 380752755u, 0, 4, &be_const_str_module); +be_define_const_str(module, "module", 3617558685u, 0, 6, NULL); +be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, &be_const_str_clear); +be_define_const_str(clear, "clear", 1550717474u, 0, 5, &be_const_str_collect); +be_define_const_str(collect, "collect", 2399039025u, 0, 7, &be_const_str_find); +be_define_const_str(find, "find", 3186656602u, 0, 4, &be_const_str_item); +be_define_const_str(item, "item", 2671260646u, 0, 4, NULL); +be_define_const_str(format, "format", 3114108242u, 0, 6, &be_const_str_sqrt); +be_define_const_str(sqrt, "sqrt", 2112764879u, 0, 4, NULL); +be_define_const_str(classname, "classname", 1998589948u, 0, 9, NULL); +be_define_const_str(byte, "byte", 1683620383u, 0, 4, NULL); +be_define_const_str(else, "else", 3183434736u, 52, 4, NULL); +be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, &be_const_str_end); +be_define_const_str(end, "end", 1787721130u, 56, 3, &be_const_str_true); +be_define_const_str(true, "true", 1303515621u, 61, 4, NULL); +be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, NULL); +be_define_const_str(char, "char", 2823553821u, 0, 4, &be_const_str_load); +be_define_const_str(load, "load", 3859241449u, 0, 4, &be_const_str_resize); +be_define_const_str(resize, "resize", 3514612129u, 0, 6, &be_const_str_sethook); +be_define_const_str(sethook, "sethook", 3963967276u, 0, 7, &be_const_str_varname); +be_define_const_str(varname, "varname", 2273276445u, 0, 7, NULL); +be_define_const_str(deg, "deg", 3327754271u, 0, 3, &be_const_str_srand); +be_define_const_str(srand, "srand", 465518633u, 0, 5, &be_const_str_str); +be_define_const_str(str, "str", 3259748752u, 0, 3, NULL); +be_define_const_str(range, "range", 4208725202u, 0, 5, &be_const_str_toupper); +be_define_const_str(toupper, "toupper", 3691983576u, 0, 7, NULL); +be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_copy); +be_define_const_str(copy, "copy", 3848464964u, 0, 4, &be_const_str_exp); +be_define_const_str(exp, "exp", 1923516200u, 0, 3, &be_const_str_time); +be_define_const_str(time, "time", 1564253156u, 0, 4, &be_const_str_break); +be_define_const_str(break, "break", 3378807160u, 58, 5, NULL); +be_define_const_str(opt_neq, "!=", 2428715011u, 0, 2, &be_const_str_assert); +be_define_const_str(assert, "assert", 2774883451u, 0, 6, &be_const_str_attrdump); +be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, &be_const_str_chdir); +be_define_const_str(chdir, "chdir", 806634853u, 0, 5, &be_const_str_isinstance); +be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, &be_const_str_continue); +be_define_const_str(continue, "continue", 2977070660u, 59, 8, &be_const_str_do); +be_define_const_str(do, "do", 1646057492u, 65, 2, NULL); +be_define_const_str(lower, "lower", 3038577850u, 0, 5, &be_const_str_pow); +be_define_const_str(pow, "pow", 1479764693u, 0, 3, &be_const_str_false); +be_define_const_str(false, "false", 184981848u, 62, 5, NULL); +be_define_const_str(count, "count", 967958004u, 0, 5, NULL); +be_define_const_str(exit, "exit", 3454868101u, 0, 4, &be_const_str_print); +be_define_const_str(print, "print", 372738696u, 0, 5, &be_const_str_def); be_define_const_str(def, "def", 3310976652u, 55, 3, NULL); -be_define_const_str(char, "char", 2823553821u, 0, 4, &be_const_str_exists); -be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_join); -be_define_const_str(join, "join", 3374496889u, 0, 4, &be_const_str_as); -be_define_const_str(as, "as", 1579491469u, 67, 2, NULL); -be_define_const_str(format, "format", 3114108242u, 0, 6, &be_const_str_try); -be_define_const_str(try, "try", 2887626766u, 68, 3, NULL); -be_define_const_str(upper, "upper", 176974407u, 0, 5, &be_const_str_return); +be_define_const_str(pop, "pop", 1362321360u, 0, 3, &be_const_str_tolower); +be_define_const_str(tolower, "tolower", 1042520049u, 0, 7, NULL); +be_define_const_str(classof, "classof", 1796577762u, 0, 7, &be_const_str_cos); +be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_dump); +be_define_const_str(dump, "dump", 3663001223u, 0, 4, &be_const_str_join); +be_define_const_str(join, "join", 3374496889u, 0, 4, &be_const_str_push); +be_define_const_str(push, "push", 2272264157u, 0, 4, &be_const_str_sin); +be_define_const_str(sin, "sin", 3761252941u, 0, 3, &be_const_str_return); be_define_const_str(return, "return", 2246981567u, 60, 6, NULL); +be_define_const_str(path, "path", 2223459638u, 0, 4, &be_const_str_rand); +be_define_const_str(rand, "rand", 2711325910u, 0, 4, &be_const_str_class); +be_define_const_str(class, "class", 2872970239u, 57, 5, &be_const_str_nil); +be_define_const_str(nil, "nil", 228849900u, 63, 3, NULL); +be_define_const_str(input, "input", 4191711099u, 0, 5, NULL); +be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_keys); +be_define_const_str(keys, "keys", 4182378701u, 0, 4, &be_const_str_number); +be_define_const_str(number, "number", 467038368u, 0, 6, &be_const_str_rad); +be_define_const_str(rad, "rad", 1358899048u, 0, 3, NULL); +be_define_const_str(imin, "imin", 2714127864u, 0, 4, &be_const_str_pi); +be_define_const_str(pi, "pi", 1213090802u, 0, 2, NULL); +be_define_const_str(splitext, "splitext", 2150391934u, 0, 8, NULL); +be_define_const_str(compile, "compile", 1000265118u, 0, 7, &be_const_str_setrange); +be_define_const_str(setrange, "setrange", 3794019032u, 0, 8, &be_const_str_traceback); +be_define_const_str(traceback, "traceback", 3385188109u, 0, 9, &be_const_str_upper); +be_define_const_str(upper, "upper", 176974407u, 0, 5, &be_const_str_var); +be_define_const_str(var, "var", 2317739966u, 64, 3, NULL); +be_define_const_str(opt_eq, "==", 2431966415u, 0, 2, NULL); +be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, &be_const_str_tan); +be_define_const_str(tan, "tan", 2633446552u, 0, 3, NULL); +be_define_const_str(setitem, "setitem", 1554834596u, 0, 7, NULL); +be_define_const_str(tanh, "tanh", 153638352u, 0, 4, &be_const_str_as); +be_define_const_str(as, "as", 1579491469u, 67, 2, NULL); +be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, &be_const_str_upvname); +be_define_const_str(upvname, "upvname", 3848760617u, 0, 7, NULL); +be_define_const_str(opt_connect, "..", 2748622605u, 0, 2, NULL); +be_define_const_str(try, "try", 2887626766u, 68, 3, &be_const_str_while); +be_define_const_str(while, "while", 231090382u, 53, 5, NULL); +be_define_const_str(import, "import", 288002260u, 66, 6, NULL); +be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str_open); +be_define_const_str(open, "open", 3546203337u, 0, 4, NULL); +be_define_const_str(acos, "acos", 1006755615u, 0, 4, &be_const_str_asin); +be_define_const_str(asin, "asin", 4272848550u, 0, 4, &be_const_str_imax); +be_define_const_str(imax, "imax", 3084515410u, 0, 4, &be_const_str_insert); +be_define_const_str(insert, "insert", 3332609576u, 0, 6, &be_const_str_split); +be_define_const_str(split, "split", 2276994531u, 0, 5, NULL); +be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_exists); +be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_super); +be_define_const_str(super, "super", 4152230356u, 0, 5, &be_const_str_elif); +be_define_const_str(elif, "elif", 3232090307u, 51, 4, NULL); static const bstring* const m_string_table[] = { - (const bstring *)&be_const_str_count, - (const bstring *)&be_const_str_opt_connect, - (const bstring *)&be_const_str_codedump, - (const bstring *)&be_const_str___upper__, - (const bstring *)&be_const_str_classname, - (const bstring *)&be_const_str_true, - (const bstring *)&be_const_str_hex, + (const bstring *)&be_const_str_calldepth, + (const bstring *)&be_const_str_int, + (const bstring *)&be_const_str_concat, + (const bstring *)&be_const_str_dot_p, NULL, (const bstring *)&be_const_str_cosh, - (const bstring *)&be_const_str_exit, - (const bstring *)&be_const_str_path, - (const bstring *)&be_const_str_dot_p, - (const bstring *)&be_const_str_deinit, - (const bstring *)&be_const_str_clock, - (const bstring *)&be_const_str_opt_add, - (const bstring *)&be_const_str_assert, - (const bstring *)&be_const_str_ceil, - (const bstring *)&be_const_str_pow, - (const bstring *)&be_const_str_calldepth, - (const bstring *)&be_const_str_init, - NULL, - (const bstring *)&be_const_str_map, - (const bstring *)&be_const_str_allocated, (const bstring *)&be_const_str_abs, - (const bstring *)&be_const_str_setrange, - (const bstring *)&be_const_str_real, - (const bstring *)&be_const_str_end, + (const bstring *)&be_const_str_hex, + (const bstring *)&be_const_str_tostring, + (const bstring *)&be_const_str_opt_add, + (const bstring *)&be_const_str_iter, + (const bstring *)&be_const_str_getcwd, NULL, - (const bstring *)&be_const_str_isdir, + (const bstring *)&be_const_str_allocated, + (const bstring *)&be_const_str_ceil, + (const bstring *)&be_const_str_format, + (const bstring *)&be_const_str_classname, + (const bstring *)&be_const_str_byte, + (const bstring *)&be_const_str_else, + (const bstring *)&be_const_str_deinit, + (const bstring *)&be_const_str___upper__, + (const bstring *)&be_const_str_char, + NULL, + (const bstring *)&be_const_str_deg, + NULL, + (const bstring *)&be_const_str_range, (const bstring *)&be_const_str_, NULL, - (const bstring *)&be_const_str_getcwd, - (const bstring *)&be_const_str_attrdump, - (const bstring *)&be_const_str_push, - (const bstring *)&be_const_str_compile, - (const bstring *)&be_const_str_atan, - (const bstring *)&be_const_str_insert, - (const bstring *)&be_const_str_chdir, - (const bstring *)&be_const_str_find, - NULL, - (const bstring *)&be_const_str_super, - (const bstring *)&be_const_str_concat, - (const bstring *)&be_const_str_while, - (const bstring *)&be_const_str_input, - (const bstring *)&be_const_str_log10, - (const bstring *)&be_const_str_collect, - (const bstring *)&be_const_str_clear, (const bstring *)&be_const_str_opt_neq, - (const bstring *)&be_const_str_listdir, - (const bstring *)&be_const_str_char, - (const bstring *)&be_const_str_format, - (const bstring *)&be_const_str_upper + (const bstring *)&be_const_str_lower, + (const bstring *)&be_const_str_count, + (const bstring *)&be_const_str_exit, + (const bstring *)&be_const_str_pop, + (const bstring *)&be_const_str_classof, + (const bstring *)&be_const_str_path, + (const bstring *)&be_const_str_input, + (const bstring *)&be_const_str_floor, + (const bstring *)&be_const_str_imin, + (const bstring *)&be_const_str_splitext, + NULL, + (const bstring *)&be_const_str_compile, + (const bstring *)&be_const_str_opt_eq, + (const bstring *)&be_const_str_codedump, + (const bstring *)&be_const_str_setitem, + (const bstring *)&be_const_str_tanh, + (const bstring *)&be_const_str_issubclass, + (const bstring *)&be_const_str_opt_connect, + (const bstring *)&be_const_str_try, + (const bstring *)&be_const_str_import, + (const bstring *)&be_const_str___lower__, + NULL, + (const bstring *)&be_const_str_acos, + (const bstring *)&be_const_str___iterator__ }; static const struct bconststrtab m_const_string_table = { - .size = 52, - .count = 104, + .size = 53, + .count = 107, .table = m_string_table }; diff --git a/lib/lib_div/Berry-0.1.10/generate/be_fixed_be_class_map.h b/lib/lib_div/Berry-0.1.10/generate/be_fixed_be_class_map.h index eebf1b658..06c75a050 100644 --- a/lib/lib_div/Berry-0.1.10/generate/be_fixed_be_class_map.h +++ b/lib/lib_div/Berry-0.1.10/generate/be_fixed_be_class_map.h @@ -1,21 +1,22 @@ #include "be_constobj.h" static be_define_const_map_slots(be_class_map_map) { - { be_const_key(init, -1), be_const_func(m_init) }, - { be_const_key(remove, 7), be_const_func(m_remove) }, - { be_const_key(find, -1), be_const_func(m_find) }, - { be_const_key(insert, 8), be_const_func(m_insert) }, + { be_const_key(dot_p, 2), be_const_int(0) }, + { be_const_key(insert, -1), be_const_func(m_insert) }, + { be_const_key(remove, -1), be_const_func(m_remove) }, + { be_const_key(tostring, -1), be_const_func(m_tostring) }, + { be_const_key(iter, 5), be_const_func(m_iter) }, { be_const_key(size, -1), be_const_func(m_size) }, - { be_const_key(tostring, 0), be_const_func(m_tostring) }, - { be_const_key(setitem, 3), be_const_func(m_setitem) }, - { be_const_key(iter, -1), be_const_func(m_iter) }, - { be_const_key(item, -1), be_const_func(m_item) }, - { be_const_key(dot_p, 1), be_const_int(0) }, + { be_const_key(keys, -1), be_const_func(m_keys) }, + { be_const_key(setitem, -1), be_const_func(m_setitem) }, + { be_const_key(find, 0), be_const_func(m_find) }, + { be_const_key(init, -1), be_const_func(m_init) }, + { be_const_key(item, 1), be_const_func(m_item) }, }; static be_define_const_map( be_class_map_map, - 10 + 11 ); BE_EXPORT_VARIABLE be_define_const_class( diff --git a/lib/lib_div/Berry-0.1.10/generate/be_fixed_string.h b/lib/lib_div/Berry-0.1.10/generate/be_fixed_string.h index c2da8b838..906c11f55 100644 --- a/lib/lib_div/Berry-0.1.10/generate/be_fixed_string.h +++ b/lib/lib_div/Berry-0.1.10/generate/be_fixed_string.h @@ -1,18 +1,20 @@ #include "be_constobj.h" static be_define_const_map_slots(m_libstring_map) { - { be_const_key(hex, 2), be_const_func(str_i2hex) }, - { be_const_key(byte, -1), be_const_func(str_byte) }, - { be_const_key(format, 5), be_const_func(str_format) }, - { be_const_key(find, -1), be_const_func(str_find) }, - { be_const_key(char, 1), be_const_func(str_char) }, - { be_const_key(split, -1), be_const_func(str_split) }, + { be_const_key(tolower, -1), be_const_func(str_tolower) }, { be_const_key(count, -1), be_const_func(str_count) }, + { be_const_key(hex, -1), be_const_func(str_i2hex) }, + { be_const_key(split, 5), be_const_func(str_split) }, + { be_const_key(byte, -1), be_const_func(str_byte) }, + { be_const_key(char, 6), be_const_func(str_char) }, + { be_const_key(toupper, 1), be_const_func(str_toupper) }, + { be_const_key(find, -1), be_const_func(str_find) }, + { be_const_key(format, -1), be_const_func(str_format) }, }; static be_define_const_map( m_libstring_map, - 7 + 9 ); static be_define_const_module( diff --git a/lib/lib_div/Berry-0.1.10/src/be_gc.h b/lib/lib_div/Berry-0.1.10/src/be_gc.h index 16ca7e766..5943a7392 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_gc.h +++ b/lib/lib_div/Berry-0.1.10/src/be_gc.h @@ -13,7 +13,7 @@ #define BE_GCOBJECT BE_STRING #define gc_object(o) cast(bgcobject*, o) -#define gc_cast(o, t, T) ((o) && (o)->type == (t) ? (T*)(o) : NULL) +#define gc_cast(o, t, T) ((o) && pgm_read_byte(&(o)->type) == (t) ? (T*)(o) : NULL) #define cast_proto(o) gc_cast(o, BE_PROTO, bproto) #define cast_closure(o) gc_cast(o, BE_CLOSURE, bclosure) #define cast_ntvclos(o) gc_cast(o, BE_NTVCLOS, bntvclos) @@ -38,11 +38,11 @@ if (!gc_isconst(o)) { \ #define gc_setwhite(o) gc_setmark((o), GC_WHITE) #define gc_setgray(o) gc_setmark((o), GC_GRAY) #define gc_setdark(o) gc_setmark((o), GC_DARK) -#define gc_isfixed(o) (((o)->marked & GC_FIXED) != 0) +#define gc_isfixed(o) ((pgm_read_byte(&(o)->marked) & GC_FIXED) != 0) #define gc_setfixed(o) ((o)->marked |= GC_FIXED) #define gc_clearfixed(o) ((o)->marked &= ~GC_FIXED) -#define gc_isconst(o) (((o)->marked & GC_CONST) != 0) -#define gc_exmark(o) (((o)->marked >> 4) & 0x0F) +#define gc_isconst(o) ((pgm_read_byte(&(o)->marked) & GC_CONST) != 0) +#define gc_exmark(o) ((pgm_read_byte(&(o)->marked) >> 4) & 0x0F) #define gc_setexmark(o, k) ((o)->marked |= (k) << 4) #define be_isgctype(t) ((t) >= BE_GCOBJECT) diff --git a/lib/lib_div/Berry-0.1.10/src/be_lexer.c b/lib/lib_div/Berry-0.1.10/src/be_lexer.c index eea82109d..b201e8df2 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_lexer.c +++ b/lib/lib_div/Berry-0.1.10/src/be_lexer.c @@ -105,7 +105,8 @@ static int next(blexer *lexer) lr->s = s ? s : &eos; --lr->len; } - lexer->cursor = *lr->s++; + // lexer->cursor = *lr->s++; // SH + lexer->cursor = pgm_read_byte(lr->s++); return lexer->cursor; } diff --git a/lib/lib_div/Berry-0.1.10/src/be_maplib.c b/lib/lib_div/Berry-0.1.10/src/be_maplib.c index 2d8446edd..936e3164d 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_maplib.c +++ b/lib/lib_div/Berry-0.1.10/src/be_maplib.c @@ -172,6 +172,37 @@ static int m_iter(bvm *vm) be_return(vm); } +static int keys_iter_closure(bvm *vm) +{ + /* for better performance, we operate the upvalues + * directly without using by the stack. */ + bntvclos *func = var_toobj(vm->cf->func); + bvalue *uv0 = be_ntvclos_upval(func, 0)->value; /* list value */ + bvalue *uv1 = be_ntvclos_upval(func, 1)->value; /* iter value */ + bmapiter iter = var_toobj(uv1); + bmapnode *next = be_map_next(var_toobj(uv0), &iter); + if (next == NULL) { + be_stop_iteration(vm); + be_return_nil(vm); /* will not be executed */ + } + var_setobj(uv1, BE_COMPTR, iter); /* set upvale[1] (iter value) */ + /* push next value to top */ + var_setobj(vm->top, next->key.type, next->key.v.p); + be_incrtop(vm); + be_return(vm); +} + +static int m_keys(bvm *vm) +{ + be_pushntvclosure(vm, keys_iter_closure, 2); + be_getmember(vm, 1, ".p"); + be_setupval(vm, -2, 0); + be_pushiter(vm, -1); + be_setupval(vm, -3, 1); + be_pop(vm, 2); + be_return(vm); +} + #if !BE_USE_PRECOMPILED_OBJECT void be_load_maplib(bvm *vm) { @@ -186,6 +217,7 @@ void be_load_maplib(bvm *vm) { "size", m_size }, { "insert", m_insert }, { "iter", m_iter }, + { "keys", m_keys }, { NULL, NULL } }; be_regclass(vm, "map", members); @@ -203,6 +235,7 @@ class be_class_map (scope: global, name: map) { size, func(m_size) insert, func(m_insert) iter, func(m_iter) + keys, func(m_keys) } @const_object_info_end */ #include "../generate/be_fixed_be_class_map.h" diff --git a/lib/lib_div/Berry-0.1.10/src/be_object.h b/lib/lib_div/Berry-0.1.10/src/be_object.h index d465138ec..dd73a8a87 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_object.h +++ b/lib/lib_div/Berry-0.1.10/src/be_object.h @@ -10,6 +10,37 @@ #include "berry.h" +/* support for PROGMEM on ESP8266 and AVR */ +#ifdef _PGMSPACE_H_ + #define strncmp strncmp_PP + #define strcmp(str1P, str2P) strncmp_PP((str1P), (str2P), SIZE_IRRELEVANT) + #define strncasecmp strncasecmp_P + #define strcasecmp_P(str1, str2P) strncasecmp_P((str1), (str2P), SIZE_IRRELEVANT) + #define strlen strlen_P + #define strchr strchr_P + #define strcat strcat_P + #define strncat strncat_P + #define strcpy strcpy_P + #define strncpy strncpy_P + #define memcpy memcpy_P + #define memccpy memccpy_P + #define memmove memmove_P + #define memcmp memcmp_P + #define memmem memmem_P + #define memchr memchr_P + #define sprintf sprintf_P + #define snprintf snprintf_P +#endif + +#ifndef pgm_read_byte +#define pgm_read_byte(addr) (*(const uint8_t*)(addr)) +#endif + +#ifndef pgm_read_word +#define pgm_read_word(addr) (*(const uint16_t*)(addr)) +#endif + + /* basic types, do not change value */ #define BE_NONE (-1) /* unknow type */ #define BE_COMPTR (-2) /* common pointer */ diff --git a/lib/lib_div/Berry-0.1.10/src/be_parser.c b/lib/lib_div/Berry-0.1.10/src/be_parser.c index 1839e9392..bdfdcaf3d 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_parser.c +++ b/lib/lib_div/Berry-0.1.10/src/be_parser.c @@ -31,7 +31,7 @@ #define FUNC_ANONYMOUS 2 /* get binary operator priority */ -#define binary_op_prio(op) (binary_op_prio_tab[cast_int(op) - OptAdd]) +#define binary_op_prio(op) (pgm_read_byte(&binary_op_prio_tab[cast_int(op) - OptAdd])) #define scan_next_token(parser) (be_lexer_scan_next(&(parser)->lexer)) #define next_token(parser) ((parser)->lexer.token) diff --git a/lib/lib_div/Berry-0.1.10/src/be_string.c b/lib/lib_div/Berry-0.1.10/src/be_string.c index db7dcaebf..0590fb396 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_string.c +++ b/lib/lib_div/Berry-0.1.10/src/be_string.c @@ -44,9 +44,9 @@ int be_eqstr(bstring *s1, bstring *s2) if (s1 == s2) { /* short string or the same string */ return 1; } - slen = s1->slen; + slen = pgm_read_byte(&s1->slen); /* long string */ - if (slen == 255 && slen == s2->slen) { + if (slen == 255 && slen == pgm_read_byte(&s2->slen)) { blstring *ls1 = cast(blstring*, s1); blstring *ls2 = cast(blstring*, s2); return ls1->llen == ls2->llen && !strcmp(lstr(ls1), lstr(ls2)); @@ -88,7 +88,7 @@ static void resize(bvm *vm, int size) static void free_sstring(bvm *vm, bstring *str) { - be_free(vm, str, sizeof(bsstring) + str->slen + 1); + be_free(vm, str, sizeof(bsstring) + pgm_read_byte(&str->slen) + 1); } /* FNV-1a Hash */ @@ -97,7 +97,8 @@ static uint32_t str_hash(const char *str, size_t len) uint32_t hash = 2166136261u; be_assert(str || len); while (len--) { - hash = (hash ^ (unsigned char)*str++) * 16777619u; + hash = (hash ^ (unsigned char)pgm_read_byte(str)) * 16777619u; + str++; } return hash; } @@ -149,7 +150,7 @@ static bstring* find_conststr(const char *str, size_t len) uint32_t hash = str_hash(str, len); bcstring *s = (bcstring*)tab->table[hash % tab->size]; for (; s != NULL; s = next(s)) { - if (len == s->slen && !strncmp(str, s->s, len)) { + if (len == pgm_read_byte(&s->slen) && !strncmp(str, s->s, len)) { return (bstring*)s; } } @@ -165,7 +166,7 @@ static bstring* newshortstr(bvm *vm, const char *str, size_t len) bstring **list = vm->strtab.table + (hash & (size - 1)); for (s = *list; s != NULL; s = next(s)) { - if (len == s->slen && !strncmp(str, sstr(s), len)) { + if (len == pgm_read_byte(&s->slen) && !strncmp(str, sstr(s), len)) { return s; } } @@ -252,7 +253,7 @@ uint32_t be_strhash(const bstring *s) return cast(bcstring*, s)->hash; } #if BE_USE_STR_HASH_CACHE - if (s->slen != 255) { + if (pgm_read_byte(&s->slen) != 255) { return cast(bsstring*, s)->hash; } #endif @@ -265,7 +266,7 @@ const char* be_str2cstr(const bstring *s) if (gc_isconst(s)) { return cstr(s); } - if (s->slen == 255) { + if (pgm_read_byte(&s->slen) == 255) { return lstr(s); } return sstr(s); @@ -276,4 +277,4 @@ void be_str_setextra(bstring *s, int extra) if (!gc_isconst(s)) { s->extra = cast(bbyte, extra); } -} +} \ No newline at end of file diff --git a/lib/lib_div/Berry-0.1.10/src/be_string.h b/lib/lib_div/Berry-0.1.10/src/be_string.h index 51b3fd016..8d3fba49e 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_string.h +++ b/lib/lib_div/Berry-0.1.10/src/be_string.h @@ -33,7 +33,7 @@ typedef struct { } bcstring; #define str_len(_s) \ - ((_s)->slen == 255 ? cast(blstring*, _s)->llen : (_s)->slen) + (pgm_read_byte(&(_s)->slen) == 255 ? cast(blstring*, _s)->llen : pgm_read_byte(&(_s)->slen)) #define str(_s) be_str2cstr(_s) #define str_extra(_s) ((_s)->extra) diff --git a/lib/lib_div/Berry-0.1.10/src/be_strlib.c b/lib/lib_div/Berry-0.1.10/src/be_strlib.c index f4bda16c4..37fe8e12b 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_strlib.c +++ b/lib/lib_div/Berry-0.1.10/src/be_strlib.c @@ -14,6 +14,7 @@ #include "be_mem.h" #include #include +#include #define is_space(c) ((c) == ' ' || (c) == '\t' || (c) == '\r' || (c) == '\n') #define is_digit(c) ((c) >= '0' && (c) <= '9') @@ -175,7 +176,7 @@ const char* be_pushvfstr(bvm *vm, const char *format, va_list arg) } pushstr(vm, format, p - format); concat2(vm); - switch (p[1]) { + switch (pgm_read_byte(&p[1])) { case 's': { const char *s = va_arg(arg, char*); if (s == NULL) { @@ -338,8 +339,8 @@ bstring* be_strindex(bvm *vm, bstring *str, bvalue *idx) const char* be_splitpath(const char *path) { const char *p; - for (p = path - 1; *path != '\0'; ++path) { - if (*path == '/') { + for (p = path - 1; pgm_read_byte(path) != '\0'; ++path) { + if (pgm_read_byte(path) == '/') { p = path; } } @@ -708,6 +709,34 @@ static int str_char(bvm *vm) be_return_nil(vm); } +// boolean to select whether we call toupper() or tolower() +static int str_touplower(bvm *vm, bbool up) +{ + if (be_top(vm) && be_isstring(vm, 1)) { + const char *p, *s = be_tostring(vm, 1); + size_t len = (size_t)be_strlen(vm, 1); + char *buf, *q; + buf = q = be_pushbuffer(vm, len); + /* convert to lower case */ + for (p = s; *p != '\0'; ++p, ++q) { + *q = up ? toupper(*p) : tolower(*p); + } + be_pushnstring(vm, buf, len); /* make escape string from buffer */ + be_remove(vm, 2); /* remove buffer */ + be_return(vm); + } + be_return_nil(vm); +} + +static int str_tolower(bvm *vm) { + return str_touplower(vm, bfalse); +} + +static int str_toupper(bvm *vm) { + return str_touplower(vm, btrue); +} + + #if !BE_USE_PRECOMPILED_OBJECT be_native_module_attr_table(string) { be_native_module_function("format", str_format), @@ -716,7 +745,9 @@ be_native_module_attr_table(string) { be_native_module_function("find", str_find), be_native_module_function("hex", str_i2hex), be_native_module_function("byte", str_byte), - be_native_module_function("char", str_char) + be_native_module_function("char", str_char), + be_native_module_function("tolower", str_tolower), + be_native_module_function("toupper", str_toupper), }; be_define_native_module(string, NULL); @@ -730,6 +761,8 @@ module string (scope: global, depend: BE_USE_STRING_MODULE) { hex, func(str_i2hex) byte, func(str_byte) char, func(str_char) + tolower, func(str_tolower) + toupper, func(str_toupper) } @const_object_info_end */ #include "../generate/be_fixed_string.h" diff --git a/lib/lib_div/Berry-0.1.10/src/be_vector.c b/lib/lib_div/Berry-0.1.10/src/be_vector.c index b73479601..2cd3f1e2e 100644 --- a/lib/lib_div/Berry-0.1.10/src/be_vector.c +++ b/lib/lib_div/Berry-0.1.10/src/be_vector.c @@ -122,16 +122,16 @@ static int binary_search(int value) const uint16_t *high = tab + array_count(tab) - 1; while (low <= high) { const uint16_t *mid = low + ((high - low) >> 1); - if (*mid == value) { - return mid[1]; + if (pgm_read_word(mid) == value) { + return pgm_read_word(&mid[1]); } - if (*mid < value) { + if (pgm_read_word(mid) < value) { low = mid + 1; } else { high = mid - 1; } } - return *low; + return pgm_read_word(low); } static int nextpow(int value) diff --git a/lib/lib_div/Berry-0.1.10/src/port/be_modtab.c b/lib/lib_div/Berry-0.1.10/src/port/be_modtab.c index 9250e83e2..eb83cf5a2 100644 --- a/lib/lib_div/Berry-0.1.10/src/port/be_modtab.c +++ b/lib/lib_div/Berry-0.1.10/src/port/be_modtab.c @@ -19,6 +19,9 @@ be_extern_native_module(sys); be_extern_native_module(debug); be_extern_native_module(gc); +/* Tasmota specific */ +be_extern_native_module(tasmota); + /* user-defined modules declare start */ /* user-defined modules declare end */ @@ -52,6 +55,8 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = { #endif /* user-defined modules register start */ + &be_native_module(tasmota), + /* user-defined modules register end */ NULL /* do not remove */ }; diff --git a/lib/lib_div/Berry-0.1.10/src/port/be_port.cpp b/lib/lib_div/Berry-0.1.10/src/port/be_port.cpp index 7233f57dc..fd9ac48d6 100644 --- a/lib/lib_div/Berry-0.1.10/src/port/be_port.cpp +++ b/lib/lib_div/Berry-0.1.10/src/port/be_port.cpp @@ -16,44 +16,35 @@ /* standard input and output */ extern "C" { - void serial(const char *sp) { - char s[200]; - snprintf_P(s, sizeof(s), "%s", sp); - Serial.printf(s); - Serial.flush(); - } - void serial3(const char *sp, uint32_t a, uint32_t b, uint32_t c) { - char s[200]; - snprintf_P(s, sizeof(s), "%s 0x%08X 0x%08X 0x%08X\n", sp, a, b, c); - Serial.printf(s); - Serial.flush(); - } - void serial2s1(const char *sp, const char * a, const char * b, uint32_t c) { - char s[200]; - snprintf_P(s, sizeof(s), "%s '%s' '%s' 0x%08X\n", sp, a, b, c); - Serial.printf(s); - Serial.flush(); + int strncmp_PP(const char * str1P, const char * str2P, size_t size) + { + int result = 0; + + while (size > 0) + { + char ch1 = pgm_read_byte(str1P++); + char ch2 = pgm_read_byte(str2P++); + result = ch1 - ch2; + if (result != 0 || ch2 == '\0') + { + break; + } + + size--; + } + + return result; } -// int strncmp_PP(const char * str1P, const char * str2P, size_t size) -// { -// int result = 0; - -// while (size > 0) -// { -// char ch1 = pgm_read_byte(str1P++); -// char ch2 = pgm_read_byte(str2P++); -// result = ch1 - ch2; -// if (result != 0 || ch2 == '\0') -// { -// break; -// } - -// size--; -// } - -// return result; -// } + // + char * strchr_P(const char *s, int c) { + do { + if (pgm_read_byte(s) == c) { + return (char*)s; + } + } while (pgm_read_byte(s++)); + return (0); + } } BERRY_API void be_writebuffer(const char *buffer, size_t length) diff --git a/lib/lib_div/Berry-0.1.10/src/port/be_tasmotalib.c b/lib/lib_div/Berry-0.1.10/src/port/be_tasmotalib.c new file mode 100644 index 000000000..7f17998cb --- /dev/null +++ b/lib/lib_div/Berry-0.1.10/src/port/be_tasmotalib.c @@ -0,0 +1,34 @@ +/******************************************************************** + * Tasmota lib + * + * To use: `import tasmota` + *******************************************************************/ +#include "be_object.h" + +extern int l_getFreeHeap(bvm *vm); +extern int l_publish(bvm *vm); +extern int l_cmd(bvm *vm); +extern int l_getoption(bvm *vm); +extern int l_millis(bvm *vm); +extern int l_timereached(bvm *vm); + +// #if !BE_USE_PRECOMPILED_OBJECT +#if 1 // TODO we will do pre-compiled later +be_native_module_attr_table(tasmota) { + be_native_module_function("getfreeheap", l_getFreeHeap), + be_native_module_function("publish", l_publish), + be_native_module_function("cmd", l_cmd), + be_native_module_function("getoption", l_getoption), + be_native_module_function("millis", l_millis), + be_native_module_function("timereached", l_timereached), +}; + +be_define_native_module(tasmota, NULL); +#else +/* @const_object_info_begin +module tasmota (scope: global, depend: 1) { + getfreeheap, func(l_getFreeHeap) +} +@const_object_info_end */ +#include "../generate/be_fixed_tasmota.h" +#endif diff --git a/lib/lib_div/Berry-0.1.10/src/port/berry_conf.h b/lib/lib_div/Berry-0.1.10/src/port/berry_conf.h index aee1214aa..5228f567f 100644 --- a/lib/lib_div/Berry-0.1.10/src/port/berry_conf.h +++ b/lib/lib_div/Berry-0.1.10/src/port/berry_conf.h @@ -8,14 +8,14 @@ #ifndef BERRY_CONF_H #define BERRY_CONF_H +#include + #ifdef __cplusplus extern "C" { #endif - extern void serial(const char *sp); - extern void serial3(const char *sp, uint32_t a, uint32_t b, uint32_t c); - extern void serial2s1(const char *sp, const char *a, const char *b, uint32_t c); extern int strncmp_PP(const char * str1P, const char * str2P, size_t size); + extern char * strchr_P(const char *s, int c); #ifdef __cplusplus } @@ -54,7 +54,11 @@ extern "C" { * runtime. Enable this macro can greatly optimize RAM usage. * Default: 1 **/ -#define BE_USE_PRECOMPILED_OBJECT 1 +#ifdef ESP8266 +#define BE_USE_PRECOMPILED_OBJECT 0 +#else +#define BE_USE_PRECOMPILED_OBJECT 0 // will enable later when stabilized +#endif /* Macro: BE_DEBUG_RUNTIME_INFO * Set runtime error debugging information. @@ -157,7 +161,7 @@ extern "C" { #define BE_USE_OS_MODULE 0 #define BE_USE_SYS_MODULE 0 #define BE_USE_DEBUG_MODULE 0 -#define BE_USE_GC_MODULE 0 +#define BE_USE_GC_MODULE 1 /* Macro: BE_EXPLICIT_XXX * If these macros are defined, the corresponding function will diff --git a/tasmota/berry/tasmota.be b/tasmota/berry/tasmota.be new file mode 100644 index 000000000..3393ea1bd --- /dev/null +++ b/tasmota/berry/tasmota.be @@ -0,0 +1,157 @@ +import json import string +tasmota = module("tasmota") +def charsinstring(s,c) + for i:0..size(s)-1 + for j:0..size(c)-1 + if s[i] == c[j] return i end + end + end + return -1 +end + +tasmota._eqstr=/s1,s2-> str(s1) == str(s2) +tasmota._neqstr=/s1,s2-> str(s1) != str(s2) +tasmota._eq=/f1,f2-> real(f1) == real(f2) +tasmota._neq=/f1,f2-> real(f1) != real(f2) +tasmota._gt=/f1,f2-> real(f1) > real(f2) +tasmota._lt=/f1,f2-> real(f1) < real(f2) +tasmota._ge=/f1,f2-> real(f1) >= real(f2) +tasmota._le=/f1,f2-> real(f1) <= real(f2) +tasmota._op=[ + ['==',tasmota._eqstr], + ['!==',tasmota._neqstr], + ['=',tasmota._eq], + ['!=',tasmota._neq], + ['>=',tasmota._ge], + ['<=',tasmota._le], + ['>',tasmota._gt], + ['<',tasmota._lt], +] +tasmota._operators="=<>!|" + +# split the item when there is an operator, returns a list of (left,op,right) +# ex: "Dimmer>50" -> ["Dimmer",tasmota_gt,"50"] +tasmota.find_op = def (item) + pos = charsinstring(item, tasmota._operators) + if pos>=0 + op_split = string.split(item,pos) + #print(op_split) + op_left = op_split[0] + op_rest = op_split[1] + # iterate through operators + for op:tasmota._op + if string.find(op_rest,op[0]) == 0 + op_func = op[1] + op_right = string.split(op_rest,size(op[0]))[1] + return [op_left,op_func,op_right] + end + end + end + return [item, nil, nil] +end + + +def findkeyi(m,keyi) + keyu=string.toupper(keyi) + if classof(m) == map + for k:m.keys() + if string.toupper(k)==keyu || keyi=='?' + return k + end + end + end +end + + +tasmota.try_rule = def (ev, rule, f) + rl_list = tasmota.find_op(rule) + e=ev + rl=string.split(rl_list[0],'#') + for it:rl + found=findkeyi(e,it) + if found == nil + return false + end + e=e[found] + end + # check if condition is true + if rl_list[1] + # did we find a function + if !rl_list[1](e,rl_list[2]) + # condition is not met + return false + end + end + f(e,ev) + return true +end +tasmota_rules={} +tasmota.rule = def(pat,f) tasmota_rules[pat] = f end + +tasmota.exec_rules = def (ev_json) + ev = json.load(ev_json) + if ev == nil + log("ERROR, bad json: "+ev_json, 3) + end + ret = false + for r:tasmota_rules.keys() + ret = tasmota.try_rule(ev,r,tasmota_rules[r]) || ret + end + return ret +end + +#- Test +################################################################# + +def log(m) print(m) end +def my_rule(e,ev) log("e1="+str(e)+" e2="+str(ev)) end + +tasmota.rule("ZBRECEIVED#?#LINKQUALITY", my_rule) +tasmota.rule("ZBRECEIVED#0x1234", my_rule) + +tasmota.rule("ZBRECEIVED#?#LINKQUALITY<10", my_rule) + +tasmota.rule("Dimmer>50", my_rule) +tasmota.rule("Dimmer=01", my_rule) + + +tasmota.rule("Color==022600", my_rule) + +tasmota.exec_rules('{"Color":"022600"}') + +tasmota.exec_rules('{"ZbReceived":{"0x1234":{"Device":"0x1234","LinkQuality":50}}}') + +tasmota.exec_rules('{"Dimmer":10}') + + + +# tasmota.rule("DIMMER", my_rule) +# tasmota.rule("DIMMER#DATA#DATA", my_rule) +# tasmota.exec_rules('{"Dimmer":{"Data":50}}') + + +-# + +#- +tasmota.find_op("aaa") +tasmota.find_op("aaa>50") +-# + +#- +# Example of backlog equivalent + +def backlog(cmd_list) + delay_backlog = tasmota.getoption(34) # in milliseconds + delay = 0 + for cmd:cmd_list + tasmota.timer(delay, /-> tasmota.cmd(cmd)) + delay = delay + delay_backlog + end +end + + +br def backlog(cmd_list) delay_backlog = tasmota.getoption(34) delay = 0 for cmd:cmd_list tasmota.timer(delay, /-> tasmota.cmd(cmd)) delay = delay + delay_backlog end end + +br backlog( [ "Power 0", "Status 4", "Power 1" ] ) + +-# \ No newline at end of file diff --git a/tasmota/support_command.ino b/tasmota/support_command.ino index 139631e74..065fabbcc 100644 --- a/tasmota/support_command.ino +++ b/tasmota/support_command.ino @@ -844,35 +844,67 @@ void CmndSetoption(void) { CmndSetoptionBase(1); } +// Code called by SetOption and by Berrt +bool SetoptionDecode(uint32_t index, uint32_t *ptype, uint32_t *pindex) { + if (index < 146) { + if (index <= 31) { // SetOption0 .. 31 = Settings.flag + *ptype = 2; + *pindex = index; // 0 .. 31 + } + else if (index <= 49) { // SetOption32 .. 49 = Settings.param + *ptype = 1; + *pindex = index -32; // 0 .. 17 (= PARAM8_SIZE -1) + } + else if (index <= 81) { // SetOption50 .. 81 = Settings.flag3 + *ptype = 3; + *pindex = index -50; // 0 .. 31 + } + else if (index <= 113) { // SetOption82 .. 113 = Settings.flag4 + *ptype = 4; + *pindex = index -82; // 0 .. 31 + } + else { // SetOption114 .. 145 = Settings.flag5 + *ptype = 5; + *pindex = index -114; // 0 .. 31 + } + return true; + } + return false; +} + +uint32_t GetOption(uint32_t index) { + uint32_t ptype; + uint32_t pindex; + if (SetoptionDecode(index, &ptype, &pindex)) { + if (1 == ptype) { + return Settings.param[pindex]; + } else { + uint32_t flag = Settings.flag.data; + if (3 == ptype) { + flag = Settings.flag3.data; + } + else if (4 == ptype) { + flag = Settings.flag4.data; + } + else if (5 == ptype) { + flag = Settings.flag5.data; + } + return bitRead(flag, pindex); + } + } else { + return 0; // fallback + } +} + void CmndSetoptionBase(bool indexed) { // Allow a command to access a single SetOption by it's command name // indexed = 0 : No index will be returned attached to the command // {"ClockDirection":"OFF"} // indexed = 1 : The SetOption index will be returned with the command // {"SetOption16":"OFF"} - if (XdrvMailbox.index < 146) { - uint32_t ptype; - uint32_t pindex; - if (XdrvMailbox.index <= 31) { // SetOption0 .. 31 = Settings.flag - ptype = 2; - pindex = XdrvMailbox.index; // 0 .. 31 - } - else if (XdrvMailbox.index <= 49) { // SetOption32 .. 49 = Settings.param - ptype = 1; - pindex = XdrvMailbox.index -32; // 0 .. 17 (= PARAM8_SIZE -1) - } - else if (XdrvMailbox.index <= 81) { // SetOption50 .. 81 = Settings.flag3 - ptype = 3; - pindex = XdrvMailbox.index -50; // 0 .. 31 - } - else if (XdrvMailbox.index <= 113) { // SetOption82 .. 113 = Settings.flag4 - ptype = 4; - pindex = XdrvMailbox.index -82; // 0 .. 31 - } - else { // SetOption114 .. 145 = Settings.flag5 - ptype = 5; - pindex = XdrvMailbox.index -114; // 0 .. 31 - } + uint32_t ptype; + uint32_t pindex; + if (SetoptionDecode(XdrvMailbox.index, &ptype, &pindex)) { if (XdrvMailbox.payload >= 0) { if (1 == ptype) { // SetOption32 .. 49 diff --git a/tasmota/tasmota.h b/tasmota/tasmota.h index c4daf839b..34e2a562a 100644 --- a/tasmota/tasmota.h +++ b/tasmota/tasmota.h @@ -370,10 +370,10 @@ enum DevGroupShareItem { DGR_SHARE_POWER = 1, DGR_SHARE_LIGHT_BRI = 2, DGR_SHARE enum CommandSource { SRC_IGNORE, SRC_MQTT, SRC_RESTART, SRC_BUTTON, SRC_SWITCH, SRC_BACKLOG, SRC_SERIAL, SRC_WEBGUI, SRC_WEBCOMMAND, SRC_WEBCONSOLE, SRC_PULSETIMER, SRC_TIMER, SRC_RULE, SRC_MAXPOWER, SRC_MAXENERGY, SRC_OVERTEMP, SRC_LIGHT, SRC_KNX, SRC_DISPLAY, SRC_WEMO, SRC_HUE, SRC_RETRY, SRC_REMOTE, SRC_SHUTTER, - SRC_THERMOSTAT, SRC_CHAT, SRC_TCL, SRC_MAX }; + SRC_THERMOSTAT, SRC_CHAT, SRC_TCL, SRC_BERRY, SRC_MAX }; const char kCommandSource[] PROGMEM = "I|MQTT|Restart|Button|Switch|Backlog|Serial|WebGui|WebCommand|WebConsole|PulseTimer|" "Timer|Rule|MaxPower|MaxEnergy|Overtemp|Light|Knx|Display|Wemo|Hue|Retry|Remote|Shutter|" - "Thermostat|Chat|TCL"; + "Thermostat|Chat|TCL|Berry"; const uint8_t kDefaultRfCode[9] PROGMEM = { 0x21, 0x16, 0x01, 0x0E, 0x03, 0x48, 0x2E, 0x1A, 0x00 }; diff --git a/tasmota/xdrv_52_berry.ino b/tasmota/xdrv_52_berry.ino index 04d73bf29..ce0f0b2b6 100644 --- a/tasmota/xdrv_52_berry.ino +++ b/tasmota/xdrv_52_berry.ino @@ -19,7 +19,6 @@ #ifdef USE_BERRY -// #ifdef ESP32 #define XDRV_52 52 @@ -67,6 +66,7 @@ void (* const BerryCommand[])(void) PROGMEM = { class BerrySupport { public: bvm *vm = nullptr; // berry vm + bool rules_busy = false; // are we already processing rules, avoid infinite loop #ifdef USE_BERRY_ASYNC // Alternate stack for the Berry VM uint8_t *stack_alloc = nullptr; // stack malloc address @@ -99,25 +99,126 @@ void checkBeTop(void) { /*********************************************************************************************\ * Native functions mapped to Berry functions * + * log(msg:string [,log_level:int]) ->nil + * + * import tasmota + * + * tasmota.getfreeheap() -> int + * tasmota.publish(topic:string, payload:string[, retain:bool]) -> nil + * tasmota.cmd(command:string) -> string + * tasmota.getoption(index:int) -> int + * tasmota.millis([delay:int]) -> int + * tasmota.timereached(timer:int) -> bool + * \*********************************************************************************************/ -// Berry: `log(string) -> nil` -// Logs the string at LOG_LEVEL_INFO (loglevel=2) -int32_t l_logInfo(struct bvm *vm) { - int32_t top = be_top(vm); // Get the number of arguments - if (top == 1 && be_isstring(vm, 1)) { // only 1 argument of type string accepted - const char * msg = be_tostring(vm, 1); - AddLog(LOG_LEVEL_INFO, D_LOG_BERRY "LOG: %s", msg); - be_return(vm); // Return +extern "C" { + // Berry: `log(msg:string [,log_level:int]) ->nil` + // Logs the string at LOG_LEVEL_INFO (loglevel=2) + int32_t l_logInfo(struct bvm *vm); + int32_t l_logInfo(struct bvm *vm) { + int32_t top = be_top(vm); // Get the number of arguments + if (top >= 1 && be_isstring(vm, 1)) { // only 1 argument of type string accepted + const char * msg = be_tostring(vm, 1); + uint32_t log_level = LOG_LEVEL_INFO; + if (top >= 2 && be_isint(vm, 2)) { + log_level = be_toint(vm, 2); + if (log_level > LOG_LEVEL_DEBUG_MORE) { log_level = LOG_LEVEL_DEBUG_MORE; } + } + AddLog(log_level, PSTR("%s"), msg); + be_return(vm); // Return + } + be_return_nil(vm); // Return nil when something goes wrong + } + + // Berry: `getFreeHeap() -> int` + // ESP object + int32_t l_getFreeHeap(bvm *vm); + int32_t l_getFreeHeap(bvm *vm) { + be_pushint(vm, ESP.getFreeHeap()); + be_return(vm); + } + + // Berry: `tasmota.publish(topic, payload [,retain]) -> nil`` + // + int32_t l_publish(struct bvm *vm); + int32_t l_publish(struct bvm *vm) { + int32_t top = be_top(vm); // Get the number of arguments + if (top >= 2 && be_isstring(vm, 1) && be_isstring(vm, 2)) { // 2 mandatory string arguments + if (top == 2 || (top == 3 && be_isbool(vm, 3))) { // 3rd optional argument must be bool + const char * topic = be_tostring(vm, 1); + const char * payload = be_tostring(vm, 2); + bool retain = false; + if (top == 3) { + retain = be_tobool(vm, 3); + } + strlcpy(TasmotaGlobal.mqtt_data, payload, sizeof(TasmotaGlobal.mqtt_data)); + MqttPublish(topic, retain); + be_return(vm); // Return + } + } + be_return_nil(vm); // Return nil when something goes wrong + } + + // Berry: `tasmota.cmd(command:string) -> string` + // + int32_t l_cmd(struct bvm *vm); + int32_t l_cmd(struct bvm *vm) { + int32_t top = be_top(vm); // Get the number of arguments + if (top == 1 && be_isstring(vm, 1)) { // only 1 argument of type string accepted + const char * command = be_tostring(vm, 1); + ExecuteCommand(command, SRC_BERRY); + be_pushstring(vm, TasmotaGlobal.mqtt_data); + be_return(vm); // Return + } + be_return_nil(vm); // Return nil when something goes wrong + } + + // Berry: tasmota.millis([delay:int]) -> int + // + int32_t l_millis(struct bvm *vm); + int32_t l_millis(struct bvm *vm) { + int32_t top = be_top(vm); // Get the number of arguments + if (top == 0 || (top == 1 && be_isint(vm, 1))) { // only 1 argument of type string accepted + uint32_t delay = 0; + if (top == 1) { + delay = be_toint(vm, 1); + } + uint32_t ret_millis = millis() + delay; + be_pushint(vm, ret_millis); + be_return(vm); // Return + } + be_return_nil(vm); // Return nil when something goes wrong + } + + // Berry: tasmota.getoption(index:int) -> int + // + int32_t l_getoption(struct bvm *vm); + int32_t l_getoption(struct bvm *vm) { + int32_t top = be_top(vm); // Get the number of arguments + if (top == 1 && be_isint(vm, 1)) { + uint32_t opt = GetOption(be_toint(vm, 1)); + be_pushint(vm, opt); + be_return(vm); // Return + } + be_return_nil(vm); // Return nil when something goes wrong + } + + // Berry: tasmota.timereached(timer:int) -> bool + // + int32_t l_timereached(struct bvm *vm); + int32_t l_timereached(struct bvm *vm) { + int32_t top = be_top(vm); // Get the number of arguments + if (top == 1 && be_isint(vm, 1)) { // only 1 argument of type string accepted + uint32_t timer = be_toint(vm, 1); + bool reached = TimeReached(timer); + be_pushbool(vm, reached); + be_return(vm); // Return + } + be_return_nil(vm); // Return nil when something goes wrong } - be_return_nil(vm); // Return nil when something goes wrong } -// Berry: `getFreeHeap() -> int` -// ESP object -int32_t l_getFreeHeap(bvm *vm) { - be_pushint(vm, ESP.getFreeHeap()); - be_return(vm); -} + // Berry: `printStack() -> nul` // print stack pointer @@ -128,7 +229,7 @@ int32_t l_getFreeHeap(bvm *vm) { // } // Yield -int32_t l_yield(bvm *vm) { +int32_t l_yield(struct bvm *vm) { #ifdef USE_BERRY_ASYNC if (berry.ta_cont_ok) { // if no ta_cont address, then ignore if (setjmp(berry.vm_cont) == 0) { // record the current state @@ -157,25 +258,80 @@ int32_t l_yield(bvm *vm) { // callBerryFunctionVoid(berry.fname); // } +bool callBerryRule(void) { + if (berry.rules_busy) { return false; } + berry.rules_busy = true; + char * json_event = TasmotaGlobal.mqtt_data; + bool serviced = false; + + checkBeTop(); + be_getglobal(berry.vm, "_exec_rules"); + if (!be_isnil(berry.vm, -1)) { + + // { + // String event_saved = TasmotaGlobal.mqtt_data; + // // json_event = {"INA219":{"Voltage":4.494,"Current":0.020,"Power":0.089}} + // // json_event = {"System":{"Boot":1}} + // // json_event = {"SerialReceived":"on"} - invalid but will be expanded to {"SerialReceived":{"Data":"on"}} + // char *p = strchr(json_event, ':'); + // if ((p != NULL) && !(strchr(++p, ':'))) { // Find second colon + // event_saved.replace(F(":"), F(":{\"Data\":")); + // event_saved += F("}"); + // // event_saved = {"SerialReceived":{"Data":"on"}} + // } + // be_pushstring(berry.vm, event_saved.c_str()); + // } + be_pushstring(berry.vm, TasmotaGlobal.mqtt_data); + int ret = be_pcall(berry.vm, 1); + serviced = be_tobool(berry.vm, 1); + AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_BERRY "Event (%s) serviced=%d"), TasmotaGlobal.mqtt_data, serviced); + be_pop(berry.vm, 2); // remove function object + } else { + be_pop(berry.vm, 1); // remove nil object + } + checkBeTop(); + berry.rules_busy = false; + + return serviced; // TODO event not handled +} + +// void callBerryMqttData(void) { +// AddLog(LOG_LEVEL_INFO, D_LOG_BERRY "callBerryMqttData"); +// if (nullptr == berry.vm) { return; } +// if (XdrvMailbox.data_len < 1) { +// return; +// } +// const char * topic = XdrvMailbox.topic; +// const char * payload = XdrvMailbox.data; + +// checkBeTop(); +// be_getglobal(berry.vm, "mqtt_data_dispatch"); +// if (!be_isnil(berry.vm, -1)) { +// be_pushstring(berry.vm, topic); +// be_pushstring(berry.vm, payload); +// be_pcall(berry.vm, 0); +// be_pop(berry.vm, 3); // remove function object +// } else { +// be_pop(berry.vm, 1); // remove nil object +// } +// checkBeTop(); +// } + // call a function (if exists) of type void -> void void callBerryFunctionVoid(const char * fname) { if (nullptr == berry.vm) { return; } checkBeTop(); be_getglobal(berry.vm, fname); if (!be_isnil(berry.vm, -1)) { - // AddLog(LOG_LEVEL_DEBUG, D_LOG_BERRY "Calling '%s'", fname); be_pcall(berry.vm, 0); - be_pop(berry.vm, 1); // remove function object - } else { - // AddLog(LOG_LEVEL_DEBUG, D_LOG_BERRY "Function '%s' not found", fname); - be_pop(berry.vm, 1); // remove nil object } + be_pop(berry.vm, 1); // remove function or nil object checkBeTop(); } void test_input(void) { int i = 0; - AddLog(LOG_LEVEL_INFO, "test_input stack = 0x%08X", &i); + AddLog(LOG_LEVEL_INFO, PSTR("test_input stack = 0x%08X"), &i); callBerryFunctionVoid("noop"); } @@ -217,7 +373,7 @@ int32_t callTrampoline(void *func) { // ---------------------------------- // the call has completed normally, and `yield` was not called berry.ta_cont_ok = false; - AddLog(LOG_LEVEL_INFO, "Trampo: old stack restored"); + AddLog(LOG_LEVEL_INFO, PSTR("Trampo: old stack restored")); // printStack(); } else { // WARNING @@ -229,7 +385,7 @@ int32_t callTrampoline(void *func) { // printStack(); berry.ta_cont_ok = true; // Berry can call back Tasmota thread callBerryFunctionVoid("noop"); - AddLog(LOG_LEVEL_INFO, "Trampo: after callBerryFunctionVoid"); + AddLog(LOG_LEVEL_INFO, PSTR("Trampo: after callBerryFunctionVoid")); // printStack(); longjmp(berry.ta_cont, -1); // this part is unreachable (longjmp does not return) @@ -254,23 +410,153 @@ int32_t callTrampoline(void *func) { * \*********************************************************************************************/ -const char berry_prog[] = +const char berry_prog[] PROGMEM = + "" //"def func(x) for i:1..x print('a') end end " //"def testreal() return str(1.2+1) end " //"def noop() log('noop before'); yield(); log('middle after'); yield(); log('noop after'); end " //"log(\"foobar\") " - // - def l_getFreeHeap() return 1234 end - // - def l_log(m) print(m) end - // Simulate Tasmota module - "class Tasmota " - "def getFreeHeap() return l_getFreeHeap() end " - // "def log(m) return l_log(m) end " - "end " - "tasmota = Tasmota() " + // auto-import modules + "import string " + "import json " + "import gc " + "import tasmota " + // import alias + "import tasmota as t " - "n = 1;" - "def every_second() n = n + 1; if (n % 100 == 10) log('foobar '+str(n)+' free_heap = '+str(tasmota.getFreeHeap())) end end; " + // add `charsinstring(s:string,c:string) -> int`` + // looks for any char in c, and return the position of the first chat + // or -1 if not found + "def charsinstring(s,c) " + "for i:0..size(s)-1 " + "for j:0..size(c)-1 " + "if s[i] == c[j] return i end " + "end " + "end " + "return -1 " + "end " + + // find a key in map, case insensitive, return actual key or nil if not found + "def findkeyi(m,keyi) " + "keyu=string.toupper(keyi) " + "if classof(m) == map " + "for k:m.keys() " + "if string.toupper(k)==keyu || keyi=='?' " + "return k " + "end " + "end " + "end " + "end " + + // Rules + + "tasmota._operators='=<>!' " // operators used in rules + // Rules comparisong functions + "tasmota._eqstr=/s1,s2-> str(s1) == str(s2) " + "tasmota._neqstr=/s1,s2-> str(s1) != str(s2) " + "tasmota._eq=/f1,f2-> real(f1) == real(f2) " + "tasmota._neq=/f1,f2-> real(f1) != real(f2) " + "tasmota._gt=/f1,f2-> real(f1) > real(f2) " + "tasmota._lt=/f1,f2-> real(f1) < real(f2) " + "tasmota._ge=/f1,f2-> real(f1) >= real(f2) " + "tasmota._le=/f1,f2-> real(f1) <= real(f2) " + + "tasmota._op=[" + "['==',tasmota._eqstr]," + "['!==',tasmota._neqstr]," + "['=',tasmota._eq]," + "['!=',tasmota._neq]," + "['>=',tasmota._ge]," + "['<=',tasmota._le]," + "['>',tasmota._gt]," + "['<',tasmota._lt]," + "] " + "tasmota_rules={} " + "tasmota.rule = def(pat,f) tasmota_rules[pat] = f end " + + // # split the item when there is an operator, returns a list of (left,op,right) + // # ex: "Dimmer>50" -> ["Dimmer",tasmota_gt,"50"] + "tasmota.find_op = def (item) " + "pos = charsinstring(item, tasmota._operators) " + "if pos>=0 " + "op_split = string.split(item,pos) " + // #print(op_split) + "op_left = op_split[0] " + "op_rest = op_split[1] " + // # iterate through operators + "for op:tasmota._op " + "if string.find(op_rest,op[0]) == 0 " + "op_func = op[1] " + "op_right = string.split(op_rest,size(op[0]))[1] " + "return [op_left,op_func,op_right] " + "end " + "end " + "end " + "return [item, nil, nil] " + "end " + + // Rules trigger if match. return true if match, false if not + // Note: condition is not yet managed + "tasmota.try_rule = def (ev, rule, f) " + "rl_list = tasmota.find_op(rule) " + "e=ev " + "rl=string.split(rl_list[0],'#') " + "for it:rl " + "found=findkeyi(e,it) " + "if found == nil " + "return false " + "end " + "e=e[found] " + "end " + // # check if condition is true + "if rl_list[1] " + // # did we find a function + "if !rl_list[1](e,rl_list[2]) " + // # condition is not met + "return false " + "end " + "end " + "f(e,ev) " + "return true " + "end " + // Run rules, i.e. check each individual rule + // Returns true if at least one rule matched, false if none + "tasmota.exec_rules = def (ev_json) " + "ev = json.load(ev_json) " + "ret = false " + "if ev == nil " + "log('BRY: ERROR, bad json: '+ev_json, 3) " + "end " + "for r:tasmota_rules.keys() " + "ret = tasmota.try_rule(ev,r,tasmota_rules[r]) || ret " + "end " + "return ret " + "end " + // Not sure how to run `tasmota.exec_rules` from C code, so alias with `_exec_rules()`` + "def _exec_rules(e) return tasmota.exec_rules(e) end " + + // Timers + "tasmota_timers=[] " + "tasmota.timer = def (delay,f) tasmota_timers.push([tasmota.millis(delay),f]) end " + + "def _run_deferred() " + "i=0 " + "while ion("/" WEB_HANDLE_SCRIPT, HandleScriptConfiguration); - // Webserver->on("/ta",HTTP_POST, HandleScriptTextareaConfiguration); - // Webserver->on("/exs", HTTP_POST,[]() { Webserver->sendHeader("Location","/exs");Webserver->send(303);}, script_upload_start); - // Webserver->on("/exs", HTTP_GET, ScriptExecuteUploadSuccess); break; #endif // USE_WEBSERVER case FUNC_SAVE_BEFORE_RESTART: - // if (bitRead(Settings.rule_enabled, 0)) { - // Run_Scripter(">R", 2, 0); - // Scripter_save_pvars(); - // } break; case FUNC_MQTT_DATA: + // callBerryMqttData(); break; case FUNC_WEB_SENSOR: break; @@ -542,5 +823,4 @@ bool Xdrv52(uint8_t function) return result; } -// #endif // ESP32 #endif // USE_BERRY diff --git a/tasmota/xdrv_interface.ino b/tasmota/xdrv_interface.ino index 77c93c6da..f95c0652f 100644 --- a/tasmota/xdrv_interface.ino +++ b/tasmota/xdrv_interface.ino @@ -1081,7 +1081,14 @@ void XsnsDriverState(void) bool XdrvRulesProcess(void) { +#ifdef USE_BERRY + // events are passed to both Rules engine AND Berry engine + bool rule_handled = XdrvCallDriver(10, FUNC_RULES_PROCESS); + bool berry_handled = XdrvCallDriver(52, FUNC_RULES_PROCESS); + return rule_handled || berry_handled; +#else return XdrvCallDriver(10, FUNC_RULES_PROCESS); +#endif } #ifdef USE_DEBUG_DRIVER From 9e0df6ce7551fe436992eeb9a394a1ed7ef8b35b Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sat, 13 Feb 2021 14:51:52 +0100 Subject: [PATCH 06/27] IRremoteESP8266 library from v2.7.14 to v2.7.15 --- CHANGELOG.md | 1 + .../docs/doxygen/html/annotated.html | 178 - .../html/classIRTcl112Ac__coll__graph.map | 4 - .../html/classIRTcl112Ac__coll__graph.md5 | 1 - .../html/classIRTcl112Ac__coll__graph.png | Bin 2945 -> 0 bytes .../html/classIRTechnibelAc__coll__graph.map | 4 - .../html/classIRTechnibelAc__coll__graph.md5 | 1 - .../html/classIRTechnibelAc__coll__graph.png | Bin 3199 -> 0 bytes .../html/classIRTecoAc__coll__graph.map | 4 - .../html/classIRTecoAc__coll__graph.md5 | 1 - .../html/classIRTecoAc__coll__graph.png | Bin 3054 -> 0 bytes .../html/classIRToshibaAC__coll__graph.map | 4 - .../html/classIRToshibaAC__coll__graph.md5 | 1 - .../html/classIRToshibaAC__coll__graph.png | Bin 3399 -> 0 bytes .../html/classIRTranscoldAc-members.html | 118 - .../html/classIRTranscoldAc__coll__graph.map | 4 - .../html/classIRTranscoldAc__coll__graph.md5 | 1 - .../html/classIRTranscoldAc__coll__graph.png | Bin 3498 -> 0 bytes .../docs/doxygen/html/ir__Technibel_8h.html | 704 --- .../doxygen/html/ir__Technibel_8h_source.html | 328 -- .../docs/doxygen/html/search/all_1.js | 30 - .../docs/doxygen/html/search/all_11.js | 6 - .../docs/doxygen/html/search/all_17.js | 12 - .../docs/doxygen/html/search/all_1a.js | 7 - .../docs/doxygen/html/search/all_1b.js | 4 - .../docs/doxygen/html/search/all_4.js | 136 - .../docs/doxygen/html/search/all_5.js | 39 - .../docs/doxygen/html/search/all_8.js | 36 - .../docs/doxygen/html/search/all_9.js | 198 - .../docs/doxygen/html/search/all_c.js | 19 - .../docs/doxygen/html/search/classes_0.js | 6 - .../docs/doxygen/html/search/classes_1.js | 7 - .../docs/doxygen/html/search/classes_2.js | 13 - .../docs/doxygen/html/search/classes_3.js | 4 - .../docs/doxygen/html/search/classes_4.js | 5 - .../docs/doxygen/html/search/classes_5.js | 8 - .../docs/doxygen/html/search/classes_6.js | 57 - .../docs/doxygen/html/search/classes_7.js | 4 - .../docs/doxygen/html/search/classes_8.js | 4 - .../docs/doxygen/html/search/classes_9.js | 11 - .../docs/doxygen/html/search/classes_a.js | 4 - .../docs/doxygen/html/search/classes_b.js | 4 - .../docs/doxygen/html/search/classes_c.js | 7 - .../docs/doxygen/html/search/classes_d.js | 4 - .../docs/doxygen/html/search/classes_e.js | 4 - .../docs/doxygen/html/search/enums_5.js | 4 - .../docs/doxygen/html/search/enums_7.js | 6 - .../docs/doxygen/html/search/enumvalues_3.js | 6 - .../docs/doxygen/html/search/files_0.js | 7 - .../docs/doxygen/html/search/files_1.js | 8 - .../docs/doxygen/html/search/files_2.js | 4 - .../docs/doxygen/html/search/files_3.js | 115 - .../docs/doxygen/html/search/files_4.js | 4 - .../docs/doxygen/html/search/files_5.js | 4 - .../docs/doxygen/html/search/files_6.js | 4 - .../docs/doxygen/html/search/functions_1.js | 15 - .../docs/doxygen/html/search/functions_15.js | 4 - .../docs/doxygen/html/search/functions_17.js | 4 - .../docs/doxygen/html/search/functions_4.js | 103 - .../docs/doxygen/html/search/functions_a.js | 4 - .../docs/doxygen/html/search/functions_b.js | 7 - .../docs/doxygen/html/search/functions_d.js | 4 - .../docs/doxygen/html/search/functions_f.js | 5 - .../docs/doxygen/html/search/namespaces_0.js | 4 - .../docs/doxygen/html/search/namespaces_1.js | 5 - .../docs/doxygen/html/search/namespaces_2.js | 4 - .../docs/doxygen/html/search/pages_0.js | 4 - .../docs/doxygen/html/search/pages_1.js | 5 - .../docs/doxygen/html/search/pages_2.js | 4 - .../docs/doxygen/html/search/variables_1.js | 7 - .../docs/doxygen/html/search/variables_13.js | 10 - .../docs/doxygen/html/search/variables_14.js | 8 - .../docs/doxygen/html/search/variables_15.js | 8 - .../docs/doxygen/html/search/variables_16.js | 4 - .../docs/doxygen/html/search/variables_2.js | 13 - .../docs/doxygen/html/search/variables_4.js | 14 - .../docs/doxygen/html/search/variables_7.js | 9 - .../docs/doxygen/html/search/variables_a.js | 9 - .../docs/doxygen/html/search/variables_f.js | 6 - .../examples/Web-AC-control/data/favicon.ico | Bin 16446 -> 0 bytes .../Web-AC-control/data/level_1_off.svg | 49 - .../Web-AC-control/data/level_1_on.svg | 49 - .../Web-AC-control/data/level_2_off.svg | 49 - .../Web-AC-control/data/level_2_on.svg | 49 - .../Web-AC-control/data/level_3_off.svg | 49 - .../Web-AC-control/data/level_3_on.svg | 49 - .../Web-AC-control/data/level_4_off.svg | 49 - .../Web-AC-control/data/level_4_on.svg | 49 - .../examples/Web-AC-control/data/ui.html | 109 - .../examples/Web-AC-control/data/ui.js | 132 - .../IRremoteESP8266-2.7.14/src/ir_Technibel.h | 166 - .../IRremoteESP8266-2.7.14/src/ir_Teco.h | 176 - .../.github/CONTRIBUTING.md | 0 .../.github/Contributors.md | 0 .../.github/issue_template.md | 0 .../.gitignore | 0 .../.gitmodules | 0 .../.style.yapf | 0 .../.travis.yml | 0 .../CPPLINT.cfg | 0 .../Doxyfile | 0 .../LICENSE.txt | 0 .../README.md | 6 +- .../README_de.md | 6 +- .../README_fr.md | 6 +- .../ReleaseNotes.md | 27 + .../SupportedProtocols.md | 12 +- .../assets/images/banner.svg | 142 + .../assets/images/logo.svg | 50 + .../docs/README.md | 0 .../docs/README_de.md | 0 .../docs/README_fr.md | 0 .../docs/_config.yml | 0 .../docs/doxygen/html/IRac_8cpp.html | 0 .../docs/doxygen/html/IRac_8h.html | 0 .../docs/doxygen/html/IRac_8h_source.html | 132 +- .../docs/doxygen/html/IRrecv_8cpp.html | 0 .../docs/doxygen/html/IRrecv_8h.html | 0 .../docs/doxygen/html/IRrecv_8h_source.html | 1304 ++--- .../docs/doxygen/html/IRremoteESP8266_8h.html | 91 +- .../html/IRremoteESP8266_8h_source.html | 1580 +++--- .../docs/doxygen/html/IRsend_8cpp.html | 0 .../docs/doxygen/html/IRsend_8h.html | 19 +- .../docs/doxygen/html/IRsend_8h_source.html | 1578 +++--- .../docs/doxygen/html/IRtext_8cpp.html | 0 .../docs/doxygen/html/IRtext_8h.html | 0 .../docs/doxygen/html/IRtext_8h_source.html | 0 .../docs/doxygen/html/IRtimer_8cpp.html | 0 .../docs/doxygen/html/IRtimer_8h.html | 0 .../docs/doxygen/html/IRtimer_8h_source.html | 0 .../docs/doxygen/html/IRutils_8cpp.html | 9 + .../docs/doxygen/html/IRutils_8h.html | 9 + .../docs/doxygen/html/IRutils_8h_source.html | 172 +- .../docs/doxygen/html/README_8md.html | 0 .../docs/doxygen/html/annotated.html | 183 + .../docs/doxygen/html/bc_s.png | Bin .../docs/doxygen/html/bdwn.png | Bin .../html/classIRAirwellAc-members.html | 0 .../docs/doxygen/html/classIRAirwellAc.html | 0 .../html/classIRAirwellAc__coll__graph.map | 0 .../html/classIRAirwellAc__coll__graph.md5 | 0 .../html/classIRAirwellAc__coll__graph.png | Bin .../doxygen/html/classIRAmcorAc-members.html | 0 .../docs/doxygen/html/classIRAmcorAc.html | 0 .../html/classIRAmcorAc__coll__graph.map | 0 .../html/classIRAmcorAc__coll__graph.md5 | 0 .../html/classIRAmcorAc__coll__graph.png | Bin .../doxygen/html/classIRArgoAC-members.html | 0 .../docs/doxygen/html/classIRArgoAC.html | 0 .../html/classIRArgoAC__coll__graph.map | 0 .../html/classIRArgoAC__coll__graph.md5 | 0 .../html/classIRArgoAC__coll__graph.png | Bin .../html/classIRCarrierAc64-members.html | 0 .../docs/doxygen/html/classIRCarrierAc64.html | 0 .../html/classIRCarrierAc64__coll__graph.map | 0 .../html/classIRCarrierAc64__coll__graph.md5 | 0 .../html/classIRCarrierAc64__coll__graph.png | Bin .../doxygen/html/classIRCoolixAC-members.html | 0 .../docs/doxygen/html/classIRCoolixAC.html | 0 .../html/classIRCoolixAC__coll__graph.map | 0 .../html/classIRCoolixAC__coll__graph.md5 | 0 .../html/classIRCoolixAC__coll__graph.png | Bin .../doxygen/html/classIRCoronaAc-members.html | 0 .../docs/doxygen/html/classIRCoronaAc.html | 0 .../html/classIRCoronaAc__coll__graph.map | 0 .../html/classIRCoronaAc__coll__graph.md5 | 0 .../html/classIRCoronaAc__coll__graph.png | Bin .../html/classIRDaikin128-members.html | 0 .../docs/doxygen/html/classIRDaikin128.html | 0 .../html/classIRDaikin128__coll__graph.map | 0 .../html/classIRDaikin128__coll__graph.md5 | 0 .../html/classIRDaikin128__coll__graph.png | Bin .../html/classIRDaikin152-members.html | 0 .../docs/doxygen/html/classIRDaikin152.html | 0 .../html/classIRDaikin152__coll__graph.map | 0 .../html/classIRDaikin152__coll__graph.md5 | 0 .../html/classIRDaikin152__coll__graph.png | Bin .../html/classIRDaikin160-members.html | 0 .../docs/doxygen/html/classIRDaikin160.html | 0 .../html/classIRDaikin160__coll__graph.map | 0 .../html/classIRDaikin160__coll__graph.md5 | 0 .../html/classIRDaikin160__coll__graph.png | Bin .../html/classIRDaikin176-members.html | 0 .../docs/doxygen/html/classIRDaikin176.html | 0 .../html/classIRDaikin176__coll__graph.map | 0 .../html/classIRDaikin176__coll__graph.md5 | 0 .../html/classIRDaikin176__coll__graph.png | Bin .../doxygen/html/classIRDaikin2-members.html | 0 .../docs/doxygen/html/classIRDaikin2.html | 0 .../html/classIRDaikin216-members.html | 0 .../docs/doxygen/html/classIRDaikin216.html | 0 .../html/classIRDaikin216__coll__graph.map | 0 .../html/classIRDaikin216__coll__graph.md5 | 0 .../html/classIRDaikin216__coll__graph.png | Bin .../html/classIRDaikin2__coll__graph.map | 0 .../html/classIRDaikin2__coll__graph.md5 | 0 .../html/classIRDaikin2__coll__graph.png | Bin .../doxygen/html/classIRDaikin64-members.html | 0 .../docs/doxygen/html/classIRDaikin64.html | 0 .../html/classIRDaikin64__coll__graph.map | 0 .../html/classIRDaikin64__coll__graph.md5 | 0 .../html/classIRDaikin64__coll__graph.png | Bin .../html/classIRDaikinESP-members.html | 0 .../docs/doxygen/html/classIRDaikinESP.html | 0 .../html/classIRDaikinESP__coll__graph.map | 0 .../html/classIRDaikinESP__coll__graph.md5 | 0 .../html/classIRDaikinESP__coll__graph.png | Bin .../html/classIRDelonghiAc-members.html | 0 .../docs/doxygen/html/classIRDelonghiAc.html | 0 .../html/classIRDelonghiAc__coll__graph.map | 0 .../html/classIRDelonghiAc__coll__graph.md5 | 0 .../html/classIRDelonghiAc__coll__graph.png | Bin .../html/classIRElectraAc-members.html | 0 .../docs/doxygen/html/classIRElectraAc.html | 0 .../html/classIRElectraAc__coll__graph.map | 0 .../html/classIRElectraAc__coll__graph.md5 | 0 .../html/classIRElectraAc__coll__graph.png | Bin .../html/classIRFujitsuAC-members.html | 0 .../docs/doxygen/html/classIRFujitsuAC.html | 0 .../html/classIRFujitsuAC__coll__graph.map | 0 .../html/classIRFujitsuAC__coll__graph.md5 | 0 .../html/classIRFujitsuAC__coll__graph.png | Bin .../html/classIRGoodweatherAc-members.html | 0 .../doxygen/html/classIRGoodweatherAc.html | 0 .../classIRGoodweatherAc__coll__graph.map | 0 .../classIRGoodweatherAc__coll__graph.md5 | 0 .../classIRGoodweatherAc__coll__graph.png | Bin .../doxygen/html/classIRGreeAC-members.html | 0 .../docs/doxygen/html/classIRGreeAC.html | 0 .../html/classIRGreeAC__coll__graph.map | 0 .../html/classIRGreeAC__coll__graph.md5 | 0 .../html/classIRGreeAC__coll__graph.png | Bin .../doxygen/html/classIRHaierAC-members.html | 0 .../docs/doxygen/html/classIRHaierAC.html | 0 .../html/classIRHaierACYRW02-members.html | 0 .../doxygen/html/classIRHaierACYRW02.html | 0 .../html/classIRHaierACYRW02__coll__graph.map | 0 .../html/classIRHaierACYRW02__coll__graph.md5 | 0 .../html/classIRHaierACYRW02__coll__graph.png | Bin .../html/classIRHaierAC__coll__graph.map | 0 .../html/classIRHaierAC__coll__graph.md5 | 0 .../html/classIRHaierAC__coll__graph.png | Bin .../html/classIRHitachiAc-members.html | 0 .../docs/doxygen/html/classIRHitachiAc.html | 0 .../html/classIRHitachiAc1-members.html | 0 .../docs/doxygen/html/classIRHitachiAc1.html | 0 .../html/classIRHitachiAc1__coll__graph.map | 0 .../html/classIRHitachiAc1__coll__graph.md5 | 0 .../html/classIRHitachiAc1__coll__graph.png | Bin .../html/classIRHitachiAc3-members.html | 0 .../docs/doxygen/html/classIRHitachiAc3.html | 0 .../html/classIRHitachiAc344-members.html | 0 .../doxygen/html/classIRHitachiAc344.html | 0 .../html/classIRHitachiAc344__coll__graph.map | 0 .../html/classIRHitachiAc344__coll__graph.md5 | 0 .../html/classIRHitachiAc344__coll__graph.png | Bin .../classIRHitachiAc344__inherit__graph.map | 0 .../classIRHitachiAc344__inherit__graph.md5 | 0 .../classIRHitachiAc344__inherit__graph.png | Bin .../html/classIRHitachiAc3__coll__graph.map | 0 .../html/classIRHitachiAc3__coll__graph.md5 | 0 .../html/classIRHitachiAc3__coll__graph.png | Bin .../html/classIRHitachiAc424-members.html | 0 .../doxygen/html/classIRHitachiAc424.html | 0 .../html/classIRHitachiAc424__coll__graph.map | 0 .../html/classIRHitachiAc424__coll__graph.md5 | 0 .../html/classIRHitachiAc424__coll__graph.png | Bin .../classIRHitachiAc424__inherit__graph.map | 0 .../classIRHitachiAc424__inherit__graph.md5 | 0 .../classIRHitachiAc424__inherit__graph.png | Bin .../html/classIRHitachiAc__coll__graph.map | 0 .../html/classIRHitachiAc__coll__graph.md5 | 0 .../html/classIRHitachiAc__coll__graph.png | Bin .../html/classIRKelvinatorAC-members.html | 0 .../doxygen/html/classIRKelvinatorAC.html | 0 .../html/classIRKelvinatorAC__coll__graph.map | 0 .../html/classIRKelvinatorAC__coll__graph.md5 | 0 .../html/classIRKelvinatorAC__coll__graph.png | Bin .../doxygen/html/classIRLgAc-members.html | 0 .../docs/doxygen/html/classIRLgAc.html | 0 .../doxygen/html/classIRLgAc__coll__graph.map | 0 .../doxygen/html/classIRLgAc__coll__graph.md5 | 0 .../doxygen/html/classIRLgAc__coll__graph.png | Bin .../doxygen/html/classIRMideaAC-members.html | 0 .../docs/doxygen/html/classIRMideaAC.html | 0 .../html/classIRMideaAC__coll__graph.map | 0 .../html/classIRMideaAC__coll__graph.md5 | 0 .../html/classIRMideaAC__coll__graph.png | Bin .../html/classIRMitsubishi112-members.html | 0 .../doxygen/html/classIRMitsubishi112.html | 0 .../classIRMitsubishi112__coll__graph.map | 0 .../classIRMitsubishi112__coll__graph.md5 | 0 .../classIRMitsubishi112__coll__graph.png | Bin .../html/classIRMitsubishi136-members.html | 0 .../doxygen/html/classIRMitsubishi136.html | 0 .../classIRMitsubishi136__coll__graph.map | 0 .../classIRMitsubishi136__coll__graph.md5 | 0 .../classIRMitsubishi136__coll__graph.png | Bin .../html/classIRMitsubishiAC-members.html | 34 +- .../doxygen/html/classIRMitsubishiAC.html | 85 +- .../html/classIRMitsubishiAC__coll__graph.map | 0 .../html/classIRMitsubishiAC__coll__graph.md5 | 0 .../html/classIRMitsubishiAC__coll__graph.png | Bin .../classIRMitsubishiHeavy152Ac-members.html | 0 .../html/classIRMitsubishiHeavy152Ac.html | 0 ...assIRMitsubishiHeavy152Ac__coll__graph.map | 0 ...assIRMitsubishiHeavy152Ac__coll__graph.md5 | 0 ...assIRMitsubishiHeavy152Ac__coll__graph.png | Bin .../classIRMitsubishiHeavy88Ac-members.html | 0 .../html/classIRMitsubishiHeavy88Ac.html | 0 ...lassIRMitsubishiHeavy88Ac__coll__graph.map | 0 ...lassIRMitsubishiHeavy88Ac__coll__graph.md5 | 0 ...lassIRMitsubishiHeavy88Ac__coll__graph.png | Bin .../html/classIRNeoclimaAc-members.html | 0 .../docs/doxygen/html/classIRNeoclimaAc.html | 0 .../html/classIRNeoclimaAc__coll__graph.map | 0 .../html/classIRNeoclimaAc__coll__graph.md5 | 0 .../html/classIRNeoclimaAc__coll__graph.png | Bin .../html/classIRPanasonicAc-members.html | 0 .../docs/doxygen/html/classIRPanasonicAc.html | 0 .../html/classIRPanasonicAc32-members.html | 0 .../doxygen/html/classIRPanasonicAc32.html | 0 .../classIRPanasonicAc32__coll__graph.map | 0 .../classIRPanasonicAc32__coll__graph.md5 | 0 .../classIRPanasonicAc32__coll__graph.png | Bin .../html/classIRPanasonicAc__coll__graph.map | 0 .../html/classIRPanasonicAc__coll__graph.md5 | 0 .../html/classIRPanasonicAc__coll__graph.png | Bin .../html/classIRSamsungAc-members.html | 0 .../docs/doxygen/html/classIRSamsungAc.html | 0 .../html/classIRSamsungAc__coll__graph.map | 0 .../html/classIRSamsungAc__coll__graph.md5 | 0 .../html/classIRSamsungAc__coll__graph.png | Bin .../doxygen/html/classIRSanyoAc-members.html | 0 .../docs/doxygen/html/classIRSanyoAc.html | 0 .../html/classIRSanyoAc__coll__graph.map | 0 .../html/classIRSanyoAc__coll__graph.md5 | 0 .../html/classIRSanyoAc__coll__graph.png | Bin .../doxygen/html/classIRSharpAc-members.html | 2 +- .../docs/doxygen/html/classIRSharpAc.html | 27 +- .../html/classIRSharpAc__coll__graph.map | 0 .../html/classIRSharpAc__coll__graph.md5 | 0 .../html/classIRSharpAc__coll__graph.png | Bin .../doxygen/html/classIRTcl112Ac-members.html | 48 +- .../docs/doxygen/html/classIRTcl112Ac.html | 228 +- .../html/classIRTcl112Ac__coll__graph.map | 5 + .../html/classIRTcl112Ac__coll__graph.md5 | 1 + .../html/classIRTcl112Ac__coll__graph.png | Bin 0 -> 5627 bytes .../html/classIRTechnibelAc-members.html | 58 +- .../docs/doxygen/html/classIRTechnibelAc.html | 311 +- .../html/classIRTechnibelAc__coll__graph.map | 5 + .../html/classIRTechnibelAc__coll__graph.md5 | 1 + .../html/classIRTechnibelAc__coll__graph.png | Bin 0 -> 6013 bytes .../doxygen/html/classIRTecoAc-members.html | 46 +- .../docs/doxygen/html/classIRTecoAc.html | 254 +- .../html/classIRTecoAc__coll__graph.map | 5 + .../html/classIRTecoAc__coll__graph.md5 | 1 + .../html/classIRTecoAc__coll__graph.png | Bin 0 -> 5539 bytes .../html/classIRToshibaAC-members.html | 32 +- .../docs/doxygen/html/classIRToshibaAC.html | 258 +- .../html/classIRToshibaAC__coll__graph.map | 5 + .../html/classIRToshibaAC__coll__graph.md5 | 1 + .../html/classIRToshibaAC__coll__graph.png | Bin 0 -> 6229 bytes .../html/classIRTranscoldAc-members.html | 112 + .../docs/doxygen/html/classIRTranscoldAc.html | 416 +- .../html/classIRTranscoldAc__coll__graph.map | 5 + .../html/classIRTranscoldAc__coll__graph.md5 | 1 + .../html/classIRTranscoldAc__coll__graph.png | Bin 0 -> 6296 bytes .../html/classIRTrotecESP-members.html | 0 .../docs/doxygen/html/classIRTrotecESP.html | 0 .../html/classIRTrotecESP__coll__graph.map | 0 .../html/classIRTrotecESP__coll__graph.md5 | 0 .../html/classIRTrotecESP__coll__graph.png | Bin .../doxygen/html/classIRVestelAc-members.html | 0 .../docs/doxygen/html/classIRVestelAc.html | 0 .../html/classIRVestelAc__coll__graph.map | 0 .../html/classIRVestelAc__coll__graph.md5 | 0 .../html/classIRVestelAc__coll__graph.png | Bin .../doxygen/html/classIRVoltas-members.html | 0 .../docs/doxygen/html/classIRVoltas.html | 0 .../html/classIRVoltas__coll__graph.map | 0 .../html/classIRVoltas__coll__graph.md5 | 0 .../html/classIRVoltas__coll__graph.png | Bin .../html/classIRWhirlpoolAc-members.html | 0 .../docs/doxygen/html/classIRWhirlpoolAc.html | 0 .../html/classIRWhirlpoolAc__coll__graph.map | 0 .../html/classIRWhirlpoolAc__coll__graph.md5 | 0 .../html/classIRWhirlpoolAc__coll__graph.png | Bin .../docs/doxygen/html/classIRac-members.html | 0 .../docs/doxygen/html/classIRac.html | 7 + .../doxygen/html/classIRac__coll__graph.map | 0 .../doxygen/html/classIRac__coll__graph.md5 | 0 .../doxygen/html/classIRac__coll__graph.png | Bin .../doxygen/html/classIRrecv-members.html | 56 +- .../docs/doxygen/html/classIRrecv.html | 175 +- .../doxygen/html/classIRrecv__coll__graph.map | 0 .../doxygen/html/classIRrecv__coll__graph.md5 | 0 .../doxygen/html/classIRrecv__coll__graph.png | Bin .../doxygen/html/classIRsend-members.html | 70 +- .../docs/doxygen/html/classIRsend.html | 110 +- .../doxygen/html/classIRtimer-members.html | 0 .../docs/doxygen/html/classIRtimer.html | 0 .../doxygen/html/classTimerMs-members.html | 0 .../docs/doxygen/html/classTimerMs.html | 0 .../html/classdecode__results-members.html | 0 .../doxygen/html/classdecode__results.html | 32 +- .../docs/doxygen/html/classes.html | 226 +- .../docs/doxygen/html/closed.png | Bin .../docs/doxygen/html/de-CH_8h.html | 0 .../docs/doxygen/html/de-CH_8h_source.html | 0 .../docs/doxygen/html/de-DE_8h.html | 0 .../docs/doxygen/html/de-DE_8h_source.html | 0 .../docs/doxygen/html/defaults_8h.html | 0 .../docs/doxygen/html/defaults_8h_source.html | 520 +- .../docs/doxygen/html/deprecated.html | 0 .../dir_49e56c817e5e54854c35e136979f97ca.html | 0 .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 6 + .../dir_84fe998d1eb06414cc389ad334e77e63.html | 0 .../docs/doxygen/html/doc.png | Bin .../docs/doxygen/html/doxygen.css | 0 .../docs/doxygen/html/doxygen.png | Bin .../docs/doxygen/html/doxygen__index_8md.html | 0 .../docs/doxygen/html/dynsections.js | 0 .../docs/doxygen/html/en-AU_8h.html | 0 .../docs/doxygen/html/en-AU_8h_source.html | 0 .../docs/doxygen/html/en-IE_8h.html | 0 .../docs/doxygen/html/en-IE_8h_source.html | 0 .../docs/doxygen/html/en-UK_8h.html | 0 .../docs/doxygen/html/en-UK_8h_source.html | 0 .../docs/doxygen/html/en-US_8h.html | 0 .../docs/doxygen/html/en-US_8h_source.html | 0 .../docs/doxygen/html/es-ES_8h.html | 0 .../docs/doxygen/html/es-ES_8h_source.html | 0 .../docs/doxygen/html/files.html | 182 +- .../docs/doxygen/html/folderclosed.png | Bin .../docs/doxygen/html/folderopen.png | Bin .../docs/doxygen/html/fr-FR_8h.html | 0 .../docs/doxygen/html/fr-FR_8h_source.html | 0 .../docs/doxygen/html/functions.html | 37 +- .../docs/doxygen/html/functions_a.html | 3 - .../docs/doxygen/html/functions_b.html | 4 +- .../docs/doxygen/html/functions_c.html | 2 +- .../docs/doxygen/html/functions_d.html | 6 + .../docs/doxygen/html/functions_e.html | 6 +- .../docs/doxygen/html/functions_f.html | 11 + .../docs/doxygen/html/functions_func.html | 0 .../docs/doxygen/html/functions_func_a.html | 0 .../docs/doxygen/html/functions_func_b.html | 4 +- .../docs/doxygen/html/functions_func_c.html | 2 +- .../docs/doxygen/html/functions_func_d.html | 6 + .../docs/doxygen/html/functions_func_e.html | 0 .../docs/doxygen/html/functions_func_f.html | 0 .../docs/doxygen/html/functions_func_g.html | 99 +- .../docs/doxygen/html/functions_func_h.html | 0 .../docs/doxygen/html/functions_func_i.html | 2 +- .../docs/doxygen/html/functions_func_k.html | 0 .../docs/doxygen/html/functions_func_l.html | 0 .../docs/doxygen/html/functions_func_m.html | 4 +- .../docs/doxygen/html/functions_func_n.html | 0 .../docs/doxygen/html/functions_func_o.html | 8 +- .../docs/doxygen/html/functions_func_p.html | 0 .../docs/doxygen/html/functions_func_r.html | 1 - .../docs/doxygen/html/functions_func_s.html | 20 +- .../docs/doxygen/html/functions_func_t.html | 20 +- .../docs/doxygen/html/functions_func_u.html | 3 - .../docs/doxygen/html/functions_func_v.html | 0 .../docs/doxygen/html/functions_func_w.html | 0 .../docs/doxygen/html/functions_func_~.html | 0 .../docs/doxygen/html/functions_g.html | 99 +- .../docs/doxygen/html/functions_h.html | 12 + .../docs/doxygen/html/functions_i.html | 2 +- .../docs/doxygen/html/functions_k.html | 0 .../docs/doxygen/html/functions_l.html | 10 +- .../docs/doxygen/html/functions_m.html | 14 +- .../docs/doxygen/html/functions_n.html | 0 .../docs/doxygen/html/functions_o.html | 8 +- .../docs/doxygen/html/functions_p.html | 11 +- .../docs/doxygen/html/functions_q.html | 0 .../docs/doxygen/html/functions_r.html | 11 +- .../docs/doxygen/html/functions_rela.html | 0 .../docs/doxygen/html/functions_s.html | 45 +- .../docs/doxygen/html/functions_t.html | 44 +- .../docs/doxygen/html/functions_u.html | 7 +- .../docs/doxygen/html/functions_v.html | 0 .../docs/doxygen/html/functions_vars.html | 35 + .../docs/doxygen/html/functions_vars_a.html | 3 - .../docs/doxygen/html/functions_vars_b.html | 0 .../docs/doxygen/html/functions_vars_c.html | 0 .../docs/doxygen/html/functions_vars_d.html | 0 .../docs/doxygen/html/functions_vars_e.html | 6 +- .../docs/doxygen/html/functions_vars_f.html | 11 + .../docs/doxygen/html/functions_vars_h.html | 12 + .../docs/doxygen/html/functions_vars_i.html | 0 .../docs/doxygen/html/functions_vars_l.html | 10 +- .../docs/doxygen/html/functions_vars_m.html | 10 +- .../docs/doxygen/html/functions_vars_n.html | 0 .../docs/doxygen/html/functions_vars_o.html | 0 .../docs/doxygen/html/functions_vars_p.html | 11 +- .../docs/doxygen/html/functions_vars_q.html | 0 .../docs/doxygen/html/functions_vars_r.html | 10 +- .../docs/doxygen/html/functions_vars_s.html | 25 +- .../docs/doxygen/html/functions_vars_t.html | 24 +- .../docs/doxygen/html/functions_vars_u.html | 4 + .../docs/doxygen/html/functions_vars_v.html | 0 .../docs/doxygen/html/functions_vars_w.html | 1 + .../docs/doxygen/html/functions_vars_x.html | 0 .../docs/doxygen/html/functions_vars_z.html | 0 .../docs/doxygen/html/functions_w.html | 1 + .../docs/doxygen/html/functions_x.html | 0 .../docs/doxygen/html/functions_z.html | 0 .../docs/doxygen/html/functions_~.html | 0 .../docs/doxygen/html/globals.html | 0 .../docs/doxygen/html/globals_a.html | 3 + .../docs/doxygen/html/globals_c.html | 0 .../docs/doxygen/html/globals_d.html | 0 .../docs/doxygen/html/globals_e.html | 3 + .../docs/doxygen/html/globals_enum.html | 0 .../docs/doxygen/html/globals_eval.html | 9 + .../docs/doxygen/html/globals_f.html | 0 .../docs/doxygen/html/globals_func.html | 0 .../docs/doxygen/html/globals_g.html | 0 .../docs/doxygen/html/globals_h.html | 0 .../docs/doxygen/html/globals_i.html | 0 .../docs/doxygen/html/globals_j.html | 0 .../docs/doxygen/html/globals_k.html | 470 +- .../docs/doxygen/html/globals_l.html | 0 .../docs/doxygen/html/globals_m.html | 3 + .../docs/doxygen/html/globals_n.html | 0 .../docs/doxygen/html/globals_p.html | 0 .../docs/doxygen/html/globals_r.html | 0 .../docs/doxygen/html/globals_s.html | 0 .../docs/doxygen/html/globals_t.html | 0 .../docs/doxygen/html/globals_type.html | 0 .../docs/doxygen/html/globals_u.html | 0 .../docs/doxygen/html/globals_v.html | 0 .../docs/doxygen/html/globals_vars.html | 0 .../docs/doxygen/html/globals_vars_i.html | 0 .../docs/doxygen/html/globals_vars_k.html | 462 +- .../docs/doxygen/html/globals_w.html | 0 .../docs/doxygen/html/globals_x.html | 0 .../docs/doxygen/html/globals_y.html | 0 .../docs/doxygen/html/globals_z.html | 0 .../docs/doxygen/html/graph_legend.html | 0 .../docs/doxygen/html/graph_legend.md5 | 0 .../docs/doxygen/html/graph_legend.png | Bin .../docs/doxygen/html/hierarchy.html | 99 +- .../docs/doxygen/html/i18n_8h.html | 0 .../docs/doxygen/html/i18n_8h_source.html | 0 .../docs/doxygen/html/index.html | 0 .../docs/doxygen/html/inherit_graph_0.map | 0 .../docs/doxygen/html/inherit_graph_0.md5 | 0 .../docs/doxygen/html/inherit_graph_0.png | Bin .../docs/doxygen/html/inherit_graph_1.map | 0 .../docs/doxygen/html/inherit_graph_1.md5 | 0 .../docs/doxygen/html/inherit_graph_1.png | Bin .../docs/doxygen/html/inherit_graph_10.map | 0 .../docs/doxygen/html/inherit_graph_10.md5 | 0 .../docs/doxygen/html/inherit_graph_10.png | Bin .../docs/doxygen/html/inherit_graph_100.map} | 0 .../docs/doxygen/html/inherit_graph_100.md5} | 0 .../docs/doxygen/html/inherit_graph_100.png} | Bin .../docs/doxygen/html/inherit_graph_11.map | 0 .../docs/doxygen/html/inherit_graph_11.md5 | 0 .../docs/doxygen/html/inherit_graph_11.png | Bin .../docs/doxygen/html/inherit_graph_12.map | 0 .../docs/doxygen/html/inherit_graph_12.md5 | 0 .../docs/doxygen/html/inherit_graph_12.png | Bin .../docs/doxygen/html/inherit_graph_13.map | 0 .../docs/doxygen/html/inherit_graph_13.md5 | 0 .../docs/doxygen/html/inherit_graph_13.png | Bin .../docs/doxygen/html/inherit_graph_14.map | 0 .../docs/doxygen/html/inherit_graph_14.md5 | 0 .../docs/doxygen/html/inherit_graph_14.png | Bin .../docs/doxygen/html/inherit_graph_15.map | 0 .../docs/doxygen/html/inherit_graph_15.md5 | 0 .../docs/doxygen/html/inherit_graph_15.png | Bin .../docs/doxygen/html/inherit_graph_16.map | 0 .../docs/doxygen/html/inherit_graph_16.md5 | 0 .../docs/doxygen/html/inherit_graph_16.png | Bin .../docs/doxygen/html/inherit_graph_17.map | 0 .../docs/doxygen/html/inherit_graph_17.md5 | 0 .../docs/doxygen/html/inherit_graph_17.png | Bin .../docs/doxygen/html/inherit_graph_18.map | 0 .../docs/doxygen/html/inherit_graph_18.md5 | 0 .../docs/doxygen/html/inherit_graph_18.png | Bin .../docs/doxygen/html/inherit_graph_19.map | 0 .../docs/doxygen/html/inherit_graph_19.md5 | 0 .../docs/doxygen/html/inherit_graph_19.png | Bin .../docs/doxygen/html/inherit_graph_2.map | 0 .../docs/doxygen/html/inherit_graph_2.md5 | 0 .../docs/doxygen/html/inherit_graph_2.png | Bin .../docs/doxygen/html/inherit_graph_20.map | 0 .../docs/doxygen/html/inherit_graph_20.md5 | 0 .../docs/doxygen/html/inherit_graph_20.png | Bin .../docs/doxygen/html/inherit_graph_21.map | 0 .../docs/doxygen/html/inherit_graph_21.md5 | 0 .../docs/doxygen/html/inherit_graph_21.png | Bin .../docs/doxygen/html/inherit_graph_22.map | 0 .../docs/doxygen/html/inherit_graph_22.md5 | 0 .../docs/doxygen/html/inherit_graph_22.png | Bin .../docs/doxygen/html/inherit_graph_23.map | 0 .../docs/doxygen/html/inherit_graph_23.md5 | 0 .../docs/doxygen/html/inherit_graph_23.png | Bin .../docs/doxygen/html/inherit_graph_24.map | 0 .../docs/doxygen/html/inherit_graph_24.md5 | 0 .../docs/doxygen/html/inherit_graph_24.png | Bin .../docs/doxygen/html/inherit_graph_25.map | 0 .../docs/doxygen/html/inherit_graph_25.md5 | 0 .../docs/doxygen/html/inherit_graph_25.png | Bin .../docs/doxygen/html/inherit_graph_26.map | 0 .../docs/doxygen/html/inherit_graph_26.md5 | 0 .../docs/doxygen/html/inherit_graph_26.png | Bin .../docs/doxygen/html/inherit_graph_27.map | 0 .../docs/doxygen/html/inherit_graph_27.md5 | 0 .../docs/doxygen/html/inherit_graph_27.png | Bin .../docs/doxygen/html/inherit_graph_28.map | 0 .../docs/doxygen/html/inherit_graph_28.md5 | 0 .../docs/doxygen/html/inherit_graph_28.png | Bin .../docs/doxygen/html/inherit_graph_29.map | 0 .../docs/doxygen/html/inherit_graph_29.md5 | 0 .../docs/doxygen/html/inherit_graph_29.png | Bin .../docs/doxygen/html/inherit_graph_3.map | 0 .../docs/doxygen/html/inherit_graph_3.md5 | 0 .../docs/doxygen/html/inherit_graph_3.png | Bin .../docs/doxygen/html/inherit_graph_30.map | 0 .../docs/doxygen/html/inherit_graph_30.md5 | 0 .../docs/doxygen/html/inherit_graph_30.png | Bin .../docs/doxygen/html/inherit_graph_31.map | 0 .../docs/doxygen/html/inherit_graph_31.md5 | 0 .../docs/doxygen/html/inherit_graph_31.png | Bin .../docs/doxygen/html/inherit_graph_32.map | 0 .../docs/doxygen/html/inherit_graph_32.md5 | 0 .../docs/doxygen/html/inherit_graph_32.png | Bin .../docs/doxygen/html/inherit_graph_33.map | 0 .../docs/doxygen/html/inherit_graph_33.md5 | 0 .../docs/doxygen/html/inherit_graph_33.png | Bin .../docs/doxygen/html/inherit_graph_34.map | 0 .../docs/doxygen/html/inherit_graph_34.md5 | 0 .../docs/doxygen/html/inherit_graph_34.png | Bin .../docs/doxygen/html/inherit_graph_35.map | 0 .../docs/doxygen/html/inherit_graph_35.md5 | 0 .../docs/doxygen/html/inherit_graph_35.png | Bin .../docs/doxygen/html/inherit_graph_36.map | 0 .../docs/doxygen/html/inherit_graph_36.md5 | 0 .../docs/doxygen/html/inherit_graph_36.png | Bin .../docs/doxygen/html/inherit_graph_37.map | 0 .../docs/doxygen/html/inherit_graph_37.md5 | 0 .../docs/doxygen/html/inherit_graph_37.png | Bin .../docs/doxygen/html/inherit_graph_38.map | 0 .../docs/doxygen/html/inherit_graph_38.md5 | 0 .../docs/doxygen/html/inherit_graph_38.png | Bin .../docs/doxygen/html/inherit_graph_39.map | 0 .../docs/doxygen/html/inherit_graph_39.md5 | 0 .../docs/doxygen/html/inherit_graph_39.png | Bin .../docs/doxygen/html/inherit_graph_4.map | 0 .../docs/doxygen/html/inherit_graph_4.md5 | 0 .../docs/doxygen/html/inherit_graph_4.png | Bin .../docs/doxygen/html/inherit_graph_40.map | 0 .../docs/doxygen/html/inherit_graph_40.md5 | 0 .../docs/doxygen/html/inherit_graph_40.png | Bin .../docs/doxygen/html/inherit_graph_41.map | 0 .../docs/doxygen/html/inherit_graph_41.md5 | 0 .../docs/doxygen/html/inherit_graph_41.png | Bin .../docs/doxygen/html/inherit_graph_42.map | 0 .../docs/doxygen/html/inherit_graph_42.md5 | 0 .../docs/doxygen/html/inherit_graph_42.png | Bin .../docs/doxygen/html/inherit_graph_43.map | 0 .../docs/doxygen/html/inherit_graph_43.md5 | 0 .../docs/doxygen/html/inherit_graph_43.png | Bin .../docs/doxygen/html/inherit_graph_44.map | 0 .../docs/doxygen/html/inherit_graph_44.md5 | 0 .../docs/doxygen/html/inherit_graph_44.png | Bin .../docs/doxygen/html/inherit_graph_45.map | 0 .../docs/doxygen/html/inherit_graph_45.md5 | 0 .../docs/doxygen/html/inherit_graph_45.png | Bin .../docs/doxygen/html/inherit_graph_46.map | 0 .../docs/doxygen/html/inherit_graph_46.md5 | 0 .../docs/doxygen/html/inherit_graph_46.png | Bin .../docs/doxygen/html/inherit_graph_47.map | 0 .../docs/doxygen/html/inherit_graph_47.md5 | 0 .../docs/doxygen/html/inherit_graph_47.png | Bin .../docs/doxygen/html/inherit_graph_48.map | 0 .../docs/doxygen/html/inherit_graph_48.md5 | 0 .../docs/doxygen/html/inherit_graph_48.png | Bin .../docs/doxygen/html/inherit_graph_49.map | 0 .../docs/doxygen/html/inherit_graph_49.md5 | 0 .../docs/doxygen/html/inherit_graph_49.png | Bin .../docs/doxygen/html/inherit_graph_5.map | 0 .../docs/doxygen/html/inherit_graph_5.md5 | 0 .../docs/doxygen/html/inherit_graph_5.png | Bin .../docs/doxygen/html/inherit_graph_50.map | 0 .../docs/doxygen/html/inherit_graph_50.md5 | 0 .../docs/doxygen/html/inherit_graph_50.png | Bin .../docs/doxygen/html/inherit_graph_51.map | 0 .../docs/doxygen/html/inherit_graph_51.md5 | 0 .../docs/doxygen/html/inherit_graph_51.png | Bin .../docs/doxygen/html/inherit_graph_52.map | 0 .../docs/doxygen/html/inherit_graph_52.md5 | 0 .../docs/doxygen/html/inherit_graph_52.png | Bin .../docs/doxygen/html/inherit_graph_53.map | 0 .../docs/doxygen/html/inherit_graph_53.md5 | 0 .../docs/doxygen/html/inherit_graph_53.png | Bin .../docs/doxygen/html/inherit_graph_54.map | 0 .../docs/doxygen/html/inherit_graph_54.md5 | 0 .../docs/doxygen/html/inherit_graph_54.png | Bin .../docs/doxygen/html/inherit_graph_55.map | 0 .../docs/doxygen/html/inherit_graph_55.md5 | 0 .../docs/doxygen/html/inherit_graph_55.png | Bin .../docs/doxygen/html/inherit_graph_56.map | 0 .../docs/doxygen/html/inherit_graph_56.md5 | 0 .../docs/doxygen/html/inherit_graph_56.png | Bin .../docs/doxygen/html/inherit_graph_57.map | 0 .../docs/doxygen/html/inherit_graph_57.md5 | 0 .../docs/doxygen/html/inherit_graph_57.png | Bin .../docs/doxygen/html/inherit_graph_58.map | 0 .../docs/doxygen/html/inherit_graph_58.md5 | 0 .../docs/doxygen/html/inherit_graph_58.png | Bin .../docs/doxygen/html/inherit_graph_59.map | 0 .../docs/doxygen/html/inherit_graph_59.md5 | 0 .../docs/doxygen/html/inherit_graph_59.png | Bin .../docs/doxygen/html/inherit_graph_6.map | 0 .../docs/doxygen/html/inherit_graph_6.md5 | 0 .../docs/doxygen/html/inherit_graph_6.png | Bin .../docs/doxygen/html/inherit_graph_60.map | 0 .../docs/doxygen/html/inherit_graph_60.md5 | 0 .../docs/doxygen/html/inherit_graph_60.png | Bin .../docs/doxygen/html/inherit_graph_61.map | 0 .../docs/doxygen/html/inherit_graph_61.md5 | 0 .../docs/doxygen/html/inherit_graph_61.png | Bin .../docs/doxygen/html/inherit_graph_62.map | 0 .../docs/doxygen/html/inherit_graph_62.md5 | 0 .../docs/doxygen/html/inherit_graph_62.png | Bin .../docs/doxygen/html/inherit_graph_63.map | 0 .../docs/doxygen/html/inherit_graph_63.md5 | 0 .../docs/doxygen/html/inherit_graph_63.png | Bin .../docs/doxygen/html/inherit_graph_64.map | 0 .../docs/doxygen/html/inherit_graph_64.md5 | 0 .../docs/doxygen/html/inherit_graph_64.png | Bin .../docs/doxygen/html/inherit_graph_65.map | 0 .../docs/doxygen/html/inherit_graph_65.md5 | 0 .../docs/doxygen/html/inherit_graph_65.png | Bin .../docs/doxygen/html/inherit_graph_66.map | 0 .../docs/doxygen/html/inherit_graph_66.md5 | 0 .../docs/doxygen/html/inherit_graph_66.png | Bin .../docs/doxygen/html/inherit_graph_67.map | 0 .../docs/doxygen/html/inherit_graph_67.md5 | 0 .../docs/doxygen/html/inherit_graph_67.png | Bin .../docs/doxygen/html/inherit_graph_68.map | 0 .../docs/doxygen/html/inherit_graph_68.md5 | 0 .../docs/doxygen/html/inherit_graph_68.png | Bin .../docs/doxygen/html/inherit_graph_69.map | 0 .../docs/doxygen/html/inherit_graph_69.md5 | 0 .../docs/doxygen/html/inherit_graph_69.png | Bin .../docs/doxygen/html/inherit_graph_7.map | 0 .../docs/doxygen/html/inherit_graph_7.md5 | 0 .../docs/doxygen/html/inherit_graph_7.png | Bin .../docs/doxygen/html/inherit_graph_70.map | 0 .../docs/doxygen/html/inherit_graph_70.md5 | 0 .../docs/doxygen/html/inherit_graph_70.png | Bin .../docs/doxygen/html/inherit_graph_71.map | 0 .../docs/doxygen/html/inherit_graph_71.md5 | 0 .../docs/doxygen/html/inherit_graph_71.png | Bin .../docs/doxygen/html/inherit_graph_72.map | 0 .../docs/doxygen/html/inherit_graph_72.md5 | 0 .../docs/doxygen/html/inherit_graph_72.png | Bin .../docs/doxygen/html/inherit_graph_73.map | 0 .../docs/doxygen/html/inherit_graph_73.md5 | 0 .../docs/doxygen/html/inherit_graph_73.png | Bin .../docs/doxygen/html/inherit_graph_74.map | 0 .../docs/doxygen/html/inherit_graph_74.md5 | 0 .../docs/doxygen/html/inherit_graph_74.png | Bin .../docs/doxygen/html/inherit_graph_75.map | 0 .../docs/doxygen/html/inherit_graph_75.md5 | 0 .../docs/doxygen/html/inherit_graph_75.png | Bin .../docs/doxygen/html/inherit_graph_76.map | 0 .../docs/doxygen/html/inherit_graph_76.md5 | 0 .../docs/doxygen/html/inherit_graph_76.png | Bin .../docs/doxygen/html/inherit_graph_77.map | 0 .../docs/doxygen/html/inherit_graph_77.md5 | 0 .../docs/doxygen/html/inherit_graph_77.png | Bin .../docs/doxygen/html/inherit_graph_78.map | 0 .../docs/doxygen/html/inherit_graph_78.md5 | 0 .../docs/doxygen/html/inherit_graph_78.png | Bin .../docs/doxygen/html/inherit_graph_79.map | 0 .../docs/doxygen/html/inherit_graph_79.md5 | 0 .../docs/doxygen/html/inherit_graph_79.png | Bin .../docs/doxygen/html/inherit_graph_8.map | 0 .../docs/doxygen/html/inherit_graph_8.md5 | 0 .../docs/doxygen/html/inherit_graph_8.png | Bin .../docs/doxygen/html/inherit_graph_80.map | 0 .../docs/doxygen/html/inherit_graph_80.md5 | 0 .../docs/doxygen/html/inherit_graph_80.png | Bin .../docs/doxygen/html/inherit_graph_81.map | 0 .../docs/doxygen/html/inherit_graph_81.md5 | 0 .../docs/doxygen/html/inherit_graph_81.png | Bin .../docs/doxygen/html/inherit_graph_82.map | 0 .../docs/doxygen/html/inherit_graph_82.md5 | 0 .../docs/doxygen/html/inherit_graph_82.png | Bin .../docs/doxygen/html/inherit_graph_83.map | 0 .../docs/doxygen/html/inherit_graph_83.md5 | 0 .../docs/doxygen/html/inherit_graph_83.png | Bin .../docs/doxygen/html/inherit_graph_84.map | 0 .../docs/doxygen/html/inherit_graph_84.md5 | 0 .../docs/doxygen/html/inherit_graph_84.png | Bin .../docs/doxygen/html/inherit_graph_85.map | 0 .../docs/doxygen/html/inherit_graph_85.md5 | 0 .../docs/doxygen/html/inherit_graph_85.png | Bin .../docs/doxygen/html/inherit_graph_86.map | 0 .../docs/doxygen/html/inherit_graph_86.md5 | 0 .../docs/doxygen/html/inherit_graph_86.png | Bin .../docs/doxygen/html/inherit_graph_87.map | 0 .../docs/doxygen/html/inherit_graph_87.md5 | 0 .../docs/doxygen/html/inherit_graph_87.png | Bin .../docs/doxygen/html/inherit_graph_88.map | 0 .../docs/doxygen/html/inherit_graph_88.md5 | 0 .../docs/doxygen/html/inherit_graph_88.png | Bin .../docs/doxygen/html/inherit_graph_89.map | 0 .../docs/doxygen/html/inherit_graph_89.md5 | 0 .../docs/doxygen/html/inherit_graph_89.png | Bin .../docs/doxygen/html/inherit_graph_9.map | 0 .../docs/doxygen/html/inherit_graph_9.md5 | 0 .../docs/doxygen/html/inherit_graph_9.png | Bin .../docs/doxygen/html/inherit_graph_90.map | 0 .../docs/doxygen/html/inherit_graph_90.md5 | 0 .../docs/doxygen/html/inherit_graph_90.png | Bin .../docs/doxygen/html/inherit_graph_91.map | 0 .../docs/doxygen/html/inherit_graph_91.md5 | 0 .../docs/doxygen/html/inherit_graph_91.png | Bin .../docs/doxygen/html/inherit_graph_92.map | 0 .../docs/doxygen/html/inherit_graph_92.md5 | 0 .../docs/doxygen/html/inherit_graph_92.png | Bin .../docs/doxygen/html/inherit_graph_93.map | 0 .../docs/doxygen/html/inherit_graph_93.md5 | 0 .../docs/doxygen/html/inherit_graph_93.png | Bin .../docs/doxygen/html/inherit_graph_94.map | 3 + .../docs/doxygen/html/inherit_graph_94.md5 | 1 + .../docs/doxygen/html/inherit_graph_94.png | Bin 0 -> 1185 bytes .../docs/doxygen/html/inherit_graph_95.map | 3 + .../docs/doxygen/html/inherit_graph_95.md5 | 1 + .../docs/doxygen/html/inherit_graph_95.png | Bin 0 -> 1443 bytes .../docs/doxygen/html/inherit_graph_96.map | 3 + .../docs/doxygen/html/inherit_graph_96.md5 | 1 + .../docs/doxygen/html/inherit_graph_96.png | Bin 0 -> 1141 bytes .../docs/doxygen/html/inherit_graph_97.map} | 0 .../docs/doxygen/html/inherit_graph_97.md5} | 0 .../docs/doxygen/html/inherit_graph_97.png} | Bin .../docs/doxygen/html/inherit_graph_98.map | 3 + .../docs/doxygen/html/inherit_graph_98.md5 | 1 + .../docs/doxygen/html/inherit_graph_98.png | Bin 0 -> 1518 bytes .../docs/doxygen/html/inherit_graph_99.map | 3 + .../docs/doxygen/html/inherit_graph_99.md5 | 1 + .../docs/doxygen/html/inherit_graph_99.png | Bin 0 -> 1527 bytes .../docs/doxygen/html/inherits.html | 29 +- .../docs/doxygen/html/ir__Airwell_8cpp.html | 0 .../docs/doxygen/html/ir__Airwell_8h.html | 0 .../doxygen/html/ir__Airwell_8h_source.html | 6 +- .../docs/doxygen/html/ir__Aiwa_8cpp.html | 0 .../docs/doxygen/html/ir__Amcor_8cpp.html | 0 .../docs/doxygen/html/ir__Amcor_8h.html | 0 .../doxygen/html/ir__Amcor_8h_source.html | 8 +- .../docs/doxygen/html/ir__Argo_8cpp.html | 0 .../docs/doxygen/html/ir__Argo_8h.html | 0 .../docs/doxygen/html/ir__Argo_8h_source.html | 8 +- .../docs/doxygen/html/ir__Carrier_8cpp.html | 0 .../docs/doxygen/html/ir__Carrier_8h.html | 0 .../doxygen/html/ir__Carrier_8h_source.html | 6 +- .../docs/doxygen/html/ir__Coolix_8cpp.html | 0 .../docs/doxygen/html/ir__Coolix_8h.html | 0 .../doxygen/html/ir__Coolix_8h_source.html | 6 +- .../docs/doxygen/html/ir__Corona_8cpp.html | 0 .../docs/doxygen/html/ir__Corona_8h.html | 0 .../doxygen/html/ir__Corona_8h_source.html | 8 +- .../docs/doxygen/html/ir__Daikin_8cpp.html | 0 .../docs/doxygen/html/ir__Daikin_8h.html | 134 +- .../doxygen/html/ir__Daikin_8h_source.html | 2905 +++++------ .../docs/doxygen/html/ir__Delonghi_8cpp.html | 0 .../docs/doxygen/html/ir__Delonghi_8h.html | 0 .../doxygen/html/ir__Delonghi_8h_source.html | 6 +- .../docs/doxygen/html/ir__Denon_8cpp.html | 2 +- .../docs/doxygen/html/ir__Dish_8cpp.html | 0 .../docs/doxygen/html/ir__Doshisha_8cpp.html | 0 .../docs/doxygen/html/ir__EcoClim_8cpp.html | 258 + .../docs/doxygen/html/ir__Electra_8cpp.html | 0 .../docs/doxygen/html/ir__Electra_8h.html | 0 .../doxygen/html/ir__Electra_8h_source.html | 8 +- .../doxygen/html/ir__EliteScreens_8cpp.html | 0 .../docs/doxygen/html/ir__Epson_8cpp.html | 0 .../docs/doxygen/html/ir__Fujitsu_8cpp.html | 2 + .../docs/doxygen/html/ir__Fujitsu_8h.html | 2 + .../doxygen/html/ir__Fujitsu_8h_source.html | 596 +-- .../docs/doxygen/html/ir__GICable_8cpp.html | 2 +- .../doxygen/html/ir__GlobalCache_8cpp.html | 0 .../doxygen/html/ir__Goodweather_8cpp.html | 0 .../docs/doxygen/html/ir__Goodweather_8h.html | 0 .../html/ir__Goodweather_8h_source.html | 6 +- .../docs/doxygen/html/ir__Gree_8cpp.html | 0 .../docs/doxygen/html/ir__Gree_8h.html | 0 .../docs/doxygen/html/ir__Gree_8h_source.html | 12 +- .../docs/doxygen/html/ir__Haier_8cpp.html | 0 .../docs/doxygen/html/ir__Haier_8h.html | 0 .../doxygen/html/ir__Haier_8h_source.html | 12 +- .../docs/doxygen/html/ir__Hitachi_8cpp.html | 0 .../docs/doxygen/html/ir__Hitachi_8h.html | 0 .../doxygen/html/ir__Hitachi_8h_source.html | 18 +- .../docs/doxygen/html/ir__Inax_8cpp.html | 0 .../docs/doxygen/html/ir__JVC_8cpp.html | 4 +- .../doxygen/html/ir__Kelvinator_8cpp.html | 0 .../docs/doxygen/html/ir__Kelvinator_8h.html | 0 .../html/ir__Kelvinator_8h_source.html | 8 +- .../docs/doxygen/html/ir__LG_8cpp.html | 0 .../docs/doxygen/html/ir__LG_8h.html | 0 .../docs/doxygen/html/ir__LG_8h_source.html | 10 +- .../docs/doxygen/html/ir__Lasertag_8cpp.html | 0 .../docs/doxygen/html/ir__Lego_8cpp.html | 0 .../docs/doxygen/html/ir__Lutron_8cpp.html | 0 .../docs/doxygen/html/ir__MWM_8cpp.html | 0 .../docs/doxygen/html/ir__Magiquest_8cpp.html | 0 .../docs/doxygen/html/ir__Magiquest_8h.html | 0 .../doxygen/html/ir__Magiquest_8h_source.html | 0 .../docs/doxygen/html/ir__Metz_8cpp.html | 0 .../docs/doxygen/html/ir__Midea_8cpp.html | 0 .../docs/doxygen/html/ir__Midea_8h.html | 0 .../doxygen/html/ir__Midea_8h_source.html | 6 +- .../docs/doxygen/html/ir__MilesTag2_8cpp.html | 273 + .../docs/doxygen/html/ir__Mirage_8cpp.html | 0 .../html/ir__MitsubishiHeavy_8cpp.html | 0 .../doxygen/html/ir__MitsubishiHeavy_8h.html | 0 .../html/ir__MitsubishiHeavy_8h_source.html | 186 +- .../doxygen/html/ir__Mitsubishi_8cpp.html | 10 +- .../docs/doxygen/html/ir__Mitsubishi_8h.html | 230 +- .../html/ir__Mitsubishi_8h_source.html | 1183 ++--- .../doxygen/html/ir__Multibrackets_8cpp.html | 0 .../docs/doxygen/html/ir__NEC_8cpp.html | 2 +- .../docs/doxygen/html/ir__NEC_8h.html | 4 +- .../docs/doxygen/html/ir__NEC_8h_source.html | 2 +- .../docs/doxygen/html/ir__Neoclima_8cpp.html | 0 .../docs/doxygen/html/ir__Neoclima_8h.html | 0 .../doxygen/html/ir__Neoclima_8h_source.html | 8 +- .../docs/doxygen/html/ir__Nikai_8cpp.html | 0 .../docs/doxygen/html/ir__Panasonic_8cpp.html | 0 .../docs/doxygen/html/ir__Panasonic_8h.html | 0 .../doxygen/html/ir__Panasonic_8h_source.html | 170 +- .../docs/doxygen/html/ir__Pioneer_8cpp.html | 0 .../docs/doxygen/html/ir__Pronto_8cpp.html | 0 .../docs/doxygen/html/ir__RC5__RC6_8cpp.html | 2 +- .../docs/doxygen/html/ir__RCMM_8cpp.html | 2 +- .../docs/doxygen/html/ir__Samsung_8cpp.html | 2 +- .../docs/doxygen/html/ir__Samsung_8h.html | 0 .../doxygen/html/ir__Samsung_8h_source.html | 10 +- .../docs/doxygen/html/ir__Sanyo_8cpp.html | 14 +- .../docs/doxygen/html/ir__Sanyo_8h.html | 0 .../doxygen/html/ir__Sanyo_8h_source.html | 86 +- .../docs/doxygen/html/ir__Sharp_8cpp.html | 6 +- .../docs/doxygen/html/ir__Sharp_8h.html | 8 +- .../doxygen/html/ir__Sharp_8h_source.html | 613 +-- .../docs/doxygen/html/ir__Sherwood_8cpp.html | 0 .../docs/doxygen/html/ir__Sony_8cpp.html | 2 +- .../docs/doxygen/html/ir__Symphony_8cpp.html | 0 .../docs/doxygen/html/ir__Tcl_8cpp.html | 0 .../docs/doxygen/html/ir__Tcl_8h.html | 179 +- .../docs/doxygen/html/ir__Tcl_8h_source.html | 378 +- .../docs/doxygen/html/ir__Technibel_8cpp.html | 0 .../docs/doxygen/html/ir__Technibel_8h.html | 379 ++ .../doxygen/html/ir__Technibel_8h_source.html | 294 ++ .../docs/doxygen/html/ir__Teco_8cpp.html | 0 .../docs/doxygen/html/ir__Teco_8h.html | 275 +- .../docs/doxygen/html/ir__Teco_8h_source.html | 390 +- .../docs/doxygen/html/ir__Toshiba_8cpp.html | 0 .../docs/doxygen/html/ir__Toshiba_8h.html | 217 +- .../doxygen/html/ir__Toshiba_8h_source.html | 409 +- .../docs/doxygen/html/ir__Transcold_8cpp.html | 0 .../docs/doxygen/html/ir__Transcold_8h.html | 83 +- .../doxygen/html/ir__Transcold_8h_source.html | 456 +- .../docs/doxygen/html/ir__Trotec_8cpp.html | 0 .../docs/doxygen/html/ir__Trotec_8h.html | 0 .../doxygen/html/ir__Trotec_8h_source.html | 8 +- .../docs/doxygen/html/ir__Vestel_8cpp.html | 0 .../docs/doxygen/html/ir__Vestel_8h.html | 0 .../doxygen/html/ir__Vestel_8h_source.html | 6 +- .../docs/doxygen/html/ir__Voltas_8cpp.html | 0 .../docs/doxygen/html/ir__Voltas_8h.html | 0 .../doxygen/html/ir__Voltas_8h_source.html | 10 +- .../docs/doxygen/html/ir__Whirlpool_8cpp.html | 0 .../docs/doxygen/html/ir__Whirlpool_8h.html | 0 .../doxygen/html/ir__Whirlpool_8h_source.html | 10 +- .../docs/doxygen/html/ir__Whynter_8cpp.html | 2 +- .../docs/doxygen/html/ir__Zepeal_8cpp.html | 0 .../docs/doxygen/html/it-IT_8h.html | 0 .../docs/doxygen/html/it-IT_8h_source.html | 0 .../docs/doxygen/html/jquery.js | 0 .../doxygen/html/md_src_locale_README.html | 0 .../docs/doxygen/html/menu.js | 0 .../docs/doxygen/html/menudata.js | 0 .../docs/doxygen/html/namespaceIRAcUtils.html | 0 .../docs/doxygen/html/namespace__IRrecv.html | 0 .../docs/doxygen/html/namespaceirutils.html | 277 + .../docs/doxygen/html/namespacemembers.html | 9 + .../doxygen/html/namespacemembers_enum.html | 0 .../doxygen/html/namespacemembers_func.html | 9 + .../doxygen/html/namespacemembers_vars.html | 0 .../docs/doxygen/html/namespaces.html | 0 .../docs/doxygen/html/namespacestdAc.html | 0 .../docs/doxygen/html/nav_f.png | Bin .../docs/doxygen/html/nav_g.png | Bin .../docs/doxygen/html/nav_h.png | Bin .../docs/doxygen/html/open.png | Bin .../docs/doxygen/html/pages.html | 0 .../docs/doxygen/html/pt-BR_8h.html | 0 .../docs/doxygen/html/pt-BR_8h_source.html | 0 .../docs/doxygen/html/search/all_0.html | 0 .../docs/doxygen/html/search/all_0.js | 79 +- .../docs/doxygen/html/search/all_1.html | 0 .../docs/doxygen/html/search/all_1.js | 34 + .../docs/doxygen/html/search/all_10.html | 0 .../docs/doxygen/html/search/all_10.js | 65 +- .../docs/doxygen/html/search/all_11.html | 0 .../docs/doxygen/html/search/all_11.js | 6 + .../docs/doxygen/html/search/all_12.html | 0 .../docs/doxygen/html/search/all_12.js | 52 +- .../docs/doxygen/html/search/all_13.html | 0 .../docs/doxygen/html/search/all_13.js | 273 +- .../docs/doxygen/html/search/all_14.html | 0 .../docs/doxygen/html/search/all_14.js | 88 +- .../docs/doxygen/html/search/all_15.html | 0 .../docs/doxygen/html/search/all_15.js | 24 +- .../docs/doxygen/html/search/all_16.html | 0 .../docs/doxygen/html/search/all_16.js | 24 +- .../docs/doxygen/html/search/all_17.html | 0 .../docs/doxygen/html/search/all_17.js | 12 + .../docs/doxygen/html/search/all_18.html | 0 .../docs/doxygen/html/search/all_18.js | 4 +- .../docs/doxygen/html/search/all_19.html | 0 .../docs/doxygen/html/search/all_19.js | 4 +- .../docs/doxygen/html/search/all_1a.html | 0 .../docs/doxygen/html/search/all_1a.js | 7 + .../docs/doxygen/html/search/all_1b.html | 0 .../docs/doxygen/html/search/all_1b.js | 4 + .../docs/doxygen/html/search/all_2.html | 0 .../docs/doxygen/html/search/all_2.js | 30 +- .../docs/doxygen/html/search/all_3.html | 0 .../docs/doxygen/html/search/all_3.js | 118 +- .../docs/doxygen/html/search/all_4.html | 0 .../docs/doxygen/html/search/all_4.js | 138 + .../docs/doxygen/html/search/all_5.html | 0 .../docs/doxygen/html/search/all_5.js | 41 + .../docs/doxygen/html/search/all_6.html | 0 .../docs/doxygen/html/search/all_6.js | 42 +- .../docs/doxygen/html/search/all_7.html | 0 .../docs/doxygen/html/search/all_7.js | 251 +- .../docs/doxygen/html/search/all_8.html | 0 .../docs/doxygen/html/search/all_8.js | 39 + .../docs/doxygen/html/search/all_9.html | 0 .../docs/doxygen/html/search/all_9.js | 200 + .../docs/doxygen/html/search/all_a.html | 0 .../docs/doxygen/html/search/all_a.js | 2 +- .../docs/doxygen/html/search/all_b.html | 0 .../docs/doxygen/html/search/all_b.js | 4474 ++++++++--------- .../docs/doxygen/html/search/all_c.html | 0 .../docs/doxygen/html/search/all_c.js | 21 + .../docs/doxygen/html/search/all_d.html | 0 .../docs/doxygen/html/search/all_d.js | 98 +- .../docs/doxygen/html/search/all_e.html | 0 .../docs/doxygen/html/search/all_e.js | 14 +- .../docs/doxygen/html/search/all_f.html | 0 .../docs/doxygen/html/search/all_f.js | 64 +- .../docs/doxygen/html/search/classes_0.html | 0 .../docs/doxygen/html/search/classes_0.js | 6 + .../docs/doxygen/html/search/classes_1.html | 0 .../docs/doxygen/html/search/classes_1.js | 7 + .../docs/doxygen/html/search/classes_2.html | 0 .../docs/doxygen/html/search/classes_2.js | 13 + .../docs/doxygen/html/search/classes_3.html | 0 .../docs/doxygen/html/search/classes_3.js | 4 + .../docs/doxygen/html/search/classes_4.html | 0 .../docs/doxygen/html/search/classes_4.js | 5 + .../docs/doxygen/html/search/classes_5.html | 0 .../docs/doxygen/html/search/classes_5.js | 8 + .../docs/doxygen/html/search/classes_6.html | 0 .../docs/doxygen/html/search/classes_6.js | 57 + .../docs/doxygen/html/search/classes_7.html | 0 .../docs/doxygen/html/search/classes_7.js | 4 + .../docs/doxygen/html/search/classes_8.html | 0 .../docs/doxygen/html/search/classes_8.js | 4 + .../docs/doxygen/html/search/classes_9.html | 0 .../docs/doxygen/html/search/classes_9.js | 11 + .../docs/doxygen/html/search/classes_a.html | 0 .../docs/doxygen/html/search/classes_a.js | 4 + .../docs/doxygen/html/search/classes_b.html | 0 .../docs/doxygen/html/search/classes_b.js | 4 + .../docs/doxygen/html/search/classes_c.html | 0 .../docs/doxygen/html/search/classes_c.js | 7 + .../docs/doxygen/html/search/classes_d.html | 0 .../docs/doxygen/html/search/classes_d.js | 9 + .../docs/doxygen/html/search/classes_e.html | 0 .../docs/doxygen/html/search/classes_e.js | 4 + .../docs/doxygen/html/search/close.png | Bin .../docs/doxygen/html/search/enums_0.html | 0 .../docs/doxygen/html/search/enums_0.js | 2 +- .../docs/doxygen/html/search/enums_1.html | 0 .../docs/doxygen/html/search/enums_1.js | 4 +- .../docs/doxygen/html/search/enums_2.html | 0 .../docs/doxygen/html/search/enums_2.js | 2 +- .../docs/doxygen/html/search/enums_3.html | 0 .../docs/doxygen/html/search/enums_3.js | 2 +- .../docs/doxygen/html/search/enums_4.html | 0 .../docs/doxygen/html/search/enums_4.js | 2 +- .../docs/doxygen/html/search/enums_5.html | 0 .../docs/doxygen/html/search/enums_5.js | 4 + .../docs/doxygen/html/search/enums_6.html | 0 .../docs/doxygen/html/search/enums_6.js | 2 +- .../docs/doxygen/html/search/enums_7.html | 0 .../docs/doxygen/html/search/enums_7.js | 6 + .../docs/doxygen/html/search/enums_8.html | 0 .../docs/doxygen/html/search/enums_8.js | 2 +- .../docs/doxygen/html/search/enums_9.html | 0 .../docs/doxygen/html/search/enums_9.js | 2 +- .../doxygen/html/search/enumvalues_0.html | 0 .../docs/doxygen/html/search/enumvalues_0.js | 25 +- .../doxygen/html/search/enumvalues_1.html | 0 .../docs/doxygen/html/search/enumvalues_1.js | 10 +- .../doxygen/html/search/enumvalues_10.html | 0 .../docs/doxygen/html/search/enumvalues_10.js | 12 +- .../doxygen/html/search/enumvalues_11.html | 0 .../docs/doxygen/html/search/enumvalues_11.js | 4 +- .../doxygen/html/search/enumvalues_12.html | 0 .../docs/doxygen/html/search/enumvalues_12.js | 4 +- .../doxygen/html/search/enumvalues_13.html | 0 .../docs/doxygen/html/search/enumvalues_13.js | 4 +- .../doxygen/html/search/enumvalues_14.html | 0 .../docs/doxygen/html/search/enumvalues_14.js | 4 +- .../doxygen/html/search/enumvalues_15.html | 0 .../docs/doxygen/html/search/enumvalues_15.js | 2 +- .../doxygen/html/search/enumvalues_2.html | 0 .../docs/doxygen/html/search/enumvalues_2.js | 28 +- .../doxygen/html/search/enumvalues_3.html | 0 .../docs/doxygen/html/search/enumvalues_3.js | 7 + .../doxygen/html/search/enumvalues_4.html | 0 .../docs/doxygen/html/search/enumvalues_4.js | 2 +- .../doxygen/html/search/enumvalues_5.html | 0 .../docs/doxygen/html/search/enumvalues_5.js | 10 +- .../doxygen/html/search/enumvalues_6.html | 0 .../docs/doxygen/html/search/enumvalues_6.js | 16 +- .../doxygen/html/search/enumvalues_7.html | 0 .../docs/doxygen/html/search/enumvalues_7.js | 2 +- .../doxygen/html/search/enumvalues_8.html | 0 .../docs/doxygen/html/search/enumvalues_8.js | 2 +- .../doxygen/html/search/enumvalues_9.html | 0 .../docs/doxygen/html/search/enumvalues_9.js | 68 +- .../doxygen/html/search/enumvalues_a.html | 0 .../docs/doxygen/html/search/enumvalues_a.js | 10 +- .../doxygen/html/search/enumvalues_b.html | 0 .../docs/doxygen/html/search/enumvalues_b.js | 29 +- .../doxygen/html/search/enumvalues_c.html | 0 .../docs/doxygen/html/search/enumvalues_c.js | 8 +- .../doxygen/html/search/enumvalues_d.html | 0 .../docs/doxygen/html/search/enumvalues_d.js | 10 +- .../doxygen/html/search/enumvalues_e.html | 0 .../docs/doxygen/html/search/enumvalues_e.js | 14 +- .../doxygen/html/search/enumvalues_f.html | 0 .../docs/doxygen/html/search/enumvalues_f.js | 24 +- .../docs/doxygen/html/search/files_0.html | 0 .../docs/doxygen/html/search/files_0.js | 7 + .../docs/doxygen/html/search/files_1.html | 0 .../docs/doxygen/html/search/files_1.js | 8 + .../docs/doxygen/html/search/files_2.html | 0 .../docs/doxygen/html/search/files_2.js | 4 + .../docs/doxygen/html/search/files_3.html | 0 .../docs/doxygen/html/search/files_3.js | 117 + .../docs/doxygen/html/search/files_4.html | 0 .../docs/doxygen/html/search/files_4.js | 4 + .../docs/doxygen/html/search/files_5.html | 0 .../docs/doxygen/html/search/files_5.js | 4 + .../docs/doxygen/html/search/files_6.html | 0 .../docs/doxygen/html/search/files_6.js | 4 + .../docs/doxygen/html/search/functions_0.html | 0 .../docs/doxygen/html/search/functions_0.js | 34 +- .../docs/doxygen/html/search/functions_1.html | 0 .../docs/doxygen/html/search/functions_1.js | 18 + .../doxygen/html/search/functions_10.html | 0 .../docs/doxygen/html/search/functions_10.js | 20 +- .../doxygen/html/search/functions_11.html | 0 .../docs/doxygen/html/search/functions_11.js | 469 +- .../doxygen/html/search/functions_12.html | 0 .../docs/doxygen/html/search/functions_12.js | 42 +- .../doxygen/html/search/functions_13.html | 0 .../docs/doxygen/html/search/functions_13.js | 7 +- .../doxygen/html/search/functions_14.html | 0 .../docs/doxygen/html/search/functions_14.js | 8 +- .../doxygen/html/search/functions_15.html | 0 .../docs/doxygen/html/search/functions_15.js | 4 + .../doxygen/html/search/functions_16.html | 0 .../docs/doxygen/html/search/functions_16.js | 2 +- .../doxygen/html/search/functions_17.html | 0 .../docs/doxygen/html/search/functions_17.js | 4 + .../docs/doxygen/html/search/functions_2.html | 0 .../docs/doxygen/html/search/functions_2.js | 10 +- .../docs/doxygen/html/search/functions_3.html | 0 .../docs/doxygen/html/search/functions_3.js | 66 +- .../docs/doxygen/html/search/functions_4.html | 0 .../docs/doxygen/html/search/functions_4.js | 105 + .../docs/doxygen/html/search/functions_5.html | 0 .../docs/doxygen/html/search/functions_5.js | 48 +- .../docs/doxygen/html/search/functions_6.html | 0 .../docs/doxygen/html/search/functions_6.js | 10 +- .../docs/doxygen/html/search/functions_7.html | 0 .../docs/doxygen/html/search/functions_7.js | 239 +- .../docs/doxygen/html/search/functions_8.html | 0 .../docs/doxygen/html/search/functions_8.js | 24 +- .../docs/doxygen/html/search/functions_9.html | 0 .../docs/doxygen/html/search/functions_9.js | 144 +- .../docs/doxygen/html/search/functions_a.html | 0 .../docs/doxygen/html/search/functions_a.js | 4 + .../docs/doxygen/html/search/functions_b.html | 0 .../docs/doxygen/html/search/functions_b.js | 7 + .../docs/doxygen/html/search/functions_c.html | 0 .../docs/doxygen/html/search/functions_c.js | 44 +- .../docs/doxygen/html/search/functions_d.html | 0 .../docs/doxygen/html/search/functions_d.js | 4 + .../docs/doxygen/html/search/functions_e.html | 0 .../docs/doxygen/html/search/functions_e.js | 6 +- .../docs/doxygen/html/search/functions_f.html | 0 .../docs/doxygen/html/search/functions_f.js | 5 + .../docs/doxygen/html/search/mag_sel.png | Bin .../doxygen/html/search/namespaces_0.html | 0 .../docs/doxygen/html/search/namespaces_0.js | 4 + .../doxygen/html/search/namespaces_1.html | 0 .../docs/doxygen/html/search/namespaces_1.js | 5 + .../doxygen/html/search/namespaces_2.html | 0 .../docs/doxygen/html/search/namespaces_2.js | 4 + .../docs/doxygen/html/search/nomatches.html | 0 .../docs/doxygen/html/search/pages_0.html | 0 .../docs/doxygen/html/search/pages_0.js | 4 + .../docs/doxygen/html/search/pages_1.html | 0 .../docs/doxygen/html/search/pages_1.js | 5 + .../docs/doxygen/html/search/pages_2.html | 0 .../docs/doxygen/html/search/pages_2.js | 4 + .../docs/doxygen/html/search/related_0.html | 0 .../docs/doxygen/html/search/related_0.js | 2 +- .../docs/doxygen/html/search/search.css | 0 .../docs/doxygen/html/search/search.js | 0 .../docs/doxygen/html/search/search_l.png | Bin .../docs/doxygen/html/search/search_m.png | Bin .../docs/doxygen/html/search/search_r.png | Bin .../docs/doxygen/html/search/searchdata.js | 0 .../docs/doxygen/html/search/typedefs_0.html | 0 .../docs/doxygen/html/search/typedefs_0.js | 2 +- .../docs/doxygen/html/search/typedefs_1.html | 0 .../docs/doxygen/html/search/typedefs_1.js | 2 +- .../docs/doxygen/html/search/variables_0.html | 0 .../docs/doxygen/html/search/variables_0.js | 139 +- .../docs/doxygen/html/search/variables_1.html | 0 .../docs/doxygen/html/search/variables_1.js | 6 + .../doxygen/html/search/variables_10.html | 0 .../docs/doxygen/html/search/variables_10.js | 18 +- .../doxygen/html/search/variables_11.html | 0 .../docs/doxygen/html/search/variables_11.js | 74 +- .../doxygen/html/search/variables_12.html | 0 .../docs/doxygen/html/search/variables_12.js | 33 +- .../doxygen/html/search/variables_13.html | 0 .../docs/doxygen/html/search/variables_13.js | 11 + .../doxygen/html/search/variables_14.html | 0 .../docs/doxygen/html/search/variables_14.js | 8 + .../doxygen/html/search/variables_15.html | 0 .../docs/doxygen/html/search/variables_15.js | 8 + .../doxygen/html/search/variables_16.html | 0 .../docs/doxygen/html/search/variables_16.js | 4 + .../doxygen/html/search/variables_17.html | 0 .../docs/doxygen/html/search/variables_17.js | 4 +- .../docs/doxygen/html/search/variables_2.html | 0 .../docs/doxygen/html/search/variables_2.js | 13 + .../docs/doxygen/html/search/variables_3.html | 0 .../docs/doxygen/html/search/variables_3.js | 38 +- .../docs/doxygen/html/search/variables_4.html | 0 .../docs/doxygen/html/search/variables_4.js | 14 + .../docs/doxygen/html/search/variables_5.html | 0 .../docs/doxygen/html/search/variables_5.js | 7 +- .../docs/doxygen/html/search/variables_6.html | 0 .../docs/doxygen/html/search/variables_6.js | 24 +- .../docs/doxygen/html/search/variables_7.html | 0 .../docs/doxygen/html/search/variables_7.js | 12 + .../docs/doxygen/html/search/variables_8.html | 0 .../docs/doxygen/html/search/variables_8.js | 10 +- .../docs/doxygen/html/search/variables_9.html | 0 .../docs/doxygen/html/search/variables_9.js | 4436 ++++++++-------- .../docs/doxygen/html/search/variables_a.html | 0 .../docs/doxygen/html/search/variables_a.js | 11 + .../docs/doxygen/html/search/variables_b.html | 0 .../docs/doxygen/html/search/variables_b.js | 19 +- .../docs/doxygen/html/search/variables_c.html | 0 .../docs/doxygen/html/search/variables_c.js | 4 +- .../docs/doxygen/html/search/variables_d.html | 0 .../docs/doxygen/html/search/variables_d.js | 56 +- .../docs/doxygen/html/search/variables_e.html | 0 .../docs/doxygen/html/search/variables_e.js | 47 +- .../docs/doxygen/html/search/variables_f.html | 0 .../docs/doxygen/html/search/variables_f.js | 6 + .../docs/doxygen/html/splitbar.png | Bin .../html/structCoronaSection-members.html | 0 .../doxygen/html/structCoronaSection.html | 0 .../html/structirparams__t-members.html | 0 .../docs/doxygen/html/structirparams__t.html | 0 .../html/structmatch__result__t-members.html | 0 .../doxygen/html/structmatch__result__t.html | 0 .../html/structstdAc_1_1state__t-members.html | 0 .../doxygen/html/structstdAc_1_1state__t.html | 0 .../docs/doxygen/html/sync_off.png | Bin .../docs/doxygen/html/sync_on.png | Bin .../docs/doxygen/html/tab_a.png | Bin .../docs/doxygen/html/tab_b.png | Bin .../docs/doxygen/html/tab_h.png | Bin .../docs/doxygen/html/tab_s.png | Bin .../docs/doxygen/html/tabs.css | 0 .../docs/doxygen/html/todo.html | 0 .../html/unionAirwellProtocol-members.html | 0 .../doxygen/html/unionAirwellProtocol.html | 0 .../html/unionAmcorProtocol-members.html | 0 .../docs/doxygen/html/unionAmcorProtocol.html | 0 .../html/unionArgoProtocol-members.html | 0 .../docs/doxygen/html/unionArgoProtocol.html | 0 .../html/unionCarrierProtocol-members.html | 0 .../doxygen/html/unionCarrierProtocol.html | 0 .../html/unionCoolixProtocol-members.html | 0 .../doxygen/html/unionCoolixProtocol.html | 0 .../html/unionCoronaProtocol-members.html | 0 .../doxygen/html/unionCoronaProtocol.html | 0 .../html/unionCoronaProtocol__coll__graph.map | 0 .../html/unionCoronaProtocol__coll__graph.md5 | 0 .../html/unionCoronaProtocol__coll__graph.png | Bin .../html/unionDaikin128Protocol-members.html | 0 .../doxygen/html/unionDaikin128Protocol.html | 0 .../html/unionDaikin152Protocol-members.html | 0 .../doxygen/html/unionDaikin152Protocol.html | 0 .../html/unionDaikin160Protocol-members.html | 0 .../doxygen/html/unionDaikin160Protocol.html | 0 .../html/unionDaikin176Protocol-members.html | 0 .../doxygen/html/unionDaikin176Protocol.html | 0 .../html/unionDaikin216Protocol-members.html | 0 .../doxygen/html/unionDaikin216Protocol.html | 0 .../html/unionDaikin2Protocol-members.html | 0 .../doxygen/html/unionDaikin2Protocol.html | 0 .../html/unionDaikin64Protocol-members.html | 0 .../doxygen/html/unionDaikin64Protocol.html | 0 .../html/unionDaikinESPProtocol-members.html | 0 .../doxygen/html/unionDaikinESPProtocol.html | 0 .../html/unionDelonghiProtocol-members.html | 0 .../doxygen/html/unionDelonghiProtocol.html | 0 .../html/unionElectraProtocol-members.html | 0 .../doxygen/html/unionElectraProtocol.html | 0 .../unionGoodweatherProtocol-members.html | 0 .../html/unionGoodweatherProtocol.html | 0 .../html/unionGreeProtocol-members.html | 0 .../docs/doxygen/html/unionGreeProtocol.html | 0 .../html/unionHaierProtocol-members.html | 0 .../docs/doxygen/html/unionHaierProtocol.html | 0 .../html/unionHaierYRW02Protocol-members.html | 0 .../doxygen/html/unionHaierYRW02Protocol.html | 0 .../html/unionHitachi1Protocol-members.html | 0 .../doxygen/html/unionHitachi1Protocol.html | 0 .../html/unionHitachi424Protocol-members.html | 0 .../doxygen/html/unionHitachi424Protocol.html | 0 .../html/unionHitachiProtocol-members.html | 0 .../doxygen/html/unionHitachiProtocol.html | 0 .../html/unionKelvinatorProtocol-members.html | 0 .../doxygen/html/unionKelvinatorProtocol.html | 0 .../doxygen/html/unionLGProtocol-members.html | 0 .../docs/doxygen/html/unionLGProtocol.html | 0 .../html/unionMideaProtocol-members.html | 0 .../docs/doxygen/html/unionMideaProtocol.html | 0 .../unionMitsubishi112Protocol-members.html | 0 .../html/unionMitsubishi112Protocol.html | 0 .../unionMitsubishi136Protocol-members.html | 0 .../html/unionMitsubishi136Protocol.html | 0 .../unionMitsubishi144Protocol-members.html | 11 +- .../html/unionMitsubishi144Protocol.html | 56 +- .../unionMitsubishi152Protocol-members.html | 0 .../html/unionMitsubishi152Protocol.html | 0 .../unionMitsubishi88Protocol-members.html | 0 .../html/unionMitsubishi88Protocol.html | 0 .../html/unionNeoclimaProtocol-members.html | 0 .../doxygen/html/unionNeoclimaProtocol.html | 0 .../unionPanasonicAc32Protocol-members.html | 0 .../html/unionPanasonicAc32Protocol.html | 0 .../html/unionSamsungProtocol-members.html | 0 .../doxygen/html/unionSamsungProtocol.html | 0 .../html/unionSanyoProtocol-members.html | 0 .../docs/doxygen/html/unionSanyoProtocol.html | 0 .../html/unionSharpProtocol-members.html | 12 +- .../docs/doxygen/html/unionSharpProtocol.html | 32 +- .../html/unionTcl112Protocol-members.html | 102 + .../doxygen/html/unionTcl112Protocol.html | 482 ++ .../html/unionTechnibelProtocol-members.html | 98 + .../doxygen/html/unionTechnibelProtocol.html | 415 ++ .../html/unionTecoProtocol-members.html | 96 + .../docs/doxygen/html/unionTecoProtocol.html | 386 ++ .../html/unionToshibaProtocol-members.html | 97 + .../doxygen/html/unionToshibaProtocol.html | 405 ++ .../html/unionTranscoldProtocol-members.html | 86 + .../doxygen/html/unionTranscoldProtocol.html | 226 + .../html/unionVoltasProtocol-members.html | 0 .../doxygen/html/unionVoltasProtocol.html | 126 +- .../doxygen/html/unionmagiquest-members.html | 0 .../docs/doxygen/html/unionmagiquest.html | 0 .../docs/doxygen/html/zh-CN_8h.html | 0 .../docs/doxygen/html/zh-CN_8h_source.html | 0 .../docs/doxygen_index.md | 0 .../examples/BlynkIrRemote/BlynkIrRemote.ino | 0 .../examples/BlynkIrRemote/platformio.ini | 2 +- .../CommonAcControl/CommonAcControl.ino | 0 .../examples/CommonAcControl/platformio.ini | 0 .../ControlSamsungAC/ControlSamsungAC.ino | 0 .../examples/ControlSamsungAC/platformio.ini | 0 .../DumbIRRepeater/DumbIRRepeater.ino | 0 .../examples/DumbIRRepeater/platformio.ini | 0 .../examples/IRGCSendDemo/IRGCSendDemo.ino | 0 .../examples/IRGCSendDemo/platformio.ini | 0 .../examples/IRGCTCPServer/IRGCTCPServer.ino | 0 .../examples/IRGCTCPServer/platformio.ini | 0 .../examples/IRMQTTServer/IRMQTTServer.h | 0 .../examples/IRMQTTServer/IRMQTTServer.ino | 2 +- .../examples/IRMQTTServer/platformio.ini | 2 +- .../examples/IRServer/IRServer.ino | 0 .../examples/IRServer/platformio.ini | 0 .../examples/IRrecvDemo/IRrecvDemo.ino | 0 .../examples/IRrecvDemo/platformio.ini | 0 .../examples/IRrecvDump/IRrecvDump.ino | 0 .../examples/IRrecvDump/platformio.ini | 0 .../examples/IRrecvDumpV2/IRrecvDumpV2.ino | 0 .../examples/IRrecvDumpV2/platformio.ini | 0 .../examples/IRrecvDumpV3/BaseOTA.h | 0 .../examples/IRrecvDumpV3/IRrecvDumpV3.ino | 0 .../examples/IRrecvDumpV3/platformio.ini | 0 .../examples/IRsendDemo/IRsendDemo.ino | 0 .../examples/IRsendDemo/platformio.ini | 0 .../IRsendProntoDemo/IRsendProntoDemo.ino | 0 .../examples/IRsendProntoDemo/platformio.ini | 0 .../JVCPanasonicSendDemo.ino | 0 .../JVCPanasonicSendDemo/platformio.ini | 0 .../examples/LGACSend/LGACSend.ino | 0 .../examples/LGACSend/platformio.ini | 0 .../SmartIRRepeater/SmartIRRepeater.ino | 0 .../examples/SmartIRRepeater/platformio.ini | 0 .../examples/TurnOnArgoAC/TurnOnArgoAC.ino | 0 .../examples/TurnOnArgoAC/platformio.ini | 0 .../TurnOnDaikinAC/TurnOnDaikinAC.ino | 0 .../examples/TurnOnDaikinAC/platformio.ini | 0 .../TurnOnFujitsuAC/TurnOnFujitsuAC.ino | 0 .../examples/TurnOnFujitsuAC/platformio.ini | 0 .../examples/TurnOnGreeAC/TurnOnGreeAC.ino | 0 .../examples/TurnOnGreeAC/platformio.ini | 0 .../TurnOnKelvinatorAC/TurnOnKelvinatorAC.ino | 0 .../TurnOnKelvinatorAC/platformio.ini | 0 .../TurnOnMitsubishiAC/TurnOnMitsubishiAC.ino | 0 .../TurnOnMitsubishiAC/platformio.ini | 0 .../TurnOnMitsubishiHeavyAc.ino | 0 .../TurnOnMitsubishiHeavyAc/platformio.ini | 0 .../TurnOnPanasonicAC/TurnOnPanasonicAC.ino | 0 .../examples/TurnOnPanasonicAC/platformio.ini | 0 .../TurnOnToshibaAC/TurnOnToshibaAC.ino | 0 .../examples/TurnOnToshibaAC/platformio.ini | 0 .../TurnOnTrotecAC/TurnOnTrotecAC.ino | 0 .../examples/TurnOnTrotecAC/platformio.ini | 0 .../examples/Web-AC-control/README.md | 0 .../examples/Web-AC-control/Web-AC-control.h | 0 .../Web-AC-control/Web-AC-control.ino | 0 .../examples/Web-AC-control/platformio.ini | 2 +- .../examples/Web-AC-control/printscreen.png | Bin .../keywords.txt | 123 +- .../library.json | 2 +- .../library.properties | 2 +- .../platformio.ini | 0 .../pylintrc | 0 .../src/CPPLINT.cfg | 0 .../src/IRac.cpp | 10 +- .../src/IRac.h | 0 .../src/IRrecv.cpp | 77 +- .../src/IRrecv.h | 16 +- .../src/IRremoteESP8266.h | 25 +- .../src/IRsend.cpp | 13 + .../src/IRsend.h | 28 +- .../src/IRtext.cpp | 2 + .../src/IRtext.h | 0 .../src/IRtimer.cpp | 0 .../src/IRtimer.h | 0 .../src/IRutils.cpp | 133 + .../src/IRutils.h | 17 + .../src/i18n.h | 0 .../src/ir_Airwell.cpp | 0 .../src/ir_Airwell.h | 0 .../src/ir_Aiwa.cpp | 2 +- .../src/ir_Amcor.cpp | 0 .../src/ir_Amcor.h | 0 .../src/ir_Argo.cpp | 0 .../src/ir_Argo.h | 0 .../src/ir_Carrier.cpp | 0 .../src/ir_Carrier.h | 0 .../src/ir_Coolix.cpp | 0 .../src/ir_Coolix.h | 0 .../src/ir_Corona.cpp | 0 .../src/ir_Corona.h | 0 .../src/ir_Daikin.cpp | 160 +- .../src/ir_Daikin.h | 23 +- .../src/ir_Delonghi.cpp | 0 .../src/ir_Delonghi.h | 0 .../src/ir_Denon.cpp | 0 .../src/ir_Dish.cpp | 0 .../src/ir_Doshisha.cpp | 0 .../IRremoteESP8266-2.7.15/src/ir_EcoClim.cpp | 114 + .../src/ir_Electra.cpp | 0 .../src/ir_Electra.h | 0 .../src/ir_EliteScreens.cpp | 0 .../src/ir_Epson.cpp | 0 .../src/ir_Fujitsu.cpp | 5 + .../src/ir_Fujitsu.h | 7 + .../src/ir_GICable.cpp | 0 .../src/ir_GlobalCache.cpp | 0 .../src/ir_Goodweather.cpp | 0 .../src/ir_Goodweather.h | 0 .../src/ir_Gree.cpp | 0 .../src/ir_Gree.h | 0 .../src/ir_Haier.cpp | 0 .../src/ir_Haier.h | 0 .../src/ir_Hitachi.cpp | 0 .../src/ir_Hitachi.h | 0 .../src/ir_Inax.cpp | 0 .../src/ir_JVC.cpp | 8 +- .../src/ir_Kelvinator.cpp | 0 .../src/ir_Kelvinator.h | 0 .../src/ir_LG.cpp | 0 .../src/ir_LG.h | 0 .../src/ir_Lasertag.cpp | 2 +- .../src/ir_Lego.cpp | 0 .../src/ir_Lutron.cpp | 0 .../src/ir_MWM.cpp | 0 .../src/ir_Magiquest.cpp | 0 .../src/ir_Magiquest.h | 0 .../src/ir_Metz.cpp | 0 .../src/ir_Midea.cpp | 0 .../src/ir_Midea.h | 0 .../src/ir_MilesTag2.cpp | 113 + .../src/ir_Mirage.cpp | 0 .../src/ir_Mitsubishi.cpp | 225 +- .../src/ir_Mitsubishi.h | 45 +- .../src/ir_MitsubishiHeavy.cpp | 188 +- .../src/ir_MitsubishiHeavy.h | 0 .../src/ir_Multibrackets.cpp | 0 .../src/ir_NEC.cpp | 8 +- .../src/ir_NEC.h | 2 +- .../src/ir_Neoclima.cpp | 0 .../src/ir_Neoclima.h | 0 .../src/ir_Nikai.cpp | 0 .../src/ir_Panasonic.cpp | 90 +- .../src/ir_Panasonic.h | 0 .../src/ir_Pioneer.cpp | 0 .../src/ir_Pronto.cpp | 0 .../src/ir_RC5_RC6.cpp | 2 +- .../src/ir_RCMM.cpp | 2 +- .../src/ir_Samsung.cpp | 0 .../src/ir_Samsung.h | 0 .../src/ir_Sanyo.cpp | 33 +- .../src/ir_Sanyo.h | 0 .../src/ir_Sharp.cpp | 78 +- .../src/ir_Sharp.h | 30 +- .../src/ir_Sherwood.cpp | 0 .../src/ir_Sony.cpp | 2 +- .../src/ir_Symphony.cpp | 0 .../src/ir_Tcl.cpp | 144 +- .../src/ir_Tcl.h | 78 +- .../src/ir_Technibel.cpp | 128 +- .../IRremoteESP8266-2.7.15/src/ir_Technibel.h | 135 + .../src/ir_Teco.cpp | 128 +- .../IRremoteESP8266-2.7.15/src/ir_Teco.h | 131 + .../src/ir_Toshiba.cpp | 105 +- .../src/ir_Toshiba.h | 96 +- .../src/ir_Transcold.cpp | 177 +- .../src/ir_Transcold.h | 61 +- .../src/ir_Trotec.cpp | 0 .../src/ir_Trotec.h | 0 .../src/ir_Vestel.cpp | 0 .../src/ir_Vestel.h | 0 .../src/ir_Voltas.cpp | 0 .../src/ir_Voltas.h | 0 .../src/ir_Whirlpool.cpp | 0 .../src/ir_Whirlpool.h | 0 .../src/ir_Whynter.cpp | 0 .../src/ir_Zepeal.cpp | 0 .../src/locale/README.md | 0 .../src/locale/de-CH.h | 0 .../src/locale/de-DE.h | 0 .../src/locale/defaults.h | 6 + .../src/locale/en-AU.h | 0 .../src/locale/en-IE.h | 0 .../src/locale/en-UK.h | 0 .../src/locale/en-US.h | 0 .../src/locale/es-ES.h | 0 .../src/locale/fr-FR.h | 0 .../src/locale/it-IT.h | 0 .../src/locale/pt-BR.h | 0 .../src/locale/zh-CN.h | 0 .../test/IRac_test.cpp | 9 +- .../test/IRrecv_test.cpp | 68 + .../test/IRrecv_test.h | 0 .../test/IRsend_test.cpp | 0 .../test/IRsend_test.h | 0 .../test/IRutils_test.cpp | 0 .../test/Makefile | 0 .../test/ir_Airwell_test.cpp | 0 .../test/ir_Aiwa_test.cpp | 0 .../test/ir_Amcor_test.cpp | 0 .../test/ir_Argo_test.cpp | 0 .../test/ir_Carrier_test.cpp | 0 .../test/ir_Coolix_test.cpp | 0 .../test/ir_Corona_test.cpp | 0 .../test/ir_Daikin_test.cpp | 38 +- .../test/ir_Delonghi_test.cpp | 0 .../test/ir_Denon_test.cpp | 0 .../test/ir_Dish_test.cpp | 0 .../test/ir_Doshisha_test.cpp | 0 .../test/ir_Ecoclim_test.cpp | 204 + .../test/ir_Electra_test.cpp | 0 .../test/ir_EliteScreens_test.cpp | 0 .../test/ir_Epson_test.cpp | 0 .../test/ir_Fujitsu_test.cpp | 0 .../test/ir_GICable_test.cpp | 0 .../test/ir_GlobalCache_test.cpp | 0 .../test/ir_Goodweather_test.cpp | 0 .../test/ir_Gree_test.cpp | 0 .../test/ir_Haier_test.cpp | 0 .../test/ir_Hitachi_test.cpp | 0 .../test/ir_Inax_test.cpp | 0 .../test/ir_JVC_test.cpp | 0 .../test/ir_Kelvinator_test.cpp | 0 .../test/ir_LG_test.cpp | 0 .../test/ir_Lasertag_test.cpp | 0 .../test/ir_Lego_test.cpp | 0 .../test/ir_Lutron_test.cpp | 0 .../test/ir_MWM_test.cpp | 0 .../test/ir_Magiquest_test.cpp | 0 .../test/ir_Metz_test.cpp | 0 .../test/ir_Midea_test.cpp | 0 .../test/ir_Milestag2_test.cpp | 129 + .../test/ir_Mirage_test.cpp | 0 .../test/ir_MitsubishiHeavy_test.cpp | 0 .../test/ir_Mitsubishi_test.cpp | 382 +- .../test/ir_Multibrackets_test.cpp | 0 .../test/ir_NEC_test.cpp | 0 .../test/ir_Neoclima_test.cpp | 0 .../test/ir_Nikai_test.cpp | 0 .../test/ir_Panasonic_test.cpp | 0 .../test/ir_Pioneer_test.cpp | 0 .../test/ir_Pronto_test.cpp | 0 .../test/ir_RC5_RC6_test.cpp | 0 .../test/ir_RCMM_test.cpp | 0 .../test/ir_Samsung_test.cpp | 0 .../test/ir_Sanyo_test.cpp | 0 .../test/ir_Sharp_test.cpp | 65 +- .../test/ir_Sherwood_test.cpp | 0 .../test/ir_Sony_test.cpp | 0 .../test/ir_Symphony_test.cpp | 0 .../test/ir_Tcl_test.cpp | 0 .../test/ir_Technibel_test.cpp | 0 .../test/ir_Teco_test.cpp | 0 .../test/ir_Toshiba_test.cpp | 0 .../test/ir_Transcold_test.cpp | 0 .../test/ir_Trotec_test.cpp | 0 .../test/ir_Vestel_test.cpp | 0 .../test/ir_Voltas_test.cpp | 0 .../test/ir_Whirlpool_test.cpp | 0 .../test/ir_Whynter_test.cpp | 0 .../test/ir_Zepeal_test.cpp | 0 .../tools/Makefile | 0 .../tools/RawToGlobalCache.sh | 0 .../tools/auto_analyse_raw_data.py | 0 .../tools/auto_analyse_raw_data_test.py | 0 .../tools/gc_decode.cpp | 0 .../tools/generate_irtext_h.sh | 0 .../tools/mkkeywords | 0 .../tools/mode2_decode.cpp | 0 .../tools/raw_to_pronto_code.py | 0 .../tools/raw_to_pronto_code_test.py | 0 .../tools/scrape_supported_devices.py | 0 1680 files changed, 23618 insertions(+), 19905 deletions(-) delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/annotated.html delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.map delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.md5 delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.png delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.map delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.md5 delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.png delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.map delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.md5 delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.png delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.map delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.md5 delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.png delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc-members.html delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.map delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.md5 delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.png delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h.html delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h_source.html delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_11.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_17.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1a.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1b.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_4.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_5.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_8.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_9.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_c.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_0.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_1.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_2.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_3.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_4.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_5.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_6.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_7.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_8.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_9.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_a.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_b.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_c.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_d.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_e.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_5.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_7.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enumvalues_3.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_0.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_1.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_2.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_3.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_4.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_5.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_6.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_1.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_15.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_17.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_4.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_a.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_b.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_d.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_f.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_0.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_1.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_2.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_0.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_1.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_2.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_1.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_13.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_14.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_15.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_16.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_2.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_4.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_7.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_a.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_f.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/favicon.ico delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_1_off.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_1_on.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_off.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_on.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_off.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_on.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_off.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_on.svg delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.html delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.js delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Technibel.h delete mode 100644 lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Teco.h rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/.github/CONTRIBUTING.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/.github/Contributors.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/.github/issue_template.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/.gitignore (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/.gitmodules (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/.style.yapf (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/.travis.yml (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/CPPLINT.cfg (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/Doxyfile (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/LICENSE.txt (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/README.md (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/README_de.md (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/README_fr.md (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/ReleaseNotes.md (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/SupportedProtocols.md (94%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/banner.svg create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/logo.svg rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/README.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/README_de.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/README_fr.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/_config.yml (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRac_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRac_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRac_8h_source.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRrecv_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRrecv_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRrecv_8h_source.html (87%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRremoteESP8266_8h.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRremoteESP8266_8h_source.html (85%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRsend_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRsend_8h.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRsend_8h_source.html (87%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRtext_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRtext_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRtext_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRtimer_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRtimer_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRtimer_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRutils_8cpp.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRutils_8h.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/IRutils_8h_source.html (83%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/README_8md.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/annotated.html rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/bc_s.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/bdwn.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAirwellAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAirwellAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAirwellAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAirwellAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAirwellAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAmcorAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAmcorAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAmcorAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAmcorAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRAmcorAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRArgoAC-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRArgoAC.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRArgoAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRArgoAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRArgoAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCarrierAc64-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCarrierAc64.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCarrierAc64__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCarrierAc64__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCarrierAc64__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoolixAC-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoolixAC.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoolixAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoolixAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoolixAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoronaAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoronaAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoronaAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoronaAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRCoronaAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin128-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin128.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin128__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin128__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin128__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin152-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin152.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin152__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin152__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin152__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin160-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin160.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin160__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin160__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin160__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin176-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin176.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin176__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin176__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin176__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin2-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin2.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin216-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin216.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin216__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin216__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin216__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin2__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin2__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin2__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin64-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin64.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin64__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin64__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikin64__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikinESP-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikinESP.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikinESP__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikinESP__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDaikinESP__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDelonghiAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDelonghiAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDelonghiAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDelonghiAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRDelonghiAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRElectraAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRElectraAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRElectraAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRElectraAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRElectraAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRFujitsuAC-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRFujitsuAC.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRFujitsuAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRFujitsuAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRFujitsuAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGoodweatherAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGoodweatherAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGoodweatherAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGoodweatherAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGoodweatherAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGreeAC-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGreeAC.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGreeAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGreeAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRGreeAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierAC-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierAC.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierACYRW02-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierACYRW02.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierACYRW02__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierACYRW02__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierACYRW02__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHaierAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc1-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc1.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc1__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc1__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc1__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc3-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc3.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344__inherit__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344__inherit__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc344__inherit__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc3__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc3__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc3__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424__inherit__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424__inherit__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc424__inherit__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRHitachiAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRKelvinatorAC-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRKelvinatorAC.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRKelvinatorAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRKelvinatorAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRKelvinatorAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRLgAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRLgAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRLgAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRLgAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRLgAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMideaAC-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMideaAC.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMideaAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMideaAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMideaAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi112-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi112.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi112__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi112__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi112__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi136-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi136.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi136__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi136__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishi136__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiAC-members.html (77%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiAC.html (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiAC__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiAC__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiAC__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy152Ac-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy152Ac.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy152Ac__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy152Ac__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy152Ac__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy88Ac-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy88Ac.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy88Ac__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy88Ac__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRMitsubishiHeavy88Ac__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRNeoclimaAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRNeoclimaAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRNeoclimaAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRNeoclimaAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRNeoclimaAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc32-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc32.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc32__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc32__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc32__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRPanasonicAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSamsungAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSamsungAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSamsungAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSamsungAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSamsungAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSanyoAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSanyoAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSanyoAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSanyoAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSanyoAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSharpAc-members.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSharpAc.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSharpAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSharpAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRSharpAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTcl112Ac-members.html (69%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTcl112Ac.html (87%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTcl112Ac__coll__graph.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTcl112Ac__coll__graph.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTcl112Ac__coll__graph.png rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTechnibelAc-members.html (66%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTechnibelAc.html (81%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTechnibelAc__coll__graph.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTechnibelAc__coll__graph.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTechnibelAc__coll__graph.png rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTecoAc-members.html (66%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTecoAc.html (84%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTecoAc__coll__graph.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTecoAc__coll__graph.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTecoAc__coll__graph.png rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRToshibaAC-members.html (81%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRToshibaAC.html (88%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRToshibaAC__coll__graph.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRToshibaAC__coll__graph.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRToshibaAC__coll__graph.png create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTranscoldAc-members.html rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTranscoldAc.html (71%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTranscoldAc__coll__graph.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTranscoldAc__coll__graph.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/classIRTranscoldAc__coll__graph.png rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTrotecESP-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTrotecESP.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTrotecESP__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTrotecESP__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRTrotecESP__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVestelAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVestelAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVestelAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVestelAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVestelAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVoltas-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVoltas.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVoltas__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVoltas__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRVoltas__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRWhirlpoolAc-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRWhirlpoolAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRWhirlpoolAc__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRWhirlpoolAc__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRWhirlpoolAc__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRac-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRac.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRac__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRac__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRac__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRrecv-members.html (84%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRrecv.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRrecv__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRrecv__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRrecv__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRsend-members.html (81%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRsend.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRtimer-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classIRtimer.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classTimerMs-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classTimerMs.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classdecode__results-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classdecode__results.html (91%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/classes.html (90%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/closed.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/de-CH_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/de-CH_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/de-DE_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/de-DE_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/defaults_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/defaults_8h_source.html (87%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/deprecated.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/dir_49e56c817e5e54854c35e136979f97ca.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/dir_84fe998d1eb06414cc389ad334e77e63.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/doc.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/doxygen.css (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/doxygen.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/doxygen__index_8md.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/dynsections.js (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-AU_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-AU_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-IE_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-IE_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-UK_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-UK_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-US_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/en-US_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/es-ES_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/es-ES_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/files.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/folderclosed.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/folderopen.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/fr-FR_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/fr-FR_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions.html (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_a.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_b.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_c.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_d.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_e.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_f.html (91%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_a.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_b.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_c.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_d.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_e.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_f.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_g.html (92%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_i.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_k.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_l.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_m.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_n.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_o.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_p.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_r.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_s.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_t.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_u.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_v.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_w.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_func_~.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_g.html (92%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_h.html (87%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_i.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_k.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_l.html (89%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_m.html (92%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_n.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_o.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_p.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_q.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_r.html (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_rela.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_s.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_t.html (92%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_u.html (94%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_v.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars.html (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_a.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_b.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_c.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_d.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_e.html (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_f.html (91%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_h.html (84%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_i.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_l.html (88%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_m.html (92%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_n.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_o.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_p.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_q.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_r.html (94%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_s.html (91%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_t.html (86%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_u.html (94%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_v.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_w.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_x.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_vars_z.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_w.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_x.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_z.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/functions_~.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_a.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_c.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_d.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_e.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_enum.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_eval.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_f.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_func.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_g.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_i.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_j.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_k.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_l.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_m.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_n.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_p.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_r.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_s.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_t.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_type.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_u.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_v.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_vars.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_vars_i.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_vars_k.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_w.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_x.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_y.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/globals_z.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/graph_legend.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/graph_legend.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/graph_legend.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/hierarchy.html (64%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/i18n_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/i18n_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/index.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_0.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_0.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_0.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_1.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_1.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_1.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_10.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_10.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_10.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14/docs/doxygen/html/inherit_graph_95.map => IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_100.map} (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14/docs/doxygen/html/inherit_graph_95.md5 => IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_100.md5} (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14/docs/doxygen/html/inherit_graph_95.png => IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_100.png} (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_11.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_11.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_11.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_12.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_12.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_12.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_13.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_13.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_13.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_14.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_14.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_14.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_15.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_15.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_15.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_16.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_16.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_16.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_17.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_17.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_17.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_18.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_18.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_18.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_19.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_19.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_19.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_2.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_2.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_2.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_20.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_20.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_20.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_21.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_21.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_21.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_22.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_22.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_22.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_23.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_23.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_23.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_24.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_24.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_24.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_25.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_25.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_25.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_26.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_26.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_26.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_27.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_27.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_27.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_28.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_28.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_28.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_29.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_29.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_29.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_3.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_3.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_3.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_30.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_30.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_30.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_31.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_31.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_31.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_32.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_32.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_32.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_33.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_33.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_33.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_34.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_34.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_34.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_35.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_35.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_35.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_36.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_36.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_36.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_37.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_37.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_37.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_38.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_38.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_38.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_39.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_39.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_39.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_4.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_4.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_4.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_40.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_40.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_40.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_41.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_41.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_41.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_42.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_42.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_42.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_43.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_43.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_43.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_44.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_44.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_44.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_45.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_45.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_45.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_46.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_46.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_46.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_47.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_47.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_47.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_48.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_48.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_48.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_49.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_49.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_49.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_5.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_5.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_5.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_50.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_50.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_50.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_51.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_51.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_51.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_52.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_52.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_52.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_53.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_53.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_53.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_54.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_54.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_54.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_55.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_55.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_55.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_56.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_56.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_56.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_57.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_57.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_57.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_58.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_58.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_58.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_59.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_59.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_59.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_6.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_6.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_6.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_60.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_60.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_60.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_61.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_61.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_61.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_62.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_62.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_62.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_63.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_63.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_63.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_64.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_64.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_64.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_65.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_65.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_65.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_66.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_66.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_66.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_67.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_67.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_67.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_68.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_68.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_68.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_69.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_69.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_69.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_7.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_7.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_7.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_70.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_70.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_70.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_71.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_71.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_71.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_72.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_72.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_72.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_73.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_73.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_73.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_74.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_74.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_74.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_75.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_75.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_75.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_76.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_76.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_76.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_77.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_77.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_77.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_78.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_78.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_78.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_79.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_79.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_79.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_8.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_8.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_8.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_80.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_80.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_80.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_81.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_81.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_81.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_82.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_82.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_82.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_83.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_83.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_83.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_84.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_84.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_84.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_85.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_85.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_85.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_86.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_86.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_86.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_87.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_87.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_87.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_88.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_88.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_88.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_89.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_89.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_89.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_9.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_9.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_9.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_90.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_90.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_90.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_91.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_91.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_91.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_92.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_92.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_92.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_93.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_93.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherit_graph_93.png (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_94.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_94.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_94.png create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_95.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_95.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_95.png create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_96.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_96.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_96.png rename lib/lib_basic/{IRremoteESP8266-2.7.14/docs/doxygen/html/inherit_graph_94.map => IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_97.map} (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14/docs/doxygen/html/inherit_graph_94.md5 => IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_97.md5} (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14/docs/doxygen/html/inherit_graph_94.png => IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_97.png} (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_98.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_98.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_98.png create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_99.map create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_99.md5 create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/inherit_graph_99.png rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/inherits.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Airwell_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Airwell_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Airwell_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Aiwa_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Amcor_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Amcor_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Amcor_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Argo_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Argo_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Argo_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Carrier_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Carrier_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Carrier_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Coolix_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Coolix_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Coolix_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Corona_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Corona_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Corona_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Daikin_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Daikin_8h.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Daikin_8h_source.html (84%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Delonghi_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Delonghi_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Delonghi_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Denon_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Dish_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Doshisha_8cpp.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/ir__EcoClim_8cpp.html rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Electra_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Electra_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Electra_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__EliteScreens_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Epson_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Fujitsu_8cpp.html (94%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Fujitsu_8h.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Fujitsu_8h_source.html (80%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__GICable_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__GlobalCache_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Goodweather_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Goodweather_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Goodweather_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Gree_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Gree_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Gree_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Haier_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Haier_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Haier_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Hitachi_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Hitachi_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Hitachi_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Inax_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__JVC_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Kelvinator_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Kelvinator_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Kelvinator_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__LG_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__LG_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__LG_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Lasertag_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Lego_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Lutron_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__MWM_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Magiquest_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Magiquest_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Magiquest_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Metz_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Midea_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Midea_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Midea_8h_source.html (99%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/ir__MilesTag2_8cpp.html rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Mirage_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__MitsubishiHeavy_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__MitsubishiHeavy_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__MitsubishiHeavy_8h_source.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Mitsubishi_8cpp.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Mitsubishi_8h.html (83%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Mitsubishi_8h_source.html (73%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Multibrackets_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__NEC_8cpp.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__NEC_8h.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__NEC_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Neoclima_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Neoclima_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Neoclima_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Nikai_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Panasonic_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Panasonic_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Panasonic_8h_source.html (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Pioneer_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Pronto_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__RC5__RC6_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__RCMM_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Samsung_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Samsung_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Samsung_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sanyo_8cpp.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sanyo_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sanyo_8h_source.html (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sharp_8cpp.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sharp_8h.html (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sharp_8h_source.html (78%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sherwood_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Sony_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Symphony_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Tcl_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Tcl_8h.html (70%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Tcl_8h_source.html (58%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Technibel_8cpp.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/ir__Technibel_8h.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/ir__Technibel_8h_source.html rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Teco_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Teco_8h.html (50%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Teco_8h_source.html (51%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Toshiba_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Toshiba_8h.html (66%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Toshiba_8h_source.html (62%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Transcold_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Transcold_8h.html (85%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Transcold_8h_source.html (58%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Trotec_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Trotec_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Trotec_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Vestel_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Vestel_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Vestel_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Voltas_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Voltas_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Voltas_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Whirlpool_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Whirlpool_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Whirlpool_8h_source.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Whynter_8cpp.html (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/ir__Zepeal_8cpp.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/it-IT_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/it-IT_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/jquery.js (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/md_src_locale_README.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/menu.js (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/menudata.js (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespaceIRAcUtils.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespace__IRrecv.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespaceirutils.html (83%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespacemembers.html (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespacemembers_enum.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespacemembers_func.html (94%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespacemembers_vars.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespaces.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/namespacestdAc.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/nav_f.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/nav_g.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/nav_h.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/open.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/pages.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/pt-BR_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/pt-BR_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_0.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_0.js (86%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_1.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_1.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_10.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_10.js (74%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_11.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_11.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_12.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_12.js (69%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_13.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_13.js (87%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_14.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_14.js (81%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_15.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_15.js (51%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_16.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_16.js (85%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_17.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_17.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_18.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_18.js (52%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_19.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_19.js (54%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_1a.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_1a.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_1b.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_1b.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_2.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_2.js (76%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_3.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_3.js (85%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_4.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_4.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_5.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_5.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_6.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_6.js (70%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_7.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_7.js (77%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_8.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_8.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_9.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_9.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_a.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_a.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_b.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_b.js (53%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_c.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/all_c.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_d.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_d.js (64%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_e.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_e.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_f.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/all_f.js (82%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_0.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_0.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_1.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_1.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_2.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_2.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_3.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_3.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_4.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_4.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_5.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_5.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_6.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_6.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_7.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_7.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_8.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_8.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_9.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_9.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_a.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_a.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_b.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_b.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_c.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_c.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_d.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_d.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/classes_e.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/classes_e.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/close.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_0.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_0.js (58%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_1.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_1.js (53%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_2.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_2.js (59%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_3.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_3.js (61%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_4.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_4.js (58%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_5.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/enums_5.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_6.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_6.js (62%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_7.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/enums_7.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_8.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_8.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_9.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enums_9.js (62%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_0.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_0.js (50%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_1.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_1.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_10.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_10.js (59%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_11.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_11.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_12.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_12.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_13.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_13.js (61%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_14.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_14.js (54%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_15.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_15.js (62%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_2.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_2.js (58%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_3.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/enumvalues_3.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_4.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_4.js (64%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_5.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_5.js (59%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_6.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_6.js (61%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_7.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_7.js (61%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_8.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_8.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_9.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_9.js (62%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_a.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_a.js (57%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_b.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_b.js (56%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_c.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_c.js (58%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_d.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_d.js (60%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_e.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_e.js (57%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_f.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/enumvalues_f.js (58%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/files_0.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/files_0.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/files_1.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/files_1.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/files_2.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/files_2.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/files_3.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/files_3.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/files_4.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/files_4.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/files_5.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/files_5.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/files_6.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/files_6.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_0.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_0.js (54%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_1.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_1.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_10.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_10.js (68%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_11.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_11.js (80%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_12.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_12.js (89%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_13.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_13.js (53%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_14.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_14.js (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_15.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_15.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_16.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_16.js (82%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_17.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_17.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_2.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_2.js (88%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_3.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_3.js (91%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_4.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_4.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_5.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_5.js (52%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_6.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_6.js (62%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_7.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_7.js (78%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_8.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_8.js (52%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_9.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_9.js (54%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_a.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_a.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_b.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_b.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_c.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_c.js (55%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_d.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_d.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_e.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_e.js (92%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/functions_f.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/functions_f.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/mag_sel.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/namespaces_0.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/namespaces_0.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/namespaces_1.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/namespaces_1.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/namespaces_2.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/namespaces_2.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/nomatches.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/pages_0.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/pages_0.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/pages_1.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/pages_1.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/pages_2.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/pages_2.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/related_0.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/related_0.js (57%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/search.css (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/search.js (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/search_l.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/search_m.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/search_r.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/searchdata.js (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/typedefs_0.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/typedefs_0.js (52%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/typedefs_1.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/typedefs_1.js (53%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_0.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_0.js (81%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_1.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_1.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_10.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_10.js (74%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_11.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_11.js (63%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_12.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_12.js (65%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_13.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_13.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_14.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_14.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_15.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_15.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_16.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_16.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_17.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_17.js (52%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_2.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_2.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_3.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_3.js (50%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_4.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_4.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_5.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_5.js (53%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_6.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_6.js (74%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_7.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_7.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_8.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_8.js (63%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_9.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_9.js (53%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_a.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_a.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_b.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_b.js (71%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_c.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_c.js (62%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_d.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_d.js (72%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_e.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_e.js (76%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/search/variables_f.html (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/search/variables_f.js rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/splitbar.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structCoronaSection-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structCoronaSection.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structirparams__t-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structirparams__t.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structmatch__result__t-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structmatch__result__t.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structstdAc_1_1state__t-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/structstdAc_1_1state__t.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/sync_off.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/sync_on.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/tab_a.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/tab_b.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/tab_h.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/tab_s.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/tabs.css (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/todo.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionAirwellProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionAirwellProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionAmcorProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionAmcorProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionArgoProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionArgoProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCarrierProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCarrierProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCoolixProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCoolixProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCoronaProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCoronaProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCoronaProtocol__coll__graph.map (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCoronaProtocol__coll__graph.md5 (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionCoronaProtocol__coll__graph.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin128Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin128Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin152Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin152Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin160Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin160Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin176Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin176Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin216Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin216Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin2Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin2Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin64Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikin64Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikinESPProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDaikinESPProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDelonghiProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionDelonghiProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionElectraProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionElectraProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionGoodweatherProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionGoodweatherProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionGreeProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionGreeProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHaierProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHaierProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHaierYRW02Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHaierYRW02Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHitachi1Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHitachi1Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHitachi424Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHitachi424Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHitachiProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionHitachiProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionKelvinatorProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionKelvinatorProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionLGProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionLGProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMideaProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMideaProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi112Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi112Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi136Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi136Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi144Protocol-members.html (83%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi144Protocol.html (89%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi152Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi152Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi88Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionMitsubishi88Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionNeoclimaProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionNeoclimaProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionPanasonicAc32Protocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionPanasonicAc32Protocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionSamsungProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionSamsungProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionSanyoProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionSanyoProtocol.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionSharpProtocol-members.html (91%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionSharpProtocol.html (98%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTcl112Protocol-members.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTcl112Protocol.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTechnibelProtocol-members.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTechnibelProtocol.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTecoProtocol-members.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTecoProtocol.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionToshibaProtocol-members.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionToshibaProtocol.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTranscoldProtocol-members.html create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/unionTranscoldProtocol.html rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionVoltasProtocol-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionVoltasProtocol.html (85%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionmagiquest-members.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/unionmagiquest.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/zh-CN_8h.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen/html/zh-CN_8h_source.html (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/docs/doxygen_index.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/BlynkIrRemote/BlynkIrRemote.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/BlynkIrRemote/platformio.ini (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/CommonAcControl/CommonAcControl.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/CommonAcControl/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/ControlSamsungAC/ControlSamsungAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/ControlSamsungAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/DumbIRRepeater/DumbIRRepeater.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/DumbIRRepeater/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRGCSendDemo/IRGCSendDemo.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRGCSendDemo/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRGCTCPServer/IRGCTCPServer.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRGCTCPServer/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRMQTTServer/IRMQTTServer.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRMQTTServer/IRMQTTServer.ino (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRMQTTServer/platformio.ini (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRServer/IRServer.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRServer/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDemo/IRrecvDemo.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDemo/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDump/IRrecvDump.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDump/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDumpV2/IRrecvDumpV2.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDumpV2/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDumpV3/BaseOTA.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDumpV3/IRrecvDumpV3.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRrecvDumpV3/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRsendDemo/IRsendDemo.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRsendDemo/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRsendProntoDemo/IRsendProntoDemo.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/IRsendProntoDemo/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/JVCPanasonicSendDemo/JVCPanasonicSendDemo.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/JVCPanasonicSendDemo/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/LGACSend/LGACSend.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/LGACSend/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/SmartIRRepeater/SmartIRRepeater.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/SmartIRRepeater/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnArgoAC/TurnOnArgoAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnArgoAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnDaikinAC/TurnOnDaikinAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnDaikinAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnFujitsuAC/TurnOnFujitsuAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnFujitsuAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnGreeAC/TurnOnGreeAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnGreeAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnKelvinatorAC/TurnOnKelvinatorAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnKelvinatorAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnMitsubishiAC/TurnOnMitsubishiAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnMitsubishiAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnMitsubishiHeavyAc/TurnOnMitsubishiHeavyAc.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnMitsubishiHeavyAc/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnPanasonicAC/TurnOnPanasonicAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnPanasonicAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnToshibaAC/TurnOnToshibaAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnToshibaAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnTrotecAC/TurnOnTrotecAC.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/TurnOnTrotecAC/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/Web-AC-control/README.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/Web-AC-control/Web-AC-control.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/Web-AC-control/Web-AC-control.ino (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/Web-AC-control/platformio.ini (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/examples/Web-AC-control/printscreen.png (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/keywords.txt (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/library.json (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/library.properties (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/platformio.ini (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/pylintrc (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/CPPLINT.cfg (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRac.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRac.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRrecv.cpp (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRrecv.h (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRremoteESP8266.h (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRsend.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRsend.h (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRtext.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRtext.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRtimer.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRtimer.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRutils.cpp (87%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/IRutils.h (83%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/i18n.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Airwell.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Airwell.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Aiwa.cpp (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Amcor.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Amcor.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Argo.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Argo.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Carrier.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Carrier.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Coolix.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Coolix.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Corona.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Corona.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Daikin.cpp (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Daikin.h (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Delonghi.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Delonghi.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Denon.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Dish.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Doshisha.cpp (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/src/ir_EcoClim.cpp rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Electra.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Electra.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_EliteScreens.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Epson.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Fujitsu.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Fujitsu.h (94%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_GICable.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_GlobalCache.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Goodweather.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Goodweather.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Gree.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Gree.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Haier.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Haier.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Hitachi.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Hitachi.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Inax.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_JVC.cpp (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Kelvinator.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Kelvinator.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_LG.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_LG.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Lasertag.cpp (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Lego.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Lutron.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_MWM.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Magiquest.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Magiquest.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Metz.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Midea.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Midea.h (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/src/ir_MilesTag2.cpp rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Mirage.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Mitsubishi.cpp (88%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Mitsubishi.h (88%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_MitsubishiHeavy.cpp (91%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_MitsubishiHeavy.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Multibrackets.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_NEC.cpp (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_NEC.h (98%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Neoclima.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Neoclima.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Nikai.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Panasonic.cpp (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Panasonic.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Pioneer.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Pronto.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_RC5_RC6.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_RCMM.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Samsung.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Samsung.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Sanyo.cpp (97%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Sanyo.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Sharp.cpp (93%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Sharp.h (90%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Sherwood.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Sony.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Symphony.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Tcl.cpp (73%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Tcl.h (70%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Technibel.cpp (77%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/src/ir_Technibel.h rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Teco.cpp (75%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/src/ir_Teco.h rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Toshiba.cpp (85%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Toshiba.h (75%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Transcold.cpp (78%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Transcold.h (86%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Trotec.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Trotec.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Vestel.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Vestel.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Voltas.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Voltas.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Whirlpool.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Whirlpool.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Whynter.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/ir_Zepeal.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/README.md (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/de-CH.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/de-DE.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/defaults.h (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/en-AU.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/en-IE.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/en-UK.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/en-US.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/es-ES.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/fr-FR.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/it-IT.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/pt-BR.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/src/locale/zh-CN.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/IRac_test.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/IRrecv_test.cpp (96%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/IRrecv_test.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/IRsend_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/IRsend_test.h (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/IRutils_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/Makefile (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Airwell_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Aiwa_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Amcor_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Argo_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Carrier_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Coolix_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Corona_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Daikin_test.cpp (99%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Delonghi_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Denon_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Dish_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Doshisha_test.cpp (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/test/ir_Ecoclim_test.cpp rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Electra_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_EliteScreens_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Epson_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Fujitsu_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_GICable_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_GlobalCache_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Goodweather_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Gree_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Haier_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Hitachi_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Inax_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_JVC_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Kelvinator_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_LG_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Lasertag_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Lego_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Lutron_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_MWM_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Magiquest_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Metz_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Midea_test.cpp (100%) create mode 100644 lib/lib_basic/IRremoteESP8266-2.7.15/test/ir_Milestag2_test.cpp rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Mirage_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_MitsubishiHeavy_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Mitsubishi_test.cpp (89%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Multibrackets_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_NEC_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Neoclima_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Nikai_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Panasonic_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Pioneer_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Pronto_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_RC5_RC6_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_RCMM_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Samsung_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Sanyo_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Sharp_test.cpp (95%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Sherwood_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Sony_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Symphony_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Tcl_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Technibel_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Teco_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Toshiba_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Transcold_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Trotec_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Vestel_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Voltas_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Whirlpool_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Whynter_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/test/ir_Zepeal_test.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/Makefile (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/RawToGlobalCache.sh (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/auto_analyse_raw_data.py (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/auto_analyse_raw_data_test.py (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/gc_decode.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/generate_irtext_h.sh (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/mkkeywords (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/mode2_decode.cpp (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/raw_to_pronto_code.py (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/raw_to_pronto_code_test.py (100%) rename lib/lib_basic/{IRremoteESP8266-2.7.14 => IRremoteESP8266-2.7.15}/tools/scrape_supported_devices.py (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 196566592..f02a8257f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file. - Support for Frysk language translations by Christiaan Heerze - ESP8266 Fallback to ``*.bin.gz`` binary when OTA upload of ``*.bin`` binary fails - Berry language improved Tasmota integration +- IRremoteESP8266 library from v2.7.14 to v2.7.15 ## [9.2.0.6] 20210210 ### Changed diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/annotated.html b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/annotated.html deleted file mode 100644 index a92687ec7..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/annotated.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -IRremoteESP8266: Class List - - - - - - - - - -
-
- - - - - - -
-
IRremoteESP8266 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 NstdAcEnumerators and Structures for the Common A/C API
 Cstate_tStructure to hold a common A/C state
 CAirwellProtocolNative representation of a Airwell A/C message
 CAmcorProtocolNative representation of a Amcor A/C message
 CArgoProtocolNative representation of a Argo A/C message
 CCarrierProtocolNative representation of a Carrier A/C message
 CCoolixProtocolNative representation of a Coolix A/C message
 CCoronaProtocolNative representation of a Corona A/C message
 CCoronaSectionNative representation of a section of a Corona A/C message
 CDaikin128ProtocolNative representation of a Daikin128 A/C message
 CDaikin152ProtocolNative representation of a Daikin152 A/C message
 CDaikin160ProtocolNative representation of a Daikin160 A/C message
 CDaikin176ProtocolNative representation of a Daikin176 A/C message
 CDaikin216ProtocolNative representation of a Daikin216 A/C message
 CDaikin2ProtocolNative representation of a Daikin2 A/C message
 CDaikin64ProtocolNative representation of a Daikin64 A/C message
 CDaikinESPProtocolNative representation of a Daikin A/C message
 Cdecode_resultsResults returned from the decoder
 CDelonghiProtocolNative representation of a Delonghi A/C message
 CElectraProtocolNative representation of a Electra A/C message
 CGoodweatherProtocolNative representation of a Goodweather A/C message
 CGreeProtocolNative representation of a Gree A/C message
 CHaierProtocolNative representation of a Haier HSU07-HEA03 A/C message
 CHaierYRW02ProtocolNative representation of a Haier YRW02 A/C message
 CHitachi1ProtocolNative representation of a Hitachi 104-bit A/C message
 CHitachi424ProtocolNative representation of a Hitachi 53-byte/424-bit A/C message
 CHitachiProtocolNative representation of a Hitachi 224-bit A/C message
 CIRacA universal/common/generic interface for controling supported A/Cs
 CIRAirwellAcClass for handling detailed Airwell A/C messages
 CIRAmcorAcClass for handling detailed Amcor A/C messages
 CIRArgoACClass for handling detailed Argo A/C messages
 CIRCarrierAc64Class for handling detailed Carrier 64 bit A/C messages
 CIRCoolixACClass for handling detailed Coolix A/C messages
 CIRCoronaAcClass for handling detailed Corona A/C messages
 CIRDaikin128Class for handling detailed Daikin 128-bit A/C messages
 CIRDaikin152Class for handling detailed Daikin 152-bit A/C messages
 CIRDaikin160Class for handling detailed Daikin 160-bit A/C messages
 CIRDaikin176Class for handling detailed Daikin 176-bit A/C messages
 CIRDaikin2Class for handling detailed Daikin 312-bit A/C messages
 CIRDaikin216Class for handling detailed Daikin 216-bit A/C messages
 CIRDaikin64Class for handling detailed Daikin 64-bit A/C messages
 CIRDaikinESPClass for handling detailed Daikin 280-bit A/C messages
 CIRDelonghiAcClass for handling detailed Delonghi A/C messages
 CIRElectraAcClass for handling detailed Electra A/C messages
 CIRFujitsuACClass for handling detailed Fujitsu A/C messages
 CIRGoodweatherAcClass for handling detailed Goodweather A/C messages
 CIRGreeACClass for handling detailed Gree A/C messages
 CIRHaierACClass for handling detailed Haier A/C messages
 CIRHaierACYRW02Class for handling detailed Haier ACYRW02 A/C messages
 CIRHitachiAcClass for handling detailed Hitachi 224-bit A/C messages
 CIRHitachiAc1Class for handling detailed Hitachi 104-bit A/C messages
 CIRHitachiAc3Class for handling detailed Hitachi 15to27-byte/120to216-bit A/C messages
 CIRHitachiAc344Class for handling detailed Hitachi 344-bit A/C messages
 CIRHitachiAc424Class for handling detailed Hitachi 53-byte/424-bit A/C messages
 CIRKelvinatorACClass for handling detailed Kelvinator A/C messages
 CIRLgAcClass for handling detailed LG A/C messages
 CIRMideaACClass for handling detailed Midea A/C messages
 CIRMitsubishi112Class for handling detailed Mitsubishi 122-bit A/C messages
 CIRMitsubishi136Class for handling detailed Mitsubishi 136-bit A/C messages
 CIRMitsubishiACClass for handling detailed Mitsubishi 144-bit A/C messages
 CIRMitsubishiHeavy152AcClass for handling detailed Mitsubishi Heavy 152-bit A/C messages
 CIRMitsubishiHeavy88AcClass for handling detailed Mitsubishi Heavy 88-bit A/C messages
 CIRNeoclimaAcClass for handling detailed Neoclima A/C messages
 CIRPanasonicAcClass for handling detailed Panasonic A/C messages
 CIRPanasonicAc32Class for handling detailed Panasonic 32bit A/C messages
 Cirparams_tInformation for the interrupt handler
 CIRrecvClass for receiving IR messages
 CIRSamsungAcClass for handling detailed Samsung A/C messages
 CIRSanyoAcClass for handling detailed Sanyo A/C messages
 CIRsendClass for sending all basic IR protocols
 CIRSharpAcClass for handling detailed Sharp A/C messages
 CIRTcl112AcClass for handling detailed TCL A/C messages
 CIRTechnibelAcClass for handling detailed Technibel A/C messages
 CIRTecoAcClass for handling detailed Teco A/C messages
 CIRtimerThis class offers a simple counter in micro-seconds since instantiated
 CIRToshibaACClass for handling detailed Toshiba A/C messages
 CIRTranscoldAcClass for handling detailed Transcold A/C messages
 CIRTrotecESPClass for handling detailed Trotec A/C messages
 CIRVestelAcClass for handling detailed Vestel A/C messages
 CIRVoltasClass for handling detailed Voltas A/C messages
 CIRWhirlpoolAcClass for handling detailed Whirlpool A/C messages
 CKelvinatorProtocolNative representation of a Kelvinator A/C message
 CLGProtocolNative representation of a LG A/C message
 CmagiquestMagiQuest packet is both Wand ID and magnitude of swish and flick
 Cmatch_result_tResults from a data match
 CMideaProtocolNative representation of a Midea A/C message
 CMitsubishi112ProtocolNative representation of a Mitsubishi 112-bit A/C message
 CMitsubishi136ProtocolNative representation of a Mitsubishi 136-bit A/C message
 CMitsubishi144ProtocolNative representation of a Mitsubishi 144-bit A/C message
 CMitsubishi152ProtocolNative representation of a Mitsubishi Heavy 152-bit A/C message
 CMitsubishi88ProtocolNative representation of a Mitsubishi Heavy 88-bit A/C message
 CNeoclimaProtocolNative representation of a Neoclima A/C message
 CPanasonicAc32ProtocolNative representation of a Panasonic 32-bit A/C message
 CSamsungProtocolNative representation of a Samsung A/C message
 CSanyoProtocolNative representation of a Sanyo A/C message
 CSharpProtocolNative representation of a Sharp A/C message
 CTimerMsThis class offers a simple counter in milli-seconds since instantiated
 CVoltasProtocolNative representation of a Voltas A/C message
-
-
- - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.map b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.map deleted file mode 100644 index 206ef60dc..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.md5 b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.md5 deleted file mode 100644 index b7845c7a0..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b01bf74458107df4a91e8d68cd7bd7c2 \ No newline at end of file diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.png b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTcl112Ac__coll__graph.png deleted file mode 100644 index 713bce3fb12da126a2761dc964636db9878bc7fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2945 zcmZ9O2UHVT7smq&q1VtsAyfq+%5p#=g;S#%|UbOj+S zlF)^OVnHmlpwjsWigfA4Z(Psrcg{ESX5P7T-rRR*-n;krPj$3M2=L1AfJ!GDjpgU!K%(k`oSe_&55 zfYGkj5T|$IsZBZV=woReYl_ZHaV)FpEPtpw8#Zxt)NgY~Is04Rdf)oKYN5&7J`>$_ zO$0X-g!ynvsFaU3Hs^1T`fOw}dD1}8 z)YKG}d{R&~{iL!86*p!Svptn8xFFYiXU3q?SzXh;SYg%nF-924k!xGI5bh=qTLTS!{oQpW@Zc`?)pB z$y!!U4vxcVDJm(6NJ()wxRQp4(a>9?fB9^GA8@F_0!J(k43TC}6l>A_9WK@K% z5)l@TyXX^=8T=LPB7h%M+PI zA}_YEx>{3;AH2W95ZYd(O;EgFik6m_$FriKZ$~_1Np!k-SVV-Ph6bPPXqAQ3TZ8V_)M!Bu zrn}QPKwp-YBEB|$7#Og*d9&GR&mis7GfG|P{cf*2RwbQ&g}1;hV}hU*BGKH^l9L)T zk+Hpv5B~U!heRTQ;-a^f*g$kToxqo87&R>%1Yzn&G5Qau zSS;4vqeqUM*ql0Z8mAPTJ~@fW$<2M#)Fh3_kQ1Q>>B;09M+yoE2)MM}JS7T&U>jUT zq@{Th&F>Tx92GW~lOS2?`rMkDnv#-{iSPCjp+2xxJ)dz^|C%utBrGMB(%NeBZM2>% zQ~qpEBA+BBlw~hPvPw@+@4(R*zV&xlQE)gMbFjPdqQBqD$q7=8)~NA(o-sJ+%r7M5 zaOq-LnBF*kMqqY!wy32=RyCW)IO5y2&huyFamV>V)T^JsRYOGB^Lb^7_h3}9cDxZe2c(ix2Ir{3iyy;n*$P+H@}rc%94gy>#H zZdR}2rvE`Y!szpz=)B$QIunGv5ss;+^ka`1BI1|w8R@KD&^7;qI(a2@RN?DN$xZx= z3~HKm0LbC&#_yo)to~ZlKJ?o{^%Fggc5BausAo%o?;4YPM1z zoi)Q3E%Xb6jgKP5avL2rf+;gP%|C)}eUt>5=_Dt7ncf~&Y>LO7?6^ zrSX=mto>Q^Sl5X^*S%Pc@o(MxwLD3|S__|QO}qHgZcXmR$1F9en(Na|IEPhGV91=6 ztsm-Sro`s%LTyQPwe45!{PKz@U`*)QjnvSVxU8eH4L@d&uT&U6x z88?a9TcjfKEgS3Yrq6c!#X0u+bonVE|GnREK|!__?5(w&$> zr#)Nc>Y^eum&jh5mnO}~{FIaw?kSqF{kggK7gHgf*E4GS1N3D4^<-8|GDF&Tz^SRJ z^Yin=x1JJZejUpgz(f~-1#TR00<=o6QW+NQ?7f~ z-hbok)^x*?=;GVe(O`)e4vdS`b^jot=@LgE5WXz0eCN8dv=WPXThF1vNI^|$M9KAQ z^&d_!ODB@QZ0x?wlB(}o8fzhsBlKC?4tIV9S}8&eUqH`?89ip)l?x>36liPIbI-C^ zN{Wi?hK7dp-HnA2Hqf~;Q7jhwqOT9`<)t`W<8B;a$eYNXr{(@9np{>^w!PG{tU4C* zuOO0Qt+!RDs{qMa=~2pbR( z@NQva`*3f0wcmIdvpnAB9}<%6Q7idJR~Njrw3K^cAeR#a02LU;Y>8YBEz8Txn>pB; zKwP*WP9zfFF_|eJKA@6K2*QIyLr@hJ&Y_{9fwOoKkv62Wdakvd9cS-#r+y2dYOn6F z3YBzqAu=RzcXv1byLEo-F?Dry^OzVDXLWH2Ew`Vn1*R~X4eSH=NtZ(F(V9ttoOA>Z+^Sei7~@sp@19UQNm>!F7=3FoSOS=v1OVZ zb!c!9!$=ZXSzDvGEVrk9{OI~}M*OO3zEg!gPknY&RMexQA`k$M>^Yi?X5)?j@Mg%L z&7e@UL2<56B{WR9>7L?&qf_#>+YPwh)H4hTPcw9*~olSJK$Xe1s$0 zbES31p9&f_m>pTzaG~MI-mAoM6)+g=wYRwlECRyaeXMlH+`^)B-DGLvIV{4O9S93( zDk>^2t@t_$S(u${pM0e^!_ZAxTwI)ItXOQ7U8`AWeQOJ0Wd(lq`n8Uc(Q2VrGJ&7~ zg|Y!&ErNnHl9G}fFJDdr^x1hYbqx)R@bFXTkjT1gQ|8Ifl9Iq6GjH!w#wH*PfFc33 zyk6s^*SP$N=w(xYhcf_4v*$(|f+UNJi|-Z|X7=^j{**RaS~z;E5n0g2#)jDxs)jE> zpirV&Sy|e^;nV!aHvwIh*zMKXLy}E=R<~FE^=qJ}XM2nr*~7ylB`wXu&W<#&+AlHV zq5QPE8VmF52f5J=9R(uC*0v^D9BD>e=ek?KDh z?+Lnk4wZ}hc@Ftb7&w8AlmFGFZ1)eDXDn_Ua^<_5_&`9z>VT#O*;v}cYs@k6{{;X< Ba$*1g diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.map b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.map deleted file mode 100644 index d66eb5d21..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.md5 b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.md5 deleted file mode 100644 index 26ba223dc..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -765ed53b484f35c6ead23d4d08827992 \ No newline at end of file diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.png b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTechnibelAc__coll__graph.png deleted file mode 100644 index 27d8bbdb97ec017c32fa1bbb270f1d62bfe1380c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3199 zcmY+H2{csgAIGo3gzUBvSvw^7Fm+D!4QM2S&AZi48oWpS+j>2 zOVp4p#@l4yXNdUU-v9qS|MQ-E?tRX4p5^|Y`~05I_j{v_4RyFUL^%Ke;L_7Yn}X$I z@D5>vg3q3OcQdenI$qO30|$SuoJM>K0B~N^Lu;A^yk5!-F}PtV8KwR{?6}$F479C9 z|I7-+x|(UFOUx;+=1NSpAuN*UjC<)m`c}4&DN+QU)+}vvnUVf8+48lAhtu=gvl_pn z35syzAm71P4JoORe75RPU(|yLdP9itvix)N#L3jG4QZu0RoZyqhp4E){v}mL)*~D* zB+}^Qx(~p~Xp_DHq!=(6z*)E1%}u<$71efT1#(L^Fv%$?#K#+VH0Svjb(iPoTm7ek zWz2l-$*&ae4vde>TLp)Scjpfe53|`7P>6TPqM8d%!EjcE?jy~AW(<guvNIyreQj$BY{!s8EdL_nmZ zqyiR+oex*PYu*+O%aytjh4j{e%+T^rPq%q=O2 znSv=P35mu-)qigaU=M!#w|8_%DJly1)n}gH_$%#JUS1xgv9Ym>OzwCe|nZ?D$_x9V`+IITAfAlf|R`P;Bw=iIQ zDzlyK?KSnaL#=TsNPR0S;WKh_gI~W!HU=`*=kyEsbrQrhuU$Kwdd@Cpc-ZVE`3_n~ zM@yPNmq6gb@kU)OHmfT=f94E_mX?-+FlSJ@A>RAiSYd{UoCqMz&(3l9u!+5W!q|IH z>h>BnfHC2p`^EJF63GdM9@_z_pWrSwi+LeudE)$ep0ctsg$%N?|FRfdQStV>n|5E1 z3J8Qhe|}_^Mr*rw5rrShee(t#YB8ykU)LKwP@6a?G)I69(?*ahsOuT{c<)I;^8z*<@iClJgPvCe(Jg-j{{4qkh zB}e;FXNWaV=S65;6M9 zLH6qo{qDjCcO@2tf#c~NniPe7S;nOx`#&L~E0yt&{f<2;>|+o}!SQhAMYuJFo{heII<pD7~Adb52?Y}WSeI<}CFCr>>!o|f! z8i{;8vgC(ilZq8Qd*ZDn0Y)jeJ9)D#Rr=Ja>#l}I^U?>qk~F=;GwY$YUc@0a*5 zCa0y*YBlhD^M;g*sEH(llc47OBNu-Qkg?3p0D=qC$Adv|YUUa~VvJ@~aB>FzU4h5{ zt1DR1m@qyWsQzj?rDEvPzvubWnCUFqnbO(#rHHaHI6OQXZN)PEakPnw!9n-kKb-!R zq$8pE=n=_jW<)5paoRs&q87)BP6h_Wo^?)_cZ{yUjkdAt-6=9MpBw{Dk5#*SryJU3 z{}b_d#bi){e8tqU;}7WXJth!EU*_+}(y*%{-Hcczy;mNEF7)h~8Asg$Q;i#5}-LlTmc`5U%p zV#9{#s!wNG5bWdk_JXX+EQ-Fk2CcRndKw+=we3ou3|!Ha7tAjz>ax2Xa1_TYhVWtQ zNjtCO?!MHUhSb;406-QJA5hNy^g(nvlh}K1$_tuVSmY6jd?0WGW};;(KrKdY4rl>D zT|=CCa}knU7D(*pyl9t+w%eSLP-Xi6Pd0AenzIFMq^mV>w>vvx1oa z{Mj^4E!WK6o;zMUJSK+2%-me+@@2uMz4gOQzX$Vm)_!Do&VaI}gTWv^_4If#hOU>d zcbeMR#DbETS6B$WfB*gn$>p#CY)G|ZKCZ3~QEFWY#bU8m?_7`0FD!_!+r9HFsky%1 z5`HKtH5FQGo6xVe%LyK;r!g_<6%B*;+UJJwCT3>1oekPaSy?vE#w|fmkq1Go3~vc7 zEQGm@l2``^2YF*VjAf5-GwxTCNW4NqQK6wg!{+B}3a<=)uBecYs9jeVeG9to03`#Vwbv+$|Pft(l>gj1-y~?_Y zQ7yHQ!|pCAJx@(_3ZT1^ zr#S7CS%J$}(ufHK1qG~t7z?vTP!JO2qz@v~W=v*;oS1eCD`N5XXcUiRR)v9{9y`d( znAljN>z6Z&g1DlRoI5a&vQ; zKo>$Y+9`Kz%=q^0raWjiZR@hLCHVyeOe`&FU+M9IHTDIjQYtDLT$lPZs@=yTD=HK~ zZ>;>LaxDG7hWKy7{fl7+0V^1vD%^$2hnMfcmlM(mO)%<$a^UqyvIvT))aW05T4gq- fl8!iOZ-f|&q|5DHk>m&eC;+{yhUjvXL)d=+Seg-0 diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.map b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.map deleted file mode 100644 index f3e5d1502..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.md5 b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.md5 deleted file mode 100644 index b08a20fd3..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -70b332a49408f4e1d8c532bf7d103f45 \ No newline at end of file diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.png b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTecoAc__coll__graph.png deleted file mode 100644 index 60d06d0839e714fc567f6101fea03934da83da8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3054 zcmZWr2UHVF7hXVWXaU4frB@*o%>zUN1VYD1S9mljDk@S1q!?YlwJ(Ih!o*p&il)G=RZ5UbMEfU-kI;-`Mw*AG1X&X;$;E=fW<&x#|-S@xZ_vtrR)#S1tpW z@DgX+IiwYfTHI-yJW8A^Obi)J9M&QoZG{S>|B@g*MbzZgWHvjue9CxvXObZ<5AMz< zCnboOlo)Fqpmv3hyFw|QFW#*Agt0HY+^QY?puDneAmOwSxRCXIC1x=zFfTVSLo||I zp#ml055&hhIZH*w7IH~Mn}xeSYiMuhIUo9~Fu6hhNqju>>*E7Tcsg>Hca%&{DAr42 z;>M-D2-p;PmYq#|g%IyC2-8dChl;QoGz4zD^(6JwDyF@8i(%qKNmI#{)zz`__c=K_ zYOY`iP?Ga4G)D3I_3PuU_p*o8`n;x8Sf{6_ZC?6HcOGpS38RuPgw`pFi;D|IIyyQ6 z@Qxjht?lj2?P28MW#%8y8fgd{Ti@pz+a53e(1T^k(8D$It3sIQdcPkS zK;60}6^|DEL7{j}byIcaZC48^&uvWix^Pc03P)Dkwk4*erTwa=naZSva3@Dc(`k@h zlu~dw2Jh9$7B5%7hYvY{lJfGH?+cp&`rxYbk>cV}!5cmF!3R@QLR6ZAZpwwY!{Y+iRsOH*Gb}s52l^LrDntv0d8(O;6b~cLiP|2 zhubi?YG}xD;JeN<@~rX23zfeclC*tLVXYpgD>ZgRuznPYmX;@-XSRL(LE&-r2}bO$M+rp8-ZT3S(COUS+a z@WH{(?brJY*$TV~FhRlSzFF+ReE1k8%CPiJGz%XFgEI}@yx`;1V$!ZN?snVrA0O8y&s?G_iMvxeAQn}TwJSoLI&Y@$$j~hls7_amv;egZ)vNk(|;`T_xxE1FimUDgc++{nZ=N7K7GFG*l52Uig^+ zwexK0rTjh#VWJODY}#&9O^w9=3?swZ64<*7+G5!g!jdCl5#JDZX4u%_q_82XN9zJ9 zMI78e-i<$6?>=x?B-;Z(qY!JE@~p>b@Z%swLTW@Ztrurm;FUAc2m65!(H$^Uuh47J zRAy6l$9i%UU)h&qmiKHJIk$>gM6_D@G09b!-?)6y!3W&}n~h!0mR?uD7CIf1bBBV) zzvl-;GYal|#1FTAll6aFfr9eR^1bwNgiS+GM?852`geSJfS(#(v>-;C{ge1*Wh2=0 z>_*M#zsU{{GyFI65y|p2$;?3|dD4sZ{O(ncQl+4$; zcdusLX^`nTz2f4NxO4C)0&l7ralE3s)Y^k&6Od*G>O&6wtL-~@Q&LiX9Z>3)v+eXr zdY@@EPudXPzmaWjEmwnr)Fxg%gm>jVeX2b(J4<9k9%-V{=>EE{V?%9i?fxjpIo!a! z$k5PGNpo}BaDHkk3QW&fqKn8Mp5MegUvJVGn3#wQCdI(7mYSs)Wy(WidbOTEe~vS& z6tl0(WY_KoiI7-klC2*Wh6D*gOiu3Jr0QKU$%WCb=BGc+BS0b$QM9zQJW@+Yh0yAl zBcL+rPfoH4#3<^S+PfkuANEqDYOEk&s~d}}>pWn}%F0?=U7eRa*JyJAmynRV>vgQs zPQvG88Ow9kUs^~askF0m(qL5EljrCZCwgJb*HUuuyC=b1ae0^xN^WlM5&0w8NJ|SF zfc+-<)Z;xhE%6gx6Z?NLh`oLEimIc=zoD0%pBTH`?hC2yar)a}U&qPwfX8ZW2RKMwOC z(RN^dejZb4AtfU-GX{6)WCoH4=JoaUyEEi$le4m7{V1PJZX_B@^iDLnFN%~Hs0M5Z zX&kO7TUc03Wx3};cWm||9P3g&Cz}~{b#+17B2jh&7IPmar=`vL@Ew1)^#r-7pt{<) zLLpcvvY?>>N*Sx`+nnvAF&~6^xATKsH{RsV29n!fKZs#nALqRbTU)u$$=f~do$j7Z zLMGn((mLHkfBp<`N_St{*i1}J>c6bobOc>$y-$8ZB4L{{Ns$m{Fts|n&%S;-i~DgYiKYCyAi1c2p|mwtSzs;H`(-ID_u z+{sD!E`rbb=1r%j2}cFkuW$RO+F@gZ%XA3k0m0;sbN#sWPIJR!kVInlU;7$6j6C5V z$b`ojBfP{{S669)xrK#9BMOBQp_@$*=Y3b?H`-}N{H*e0CoJ4_hK`g(A z9?BIJ6%k5pFK~lpgk4u??g^<6RG*Cib&c(oot+&3n3XzaNCUz5;!YW=fZ%YC}u`MvG#Ms*>Ch+~?ythU^ z#X!G*sW;?Hn`g|88gyWwYU|yJa8S2P%F3u=9lNX$NN*gx6K8E7NDDb9KPNe=8hWGx z`s@>ctEj*#D=RDN>hfEI!<5&s$XwHy*RRzPD`9La;|(-kUS2BRbNwNi@1kA)Q^)>; z4nQNzw|b?rJa5aLe>*ys&S^c$>q^+<`IOS!_8^^%jtB$k6<(C|-wMsaJaybx!Q=Dc Z1ei}+-M;H!h64+Dz(Chjr&ilB{9m7R$PNGi diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.map b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.map deleted file mode 100644 index 483543b42..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.md5 b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.md5 deleted file mode 100644 index b4f1e5ba5..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c09eeaf5909d6c222783788bba05faaf \ No newline at end of file diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.png b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRToshibaAC__coll__graph.png deleted file mode 100644 index c1bfa564da481a1b5716bfc5f461d10dffa40f2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3399 zcmZWsXH-*L8l_i7njlTO@{mW7-a-u|AWa1&ASDPWBBJyTf?z;_XDBZeL0YIHy%#Ae zC4dB^x6p&3H>q=+dGlvxW!;>Wd+$2=?*8_-_r54oWBrQ^+ze!7WEbHu-P>S&4vr8y z8t^^p`DZ3rXpn~bx@70SKbcKfG#S~26S%I{UEefPdeANQk?GJ3@&pEhPwX$lW_uQ& zisrGvi^ne&xIgKPt9pi9o&I%uqxXp>HpL(u6DDsLXZqT(bN4Xw3{h{ zeqXy-^0aU^n&Ks6QD$xJxAnRZ_jD^NhWnAP=GD4HR6Y9APH~W43`TaDmt8PI6Kgv^ zw@&7Hrc$p>2v+;>;RAww=2?Dz z{_JR(!=oc+0XYh0rwYp=!tq70JUWzR6pR=sMX_cYCXhYIqFP~XfO&bzM`xK@S*@*` zj)T*o5MdbzQ0K=knwUMk55$ z)zy^-2^ycW-%~!S?3g$_JdA($?q!zP$##zvasQIWN&M!fdtguyM%tbNYn*-?&&|yZ zGcM6uAUxJj{A9?wafd`=A-DEY5y1^(d8W)jZqJ%9xuQ7PInkB*`?!$FJsVN|u$E zm)G-EBw`wwZNpY#af2p2Y{WK%4~wVQ^z~J0@FpP_yA$7V$wtz>XPKOi zp5E+PteU!doi~Zw(b3W6mzI_maak*zhJ0Xj6b6M-H#awz3`M7Xojz^FJM6obJj3Y`ijbF^T2?q z+hlFnu#0((r38mjY{~T%PFC`h(^JbbBsGtsTTVd%ijtOTv-?J=DFV@5VpZd=k}jv9 zKzLC{$H?gLJKm#{34Q1)1wC6T6bH*TilruHxaw#y_?P&bSc|T)*2w=>>Orc+w@a z{>yt&&15lhFjMh}tRl-kR%gf3dSzBQl3FoF*9RYnhw53&XluR*X157nXnFw)c*uF)a@85#>SgG@#lN@C zq<<$T@%}q!oh{Q=oevK)a8q-Sq7zv8M$+!G+k9PQr^9BRta$N`q)hQ8Il=ze3OqCK z2x%D1q!a5&t}#fwjfAf!TC7P@iPmjf6b!;EN2UqeEp7tVA+@XCT6-2} zDyZdsTj=ABe6`Dc{Eg#lTe~!aaEY#}DhT6wxI07NdedOv)l>cg5t|}+JJktT1CEoz z)%oX;?a#*SyCFK_sNCa^vvXt5Ju^1t$>f-HRUcM1HXU>G zL=~CLVHZ&Wfy{}Sov$eJXE8s!J3@~zqee%Bj?nrJw?WS9GzsbR39Zj33MMgnR z?gcX%lf3Z$%~6Lq7H;lwg}FZR7+^|dwgWwIPnHn-f|J~p%uL|k38NSYhUO>t4e%rZx7drV%pP%Jv{_kB>#t^uyA<4 z#(5ghqRm~rNe%q`^kAmz+qYRDBuczY+S=N_!~!e~23y%yI_n!K-f>4Fg$fD^z_k}1 z9)7?ZQLkS=+FL0PKJ}-$bhWoT@kSMc&YcM6g~de~FXG+uii!!Cgt$0i_?~U&Bf0WN z--ReBDeF8}S)-WvvOax^N3mVshw-M|!%k06UwNy?4qf#$PO7h08N}mdxZi>^3Qxy7 z_SQy*chv*-;}a5e0|V6zlO=O=a&m^xfcG@+4jSG{Rd_pA;q0-!0GBUmBJQ@mVw8AL zpYRx;S7!H_!Z-s`l2>9`5ji?~pFkkM3=DvZhO4S-v0uI{^Y9yUl9a8nmsgbv7fU7G zbfcf_9jvkA_bg~cWF&z^G6IGKKwpyy8(?JRW1^i2I^c`Wl16sC*1#Q)KPmk_Fc8}H zkbpLUe8|g-e9NOq@h2|Ks>aO`%;ZC7=L+|^HU;yIv(sbCPj=)1`#&d8W?IZsRDb?Qq) zB`0(CLyjc^4%W@_k~WPX#CSEByP9NUI*N-WkPZ&0xH#vvA0;_hY|YI20e@j(p_rtk z(^$D96%|#!M=P&JFmEa@5{tcVV`Bpni?sW!rd}*>7eLG^ack0}pM{GH1!&W+wsQe& zJ?hGLuCu}=>m=>J`zSCl@HckS((%Ijv6bEPb90}=FF|11+7$Y6SIuiCTonuq42F^t z!0ns!aTJ(eHH6n2o;A>Z3_yK*X9o_4e_r*Z_;aLTa?;xS=P1}QtiJJhy}>1sn}b8o z-QB%ZEoQ&lgE0F!93%gPgNutxPEoNY)p_)j{Tpui=!2OMe$bX-m&NQj2y(LaIp~%< zVDqhOY#>>ITjyWYJ#ukrTYNF)Wj!`F#?Hyj7GR z2nzq!+k5xmhPXI|9mqE&-7(S8ZOAgaviqj&uNHff(aFhQfj}96$ix&CUS56^{0+dd zd98LMXXMNEYa$}?7))1l(6RKD3#28>mSA{tC3SZ?3G9h$@yU}$J) z+2k)@RaFH><@fx16?Qdzwv)EIiBa-d=LO2+I$jAcp|K6zf-1O - - - - - - -IRremoteESP8266: Member List - - - - - - - - - -
-
- - - - - - -
-
IRremoteESP8266 -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
IRTranscoldAc Member List
-
-
- -

This is the complete list of members for IRTranscoldAc, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_irsendIRTranscoldAcprivate
begin()IRTranscoldAc
calibrate(void)IRTranscoldAcinline
convertFan(const stdAc::fanspeed_t speed)IRTranscoldAc
convertMode(const stdAc::opmode_t mode)IRTranscoldAc
getFan()IRTranscoldAc
getMode()IRTranscoldAc
getNormalState(void)IRTranscoldAcprivate
getPower()IRTranscoldAc
getRaw()IRTranscoldAc
getSwing()IRTranscoldAc
getTemp()IRTranscoldAc
getTempRaw()IRTranscoldAcprivate
handleSpecialState(const uint32_t data)IRTranscoldAcprivate
IRTranscoldAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)IRTranscoldAcexplicit
isSpecialState(void)IRTranscoldAcprivate
off()IRTranscoldAc
on()IRTranscoldAc
powerFlagIRTranscoldAcprivate
recoverSavedState(void)IRTranscoldAcprivate
remote_stateIRTranscoldAcprivate
saved_stateIRTranscoldAcprivate
send(const uint16_t repeat=kTranscoldDefaultRepeat)IRTranscoldAc
setFan(const uint8_t speed, const bool modecheck=true)IRTranscoldAc
setMode(const uint8_t mode)IRTranscoldAc
setPower(const bool state)IRTranscoldAc
setRaw(const uint32_t new_code)IRTranscoldAc
setSwing()IRTranscoldAc
setTemp(const uint8_t temp)IRTranscoldAc
setTempRaw(const uint8_t code)IRTranscoldAcprivate
stateReset()IRTranscoldAc
swingFlagIRTranscoldAcprivate
swingHFlagIRTranscoldAcprivate
swingVFlagIRTranscoldAcprivate
toCommon(const stdAc::state_t *prev=NULL)IRTranscoldAc
toCommonFanSpeed(const uint8_t speed)IRTranscoldAcstatic
toCommonMode(const uint8_t mode)IRTranscoldAcstatic
toString()IRTranscoldAc
updateSavedState(void)IRTranscoldAcprivate
- - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.map b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.map deleted file mode 100644 index e70c9c95d..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.md5 b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.md5 deleted file mode 100644 index 517bf816e..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6fe69bbccc1b788ab10dea841be7cbf1 \ No newline at end of file diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.png b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/classIRTranscoldAc__coll__graph.png deleted file mode 100644 index d19e26b4eeed7ea5ef76fd48215ca901e71e5750..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3498 zcmY*c1yoeq8XiCqlo0WfBHaio-AXecAp;UJbcleI^iYBz-QWyEDcw0VNOvP3NH+{B zNY~rm_3nM^ompqjT4$a0pMU?~{^ESlP*WtnNplkdfeG4{-Vt;Di6ZPj)bH z!8cV=l!ILT`K34J#DOP`l;xhn+*7bD0y9Rs7iWaQ`m33z;l7l+78_)Ye|z(bx?G_vY|69>#1oy@2RYw@<8yZQojZ2|z8EtI2_nYnMI>gf(Tm^xr?JoFiB(opW@f~w`ylo;*I)4C#a z)IewUGZc7@oPq+b1`H;ruTL}YdnHK`7DOs_>}Oc-%87`Ljpg9wU7IR1J3p8-BBFjA zczo=Bk0f|>t^P+7Gc)tM*OSFD@$v24B@HtB@m{8;OmH}yDnh}@$!V(E4wXN1-c67& z)#!zBpIXdT{mArOOUs}TuXps5B54c?RWOcHWm{ZcX1;mrmH|TN)vG*+oQFs4b4$#O z{ExZDgu}(f#iceLZ!ic5#Dm3@x&Ja{VrKR@n0O)Tdno});x)u&;NVcI zb$51lUjEU1wYIm~*SmgpcE;^{v@=ca_x?RTDF5@I^!H{zT0AK;lgUwWY*KuJ3c+db>q!{Pek2X`D*Ov z(Gfcfw_{oCzf1tJEN;wWW+7j8cTsyscMeDPv}u&J@rpcDSLxielkC zxarbn4CY$eE{>xY}eYw|>8)LVZg35~VE|^o>yc);F^@>~Qbu6fmeNOy} z#ptpl^t;b`|7Y3YMR8A;aZK$X9LbHk8ymLI<5qZyx9GPWbTF+~G9wYV3% z&1J87(p+6nhnMa)W+FE0$>%2c68@(_PhmsUTax;8k*xrX8B zlZegix~F;JDk|0Rx(^3?7uUBWU6M&^4;g2&SZPTseK}lbDekV<9cou^X+_wWHa~Db zok!@$Yo`=^QqQG?BlPX-infI2E+of^)CE5ygK&?xjMl+`ddK3(6*HE{4#0xn&IfDA{#ollShf)#5X(b>L<@VPi^2^K1)a_&u}`j)oiZF_k1n5^AjjAQZ!5Bh zi0Gcw7qHt;6c^Kzp^H~1y_c7kLc+q@79C2R*VQsVeag$t)wqK}4p^QZY#$9TpYuDu zuGk2EHk*&_iSjQ_tz zRsYW^7p;hIXFW8$A6#qxE%86bxx`wesM{atnCaWFI#}>Vk(uyUM&MVz9U1ZObEY1$G-oX5L464J|(|q9xkHjBz zj1}rtD5CYmIUe?|*GBTpzgU{-jxNrvE-kEPsOHQUb#Li4! zunI44ZYq0wOQ3}8TFoDm(a?AfRqwA2nEl=ud0FG&4^$I~tcc6TZQ$uLIb*-t$<=R@ zlehKpH5aaoAcf!DH|q>v1O^PYWlR&|EEb7`nwzsgypDER#l=xbBn>_>jT{tu6YmDe zwHC{YvbWnhYN-;+hK6*@T~StF0pM(M z+TIi2rJz_^U+)U1=GU*{e6MN2R1UYvLK_d zNlKy{y^fy4;e%@fsA-_{@9>FRtp%J`y2<37JUzvP?PnQ)Y5QE9I_^w8^0~Tj1Mx?< z%H}WN+UAy)rkI(Y?rsK9B|JP_Xc=B%NsRx_pHAG>xMEtj!tz-G&`Z(&R7qMlH#f`v z`veKvT08KOF2~SX9*dv{jmX$s1}U zSjj?*e}9T-967sMWv+^nl5ux5qr0c)Uh6GB<0}0!U7niS+Qr@7ND!JNJ%1Z-3}-Z) ztf3&u1D0UuJ)>DFgoK1&CMT0XrUA|8=H@P(pX~FztceDz;;hA}rAb9}jGj{Jm%tmL zCMJww6c1XBAKs>->ZX0uFp?S3VVY4>lT1j?26>1$b%~^xE@rWFn*UrHQiOMAC_O4x+_5A3RuH8xU^}lCYgBrLZHyf4Ar6j9b~+sSpql zpj&2o-Jsewqq;h=wDh6n08(C8m+DV4ESV&yqMG8uub2);p=f~yLiIE>ZbK3h5{gFI zb#!!=R#zvOBI~7v`S?gHru$cV;tb;HB|YOof}9ghjU3&?XaER0!YH)>sFxRKGj>-) zDG7ptf`x|liJw2S9PUiF@im{fg1}fhgC&)?Onzjh+w3C=nqg#O3c$?!pg@PXxVR1? z_g;bxsZH$~GBZdswn$<4=iqh)BQMB7VRTH1cD;lqTDb}ttfSA28O?UmKlGP@a} z$orD{JhVc#48p>c3r)XV?rQJGArJ^7LQMMp+uqOZ9M zA!Gh|aA2`Hng#M%3>rNE+DU-5^(FDKgSg15lK2qlR%mEwNJt1o<6Gn5x7Yn?(rEyI zd11#*@a!vV>xHZ&xaoAc#e>uvJ2RLlV0Kko%e%X3a&p%IO|YF~Wcr9&DQ@nt_I5eD z{4&~dn+dM-^K*SVY-JbnpRbYsS9stMyP{7=Bn&b~8kLlkthK*xeMl;3W?SB>JV1sg r^2^~?I{)hmyDjgAT3@@UT#}YpG>VwUu62QrFNm_dnq0Araln57q#Ws5 diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h.html b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h.html deleted file mode 100644 index a744c9920..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h.html +++ /dev/null @@ -1,704 +0,0 @@ - - - - - - - -IRremoteESP8266: src/ir_Technibel.h File Reference - - - - - - - - - -
-
- - - - - - -
-
IRremoteESP8266 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
ir_Technibel.h File Reference
-
-
- -

Support for Technibel protocol. -More...

- -

Go to the source code of this file.

- - - - - -

-Classes

class  IRTechnibelAc
 Class for handling detailed Technibel A/C messages. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Variables

const uint8_t kTechnibelAcChecksumOffset = 0
 
const uint8_t kTechnibelAcChecksumSize = 8
 
const uint8_t kTechnibelAcFooterOffset
 
const uint8_t kTechnibelAcFooterSize = 8
 
const uint8_t kTechnibelAcTimerHoursOffset
 
const uint8_t kTechnibelAcHoursSize = 8
 
const uint8_t kTechnibelAcTimerMax = 24
 
const uint8_t kTechnibelAcTempOffset
 
const uint8_t kTechnibelAcTempSize = 8
 
const uint8_t kTechnibelAcTempMinC = 16
 
const uint8_t kTechnibelAcTempMaxC = 31
 
const uint8_t kTechnibelAcTempMinF = 61
 
const uint8_t kTechnibelAcTempMaxF = 88
 
const uint8_t kTechnibelAcFanOffset
 
const uint8_t kTechnibelAcFanSize = 4
 
const uint8_t kTechnibelAcFanLow = 0b0001
 
const uint8_t kTechnibelAcFanMedium = 0b0010
 
const uint8_t kTechnibelAcFanHigh = 0b0100
 
const uint8_t kTechnibelAcSleepBit
 
const uint8_t kTechnibelAcSwingBit = kTechnibelAcSleepBit + 1
 
const uint8_t kTechnibelAcTempUnitBit = kTechnibelAcSwingBit + 1
 
const uint8_t kTechnibelAcTimerEnableBit = kTechnibelAcTempUnitBit + 1
 
const uint8_t kTechnibelAcModeOffset = kTechnibelAcTimerEnableBit + 1
 
const uint8_t kTechnibelAcModeSize = 4
 
const uint8_t kTechnibelAcCool = 0b0001
 
const uint8_t kTechnibelAcDry = 0b0010
 
const uint8_t kTechnibelAcFan = 0b0100
 
const uint8_t kTechnibelAcHeat = 0b1000
 
const uint8_t kTechnibelAcFanChangeBit
 
const uint8_t kTechnibelAcTempChangeBit = kTechnibelAcFanChangeBit + 1
 
const uint8_t kTechnibelAcTimerChangeBit = kTechnibelAcTempChangeBit + 1
 
const uint8_t kTechnibelAcPowerBit = kTechnibelAcTimerChangeBit + 1
 
const uint8_t kTechnibelAcHeaderOffset = kTechnibelAcPowerBit + 1
 
const uint8_t kTechnibelAcHeaderSize = 8
 
const uint8_t kTechnibelAcHeader = 0b00011000
 
const uint64_t kTechnibelAcResetState = 0x180101140000EA
 Mode:Cool, Power:Off, fan:Low, temp:20, swing:Off, sleep:Off. More...
 
-

Detailed Description

-

Support for Technibel protocol.

-

Variable Documentation

- -

◆ kTechnibelAcChecksumOffset

- -
-
- - - - -
const uint8_t kTechnibelAcChecksumOffset = 0
-
- -
-
- -

◆ kTechnibelAcChecksumSize

- -
-
- - - - -
const uint8_t kTechnibelAcChecksumSize = 8
-
- -
-
- -

◆ kTechnibelAcCool

- -
-
- - - - -
const uint8_t kTechnibelAcCool = 0b0001
-
- -
-
- -

◆ kTechnibelAcDry

- -
-
- - - - -
const uint8_t kTechnibelAcDry = 0b0010
-
- -
-
- -

◆ kTechnibelAcFan

- -
-
- - - - -
const uint8_t kTechnibelAcFan = 0b0100
-
- -
-
- -

◆ kTechnibelAcFanChangeBit

- -
-
- - - - -
const uint8_t kTechnibelAcFanChangeBit
-
-
- -

◆ kTechnibelAcFanHigh

- -
-
- - - - -
const uint8_t kTechnibelAcFanHigh = 0b0100
-
- -
-
- -

◆ kTechnibelAcFanLow

- -
-
- - - - -
const uint8_t kTechnibelAcFanLow = 0b0001
-
- -
-
- -

◆ kTechnibelAcFanMedium

- -
-
- - - - -
const uint8_t kTechnibelAcFanMedium = 0b0010
-
- -
-
- -

◆ kTechnibelAcFanOffset

- -
-
- - - - -
const uint8_t kTechnibelAcFanOffset
-
-
- -

◆ kTechnibelAcFanSize

- -
-
- - - - -
const uint8_t kTechnibelAcFanSize = 4
-
- -
-
- -

◆ kTechnibelAcFooterOffset

- -
-
- - - - -
const uint8_t kTechnibelAcFooterOffset
-
-
- -

◆ kTechnibelAcFooterSize

- -
-
- - - - -
const uint8_t kTechnibelAcFooterSize = 8
-
- -
-
- -

◆ kTechnibelAcHeader

- -
-
- - - - -
const uint8_t kTechnibelAcHeader = 0b00011000
-
- -
-
- -

◆ kTechnibelAcHeaderOffset

- -
-
- - - - -
const uint8_t kTechnibelAcHeaderOffset = kTechnibelAcPowerBit + 1
-
- -
-
- -

◆ kTechnibelAcHeaderSize

- -
-
- - - - -
const uint8_t kTechnibelAcHeaderSize = 8
-
- -
-
- -

◆ kTechnibelAcHeat

- -
-
- - - - -
const uint8_t kTechnibelAcHeat = 0b1000
-
- -
-
- -

◆ kTechnibelAcHoursSize

- -
-
- - - - -
const uint8_t kTechnibelAcHoursSize = 8
-
- -
-
- -

◆ kTechnibelAcModeOffset

- -
-
- - - - -
const uint8_t kTechnibelAcModeOffset = kTechnibelAcTimerEnableBit + 1
-
- -
-
- -

◆ kTechnibelAcModeSize

- -
-
- - - - -
const uint8_t kTechnibelAcModeSize = 4
-
- -
-
- -

◆ kTechnibelAcPowerBit

- -
-
- - - - -
const uint8_t kTechnibelAcPowerBit = kTechnibelAcTimerChangeBit + 1
-
- -
-
- -

◆ kTechnibelAcResetState

- -
-
- - - - -
const uint64_t kTechnibelAcResetState = 0x180101140000EA
-
- -

Mode:Cool, Power:Off, fan:Low, temp:20, swing:Off, sleep:Off.

- -
-
- -

◆ kTechnibelAcSleepBit

- -
-
- - - - -
const uint8_t kTechnibelAcSleepBit
-
-Initial value: -
-
- -

◆ kTechnibelAcSwingBit

- -
-
- - - - -
const uint8_t kTechnibelAcSwingBit = kTechnibelAcSleepBit + 1
-
- -
-
- -

◆ kTechnibelAcTempChangeBit

- -
-
- - - - -
const uint8_t kTechnibelAcTempChangeBit = kTechnibelAcFanChangeBit + 1
-
- -
-
- -

◆ kTechnibelAcTempMaxC

- -
-
- - - - -
const uint8_t kTechnibelAcTempMaxC = 31
-
- -
-
- -

◆ kTechnibelAcTempMaxF

- -
-
- - - - -
const uint8_t kTechnibelAcTempMaxF = 88
-
- -
-
- -

◆ kTechnibelAcTempMinC

- -
-
- - - - -
const uint8_t kTechnibelAcTempMinC = 16
-
- -
-
- -

◆ kTechnibelAcTempMinF

- -
-
- - - - -
const uint8_t kTechnibelAcTempMinF = 61
-
- -
-
- -

◆ kTechnibelAcTempOffset

- -
-
- - - - -
const uint8_t kTechnibelAcTempOffset
-
-
- -

◆ kTechnibelAcTempSize

- -
-
- - - - -
const uint8_t kTechnibelAcTempSize = 8
-
- -
-
- -

◆ kTechnibelAcTempUnitBit

- -
-
- - - - -
const uint8_t kTechnibelAcTempUnitBit = kTechnibelAcSwingBit + 1
-
- -
-
- -

◆ kTechnibelAcTimerChangeBit

- -
-
- - - - -
const uint8_t kTechnibelAcTimerChangeBit = kTechnibelAcTempChangeBit + 1
-
- -
-
- -

◆ kTechnibelAcTimerEnableBit

- -
-
- - - - -
const uint8_t kTechnibelAcTimerEnableBit = kTechnibelAcTempUnitBit + 1
-
- -
-
- -

◆ kTechnibelAcTimerHoursOffset

- -
-
- - - - -
const uint8_t kTechnibelAcTimerHoursOffset
-
-
- -

◆ kTechnibelAcTimerMax

- -
-
- - - - -
const uint8_t kTechnibelAcTimerMax = 24
-
- -
-
-
-
const uint8_t kTechnibelAcFooterSize
Definition: ir_Technibel.h:50
-
const uint8_t kTechnibelAcFanSize
Definition: ir_Technibel.h:67
-
const uint8_t kTechnibelAcChecksumOffset
Definition: ir_Technibel.h:45
-
const uint8_t kTechnibelAcTempOffset
Definition: ir_Technibel.h:57
-
const uint8_t kTechnibelAcFanOffset
Definition: ir_Technibel.h:65
-
const uint8_t kTechnibelAcModeOffset
Definition: ir_Technibel.h:82
-
const uint8_t kTechnibelAcHoursSize
Definition: ir_Technibel.h:54
-
const uint8_t kTechnibelAcTempSize
Definition: ir_Technibel.h:59
-
const uint8_t kTechnibelAcTimerHoursOffset
Definition: ir_Technibel.h:52
-
const uint8_t kTechnibelAcFooterOffset
Definition: ir_Technibel.h:48
-
const uint8_t kTechnibelAcModeSize
Definition: ir_Technibel.h:83
-
const uint8_t kTechnibelAcChecksumSize
Definition: ir_Technibel.h:46
- - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h_source.html b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h_source.html deleted file mode 100644 index 6c9cc9ecd..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/ir__Technibel_8h_source.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - -IRremoteESP8266: src/ir_Technibel.h Source File - - - - - - - - - -
-
- - - - - - -
-
IRremoteESP8266 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ir_Technibel.h
-
-
-Go to the documentation of this file.
1 // Copyright 2020 Quentin Briollant
-
2 
-
5 
-
6 #ifndef IR_TECHNIBEL_H_
-
7 #define IR_TECHNIBEL_H_
-
8 
-
9 #define __STDC_LIMIT_MACROS
-
10 #include <stdint.h>
-
11 #ifndef UNIT_TEST
-
12 #include <Arduino.h>
-
13 #endif
-
14 #include "IRremoteESP8266.h"
-
15 #include "IRsend.h"
-
16 #ifdef UNIT_TEST
-
17 #include "IRsend_test.h"
-
18 #endif
-
19 
-
20 // Supports:
-
21 // Brand: Technibel, Model: IRO PLUS
-
22 
-
23 
-
24 /* State bit map:
-
25 
-
26 +--+--+--+--+--+--+--+--+--+------------+-----------+----------+--+--+--+--+
-
27 | FIXED HEADER |ON|TIMER CHANGE|TEMP CHANGE|FAN CHANGE| MODE |
-
28 +--+--+--+--+--+--+--+--+--+------------+-----------+----------+--+--+--+--+
-
29  55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40
-
30 
-
31 +-----+------+-----+-----+---+--+--+--+---+--+--+--+--+--+--+--+
-
32 |TIMER|C OR F|SWING|SLEEP| 0 | FAN | 0 | TEMPERATURE |
-
33 +-----+------+-----+-----+---+--+--+--+---+--+--+--+--+--+--+--+
-
34  39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24
-
35 
-
36 +---+---+---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
-
37 | 0 | 0 | 0 | ON TIME HOUR | FOOTER | CHECKSUM |
-
38 +---+---+---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
-
39  23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-
40 
-
41 
-
42 */
-
43 
-
44 // Constants
-
45 const uint8_t kTechnibelAcChecksumOffset = 0;
-
46 const uint8_t kTechnibelAcChecksumSize = 8;
-
47 
- - -
50 const uint8_t kTechnibelAcFooterSize = 8;
-
51 
- - -
54 const uint8_t kTechnibelAcHoursSize = 8; // Max 24 hrs
-
55 const uint8_t kTechnibelAcTimerMax = 24;
-
56 
- - -
59 const uint8_t kTechnibelAcTempSize = 8;
-
60 const uint8_t kTechnibelAcTempMinC = 16; // Deg C
-
61 const uint8_t kTechnibelAcTempMaxC = 31; // Deg C
-
62 const uint8_t kTechnibelAcTempMinF = 61; // Deg F
-
63 const uint8_t kTechnibelAcTempMaxF = 88; // Deg F
-
64 
- - -
67 const uint8_t kTechnibelAcFanSize = 4;
-
68 const uint8_t kTechnibelAcFanLow = 0b0001;
-
69 const uint8_t kTechnibelAcFanMedium = 0b0010;
-
70 const uint8_t kTechnibelAcFanHigh = 0b0100;
-
71 
- - -
74 
- -
76 
-
77 // (0 = Celsius, 1 = Fahrenheit)
- -
79 
- -
81 
- -
83 const uint8_t kTechnibelAcModeSize = 4;
-
84 const uint8_t kTechnibelAcCool = 0b0001;
-
85 const uint8_t kTechnibelAcDry = 0b0010;
-
86 const uint8_t kTechnibelAcFan = 0b0100;
-
87 const uint8_t kTechnibelAcHeat = 0b1000;
-
88 
- - -
91 
- -
93 
- -
95 
- -
97 
- -
99 const uint8_t kTechnibelAcHeaderSize = 8;
-
100 const uint8_t kTechnibelAcHeader = 0b00011000;
-
101 
-
102 const uint64_t kTechnibelAcResetState = 0x180101140000EA;
-
103 
-
105 
-
106 // Classes
- -
109  public:
-
110  explicit IRTechnibelAc(const uint16_t pin, const bool inverted = false,
-
111  const bool use_modulation = true);
-
112  void stateReset();
-
113 #if SEND_TECHNIBEL_AC
-
114  void send(const uint16_t repeat = kTechnibelAcDefaultRepeat);
-
119  int8_t calibrate(void) { return _irsend.calibrate(); }
-
120 #endif // SEND_TECHNIBEL_AC
-
121  void begin();
-
122  static uint8_t calcChecksum(const uint64_t state);
-
123  static bool validChecksum(const uint64_t state);
-
124  void setPower(const bool on);
-
125  bool getPower();
-
126  void on();
-
127  void off();
-
128  void setTempUnit(const bool celsius);
-
129  bool getTempUnit(void);
-
130  void setTemp(const uint8_t temp, const bool fahrenheit = false);
-
131  uint8_t getTemp();
-
132  void setFan(const uint8_t speed);
-
133  uint8_t getFan();
-
134  void setMode(const uint8_t mode);
-
135  uint8_t getMode();
-
136  void setSwing(const bool on);
-
137  bool getSwing();
-
138  bool convertSwing(const stdAc::swingv_t swing);
-
139  stdAc::swingv_t toCommonSwing(const bool swing);
-
140  void setSleep(const bool on);
-
141  bool getSleep();
-
142  void setTimerEnabled(const bool on);
-
143  bool getTimerEnabled(void);
-
144  void setTimer(const uint16_t nr_of_mins);
-
145  uint16_t getTimer(void);
-
146  uint64_t getRaw();
-
147  void setRaw(const uint64_t state);
-
148  uint8_t convertMode(const stdAc::opmode_t mode);
-
149  uint8_t convertFan(const stdAc::fanspeed_t speed);
-
150  static stdAc::opmode_t toCommonMode(const uint8_t mode);
-
151  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
-
152  stdAc::state_t toCommon(void);
-
153  String toString();
-
154 #ifndef UNIT_TEST
-
155 
-
156  private:
- -
158 #else
-
159  IRsendTest _irsend;
-
160 #endif
-
161  uint64_t remote_state; // The state of the IR remote.
-
162  uint8_t _saved_temp; // The previously user requested temp value.
-
163  uint8_t _saved_temp_units; // The previously user requested temp units.
-
164  void checksum(void);
-
165 };
-
166 #endif // IR_TECHNIBEL_H_
-
-
IRsendTest _irsend
Definition: ir_Technibel.h:159
-
String toString()
Convert the current internal state into a human readable string.
Definition: ir_Technibel.cpp:399
-
static uint8_t calcChecksum(const uint64_t state)
Compute the checksum of the supplied state.
Definition: ir_Technibel.cpp:109
-
bool getTempUnit(void)
Get the temperature unit setting.
Definition: ir_Technibel.cpp:180
-
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Technibel.cpp:260
-
uint8_t getTemp()
Get the current temperature setting.
Definition: ir_Technibel.cpp:198
-
uint16_t getTimer(void)
Get the timer time for when the A/C unit will switch power state.
Definition: ir_Technibel.cpp:365
-
void stateReset()
Reset the internal state of the emulation.
Definition: ir_Technibel.cpp:134
-
const uint8_t kTechnibelAcFooterSize
Definition: ir_Technibel.h:50
-
const uint8_t kTechnibelAcTempMinF
Definition: ir_Technibel.h:62
-
void begin()
Set up hardware to be able to send a message.
Definition: ir_Technibel.cpp:96
-
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
-
const uint8_t kTechnibelAcFanLow
Definition: ir_Technibel.h:68
-
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
-
const uint8_t kTechnibelAcFanSize
Definition: ir_Technibel.h:67
-
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Technibel.cpp:292
-
void setRaw(const uint64_t state)
Set the internal state from a valid code for this protocol.
Definition: ir_Technibel.cpp:149
-
IRTechnibelAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Technibel.cpp:91
-
void setTempUnit(const bool celsius)
Set the temperature unit setting.
Definition: ir_Technibel.cpp:173
- -
void setTimer(const uint16_t nr_of_mins)
Set the timer for when the A/C unit will switch off.
Definition: ir_Technibel.cpp:355
-
void checksum(void)
Set the checksum of the internal state.
Definition: ir_Technibel.cpp:127
-
static bool validChecksum(const uint64_t state)
Confirm the checksum of the supplied state is valid.
Definition: ir_Technibel.cpp:121
-
Class for sending all basic IR protocols.
Definition: IRsend.h:182
-
const uint8_t kTechnibelAcChecksumOffset
Definition: ir_Technibel.h:45
-
const uint8_t kTechnibelAcTimerEnableBit
Definition: ir_Technibel.h:80
-
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
-
bool getPower()
Get the value of the current power setting.
Definition: ir_Technibel.cpp:167
-
void setTemp(const uint8_t temp, const bool fahrenheit=false)
Set the temperature.
Definition: ir_Technibel.cpp:187
-
uint64_t remote_state
Definition: ir_Technibel.h:161
-
uint64_t getRaw()
Get a copy of the internal state/code for this protocol.
Definition: ir_Technibel.cpp:142
-
std::string String
Definition: IRremoteESP8266.h:1178
-
const uint8_t kTechnibelAcTempMaxC
Definition: ir_Technibel.h:61
-
const uint8_t kTechnibelAcTempOffset
Definition: ir_Technibel.h:57
-
const uint8_t kTechnibelAcSleepBit
Definition: ir_Technibel.h:72
- -
stdAc::swingv_t toCommonSwing(const bool swing)
Convert a native swing into its stdAc equivalent.
Definition: ir_Technibel.cpp:323
-
const uint8_t kTechnibelAcFanOffset
Definition: ir_Technibel.h:65
-
const uint8_t kTechnibelAcFanHigh
Definition: ir_Technibel.h:70
-
const uint8_t kTechnibelAcTimerMax
Definition: ir_Technibel.h:55
-
void send(const uint16_t repeat=kTechnibelAcDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Technibel.cpp:101
-
void off()
Set the requested power state of the A/C to off.
Definition: ir_Technibel.cpp:157
-
const uint8_t kTechnibelAcCool
Definition: ir_Technibel.h:84
-
const uint8_t kTechnibelAcTimerChangeBit
Definition: ir_Technibel.h:94
-
const uint8_t kTechnibelAcFan
Definition: ir_Technibel.h:86
-
const uint8_t kTechnibelAcHeader
Definition: ir_Technibel.h:100
-
bool getTimerEnabled(void)
Is the timer function enabled?
Definition: ir_Technibel.cpp:347
-
bool getSleep()
Get the Sleep setting of the A/C.
Definition: ir_Technibel.cpp:335
-
const uint8_t kTechnibelAcHeat
Definition: ir_Technibel.h:87
-
const uint8_t kTechnibelAcFanChangeBit
Definition: ir_Technibel.h:89
-
const uint8_t kTechnibelAcHeaderSize
Definition: ir_Technibel.h:99
-
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:108
-
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Technibel.cpp:373
-
const uint8_t kTechnibelAcPowerBit
Definition: ir_Technibel.h:96
-
uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Technibel.cpp:230
-
const uint8_t kTechnibelAcSwingBit
Definition: ir_Technibel.h:75
-
uint8_t _saved_temp
Definition: ir_Technibel.h:162
-
const uint8_t kTechnibelAcTempUnitBit
Definition: ir_Technibel.h:78
-
const uint8_t kTechnibelAcModeOffset
Definition: ir_Technibel.h:82
-
const uint8_t kTechnibelAcHeaderOffset
Definition: ir_Technibel.h:98
-
const uint8_t kTechnibelAcHoursSize
Definition: ir_Technibel.h:54
-
bool getSwing()
Get the (vertical) swing setting of the A/C.
Definition: ir_Technibel.cpp:309
-
const uint8_t kTechnibelAcTempMinC
Definition: ir_Technibel.h:60
-
const uint8_t kTechnibelAcTempSize
Definition: ir_Technibel.h:59
-
const uint8_t kTechnibelAcTimerHoursOffset
Definition: ir_Technibel.h:52
-
uint8_t _saved_temp_units
Definition: ir_Technibel.h:163
-
uint8_t getFan()
Get the current fan speed setting.
Definition: ir_Technibel.cpp:223
-
const uint64_t kTechnibelAcResetState
Mode:Cool, Power:Off, fan:Low, temp:20, swing:Off, sleep:Off.
Definition: ir_Technibel.h:102
-
void setTimerEnabled(const bool on)
Set the enable timer setting.
Definition: ir_Technibel.cpp:341
-
const uint16_t kTechnibelAcDefaultRepeat
Definition: IRremoteESP8266.h:929
-
void setSwing(const bool on)
Set the (vertical) swing setting of the A/C.
Definition: ir_Technibel.cpp:303
-
uint8_t getMode()
Get the operating mode setting of the A/C.
Definition: ir_Technibel.cpp:254
-
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Technibel.h:119
-
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Technibel.cpp:244
-
const uint8_t kTechnibelAcFanMedium
Definition: ir_Technibel.h:69
-
const uint8_t kTechnibelAcFooterOffset
Definition: ir_Technibel.h:48
-
void on()
Set the requested power state of the A/C to on.
Definition: ir_Technibel.cpp:154
-
Structure to hold a common A/C state.
Definition: IRsend.h:97
-
bool convertSwing(const stdAc::swingv_t swing)
Convert a stdAc::swingv_t enum into it's native swing.
Definition: ir_Technibel.cpp:316
-
uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Technibel.cpp:280
-
const uint8_t kTechnibelAcDry
Definition: ir_Technibel.h:85
-
const uint8_t kTechnibelAcModeSize
Definition: ir_Technibel.h:83
-
const uint8_t kTechnibelAcChecksumSize
Definition: ir_Technibel.h:46
-
const uint8_t kTechnibelAcTempMaxF
Definition: ir_Technibel.h:63
-
IRsend _irsend
Definition: ir_Technibel.h:157
-
void setPower(const bool on)
Change the power setting.
Definition: ir_Technibel.cpp:161
-
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Technibel.cpp:329
-
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Technibel.cpp:204
-
const uint8_t kTechnibelAcTempChangeBit
Definition: ir_Technibel.h:92
-
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
- - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1.js deleted file mode 100644 index 85b1dada7..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1.js +++ /dev/null @@ -1,30 +0,0 @@ -var searchData= -[ - ['a705_87',['A705',['../unionSharpProtocol.html#a17a7db01f34cacdc975e64e738233d72',1,'SharpProtocol::A705()'],['../IRsend_8h.html#a258e4af12642d613587149fa734e45e7a7478bee154c89b576fd478d9623d9281',1,'A705(): IRsend.h']]], - ['a907_88',['A907',['../IRsend_8h.html#a258e4af12642d613587149fa734e45e7a11c3296670bdeab9ddd87e4edb875e64',1,'IRsend.h']]], - ['add_89',['add',['../classIRtimer.html#aa8e3ff975ae5468b4727790c828fa032',1,'IRtimer::add()'],['../classTimerMs.html#a77bfc23a029a9172c3dbac03f746b0cb',1,'TimerMs::add()']]], - ['addbooltostring_90',['addBoolToString',['../namespaceirutils.html#a12ba9cf1830a886649a80c3cc5fdce2b',1,'irutils']]], - ['adddaytostring_91',['addDayToString',['../namespaceirutils.html#a6ead1d10578c64627f8a24b5d8a7444f',1,'irutils']]], - ['addfantostring_92',['addFanToString',['../namespaceirutils.html#af222d5a977e2cd2c979184c449d3c2f8',1,'irutils']]], - ['addinttostring_93',['addIntToString',['../namespaceirutils.html#a772e623c4b60208200e02afbaec66651',1,'irutils']]], - ['addlabeledstring_94',['addLabeledString',['../namespaceirutils.html#ac98793392d1e65c1b8d6895eb9d9b75b',1,'irutils']]], - ['addmodeltostring_95',['addModelToString',['../namespaceirutils.html#a06e5a5c2b6f6649035dfa5eb19801367',1,'irutils']]], - ['addmodetostring_96',['addModeToString',['../namespaceirutils.html#a8b74ae0258e98aa0eaebc6f3efe1481e',1,'irutils']]], - ['address_97',['address',['../classdecode__results.html#a2858c3a5e28eccca95d44aaa87b70e9e',1,'decode_results']]], - ['addtemptostring_98',['addTempToString',['../namespaceirutils.html#a0cef0634f4db979a93b7dc19cc2b4a85',1,'irutils']]], - ['airflow_99',['AirFlow',['../unionGoodweatherProtocol.html#a7b876552a27a7a9bf84b1009f7b12f7a',1,'GoodweatherProtocol']]], - ['airwell_100',['airwell',['../classIRac.html#a26cd62e09250d87b652d35406ebfb159',1,'IRac::airwell()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada0cd75c2edaa4c674d679dbb39635990a',1,'AIRWELL(): IRremoteESP8266.h']]], - ['airwellprotocol_101',['AirwellProtocol',['../unionAirwellProtocol.html',1,'']]], - ['aiwa_5frc_5ft501_102',['AIWA_RC_T501',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada7dc14b2c4769ef9de663c2e2165d8f75',1,'IRremoteESP8266.h']]], - ['akb75215403_103',['AKB75215403',['../IRsend_8h.html#a50c54713e16502d280723334879dc83ba37d3851f43307f1e1eac46c5fbf3f08a',1,'IRsend.h']]], - ['altmode_104',['AltMode',['../unionDaikin176Protocol.html#a05511938e152951723792dc08b33d0dd',1,'Daikin176Protocol']]], - ['amcor_105',['amcor',['../classIRac.html#a4bad16621b232572e14fe4a53f678131',1,'IRac::amcor()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1325ba25674d7a99562f15a1b392086b',1,'AMCOR(): IRremoteESP8266.h']]], - ['amcorprotocol_106',['AmcorProtocol',['../unionAmcorProtocol.html',1,'']]], - ['ardb1_107',['ARDB1',['../IRsend_8h.html#a7204e78a1fe37a819c0b66f87a685dc0a6f6fcd0be917d91b71c1b80b5446ee5b',1,'IRsend.h']]], - ['argo_108',['argo',['../classIRac.html#aa06ee1314529dbf96f4e6f3c28ea6821',1,'IRac::argo()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadac9ff1fa84905b54238b16d31197efb72',1,'ARGO(): IRremoteESP8266.h']]], - ['argoprotocol_109',['ArgoProtocol',['../unionArgoProtocol.html',1,'']]], - ['arjw2_110',['ARJW2',['../IRsend_8h.html#a7204e78a1fe37a819c0b66f87a685dc0acbca1f3d199103d8cb9d856b9089cdc4',1,'IRsend.h']]], - ['arrah2e_111',['ARRAH2E',['../IRsend_8h.html#a7204e78a1fe37a819c0b66f87a685dc0a6ccf47af1067e794e02e21f03389297b',1,'IRsend.h']]], - ['arreb1e_112',['ARREB1E',['../IRsend_8h.html#a7204e78a1fe37a819c0b66f87a685dc0a2443ff6f0181dbc1af275c709d67147a',1,'IRsend.h']]], - ['arry4_113',['ARRY4',['../IRsend_8h.html#a7204e78a1fe37a819c0b66f87a685dc0aee3994c5a4a8447463d67df2cdf5a946',1,'IRsend.h']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_11.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_11.js deleted file mode 100644 index bff3b3ac0..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_11.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['quiet_3131',['quiet',['../structstdAc_1_1state__t.html#a251ad14e187a9905137e9e4e010c3e34',1,'stdAc::state_t::quiet()'],['../unionDaikinESPProtocol.html#af93324815f6be6cfc5d0d50af9e73aad',1,'DaikinESPProtocol::Quiet()'],['../unionDaikin2Protocol.html#afa111c9afbc94bcf52e9ba15b59c1bee',1,'Daikin2Protocol::Quiet()'],['../unionDaikin152Protocol.html#ac5bfe8541e53cb2732bfcbc71500ed32',1,'Daikin152Protocol::Quiet()'],['../unionKelvinatorProtocol.html#ac803fe14d6d21155418d2fe0543c9d9f',1,'KelvinatorProtocol::Quiet()']]], - ['quiet1_3132',['Quiet1',['../unionSamsungProtocol.html#ac38e3f34f98ac3dae9738a1582dfeca6',1,'SamsungProtocol']]], - ['quiet5_3133',['Quiet5',['../unionSamsungProtocol.html#a94a9d2b42e1ab7a308d079322350c3f9',1,'SamsungProtocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_17.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_17.js deleted file mode 100644 index 0b45cbddf..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_17.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['wall_3510',['Wall',['../unionDaikin128Protocol.html#aed2c5bc365820f2c0a5f27dd68fa8a05',1,'Daikin128Protocol']]], - ['wand_5fid_3511',['wand_id',['../unionmagiquest.html#a1b159cd47635d548e1d4198cd6d41e93',1,'magiquest']]], - ['weeklytimer_3512',['WeeklyTimer',['../unionDaikinESPProtocol.html#a25e632da82856caebd233699fda8d796',1,'DaikinESPProtocol']]], - ['whirlpool_3513',['whirlpool',['../classIRac.html#ae5f7a03589f614c03c5ad8629100b05a',1,'IRac']]], - ['whirlpool_5fac_3514',['WHIRLPOOL_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada9faf927323d110269541b356f079b85a',1,'IRremoteESP8266.h']]], - ['whirlpool_5fac_5fremote_5fmodel_5ft_3515',['whirlpool_ac_remote_model_t',['../IRsend_8h.html#ab4e3ebf2fdf3c6a46da89a3e6ebcd2e2',1,'IRsend.h']]], - ['whynter_3516',['WHYNTER',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada458cdd7fa2b29dc8617c694696580c0c',1,'IRremoteESP8266.h']]], - ['widevane_3517',['WideVane',['../unionMitsubishi144Protocol.html#ad0c48e95ca7e0658edf7c2ac2b541c3c',1,'Mitsubishi144Protocol']]], - ['wifi_3518',['WiFi',['../unionGreeProtocol.html#a6cf8e0a6c54a5d2b6f14074c6f3dcc92',1,'GreeProtocol::WiFi()'],['../unionVoltasProtocol.html#aae1406825a156f159c5ad4b28d20364c',1,'VoltasProtocol::Wifi()']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1a.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1a.js deleted file mode 100644 index b73a1ecc8..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1a.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['zepeal_3523',['ZEPEAL',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1622e3d0835b4d47add716811c7bf797',1,'IRremoteESP8266.h']]], - ['zh_2dcn_2eh_3524',['zh-CN.h',['../zh-CN_8h.html',1,'']]], - ['zonefollow1_3525',['ZoneFollow1',['../unionCoolixProtocol.html#a5f19a21823bbdb6d5deceb03db0d3d5b',1,'CoolixProtocol']]], - ['zonefollow2_3526',['ZoneFollow2',['../unionCoolixProtocol.html#ade33ba99bcfcf9d7dac334e56e9bb167',1,'CoolixProtocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1b.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1b.js deleted file mode 100644 index 502c01110..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_1b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['_7eirrecv_3527',['~IRrecv',['../classIRrecv.html#a87d4cca5e350177cb0922842dda1eb5b',1,'IRrecv']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_4.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_4.js deleted file mode 100644 index d2fa6aac2..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_4.js +++ /dev/null @@ -1,136 +0,0 @@ -var searchData= -[ - ['d_188',['D',['../unionMitsubishi152Protocol.html#ac493830f3bf09e178aa09b24368746c9',1,'Mitsubishi152Protocol']]], - ['daikin_189',['daikin',['../classIRac.html#afb6d77bbeb5b2465437cef4f58b83e0e',1,'IRac::daikin()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadad8dc0597fd237d7098246334f3b5f37e',1,'DAIKIN(): IRremoteESP8266.h']]], - ['daikin128_190',['daikin128',['../classIRac.html#a8fe7c254e1bcb32b6b6fdc1f91693a50',1,'IRac::daikin128()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada4b26fb376f6375dd6d1d4be186438f88',1,'DAIKIN128(): IRremoteESP8266.h']]], - ['daikin128protocol_191',['Daikin128Protocol',['../unionDaikin128Protocol.html',1,'']]], - ['daikin152_192',['daikin152',['../classIRac.html#a6dff8e608e3e9fecffe71c3fd1ebe74e',1,'IRac::daikin152()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadad3f5f7ca39aee5fdab671a1b0d647ae4',1,'DAIKIN152(): IRremoteESP8266.h']]], - ['daikin152protocol_193',['Daikin152Protocol',['../unionDaikin152Protocol.html',1,'']]], - ['daikin160_194',['daikin160',['../classIRac.html#a3b34f44d713efa52f30d43405cde831c',1,'IRac::daikin160()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada4db6a848df3aed4289801e1b2bbbf6aa',1,'DAIKIN160(): IRremoteESP8266.h']]], - ['daikin160protocol_195',['Daikin160Protocol',['../unionDaikin160Protocol.html',1,'']]], - ['daikin176_196',['daikin176',['../classIRac.html#aaae173fd58a7b53c3f4d2edbf7c4afe7',1,'IRac::daikin176()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada57f78a3b04d904f19d10bac13483deab',1,'DAIKIN176(): IRremoteESP8266.h']]], - ['daikin176protocol_197',['Daikin176Protocol',['../unionDaikin176Protocol.html',1,'']]], - ['daikin2_198',['daikin2',['../classIRac.html#a89eddc0e1b3c41c608208d2752dc954c',1,'IRac::daikin2()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab37b344f84d575ec78a92ca55e153586',1,'DAIKIN2(): IRremoteESP8266.h']]], - ['daikin216_199',['daikin216',['../classIRac.html#a101ac8b9e9564e557ef1a1f61ff111d9',1,'IRac::daikin216()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaa833fa3a20c3cbb7e6206dac4da30ffb',1,'DAIKIN216(): IRremoteESP8266.h']]], - ['daikin216protocol_200',['Daikin216Protocol',['../unionDaikin216Protocol.html',1,'']]], - ['daikin2protocol_201',['Daikin2Protocol',['../unionDaikin2Protocol.html',1,'']]], - ['daikin64_202',['daikin64',['../classIRac.html#a074db6fc0cff2878d80a397020e1b249',1,'IRac::daikin64()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada70581853ce4883b747d22fdfd74409c4',1,'DAIKIN64(): IRremoteESP8266.h']]], - ['daikin64protocol_203',['Daikin64Protocol',['../unionDaikin64Protocol.html',1,'']]], - ['daikinespprotocol_204',['DaikinESPProtocol',['../unionDaikinESPProtocol.html',1,'']]], - ['data_205',['data',['../structmatch__result__t.html#ae88be61a6d1ffa7c3525aa958f4c0d25',1,'match_result_t']]], - ['data0_206',['Data0',['../structCoronaSection.html#a975b14d8bc30807013714158ef7474ea',1,'CoronaSection']]], - ['data0inv_207',['Data0Inv',['../structCoronaSection.html#ab05024b8314929dcd8ccdda9b497be8c',1,'CoronaSection']]], - ['data1_208',['Data1',['../structCoronaSection.html#a59d97a1bc0a1be50b6f96c4d70673425',1,'CoronaSection']]], - ['data1inv_209',['Data1Inv',['../structCoronaSection.html#ada247bbfb60f24cd9e9a612c9621cbb4',1,'CoronaSection']]], - ['de_2dch_2eh_210',['de-CH.h',['../de-CH_8h.html',1,'']]], - ['de_2dde_2eh_211',['de-DE.h',['../de-DE_8h.html',1,'']]], - ['decode_212',['decode',['../classIRrecv.html#aeaa5c07a8b46f8fbb982f996cc1f9f4b',1,'IRrecv']]], - ['decode_5fresults_213',['decode_results',['../classdecode__results.html',1,'']]], - ['decode_5ftype_214',['decode_type',['../classdecode__results.html#a9c0e9f161b9c90dc10b7561d4c0b50fa',1,'decode_results']]], - ['decode_5ftype_5ft_215',['decode_type_t',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fad',1,'IRremoteESP8266.h']]], - ['decodeairwell_216',['decodeAirwell',['../classIRrecv.html#acf4635d5ee146a82498cb0c269b6af41',1,'IRrecv']]], - ['decodeaiwarct501_217',['decodeAiwaRCT501',['../classIRrecv.html#aa4d678376a4c0f8ea953474a6f5ef9d2',1,'IRrecv']]], - ['decodeamcor_218',['decodeAmcor',['../classIRrecv.html#a8d81fcfb47e36925975d313027689a44',1,'IRrecv']]], - ['decodeargo_219',['decodeArgo',['../classIRrecv.html#a94f12dc000a6e7b75ea8680fd48fc487',1,'IRrecv']]], - ['decodecarrierac_220',['decodeCarrierAC',['../classIRrecv.html#acf3d1c37038120a5c0996d92577ce74a',1,'IRrecv']]], - ['decodecarrierac40_221',['decodeCarrierAC40',['../classIRrecv.html#a4bdb35ec34f49401a6b9becd15b8a3b5',1,'IRrecv']]], - ['decodecarrierac64_222',['decodeCarrierAC64',['../classIRrecv.html#a79d03c31da48a385ab47cc8f342ef9b3',1,'IRrecv']]], - ['decodecoolix_223',['decodeCOOLIX',['../classIRrecv.html#a964af7e72e2133688f0596c718cb98ca',1,'IRrecv']]], - ['decodecoronaac_224',['decodeCoronaAc',['../classIRrecv.html#a981cba14551c93af57f9c1c0e1775d12',1,'IRrecv']]], - ['decodedaikin_225',['decodeDaikin',['../classIRrecv.html#a141f0de9f4cae8daeb025aff3904ecaa',1,'IRrecv']]], - ['decodedaikin128_226',['decodeDaikin128',['../classIRrecv.html#ac7188577c874d9f8f19304a3ec775415',1,'IRrecv']]], - ['decodedaikin152_227',['decodeDaikin152',['../classIRrecv.html#ab20a6586b4e56cc428012ec96f5ccc2c',1,'IRrecv']]], - ['decodedaikin160_228',['decodeDaikin160',['../classIRrecv.html#af0b9822defe6b29099079d664d9dc413',1,'IRrecv']]], - ['decodedaikin176_229',['decodeDaikin176',['../classIRrecv.html#aa142d1340201b6fdc5b462f46fe21ee0',1,'IRrecv']]], - ['decodedaikin2_230',['decodeDaikin2',['../classIRrecv.html#a4c4799a0d45ea5562159c46939617d80',1,'IRrecv']]], - ['decodedaikin216_231',['decodeDaikin216',['../classIRrecv.html#a7f860686a5c58aa8f4d1842cfb15b2f9',1,'IRrecv']]], - ['decodedaikin64_232',['decodeDaikin64',['../classIRrecv.html#a030701f081a9c6eab0c07b75433b524c',1,'IRrecv']]], - ['decodedelonghiac_233',['decodeDelonghiAc',['../classIRrecv.html#a8c91cc83770d243e942387cc16e9ca6f',1,'IRrecv']]], - ['decodedenon_234',['decodeDenon',['../classIRrecv.html#a0b1bd1c817cb43bc3755126191b7f4a2',1,'IRrecv']]], - ['decodedish_235',['decodeDISH',['../classIRrecv.html#a851776d9178aeb706d9a1abd3f254e31',1,'IRrecv']]], - ['decodedoshisha_236',['decodeDoshisha',['../classIRrecv.html#a675c45e6b32aaeca3de734ccf2f0c819',1,'IRrecv']]], - ['decodeelectraac_237',['decodeElectraAC',['../classIRrecv.html#ad3a7be8afc36451c8e28e27f3c3e9aaa',1,'IRrecv']]], - ['decodeelitescreens_238',['decodeElitescreens',['../classIRrecv.html#ac830ece2c2c200b8c13fcd66828e2846',1,'IRrecv']]], - ['decodeepson_239',['decodeEpson',['../classIRrecv.html#aaadef8415f273ba25f4086fecd681d2e',1,'IRrecv']]], - ['decodefujitsuac_240',['decodeFujitsuAC',['../classIRrecv.html#aa3778bdf994bf9c99ac48ef95434a826',1,'IRrecv']]], - ['decodegicable_241',['decodeGICable',['../classIRrecv.html#afade8dac9b1d023e5e0946e6b2c08aea',1,'IRrecv']]], - ['decodegoodweather_242',['decodeGoodweather',['../classIRrecv.html#a64650ce7dbaf5fc860a6a253d906e9de',1,'IRrecv']]], - ['decodegree_243',['decodeGree',['../classIRrecv.html#a2e756342d7524a13d53d6c656700638c',1,'IRrecv']]], - ['decodehaierac_244',['decodeHaierAC',['../classIRrecv.html#ad97403174f05197a7fa9a4a0107e3111',1,'IRrecv']]], - ['decodehaieracyrw02_245',['decodeHaierACYRW02',['../classIRrecv.html#a281fb9d972fee75db49209c42f649822',1,'IRrecv']]], - ['decodehash_246',['decodeHash',['../classIRrecv.html#a7c15fbfa7936ca474712a1953911fd06',1,'IRrecv']]], - ['decodehitachiac_247',['decodeHitachiAC',['../classIRrecv.html#aa42facfffc0e304005272b6ddd4583c8',1,'IRrecv']]], - ['decodehitachiac1_248',['decodeHitachiAC1',['../classIRrecv.html#a122e0dcbf14c90ec2d77399acce21459',1,'IRrecv']]], - ['decodehitachiac3_249',['decodeHitachiAc3',['../classIRrecv.html#a113bc834eff00f55d5545ce3fa1ab203',1,'IRrecv']]], - ['decodehitachiac424_250',['decodeHitachiAc424',['../classIRrecv.html#a01c3dda56d6d916076fa1affa2213129',1,'IRrecv']]], - ['decodeinax_251',['decodeInax',['../classIRrecv.html#a94545c6a8da027b9cb0e23ecba4c29d8',1,'IRrecv']]], - ['decodejvc_252',['decodeJVC',['../classIRrecv.html#a25ab71efc223a418e9630d8421f44bc9',1,'IRrecv']]], - ['decodekelvinator_253',['decodeKelvinator',['../classIRrecv.html#a0ac82f20b48b2d71ee07eb392578b226',1,'IRrecv']]], - ['decodelasertag_254',['decodeLasertag',['../classIRrecv.html#ae4af614a45ea65cb3304ef5bd7965122',1,'IRrecv']]], - ['decodelegopf_255',['decodeLegoPf',['../classIRrecv.html#aea75ad0ba1d8fec33de16501940f2553',1,'IRrecv']]], - ['decodelg_256',['decodeLG',['../classIRrecv.html#afe70015c36b1477a5de0c193163e13a7',1,'IRrecv']]], - ['decodelutron_257',['decodeLutron',['../classIRrecv.html#a6093c4404a9a9d415c5bfeab5ec53be5',1,'IRrecv']]], - ['decodemagiquest_258',['decodeMagiQuest',['../classIRrecv.html#a6f3bfcc6767484151dee758bcf94fb0b',1,'IRrecv']]], - ['decodemetz_259',['decodeMetz',['../classIRrecv.html#ac39aa52eec10d1c92b6e9713a22252b6',1,'IRrecv']]], - ['decodemidea_260',['decodeMidea',['../classIRrecv.html#a255b15601f7439a09ab5e77ad78816fb',1,'IRrecv']]], - ['decodemidea24_261',['decodeMidea24',['../classIRrecv.html#a62a04019308b29ae2aea4b3a83ba9155',1,'IRrecv']]], - ['decodemirage_262',['decodeMirage',['../classIRrecv.html#aa88813f830a6ff6bfd6e7bde6728a3d5',1,'IRrecv']]], - ['decodemitsubishi_263',['decodeMitsubishi',['../classIRrecv.html#a6efe3be80f0ebef3ff94ed0e56c5c52a',1,'IRrecv']]], - ['decodemitsubishi112_264',['decodeMitsubishi112',['../classIRrecv.html#ae0690ff3cb5a5cdcdb6a514bb7bf0cdd',1,'IRrecv']]], - ['decodemitsubishi136_265',['decodeMitsubishi136',['../classIRrecv.html#a87b3ee57dbdf762a0e305ddd43eec629',1,'IRrecv']]], - ['decodemitsubishi2_266',['decodeMitsubishi2',['../classIRrecv.html#a9514197850491a5b8c30ae9ffc89d895',1,'IRrecv']]], - ['decodemitsubishiac_267',['decodeMitsubishiAC',['../classIRrecv.html#a942c5f41df5cbff32a8b7703673cb621',1,'IRrecv']]], - ['decodemitsubishiheavy_268',['decodeMitsubishiHeavy',['../classIRrecv.html#aef9cedf79793806df4cc5376710781bc',1,'IRrecv']]], - ['decodemultibrackets_269',['decodeMultibrackets',['../classIRrecv.html#af61afacc9865232643164ba824e665ab',1,'IRrecv']]], - ['decodemwm_270',['decodeMWM',['../classIRrecv.html#a27518b5d792cdf3ab333b324f409f328',1,'IRrecv']]], - ['decodenec_271',['decodeNEC',['../classIRrecv.html#a52b844f80df7f64edf9ce9cc189ac5b9',1,'IRrecv']]], - ['decodeneoclima_272',['decodeNeoclima',['../classIRrecv.html#a4729ee949e533448b481ae33bbbf1adf',1,'IRrecv']]], - ['decodenikai_273',['decodeNikai',['../classIRrecv.html#abbcbf5fc07d7e37d7724acc37bb5f592',1,'IRrecv']]], - ['decodepanasonic_274',['decodePanasonic',['../classIRrecv.html#aa8dd5f24d28576c6db03cc463bd0a865',1,'IRrecv']]], - ['decodepanasonicac_275',['decodePanasonicAC',['../classIRrecv.html#a0f78e180ed731e8fb16d1c85aa721c95',1,'IRrecv']]], - ['decodepanasonicac32_276',['decodePanasonicAC32',['../classIRrecv.html#a89ce20e483b1297cae05ab1ae96d24ec',1,'IRrecv']]], - ['decodepioneer_277',['decodePioneer',['../classIRrecv.html#a78a9487cbe8a562392a07a4090b3091e',1,'IRrecv']]], - ['decoderc5_278',['decodeRC5',['../classIRrecv.html#adab9dffbeceee514520fababd0e721bd',1,'IRrecv']]], - ['decoderc6_279',['decodeRC6',['../classIRrecv.html#a67316499ef37db82e3b3ecaac25c5980',1,'IRrecv']]], - ['decodercmm_280',['decodeRCMM',['../classIRrecv.html#a0e7bf769cb5bebf174e852e4b0b08cf3',1,'IRrecv']]], - ['decodesamsung_281',['decodeSAMSUNG',['../classIRrecv.html#a18b6cf177364faf11b9a076dd2025eec',1,'IRrecv']]], - ['decodesamsung36_282',['decodeSamsung36',['../classIRrecv.html#a290a9e6a0b12ef1fe02a92a456c8ad57',1,'IRrecv']]], - ['decodesamsungac_283',['decodeSamsungAC',['../classIRrecv.html#ae779c76ebd0f3cd1fc13abaa55f80d67',1,'IRrecv']]], - ['decodesanyoac_284',['decodeSanyoAc',['../classIRrecv.html#ab6c02d8b8079d7f344e141e6a4e7e225',1,'IRrecv']]], - ['decodesanyolc7461_285',['decodeSanyoLC7461',['../classIRrecv.html#a01a165bf2e7d16dbbb916d1eae740bc5',1,'IRrecv']]], - ['decodesharp_286',['decodeSharp',['../classIRrecv.html#a3390d63ba21a835d7c74c261532a22a7',1,'IRrecv']]], - ['decodesharpac_287',['decodeSharpAc',['../classIRrecv.html#a8a9b920079f783e236f8a938e20b9743',1,'IRrecv']]], - ['decodesony_288',['decodeSony',['../classIRrecv.html#ab03227955cf7d1d00c1620c55d7f9f18',1,'IRrecv']]], - ['decodesymphony_289',['decodeSymphony',['../classIRrecv.html#a61cdf4d891654521afbc6ca9fb415745',1,'IRrecv']]], - ['decodetechnibelac_290',['decodeTechnibelAc',['../classIRrecv.html#a2f022741309ad814bf11aec440a838d0',1,'IRrecv']]], - ['decodeteco_291',['decodeTeco',['../classIRrecv.html#a950711d7df8dfe4cda86f53650cd9f56',1,'IRrecv']]], - ['decodetoshibaac_292',['decodeToshibaAC',['../classIRrecv.html#aae6ab687ae319ae50a52238916bcfb1a',1,'IRrecv']]], - ['decodetostate_293',['decodeToState',['../namespaceIRAcUtils.html#ac5eb498bf12cb6cba023c9c1e9726949',1,'IRAcUtils']]], - ['decodetranscold_294',['decodeTranscold',['../classIRrecv.html#a16c44538d7e01d9b118d983de39d18e3',1,'IRrecv']]], - ['decodetrotec_295',['decodeTrotec',['../classIRrecv.html#ae2920c488173f3fa37f5325438157ced',1,'IRrecv']]], - ['decodevestelac_296',['decodeVestelAc',['../classIRrecv.html#a5d48b3c91434c18c7726cca504d75b73',1,'IRrecv']]], - ['decodevoltas_297',['decodeVoltas',['../classIRrecv.html#a43539320036ba1c17e9875e4dc9fd055',1,'IRrecv']]], - ['decodewhirlpoolac_298',['decodeWhirlpoolAC',['../classIRrecv.html#a0d1eec83cf092f5621cb34b3e94777c4',1,'IRrecv']]], - ['decodewhynter_299',['decodeWhynter',['../classIRrecv.html#a66289f6a462557ad26e6c0a64f36cf02',1,'IRrecv']]], - ['decodezepeal_300',['decodeZepeal',['../classIRrecv.html#a72afd857c8b2e0192021a40afc96c2d8',1,'IRrecv']]], - ['defaultbits_301',['defaultBits',['../classIRsend.html#a70a2256bee8ad9b8ea8571dd4f26596f',1,'IRsend']]], - ['defaults_2eh_302',['defaults.h',['../defaults_8h.html',1,'']]], - ['degrees_303',['degrees',['../structstdAc_1_1state__t.html#a3d1ff0ff2e0035db4ee8ead5c53b2dbd',1,'stdAc::state_t']]], - ['delonghi_5fac_304',['DELONGHI_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada149190c9dec98e9c3f4a2bd530b154a3',1,'IRremoteESP8266.h']]], - ['delonghiac_305',['delonghiac',['../classIRac.html#af290b0b08cff5121bb88c62051ed1074',1,'IRac']]], - ['delonghiprotocol_306',['DelonghiProtocol',['../unionDelonghiProtocol.html',1,'']]], - ['denon_307',['DENON',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada2bda37b76abb290d1675c3e027e3c2e1',1,'IRremoteESP8266.h']]], - ['deprecated_20list_308',['Deprecated List',['../deprecated.html',1,'']]], - ['dg11j13a_309',['DG11J13A',['../IRsend_8h.html#ab4e3ebf2fdf3c6a46da89a3e6ebcd2e2a868d69f0605cf9151b0163a3481e2fb9',1,'IRsend.h']]], - ['dg11j191_310',['DG11J191',['../IRsend_8h.html#ab4e3ebf2fdf3c6a46da89a3e6ebcd2e2adaecfc16f36975f231db2507a8a36c0c',1,'IRsend.h']]], - ['disableirin_311',['disableIRIn',['../classIRrecv.html#a9f4a719e756ad78c7dd47186f8bef087',1,'IRrecv']]], - ['disableofftimer_312',['disableOffTimer',['../classIRDaikinESP.html#a1e4e05ad0799002d0ab25db92dcaac06',1,'IRDaikinESP::disableOffTimer()'],['../classIRDaikin2.html#a8cbdbc0de31b14f974cd8cd87f3ca54a',1,'IRDaikin2::disableOffTimer()']]], - ['disableontimer_313',['disableOnTimer',['../classIRDaikinESP.html#a0733e4a15d76baac23493926ef1765b1',1,'IRDaikinESP::disableOnTimer()'],['../classIRDaikin2.html#a170a1e9ddb7873dc1392184a85387cc3',1,'IRDaikin2::disableOnTimer()']]], - ['disablesensor_314',['disableSensor',['../unionMideaProtocol.html#a20cc2079eae404c980cc75101b4a3116',1,'MideaProtocol']]], - ['disablesleeptimer_315',['disableSleepTimer',['../classIRDaikin2.html#a152532ef9d905e26930ae145a9623877',1,'IRDaikin2']]], - ['dish_316',['DISH',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadac27c6ac38ba872593af8e46ac2fdc85a',1,'IRremoteESP8266.h']]], - ['display_317',['Display',['../unionSamsungProtocol.html#aac97ebabee022e772aa00d4357079eb4',1,'SamsungProtocol']]], - ['displaytemp_318',['DisplayTemp',['../unionGreeProtocol.html#ad0756a64f9c90c9dd12ca6cd71c78bb2',1,'GreeProtocol']]], - ['doshisha_319',['DOSHISHA',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab4566b260773b60c85450f40fa5b4341',1,'IRremoteESP8266.h']]], - ['doxygen_5findex_2emd_320',['doxygen_index.md',['../doxygen__index_8md.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_5.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_5.js deleted file mode 100644 index 269dcf306..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_5.js +++ /dev/null @@ -1,39 +0,0 @@ -var searchData= -[ - ['econo_321',['Econo',['../unionCoronaProtocol.html#a1076afecc4292c370fed27ce380a1ed5',1,'CoronaProtocol::Econo()'],['../unionDaikinESPProtocol.html#a29138c4ff722520ca23863568a96bf53',1,'DaikinESPProtocol::Econo()'],['../unionDaikin2Protocol.html#aa715d01b8972f98a41829ed976932ef7',1,'Daikin2Protocol::Econo()'],['../unionDaikin128Protocol.html#a8920f30a9d4bb0132762d80c8297d5f2',1,'Daikin128Protocol::Econo()'],['../unionDaikin152Protocol.html#ad9c7903f82a89b94e0c9dfe8b7298658',1,'Daikin152Protocol::Econo()'],['../unionNeoclimaProtocol.html#ae6e84df0fe5279729c8980c68db35c50',1,'NeoclimaProtocol::Econo()'],['../unionVoltasProtocol.html#a4f44e3e3a68988d25173b2aab1c32e53',1,'VoltasProtocol::Econo()'],['../structstdAc_1_1state__t.html#a580c826c6d9671715adfe8445531b957',1,'stdAc::state_t::econo()']]], - ['elapsed_322',['elapsed',['../classIRtimer.html#ad655e585f053580d49d8de7d52cd62a1',1,'IRtimer::elapsed()'],['../classTimerMs.html#ad4aa759c58727393f69863b3461dfc09',1,'TimerMs::elapsed()']]], - ['electra_323',['electra',['../classIRac.html#abb847bd5e09feb293432b8a8cf0dd9de',1,'IRac']]], - ['electra_5fac_324',['ELECTRA_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada05f193ef4ead3e54624bd92dc3203fac',1,'IRremoteESP8266.h']]], - ['electraprotocol_325',['ElectraProtocol',['../unionElectraProtocol.html',1,'']]], - ['elitescreens_326',['ELITESCREENS',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadafebe19d5453be4c99de8c031508b7cb1',1,'IRremoteESP8266.h']]], - ['en_2dau_2eh_327',['en-AU.h',['../en-AU_8h.html',1,'']]], - ['en_2die_2eh_328',['en-IE.h',['../en-IE_8h.html',1,'']]], - ['en_2duk_2eh_329',['en-UK.h',['../en-UK_8h.html',1,'']]], - ['en_2dus_2eh_330',['en-US.h',['../en-US_8h.html',1,'']]], - ['enableirin_331',['enableIRIn',['../classIRrecv.html#a52c05ec6d8f3dbfb75f21f3b4fe7be3d',1,'IRrecv']]], - ['enableirout_332',['enableIROut',['../classIRsend.html#ab3b6d36c9b5d26c400526717d433ed2d',1,'IRsend']]], - ['enableofftimer_333',['enableOffTimer',['../classIRDaikinESP.html#a8a5686066bfc86f1d7cc454e793d3357',1,'IRDaikinESP::enableOffTimer()'],['../classIRDaikin2.html#afc7ba7d7de2976e010a72778091d633a',1,'IRDaikin2::enableOffTimer()'],['../classIRWhirlpoolAc.html#abb1c3685d90d81b44e72050cd0e042f6',1,'IRWhirlpoolAc::enableOffTimer()']]], - ['enableontimer_334',['enableOnTimer',['../classIRDaikinESP.html#aac4d0f5f60c9f4c41d3bb1e0f24bc4bc',1,'IRDaikinESP::enableOnTimer()'],['../classIRDaikin2.html#a91ec5f7c67cb87102a5eb030e0763b50',1,'IRDaikin2::enableOnTimer()'],['../classIRWhirlpoolAc.html#aa3edd58882cf4fc65172e490c9e0bb2e',1,'IRWhirlpoolAc::enableOnTimer()']]], - ['enablesleeptimer_335',['enableSleepTimer',['../classIRDaikin2.html#a9c86782a98a54818ae92419eec5a060b',1,'IRDaikin2']]], - ['enabletimer_336',['enableTimer',['../classIRWhirlpoolAc.html#ad07804318721bc5dd60f7322e02c9696',1,'IRWhirlpoolAc']]], - ['encodedoshisha_337',['encodeDoshisha',['../classIRsend.html#a0522a2256e8358df715065530be6317d',1,'IRsend']]], - ['encodejvc_338',['encodeJVC',['../classIRsend.html#a6303b991c0545443e7ccf63ba89dbf18',1,'IRsend']]], - ['encodelg_339',['encodeLG',['../classIRsend.html#a109b67a68e7a33900cb5c5017ed4578b',1,'IRsend']]], - ['encodemagiquest_340',['encodeMagiQuest',['../classIRsend.html#a4ee40126279dbde8bb02888115577563',1,'IRsend']]], - ['encodemetz_341',['encodeMetz',['../classIRsend.html#a99c88ec9f8426003738a9a1682595b9a',1,'IRsend']]], - ['encodenec_342',['encodeNEC',['../classIRsend.html#ab2e1ce918e4e06b955c3d2a089ce189c',1,'IRsend']]], - ['encodepanasonic_343',['encodePanasonic',['../classIRsend.html#a8340497ae75f00c844e53dfc73700d9c',1,'IRsend']]], - ['encodepioneer_344',['encodePioneer',['../classIRsend.html#ae0686829eba31587b71034a1c0495971',1,'IRsend']]], - ['encoderc5_345',['encodeRC5',['../classIRsend.html#a88457fd4cc01d6e8097e04c022ede74a',1,'IRsend']]], - ['encoderc5x_346',['encodeRC5X',['../classIRsend.html#ae760ef1be11f25f7a61237f96a8871d9',1,'IRsend']]], - ['encoderc6_347',['encodeRC6',['../classIRsend.html#ac0e341462426ea146b944502a6d3fde0',1,'IRsend']]], - ['encodesamsung_348',['encodeSAMSUNG',['../classIRsend.html#a4ab0579bd854306b2667de19207e4ffb',1,'IRsend']]], - ['encodesanyolc7461_349',['encodeSanyoLC7461',['../classIRsend.html#a864bef0dc48f6af4b59057362906cf5d',1,'IRsend']]], - ['encodesharp_350',['encodeSharp',['../classIRsend.html#a8f4c7a36380ba31155eba5ff8f5f631e',1,'IRsend']]], - ['encodesony_351',['encodeSony',['../classIRsend.html#aa0aea2cb04f0a7ee9056f15fecfc08c3',1,'IRsend']]], - ['encodetime_352',['encodeTime',['../classIRPanasonicAc.html#a0eee4ad6105d35ee6c34c4666174b04b',1,'IRPanasonicAc']]], - ['epson_353',['EPSON',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaaf677fd380c38297264a10732631927c',1,'IRremoteESP8266.h']]], - ['es_2des_2eh_354',['es-ES.h',['../es-ES_8h.html',1,'']]], - ['eye_355',['Eye',['../unionDaikin2Protocol.html#aa8351138b8db3b8be5f40d1515802381',1,'Daikin2Protocol::Eye()'],['../unionNeoclimaProtocol.html#a61b0055d4d939dc85ee204e4f3b6ab46',1,'NeoclimaProtocol::Eye()']]], - ['eyeauto_356',['EyeAuto',['../unionDaikin2Protocol.html#a22f2288452065069018bef94d2505ab7',1,'Daikin2Protocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_8.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_8.js deleted file mode 100644 index 311a9d250..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_8.js +++ /dev/null @@ -1,36 +0,0 @@ -var searchData= -[ - ['haier_502',['haier',['../classIRac.html#ae0a29a4cb8c7a4707a7725c576822a58',1,'IRac']]], - ['haier_5fac_503',['HAIER_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1f232bcdf330ec2e353196941b9f1628',1,'IRremoteESP8266.h']]], - ['haier_5fac_5fyrw02_504',['HAIER_AC_YRW02',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaacda5821835865551f6df46c76282fa4',1,'IRremoteESP8266.h']]], - ['haierprotocol_505',['HaierProtocol',['../unionHaierProtocol.html',1,'']]], - ['haieryrw02protocol_506',['HaierYRW02Protocol',['../unionHaierYRW02Protocol.html',1,'']]], - ['haieryrwo2_507',['haierYrwo2',['../classIRac.html#a7bc779a162dd9a1b4c925febec443353',1,'IRac']]], - ['handlespecialstate_508',['handleSpecialState',['../classIRCoolixAC.html#af78090c6d8b45b4202a80f1223640390',1,'IRCoolixAC::handleSpecialState()'],['../classIRTranscoldAc.html#a01a3e3f8f92b8fb3b6d023e595f3ce17',1,'IRTranscoldAc::handleSpecialState()']]], - ['handletoggles_509',['handleToggles',['../classIRac.html#a36833999dce4ad608a5a0f084988cfd1',1,'IRac']]], - ['hasacstate_510',['hasACState',['../IRutils_8cpp.html#a6efd4986db60709d3501606ec7ab5382',1,'hasACState(const decode_type_t protocol): IRutils.cpp'],['../IRutils_8h.html#a6efd4986db60709d3501606ec7ab5382',1,'hasACState(const decode_type_t protocol): IRutils.cpp']]], - ['hasinvertedstates_511',['hasInvertedStates',['../classIRHitachiAc3.html#ac06b36245c85480d97c1a9f49cfaa005',1,'IRHitachiAc3']]], - ['hasstatechanged_512',['hasStateChanged',['../classIRac.html#a35258c35a2d2b19886292b22b2aa053a',1,'IRac']]], - ['header_513',['Header',['../unionMideaProtocol.html#a892508b7b4cade91dd2e315b678f5f1b',1,'MideaProtocol']]], - ['header0_514',['Header0',['../structCoronaSection.html#a3b3c0a1a42da65bb4b481e59b42f26a6',1,'CoronaSection']]], - ['header1_515',['Header1',['../structCoronaSection.html#a3d6d6c1e31f82a76cd88f81bcdb83a3a',1,'CoronaSection']]], - ['health_516',['Health',['../unionHaierProtocol.html#a4cf70c633e33066e3fc0f98bb2ad3820',1,'HaierProtocol::Health()'],['../unionHaierYRW02Protocol.html#a7fa39803fd72a788736bb8f00acfa76f',1,'HaierYRW02Protocol::Health()']]], - ['heat_5fmode_517',['heat_mode',['../classIRArgoAC.html#a255762f71502b9ffeb0686759991ec53',1,'IRArgoAC']]], - ['hitachi_518',['hitachi',['../classIRac.html#acd0f2fcf03aabf947a19a195000add3c',1,'IRac']]], - ['hitachi1_519',['hitachi1',['../classIRac.html#ac8807d62f6ae87af72d44b50bed3f17b',1,'IRac']]], - ['hitachi1protocol_520',['Hitachi1Protocol',['../unionHitachi1Protocol.html',1,'']]], - ['hitachi344_521',['hitachi344',['../classIRac.html#a0bc34635a1a349816344916a82585460',1,'IRac']]], - ['hitachi424_522',['hitachi424',['../classIRac.html#aec6de0752ddd3a3e7c6824cb1b692508',1,'IRac']]], - ['hitachi424protocol_523',['Hitachi424Protocol',['../unionHitachi424Protocol.html',1,'']]], - ['hitachi_5fac_524',['HITACHI_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada9020fb54ac69d8aec0185f7e80c962ca',1,'IRremoteESP8266.h']]], - ['hitachi_5fac1_525',['HITACHI_AC1',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada7d9a74161d95e62bece3c0e48900cb35',1,'IRremoteESP8266.h']]], - ['hitachi_5fac1_5fremote_5fmodel_5ft_526',['hitachi_ac1_remote_model_t',['../IRsend_8h.html#acd0c6107b5a6cab2080b18a8de14ea49',1,'IRsend.h']]], - ['hitachi_5fac2_527',['HITACHI_AC2',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab5a44068d519506efa8a3113aa44c9c0',1,'IRremoteESP8266.h']]], - ['hitachi_5fac3_528',['HITACHI_AC3',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadac3487c47b14da6af922f5b27992b30f3',1,'IRremoteESP8266.h']]], - ['hitachi_5fac344_529',['HITACHI_AC344',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1e147eb39adc40e4181940cc2357f070',1,'IRremoteESP8266.h']]], - ['hitachi_5fac424_530',['HITACHI_AC424',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada85af068f8964d4359512265d8cc27a31',1,'IRremoteESP8266.h']]], - ['hitachiprotocol_531',['HitachiProtocol',['../unionHitachiProtocol.html',1,'']]], - ['hold_532',['Hold',['../unionNeoclimaProtocol.html#aaf3af5b5ab99978fb669e75949bfe136',1,'NeoclimaProtocol']]], - ['htmlescape_533',['htmlEscape',['../namespaceirutils.html#a6e55c6fdcc82e1ef8bd5f73df83609a7',1,'irutils']]], - ['hw_5ftimer_5ft_534',['hw_timer_t',['../IRrecv_8cpp.html#a6d06e662914b9ad7eeaea3cb650292c0',1,'IRrecv.cpp']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_9.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_9.js deleted file mode 100644 index 1fb29748a..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_9.js +++ /dev/null @@ -1,198 +0,0 @@ -var searchData= -[ - ['i18n_2eh_535',['i18n.h',['../i18n_8h.html',1,'']]], - ['ifeel_536',['iFeel',['../unionArgoProtocol.html#a9d51b32b8e2b2ff08339be238a775097',1,'ArgoProtocol::iFeel()'],['../unionGreeProtocol.html#a592364307a4b11064888bda76c403142',1,'GreeProtocol::IFeel()']]], - ['inax_537',['INAX',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadafc566aab3afb8face6d8965ca4d0eab7',1,'IRremoteESP8266.h']]], - ['irremoteesp8266_20library_20api_20documentation_538',['IRremoteESP8266 Library API Documentation',['../index.html',1,'']]], - ['initstate_539',['initState',['../classIRac.html#af1c4ae70e61298c0be8d350d67e7c342',1,'IRac::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)'],['../classIRac.html#a165b7fdb9b3a02b1fb5ff2c2c3747958',1,'IRac::initState(stdAc::state_t *state)']]], - ['invertbits_540',['invertBits',['../IRutils_8cpp.html#a1a85904f25c8ec77fb554d238c59cfdb',1,'invertBits(const uint64_t data, const uint16_t nbits): IRutils.cpp'],['../IRutils_8h.html#a1a85904f25c8ec77fb554d238c59cfdb',1,'invertBits(const uint64_t data, const uint16_t nbits): IRutils.cpp']]], - ['invertbytepairs_541',['invertBytePairs',['../namespaceirutils.html#ad818a474349546c84824451a5468f4fe',1,'irutils']]], - ['ion_542',['Ion',['../unionNeoclimaProtocol.html#aeee2a3f53f997ad7ffdbef2b5b6ee31a',1,'NeoclimaProtocol::Ion()'],['../unionSamsungProtocol.html#a977ae7e0e4cea918e4b4a714b25bb4ca',1,'SamsungProtocol::Ion()'],['../unionSharpProtocol.html#ae744f63f03d1c13fbd5bbcf8f40aea0e',1,'SharpProtocol::Ion()']]], - ['ionfilter_543',['IonFilter',['../unionKelvinatorProtocol.html#ad7c762e410c8cba234614563cdc9d384',1,'KelvinatorProtocol']]], - ['ir_5fairwell_2ecpp_544',['ir_Airwell.cpp',['../ir__Airwell_8cpp.html',1,'']]], - ['ir_5fairwell_2eh_545',['ir_Airwell.h',['../ir__Airwell_8h.html',1,'']]], - ['ir_5faiwa_2ecpp_546',['ir_Aiwa.cpp',['../ir__Aiwa_8cpp.html',1,'']]], - ['ir_5famcor_2ecpp_547',['ir_Amcor.cpp',['../ir__Amcor_8cpp.html',1,'']]], - ['ir_5famcor_2eh_548',['ir_Amcor.h',['../ir__Amcor_8h.html',1,'']]], - ['ir_5fargo_2ecpp_549',['ir_Argo.cpp',['../ir__Argo_8cpp.html',1,'']]], - ['ir_5fargo_2eh_550',['ir_Argo.h',['../ir__Argo_8h.html',1,'']]], - ['ir_5fcarrier_2ecpp_551',['ir_Carrier.cpp',['../ir__Carrier_8cpp.html',1,'']]], - ['ir_5fcarrier_2eh_552',['ir_Carrier.h',['../ir__Carrier_8h.html',1,'']]], - ['ir_5fcoolix_2ecpp_553',['ir_Coolix.cpp',['../ir__Coolix_8cpp.html',1,'']]], - ['ir_5fcoolix_2eh_554',['ir_Coolix.h',['../ir__Coolix_8h.html',1,'']]], - ['ir_5fcorona_2ecpp_555',['ir_Corona.cpp',['../ir__Corona_8cpp.html',1,'']]], - ['ir_5fcorona_2eh_556',['ir_Corona.h',['../ir__Corona_8h.html',1,'']]], - ['ir_5fdaikin_2ecpp_557',['ir_Daikin.cpp',['../ir__Daikin_8cpp.html',1,'']]], - ['ir_5fdaikin_2eh_558',['ir_Daikin.h',['../ir__Daikin_8h.html',1,'']]], - ['ir_5fdelonghi_2ecpp_559',['ir_Delonghi.cpp',['../ir__Delonghi_8cpp.html',1,'']]], - ['ir_5fdelonghi_2eh_560',['ir_Delonghi.h',['../ir__Delonghi_8h.html',1,'']]], - ['ir_5fdenon_2ecpp_561',['ir_Denon.cpp',['../ir__Denon_8cpp.html',1,'']]], - ['ir_5fdish_2ecpp_562',['ir_Dish.cpp',['../ir__Dish_8cpp.html',1,'']]], - ['ir_5fdoshisha_2ecpp_563',['ir_Doshisha.cpp',['../ir__Doshisha_8cpp.html',1,'']]], - ['ir_5felectra_2ecpp_564',['ir_Electra.cpp',['../ir__Electra_8cpp.html',1,'']]], - ['ir_5felectra_2eh_565',['ir_Electra.h',['../ir__Electra_8h.html',1,'']]], - ['ir_5felitescreens_2ecpp_566',['ir_EliteScreens.cpp',['../ir__EliteScreens_8cpp.html',1,'']]], - ['ir_5fepson_2ecpp_567',['ir_Epson.cpp',['../ir__Epson_8cpp.html',1,'']]], - ['ir_5ffujitsu_2ecpp_568',['ir_Fujitsu.cpp',['../ir__Fujitsu_8cpp.html',1,'']]], - ['ir_5ffujitsu_2eh_569',['ir_Fujitsu.h',['../ir__Fujitsu_8h.html',1,'']]], - ['ir_5fgicable_2ecpp_570',['ir_GICable.cpp',['../ir__GICable_8cpp.html',1,'']]], - ['ir_5fglobalcache_2ecpp_571',['ir_GlobalCache.cpp',['../ir__GlobalCache_8cpp.html',1,'']]], - ['ir_5fgoodweather_2ecpp_572',['ir_Goodweather.cpp',['../ir__Goodweather_8cpp.html',1,'']]], - ['ir_5fgoodweather_2eh_573',['ir_Goodweather.h',['../ir__Goodweather_8h.html',1,'']]], - ['ir_5fgree_2ecpp_574',['ir_Gree.cpp',['../ir__Gree_8cpp.html',1,'']]], - ['ir_5fgree_2eh_575',['ir_Gree.h',['../ir__Gree_8h.html',1,'']]], - ['ir_5fhaier_2ecpp_576',['ir_Haier.cpp',['../ir__Haier_8cpp.html',1,'']]], - ['ir_5fhaier_2eh_577',['ir_Haier.h',['../ir__Haier_8h.html',1,'']]], - ['ir_5fhitachi_2ecpp_578',['ir_Hitachi.cpp',['../ir__Hitachi_8cpp.html',1,'']]], - ['ir_5fhitachi_2eh_579',['ir_Hitachi.h',['../ir__Hitachi_8h.html',1,'']]], - ['ir_5finax_2ecpp_580',['ir_Inax.cpp',['../ir__Inax_8cpp.html',1,'']]], - ['ir_5fjvc_2ecpp_581',['ir_JVC.cpp',['../ir__JVC_8cpp.html',1,'']]], - ['ir_5fkelvinator_2ecpp_582',['ir_Kelvinator.cpp',['../ir__Kelvinator_8cpp.html',1,'']]], - ['ir_5fkelvinator_2eh_583',['ir_Kelvinator.h',['../ir__Kelvinator_8h.html',1,'']]], - ['ir_5flasertag_2ecpp_584',['ir_Lasertag.cpp',['../ir__Lasertag_8cpp.html',1,'']]], - ['ir_5flego_2ecpp_585',['ir_Lego.cpp',['../ir__Lego_8cpp.html',1,'']]], - ['ir_5flg_2ecpp_586',['ir_LG.cpp',['../ir__LG_8cpp.html',1,'']]], - ['ir_5flg_2eh_587',['ir_LG.h',['../ir__LG_8h.html',1,'']]], - ['ir_5flutron_2ecpp_588',['ir_Lutron.cpp',['../ir__Lutron_8cpp.html',1,'']]], - ['ir_5fmagiquest_2ecpp_589',['ir_Magiquest.cpp',['../ir__Magiquest_8cpp.html',1,'']]], - ['ir_5fmagiquest_2eh_590',['ir_Magiquest.h',['../ir__Magiquest_8h.html',1,'']]], - ['ir_5fmetz_2ecpp_591',['ir_Metz.cpp',['../ir__Metz_8cpp.html',1,'']]], - ['ir_5fmidea_2ecpp_592',['ir_Midea.cpp',['../ir__Midea_8cpp.html',1,'']]], - ['ir_5fmidea_2eh_593',['ir_Midea.h',['../ir__Midea_8h.html',1,'']]], - ['ir_5fmirage_2ecpp_594',['ir_Mirage.cpp',['../ir__Mirage_8cpp.html',1,'']]], - ['ir_5fmitsubishi_2ecpp_595',['ir_Mitsubishi.cpp',['../ir__Mitsubishi_8cpp.html',1,'']]], - ['ir_5fmitsubishi_2eh_596',['ir_Mitsubishi.h',['../ir__Mitsubishi_8h.html',1,'']]], - ['ir_5fmitsubishiheavy_2ecpp_597',['ir_MitsubishiHeavy.cpp',['../ir__MitsubishiHeavy_8cpp.html',1,'']]], - ['ir_5fmitsubishiheavy_2eh_598',['ir_MitsubishiHeavy.h',['../ir__MitsubishiHeavy_8h.html',1,'']]], - ['ir_5fmultibrackets_2ecpp_599',['ir_Multibrackets.cpp',['../ir__Multibrackets_8cpp.html',1,'']]], - ['ir_5fmwm_2ecpp_600',['ir_MWM.cpp',['../ir__MWM_8cpp.html',1,'']]], - ['ir_5fnec_2ecpp_601',['ir_NEC.cpp',['../ir__NEC_8cpp.html',1,'']]], - ['ir_5fnec_2eh_602',['ir_NEC.h',['../ir__NEC_8h.html',1,'']]], - ['ir_5fneoclima_2ecpp_603',['ir_Neoclima.cpp',['../ir__Neoclima_8cpp.html',1,'']]], - ['ir_5fneoclima_2eh_604',['ir_Neoclima.h',['../ir__Neoclima_8h.html',1,'']]], - ['ir_5fnikai_2ecpp_605',['ir_Nikai.cpp',['../ir__Nikai_8cpp.html',1,'']]], - ['ir_5fpanasonic_2ecpp_606',['ir_Panasonic.cpp',['../ir__Panasonic_8cpp.html',1,'']]], - ['ir_5fpanasonic_2eh_607',['ir_Panasonic.h',['../ir__Panasonic_8h.html',1,'']]], - ['ir_5fpioneer_2ecpp_608',['ir_Pioneer.cpp',['../ir__Pioneer_8cpp.html',1,'']]], - ['ir_5fpronto_2ecpp_609',['ir_Pronto.cpp',['../ir__Pronto_8cpp.html',1,'']]], - ['ir_5frc5_5frc6_2ecpp_610',['ir_RC5_RC6.cpp',['../ir__RC5__RC6_8cpp.html',1,'']]], - ['ir_5frcmm_2ecpp_611',['ir_RCMM.cpp',['../ir__RCMM_8cpp.html',1,'']]], - ['ir_5fsamsung_2ecpp_612',['ir_Samsung.cpp',['../ir__Samsung_8cpp.html',1,'']]], - ['ir_5fsamsung_2eh_613',['ir_Samsung.h',['../ir__Samsung_8h.html',1,'']]], - ['ir_5fsanyo_2ecpp_614',['ir_Sanyo.cpp',['../ir__Sanyo_8cpp.html',1,'']]], - ['ir_5fsanyo_2eh_615',['ir_Sanyo.h',['../ir__Sanyo_8h.html',1,'']]], - ['ir_5fsharp_2ecpp_616',['ir_Sharp.cpp',['../ir__Sharp_8cpp.html',1,'']]], - ['ir_5fsharp_2eh_617',['ir_Sharp.h',['../ir__Sharp_8h.html',1,'']]], - ['ir_5fsherwood_2ecpp_618',['ir_Sherwood.cpp',['../ir__Sherwood_8cpp.html',1,'']]], - ['ir_5fsony_2ecpp_619',['ir_Sony.cpp',['../ir__Sony_8cpp.html',1,'']]], - ['ir_5fsymphony_2ecpp_620',['ir_Symphony.cpp',['../ir__Symphony_8cpp.html',1,'']]], - ['ir_5ftcl_2ecpp_621',['ir_Tcl.cpp',['../ir__Tcl_8cpp.html',1,'']]], - ['ir_5ftcl_2eh_622',['ir_Tcl.h',['../ir__Tcl_8h.html',1,'']]], - ['ir_5ftechnibel_2ecpp_623',['ir_Technibel.cpp',['../ir__Technibel_8cpp.html',1,'']]], - ['ir_5ftechnibel_2eh_624',['ir_Technibel.h',['../ir__Technibel_8h.html',1,'']]], - ['ir_5fteco_2ecpp_625',['ir_Teco.cpp',['../ir__Teco_8cpp.html',1,'']]], - ['ir_5fteco_2eh_626',['ir_Teco.h',['../ir__Teco_8h.html',1,'']]], - ['ir_5ftoshiba_2ecpp_627',['ir_Toshiba.cpp',['../ir__Toshiba_8cpp.html',1,'']]], - ['ir_5ftoshiba_2eh_628',['ir_Toshiba.h',['../ir__Toshiba_8h.html',1,'']]], - ['ir_5ftranscold_2ecpp_629',['ir_Transcold.cpp',['../ir__Transcold_8cpp.html',1,'']]], - ['ir_5ftranscold_2eh_630',['ir_Transcold.h',['../ir__Transcold_8h.html',1,'']]], - ['ir_5ftrotec_2ecpp_631',['ir_Trotec.cpp',['../ir__Trotec_8cpp.html',1,'']]], - ['ir_5ftrotec_2eh_632',['ir_Trotec.h',['../ir__Trotec_8h.html',1,'']]], - ['ir_5fvestel_2ecpp_633',['ir_Vestel.cpp',['../ir__Vestel_8cpp.html',1,'']]], - ['ir_5fvestel_2eh_634',['ir_Vestel.h',['../ir__Vestel_8h.html',1,'']]], - ['ir_5fvoltas_2ecpp_635',['ir_Voltas.cpp',['../ir__Voltas_8cpp.html',1,'']]], - ['ir_5fvoltas_2eh_636',['ir_Voltas.h',['../ir__Voltas_8h.html',1,'']]], - ['ir_5fwhirlpool_2ecpp_637',['ir_Whirlpool.cpp',['../ir__Whirlpool_8cpp.html',1,'']]], - ['ir_5fwhirlpool_2eh_638',['ir_Whirlpool.h',['../ir__Whirlpool_8h.html',1,'']]], - ['ir_5fwhynter_2ecpp_639',['ir_Whynter.cpp',['../ir__Whynter_8cpp.html',1,'']]], - ['ir_5fzepeal_2ecpp_640',['ir_Zepeal.cpp',['../ir__Zepeal_8cpp.html',1,'']]], - ['irac_641',['IRac',['../classIRac.html',1,'IRac'],['../classIRac.html#abb0864e277d4f6c68a92c2729112a40d',1,'IRac::IRac()']]], - ['irac_2ecpp_642',['IRac.cpp',['../IRac_8cpp.html',1,'']]], - ['irac_2eh_643',['IRac.h',['../IRac_8h.html',1,'']]], - ['iracutils_644',['IRAcUtils',['../namespaceIRAcUtils.html',1,'']]], - ['irairwellac_645',['IRAirwellAc',['../classIRAirwellAc.html',1,'IRAirwellAc'],['../classIRAirwellAc.html#a38cfe20bff4522034b16d64df64750e8',1,'IRAirwellAc::IRAirwellAc()']]], - ['iramcorac_646',['IRAmcorAc',['../classIRAmcorAc.html',1,'IRAmcorAc'],['../classIRAmcorAc.html#a92db59a33c861dcd3b2960e9711f97c4',1,'IRAmcorAc::IRAmcorAc()']]], - ['irargoac_647',['IRArgoAC',['../classIRArgoAC.html',1,'IRArgoAC'],['../classIRArgoAC.html#ad6c2250738397441b8f956d1477b7d70',1,'IRArgoAC::IRArgoAC()']]], - ['ircarrierac64_648',['IRCarrierAc64',['../classIRCarrierAc64.html',1,'IRCarrierAc64'],['../classIRCarrierAc64.html#ac225c0f24a0e385a145375ff447ab79b',1,'IRCarrierAc64::IRCarrierAc64()']]], - ['ircoolixac_649',['IRCoolixAC',['../classIRCoolixAC.html',1,'IRCoolixAC'],['../classIRCoolixAC.html#a043ad3b74e964e39b111e1fcf9e55f42',1,'IRCoolixAC::IRCoolixAC()']]], - ['ircoronaac_650',['IRCoronaAc',['../classIRCoronaAc.html',1,'IRCoronaAc'],['../classIRCoronaAc.html#aa96f1ffce21cdec5b3901ebbb1c63fbb',1,'IRCoronaAc::IRCoronaAc()']]], - ['irdaikin128_651',['IRDaikin128',['../classIRDaikin128.html',1,'IRDaikin128'],['../classIRDaikin128.html#aa669739541daf1a2b39ce1cd0424c43b',1,'IRDaikin128::IRDaikin128()']]], - ['irdaikin152_652',['IRDaikin152',['../classIRDaikin152.html',1,'IRDaikin152'],['../classIRDaikin152.html#a68dce79bab5890d9aea325a45ef8e4a3',1,'IRDaikin152::IRDaikin152()']]], - ['irdaikin160_653',['IRDaikin160',['../classIRDaikin160.html',1,'IRDaikin160'],['../classIRDaikin160.html#a76fb744b041c38abb730bce0538a497a',1,'IRDaikin160::IRDaikin160()']]], - ['irdaikin176_654',['IRDaikin176',['../classIRDaikin176.html',1,'IRDaikin176'],['../classIRDaikin176.html#accfe7c3f34351844d12059455f65f312',1,'IRDaikin176::IRDaikin176()']]], - ['irdaikin2_655',['IRDaikin2',['../classIRDaikin2.html',1,'IRDaikin2'],['../classIRDaikin2.html#a3ffe908313f162b92e92307578592fca',1,'IRDaikin2::IRDaikin2()']]], - ['irdaikin216_656',['IRDaikin216',['../classIRDaikin216.html',1,'IRDaikin216'],['../classIRDaikin216.html#ad802bde79e5ee2d16e3b09fbc8bbe8df',1,'IRDaikin216::IRDaikin216()']]], - ['irdaikin64_657',['IRDaikin64',['../classIRDaikin64.html',1,'IRDaikin64'],['../classIRDaikin64.html#a88855df33ce903884b21d2ef4771e94f',1,'IRDaikin64::IRDaikin64()']]], - ['irdaikinesp_658',['IRDaikinESP',['../classIRDaikinESP.html',1,'IRDaikinESP'],['../classIRDaikinESP.html#a2652cb45e07e8a4329c16cded9f6ad9a',1,'IRDaikinESP::IRDaikinESP()']]], - ['irdelonghiac_659',['IRDelonghiAc',['../classIRDelonghiAc.html',1,'IRDelonghiAc'],['../classIRDelonghiAc.html#aa6f8661cf6baa369a0a5b9d775c392e0',1,'IRDelonghiAc::IRDelonghiAc()']]], - ['irelectraac_660',['IRElectraAc',['../classIRElectraAc.html',1,'IRElectraAc'],['../classIRElectraAc.html#a2f56ad22943c3d261b1d2ef88d86e300',1,'IRElectraAc::IRElectraAc()']]], - ['irfujitsuac_661',['IRFujitsuAC',['../classIRFujitsuAC.html',1,'IRFujitsuAC'],['../classIRFujitsuAC.html#acdb70f239884507f540b872ba25747ce',1,'IRFujitsuAC::IRFujitsuAC()']]], - ['irgoodweatherac_662',['IRGoodweatherAc',['../classIRGoodweatherAc.html',1,'IRGoodweatherAc'],['../classIRGoodweatherAc.html#a681feff1a58125cde97b2d7ed0ba775e',1,'IRGoodweatherAc::IRGoodweatherAc()']]], - ['irgreeac_663',['IRGreeAC',['../classIRGreeAC.html',1,'IRGreeAC'],['../classIRGreeAC.html#abf7ead6ebee4bc776f83fb55f6fe6b63',1,'IRGreeAC::IRGreeAC()']]], - ['irhaierac_664',['IRHaierAC',['../classIRHaierAC.html',1,'IRHaierAC'],['../classIRHaierAC.html#a0b78060cbd150cd886a409adc2dea49c',1,'IRHaierAC::IRHaierAC()']]], - ['irhaieracyrw02_665',['IRHaierACYRW02',['../classIRHaierACYRW02.html',1,'IRHaierACYRW02'],['../classIRHaierACYRW02.html#afd9354c36df33434840bbc5f38d4e7ed',1,'IRHaierACYRW02::IRHaierACYRW02()']]], - ['irhitachiac_666',['IRHitachiAc',['../classIRHitachiAc.html',1,'IRHitachiAc'],['../classIRHitachiAc.html#a4c43e95e0cc28339e7162d7090ae16bf',1,'IRHitachiAc::IRHitachiAc()']]], - ['irhitachiac1_667',['IRHitachiAc1',['../classIRHitachiAc1.html',1,'IRHitachiAc1'],['../classIRHitachiAc1.html#ac00cfd9a60e08d34f292878de47f622f',1,'IRHitachiAc1::IRHitachiAc1()']]], - ['irhitachiac3_668',['IRHitachiAc3',['../classIRHitachiAc3.html',1,'IRHitachiAc3'],['../classIRHitachiAc3.html#adef0e7ad217f078ce418e3aa82b9cb86',1,'IRHitachiAc3::IRHitachiAc3()']]], - ['irhitachiac344_669',['IRHitachiAc344',['../classIRHitachiAc344.html',1,'IRHitachiAc344'],['../classIRHitachiAc424.html#a3c885313a79bf8c02bc5eb9f7d80088b',1,'IRHitachiAc424::IRHitachiAc344()'],['../classIRHitachiAc344.html#afbff8a1dd2777880d2d1713d07e1d419',1,'IRHitachiAc344::IRHitachiAc344()']]], - ['irhitachiac424_670',['IRHitachiAc424',['../classIRHitachiAc424.html',1,'IRHitachiAc424'],['../classIRHitachiAc424.html#add708c10a56d20621ef65a0ddcc2aac1',1,'IRHitachiAc424::IRHitachiAc424()']]], - ['irkelvinatorac_671',['IRKelvinatorAC',['../classIRKelvinatorAC.html',1,'IRKelvinatorAC'],['../classIRKelvinatorAC.html#a111dd384b1898a4fb880a19b6d1b1635',1,'IRKelvinatorAC::IRKelvinatorAC()']]], - ['irlgac_672',['IRLgAc',['../classIRLgAc.html',1,'IRLgAc'],['../classIRLgAc.html#a290636496526a9ed2057532649709375',1,'IRLgAc::IRLgAc()']]], - ['irmideaac_673',['IRMideaAC',['../classIRMideaAC.html',1,'IRMideaAC'],['../classIRMideaAC.html#a1ef2f532a1e6c6bfe89617d3fd0d9082',1,'IRMideaAC::IRMideaAC()']]], - ['irmitsubishi112_674',['IRMitsubishi112',['../classIRMitsubishi112.html',1,'IRMitsubishi112'],['../classIRMitsubishi112.html#adea6f3b7b7619b0bf6da4a94cec9d712',1,'IRMitsubishi112::IRMitsubishi112()']]], - ['irmitsubishi136_675',['IRMitsubishi136',['../classIRMitsubishi136.html',1,'IRMitsubishi136'],['../classIRMitsubishi136.html#ad92926b993869d0695f11ddb999b2090',1,'IRMitsubishi136::IRMitsubishi136()']]], - ['irmitsubishiac_676',['IRMitsubishiAC',['../classIRMitsubishiAC.html',1,'IRMitsubishiAC'],['../classIRMitsubishiAC.html#a83fabfd9ebed5cef8dd2a18a85fdf4e6',1,'IRMitsubishiAC::IRMitsubishiAC()']]], - ['irmitsubishiheavy152ac_677',['IRMitsubishiHeavy152Ac',['../classIRMitsubishiHeavy152Ac.html',1,'IRMitsubishiHeavy152Ac'],['../classIRMitsubishiHeavy152Ac.html#a704e9f96c2d0a07f9ba16a400d9c97aa',1,'IRMitsubishiHeavy152Ac::IRMitsubishiHeavy152Ac()']]], - ['irmitsubishiheavy88ac_678',['IRMitsubishiHeavy88Ac',['../classIRMitsubishiHeavy88Ac.html',1,'IRMitsubishiHeavy88Ac'],['../classIRMitsubishiHeavy88Ac.html#aceabecf4a615e807a4636ff5990d77d7',1,'IRMitsubishiHeavy88Ac::IRMitsubishiHeavy88Ac()']]], - ['irneoclimaac_679',['IRNeoclimaAc',['../classIRNeoclimaAc.html',1,'IRNeoclimaAc'],['../classIRNeoclimaAc.html#a99ed2962176e5f12f8387fab977c6395',1,'IRNeoclimaAc::IRNeoclimaAc()']]], - ['irpanasonicac_680',['IRPanasonicAc',['../classIRPanasonicAc.html',1,'IRPanasonicAc'],['../classIRPanasonicAc.html#ae8b0f4518ee1a913d47a7101b0a11185',1,'IRPanasonicAc::IRPanasonicAc()']]], - ['irpanasonicac32_681',['IRPanasonicAc32',['../classIRPanasonicAc32.html',1,'IRPanasonicAc32'],['../classIRPanasonicAc32.html#ade8637984d8c1d5d881dc636d501676d',1,'IRPanasonicAc32::IRPanasonicAc32()']]], - ['irparams_5fsave_682',['irparams_save',['../classIRrecv.html#a6fdac84ce51ce119972bf121ccc95aab',1,'IRrecv']]], - ['irparams_5ft_683',['irparams_t',['../structirparams__t.html',1,'']]], - ['irpin_684',['IRpin',['../classIRsend.html#ae4a6ea1e72f4861167002d6e7bf17b7c',1,'IRsend']]], - ['irrecv_685',['IRrecv',['../classIRrecv.html',1,'IRrecv'],['../classIRrecv.html#a8fe4d26ef1f863db1db9994fed5fc209',1,'IRrecv::IRrecv(const uint16_t recvpin, const uint16_t bufsize=kRawBuf, const uint8_t timeout=kTimeoutMs, const bool save_buffer=false, const uint8_t timer_num=kDefaultESP32Timer)'],['../classIRrecv.html#a3bb1bcc1c1a3184294dd35c8f6f758b1',1,'IRrecv::IRrecv(const uint16_t recvpin, const uint16_t bufsize=kRawBuf, const uint8_t timeout=kTimeoutMs, const bool save_buffer=false)']]], - ['irrecv_2ecpp_686',['IRrecv.cpp',['../IRrecv_8cpp.html',1,'']]], - ['irrecv_2eh_687',['IRrecv.h',['../IRrecv_8h.html',1,'']]], - ['irremoteesp8266_2eh_688',['IRremoteESP8266.h',['../IRremoteESP8266_8h.html',1,'']]], - ['irsamsungac_689',['IRSamsungAc',['../classIRSamsungAc.html',1,'IRSamsungAc'],['../classIRSamsungAc.html#a0db771b80d7d7a63b5ecb4b25efee609',1,'IRSamsungAc::IRSamsungAc()']]], - ['irsanyoac_690',['IRSanyoAc',['../classIRSanyoAc.html',1,'IRSanyoAc'],['../classIRSanyoAc.html#ab7b9a1f1685993b95807f7e48624e4e2',1,'IRSanyoAc::IRSanyoAc()']]], - ['irsend_691',['IRsend',['../classIRsend.html',1,'IRsend'],['../classIRsend.html#a792780b7de996c90c86dd7b700eaf271',1,'IRsend::IRsend()']]], - ['irsend_2ecpp_692',['IRsend.cpp',['../IRsend_8cpp.html',1,'']]], - ['irsend_2eh_693',['IRsend.h',['../IRsend_8h.html',1,'']]], - ['irsharpac_694',['IRSharpAc',['../classIRSharpAc.html',1,'IRSharpAc'],['../classIRSharpAc.html#a30b5f8f634a41c943b4e1453d12bc980',1,'IRSharpAc::IRSharpAc()']]], - ['irtcl112ac_695',['IRTcl112Ac',['../classIRTcl112Ac.html',1,'IRTcl112Ac'],['../classIRTcl112Ac.html#a061bdfdf4444cb5e06fa90824985c1ec',1,'IRTcl112Ac::IRTcl112Ac()']]], - ['irtechnibelac_696',['IRTechnibelAc',['../classIRTechnibelAc.html',1,'IRTechnibelAc'],['../classIRTechnibelAc.html#a799407de348870d5765acf163ab92a75',1,'IRTechnibelAc::IRTechnibelAc()']]], - ['irtecoac_697',['IRTecoAc',['../classIRTecoAc.html',1,'IRTecoAc'],['../classIRTecoAc.html#a56e3f31a080bfd565570bf3b165e71d4',1,'IRTecoAc::IRTecoAc()']]], - ['irtext_2ecpp_698',['IRtext.cpp',['../IRtext_8cpp.html',1,'']]], - ['irtext_2eh_699',['IRtext.h',['../IRtext_8h.html',1,'']]], - ['irtimer_700',['IRtimer',['../classIRtimer.html',1,'IRtimer'],['../classIRtimer.html#a09d64d689137ef8ca68973bb9e550e76',1,'IRtimer::IRtimer()']]], - ['irtimer_2ecpp_701',['IRtimer.cpp',['../IRtimer_8cpp.html',1,'']]], - ['irtimer_2eh_702',['IRtimer.h',['../IRtimer_8h.html',1,'']]], - ['irtoshibaac_703',['IRToshibaAC',['../classIRToshibaAC.html',1,'IRToshibaAC'],['../classIRToshibaAC.html#abf2b3db316f7d6acb20c4f7ea2476ec2',1,'IRToshibaAC::IRToshibaAC()']]], - ['irtranscoldac_704',['IRTranscoldAc',['../classIRTranscoldAc.html',1,'IRTranscoldAc'],['../classIRTranscoldAc.html#a155278b9e5803aacf69a1ae20ed5b652',1,'IRTranscoldAc::IRTranscoldAc()']]], - ['irtrotecesp_705',['IRTrotecESP',['../classIRTrotecESP.html',1,'IRTrotecESP'],['../classIRTrotecESP.html#a1b56b6e55bf133ccab6a482090408ee5',1,'IRTrotecESP::IRTrotecESP()']]], - ['irutils_706',['irutils',['../namespaceirutils.html',1,'']]], - ['irutils_2ecpp_707',['IRutils.cpp',['../IRutils_8cpp.html',1,'']]], - ['irutils_2eh_708',['IRutils.h',['../IRutils_8h.html',1,'']]], - ['irvestelac_709',['IRVestelAc',['../classIRVestelAc.html',1,'IRVestelAc'],['../classIRVestelAc.html#af1583ef81331edf112a0d04771c2cbec',1,'IRVestelAc::IRVestelAc()']]], - ['irvoltas_710',['IRVoltas',['../classIRVoltas.html',1,'IRVoltas'],['../classIRVoltas.html#a4bfb0c5b16507d330abea2a9147f8332',1,'IRVoltas::IRVoltas()']]], - ['irwhirlpoolac_711',['IRWhirlpoolAc',['../classIRWhirlpoolAc.html',1,'IRWhirlpoolAc'],['../classIRWhirlpoolAc.html#a89bc9d440a5f7d04a602d7bc73904bc2',1,'IRWhirlpoolAc::IRWhirlpoolAc()']]], - ['iseconotoggle_712',['isEconoToggle',['../classIRMideaAC.html#a227aeed678af6da49b510cb67b02991e',1,'IRMideaAC']]], - ['islighttoggle_713',['isLightToggle',['../classIRMideaAC.html#ac0f321a8a38bd2cecf453c6aff9020e6',1,'IRMideaAC']]], - ['isofftimeractive_714',['isOffTimerActive',['../classIRVestelAc.html#aa756171e82ed1b43593b81aa3a63b812',1,'IRVestelAc']]], - ['isofftimerenabled_715',['isOffTimerEnabled',['../classIRMideaAC.html#a10aa3386a15b46c62083baaca3bcf699',1,'IRMideaAC::isOffTimerEnabled()'],['../classIRPanasonicAc.html#ac8e218b4886d66889734b01232767c8a',1,'IRPanasonicAc::isOffTimerEnabled()'],['../classIRWhirlpoolAc.html#a1bc1366524cf3c7fb426e908a166801f',1,'IRWhirlpoolAc::isOffTimerEnabled()']]], - ['isontimeractive_716',['isOnTimerActive',['../classIRVestelAc.html#a67f0e970af50fcf6e01e4cac85c5862a',1,'IRVestelAc']]], - ['isontimerenabled_717',['isOnTimerEnabled',['../classIRMideaAC.html#a61f53e462caa1bc8329a6ebadbe47f93',1,'IRMideaAC::isOnTimerEnabled()'],['../classIRPanasonicAc.html#a04cbf8f5063a3892020d383c77abc57c',1,'IRPanasonicAc::isOnTimerEnabled()'],['../classIRWhirlpoolAc.html#aff1b8c2d063b376725a5a77745f6be3a',1,'IRWhirlpoolAc::isOnTimerEnabled()']]], - ['ispowerspecial_718',['isPowerSpecial',['../classIRSharpAc.html#ae18f76e03fd9ee8cb5bb8e9b41718e9d',1,'IRSharpAc']]], - ['isprotocolsupported_719',['isProtocolSupported',['../classIRac.html#ad9c2fc9d07db70704f78a2d5f7be5b1c',1,'IRac']]], - ['isspecialstate_720',['isSpecialState',['../classIRCoolixAC.html#aa9bfc6c78fca87962c9335d60f625322',1,'IRCoolixAC::isSpecialState()'],['../classIRTranscoldAc.html#aed8c20db75d4070e66445fb2b092e2de',1,'IRTranscoldAc::isSpecialState()']]], - ['isswingvstep_721',['isSwingVStep',['../classIRMideaAC.html#a360aa29e0f6817709644f6b36abce754',1,'IRMideaAC']]], - ['isswingvtoggle_722',['isSwingVToggle',['../classIRMideaAC.html#a5277fa1d077650be0edcf284db50d38b',1,'IRMideaAC']]], - ['istimecommand_723',['isTimeCommand',['../classIRVestelAc.html#ae811a07c1a8d82e7068c39b9ca73aaf1',1,'IRVestelAc']]], - ['istimeractive_724',['isTimerActive',['../classIRVestelAc.html#a160b73df8e1eda984f9bfbff3df7fa63',1,'IRVestelAc']]], - ['istimerenabled_725',['isTimerEnabled',['../classIRWhirlpoolAc.html#a5a713ffed99ab3450257d83e2d6e15ee',1,'IRWhirlpoolAc']]], - ['isturbotoggle_726',['isTurboToggle',['../classIRMideaAC.html#ae40e95fbee35ecc00ebff23c0b64e56d',1,'IRMideaAC']]], - ['isvalidlgac_727',['isValidLgAc',['../classIRLgAc.html#ad35d47f590ee4bd51bfdf9d911bce242',1,'IRLgAc']]], - ['it_2dit_2eh_728',['it-IT.h',['../it-IT_8h.html',1,'']]], - ['internationalisation_20_28i18n_29_20_26_20locale_20files_729',['Internationalisation (I18N) & Locale Files',['../md_src_locale_README.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_c.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_c.js deleted file mode 100644 index c01c4e915..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/all_c.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['label_2995',['Label',['../structCoronaSection.html#abc6d0caa713c73244c4bf2f602074d48',1,'CoronaSection']]], - ['lasertag_2996',['LASERTAG',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada92eadf4fa6dd16da5b79a2fcbf729894',1,'IRremoteESP8266.h']]], - ['ledflag_2997',['ledFlag',['../classIRCoolixAC.html#a03ba5e0a6cb47a7bb054155c2111a69c',1,'IRCoolixAC']]], - ['ledoff_2998',['ledOff',['../classIRsend.html#ae71cc5aa99f894785fb4f7abc05841b2',1,'IRsend']]], - ['ledon_2999',['ledOn',['../classIRsend.html#a13d804171fa7c14aff4def38c6ffb6c8',1,'IRsend']]], - ['legopf_3000',['LEGOPF',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada9a31bf5555b17ea7b115a5c2550fc1de',1,'IRremoteESP8266.h']]], - ['lg_3001',['lg',['../classIRac.html#afad31ecf9eae573882d53dd6629485fb',1,'IRac::lg()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadadf6c249ac7d923229f9e623eff9a61f4',1,'LG(): IRremoteESP8266.h']]], - ['lg2_3002',['LG2',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada8402547ec0b99b9b0efe97dec65badf9',1,'IRremoteESP8266.h']]], - ['lg_5fac_5fremote_5fmodel_5ft_3003',['lg_ac_remote_model_t',['../IRsend_8h.html#a50c54713e16502d280723334879dc83b',1,'IRsend.h']]], - ['lgprotocol_3004',['LGProtocol',['../unionLGProtocol.html',1,'']]], - ['light_3005',['Light',['../unionDaikin2Protocol.html#adaf55ec9e1b9ba278c7391d9d797f3ba',1,'Daikin2Protocol::Light()'],['../unionGoodweatherProtocol.html#a845565af7661af0c05290a7ce039f8e2',1,'GoodweatherProtocol::Light()'],['../unionGreeProtocol.html#a72092768725667d3bce381a6e2900c66',1,'GreeProtocol::Light()'],['../unionKelvinatorProtocol.html#a38f5b978fd63fda659f0e0b5f682440e',1,'KelvinatorProtocol::Light()'],['../unionNeoclimaProtocol.html#a598346f565ad6d57df03f5256a878dd6',1,'NeoclimaProtocol::Light()'],['../unionVoltasProtocol.html#a811a0de66771c693831740440aac460c',1,'VoltasProtocol::Light()'],['../structstdAc_1_1state__t.html#a51c3a5c4703ea49b420d70aeb18b6b9b',1,'stdAc::state_t::light()']]], - ['lighttoggle_3006',['LightToggle',['../unionElectraProtocol.html#aa2a5998cafd139e5ce7626edc4782c56',1,'ElectraProtocol']]], - ['llword_3007',['llword',['../unionmagiquest.html#ad57fbc75ab289c3e93b94be0b2187d65',1,'magiquest']]], - ['lowlevelsanitycheck_3008',['lowLevelSanityCheck',['../namespaceirutils.html#af67b75834051c4aced358b274c1c55a8',1,'irutils']]], - ['lutron_3009',['LUTRON',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada76cc459b9e26d82ed82cf120272fd8cb',1,'IRremoteESP8266.h']]], - ['lword_3010',['lword',['../unionmagiquest.html#ac87102145311831a232002b52fe2d02c',1,'magiquest']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_0.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_0.js deleted file mode 100644 index b8fcf1ddc..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['airwellprotocol_3528',['AirwellProtocol',['../unionAirwellProtocol.html',1,'']]], - ['amcorprotocol_3529',['AmcorProtocol',['../unionAmcorProtocol.html',1,'']]], - ['argoprotocol_3530',['ArgoProtocol',['../unionArgoProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_1.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_1.js deleted file mode 100644 index 750ecdc55..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_1.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['carrierprotocol_3531',['CarrierProtocol',['../unionCarrierProtocol.html',1,'']]], - ['coolixprotocol_3532',['CoolixProtocol',['../unionCoolixProtocol.html',1,'']]], - ['coronaprotocol_3533',['CoronaProtocol',['../unionCoronaProtocol.html',1,'']]], - ['coronasection_3534',['CoronaSection',['../structCoronaSection.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_2.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_2.js deleted file mode 100644 index 6bbf6694f..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_2.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['daikin128protocol_3535',['Daikin128Protocol',['../unionDaikin128Protocol.html',1,'']]], - ['daikin152protocol_3536',['Daikin152Protocol',['../unionDaikin152Protocol.html',1,'']]], - ['daikin160protocol_3537',['Daikin160Protocol',['../unionDaikin160Protocol.html',1,'']]], - ['daikin176protocol_3538',['Daikin176Protocol',['../unionDaikin176Protocol.html',1,'']]], - ['daikin216protocol_3539',['Daikin216Protocol',['../unionDaikin216Protocol.html',1,'']]], - ['daikin2protocol_3540',['Daikin2Protocol',['../unionDaikin2Protocol.html',1,'']]], - ['daikin64protocol_3541',['Daikin64Protocol',['../unionDaikin64Protocol.html',1,'']]], - ['daikinespprotocol_3542',['DaikinESPProtocol',['../unionDaikinESPProtocol.html',1,'']]], - ['decode_5fresults_3543',['decode_results',['../classdecode__results.html',1,'']]], - ['delonghiprotocol_3544',['DelonghiProtocol',['../unionDelonghiProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_3.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_3.js deleted file mode 100644 index ec47b54fc..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['electraprotocol_3545',['ElectraProtocol',['../unionElectraProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_4.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_4.js deleted file mode 100644 index 0f5d656af..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['goodweatherprotocol_3546',['GoodweatherProtocol',['../unionGoodweatherProtocol.html',1,'']]], - ['greeprotocol_3547',['GreeProtocol',['../unionGreeProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_5.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_5.js deleted file mode 100644 index 59c1e6417..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_5.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['haierprotocol_3548',['HaierProtocol',['../unionHaierProtocol.html',1,'']]], - ['haieryrw02protocol_3549',['HaierYRW02Protocol',['../unionHaierYRW02Protocol.html',1,'']]], - ['hitachi1protocol_3550',['Hitachi1Protocol',['../unionHitachi1Protocol.html',1,'']]], - ['hitachi424protocol_3551',['Hitachi424Protocol',['../unionHitachi424Protocol.html',1,'']]], - ['hitachiprotocol_3552',['HitachiProtocol',['../unionHitachiProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_6.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_6.js deleted file mode 100644 index a13cb82e3..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_6.js +++ /dev/null @@ -1,57 +0,0 @@ -var searchData= -[ - ['irac_3553',['IRac',['../classIRac.html',1,'']]], - ['irairwellac_3554',['IRAirwellAc',['../classIRAirwellAc.html',1,'']]], - ['iramcorac_3555',['IRAmcorAc',['../classIRAmcorAc.html',1,'']]], - ['irargoac_3556',['IRArgoAC',['../classIRArgoAC.html',1,'']]], - ['ircarrierac64_3557',['IRCarrierAc64',['../classIRCarrierAc64.html',1,'']]], - ['ircoolixac_3558',['IRCoolixAC',['../classIRCoolixAC.html',1,'']]], - ['ircoronaac_3559',['IRCoronaAc',['../classIRCoronaAc.html',1,'']]], - ['irdaikin128_3560',['IRDaikin128',['../classIRDaikin128.html',1,'']]], - ['irdaikin152_3561',['IRDaikin152',['../classIRDaikin152.html',1,'']]], - ['irdaikin160_3562',['IRDaikin160',['../classIRDaikin160.html',1,'']]], - ['irdaikin176_3563',['IRDaikin176',['../classIRDaikin176.html',1,'']]], - ['irdaikin2_3564',['IRDaikin2',['../classIRDaikin2.html',1,'']]], - ['irdaikin216_3565',['IRDaikin216',['../classIRDaikin216.html',1,'']]], - ['irdaikin64_3566',['IRDaikin64',['../classIRDaikin64.html',1,'']]], - ['irdaikinesp_3567',['IRDaikinESP',['../classIRDaikinESP.html',1,'']]], - ['irdelonghiac_3568',['IRDelonghiAc',['../classIRDelonghiAc.html',1,'']]], - ['irelectraac_3569',['IRElectraAc',['../classIRElectraAc.html',1,'']]], - ['irfujitsuac_3570',['IRFujitsuAC',['../classIRFujitsuAC.html',1,'']]], - ['irgoodweatherac_3571',['IRGoodweatherAc',['../classIRGoodweatherAc.html',1,'']]], - ['irgreeac_3572',['IRGreeAC',['../classIRGreeAC.html',1,'']]], - ['irhaierac_3573',['IRHaierAC',['../classIRHaierAC.html',1,'']]], - ['irhaieracyrw02_3574',['IRHaierACYRW02',['../classIRHaierACYRW02.html',1,'']]], - ['irhitachiac_3575',['IRHitachiAc',['../classIRHitachiAc.html',1,'']]], - ['irhitachiac1_3576',['IRHitachiAc1',['../classIRHitachiAc1.html',1,'']]], - ['irhitachiac3_3577',['IRHitachiAc3',['../classIRHitachiAc3.html',1,'']]], - ['irhitachiac344_3578',['IRHitachiAc344',['../classIRHitachiAc344.html',1,'']]], - ['irhitachiac424_3579',['IRHitachiAc424',['../classIRHitachiAc424.html',1,'']]], - ['irkelvinatorac_3580',['IRKelvinatorAC',['../classIRKelvinatorAC.html',1,'']]], - ['irlgac_3581',['IRLgAc',['../classIRLgAc.html',1,'']]], - ['irmideaac_3582',['IRMideaAC',['../classIRMideaAC.html',1,'']]], - ['irmitsubishi112_3583',['IRMitsubishi112',['../classIRMitsubishi112.html',1,'']]], - ['irmitsubishi136_3584',['IRMitsubishi136',['../classIRMitsubishi136.html',1,'']]], - ['irmitsubishiac_3585',['IRMitsubishiAC',['../classIRMitsubishiAC.html',1,'']]], - ['irmitsubishiheavy152ac_3586',['IRMitsubishiHeavy152Ac',['../classIRMitsubishiHeavy152Ac.html',1,'']]], - ['irmitsubishiheavy88ac_3587',['IRMitsubishiHeavy88Ac',['../classIRMitsubishiHeavy88Ac.html',1,'']]], - ['irneoclimaac_3588',['IRNeoclimaAc',['../classIRNeoclimaAc.html',1,'']]], - ['irpanasonicac_3589',['IRPanasonicAc',['../classIRPanasonicAc.html',1,'']]], - ['irpanasonicac32_3590',['IRPanasonicAc32',['../classIRPanasonicAc32.html',1,'']]], - ['irparams_5ft_3591',['irparams_t',['../structirparams__t.html',1,'']]], - ['irrecv_3592',['IRrecv',['../classIRrecv.html',1,'']]], - ['irsamsungac_3593',['IRSamsungAc',['../classIRSamsungAc.html',1,'']]], - ['irsanyoac_3594',['IRSanyoAc',['../classIRSanyoAc.html',1,'']]], - ['irsend_3595',['IRsend',['../classIRsend.html',1,'']]], - ['irsharpac_3596',['IRSharpAc',['../classIRSharpAc.html',1,'']]], - ['irtcl112ac_3597',['IRTcl112Ac',['../classIRTcl112Ac.html',1,'']]], - ['irtechnibelac_3598',['IRTechnibelAc',['../classIRTechnibelAc.html',1,'']]], - ['irtecoac_3599',['IRTecoAc',['../classIRTecoAc.html',1,'']]], - ['irtimer_3600',['IRtimer',['../classIRtimer.html',1,'']]], - ['irtoshibaac_3601',['IRToshibaAC',['../classIRToshibaAC.html',1,'']]], - ['irtranscoldac_3602',['IRTranscoldAc',['../classIRTranscoldAc.html',1,'']]], - ['irtrotecesp_3603',['IRTrotecESP',['../classIRTrotecESP.html',1,'']]], - ['irvestelac_3604',['IRVestelAc',['../classIRVestelAc.html',1,'']]], - ['irvoltas_3605',['IRVoltas',['../classIRVoltas.html',1,'']]], - ['irwhirlpoolac_3606',['IRWhirlpoolAc',['../classIRWhirlpoolAc.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_7.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_7.js deleted file mode 100644 index d64666355..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['kelvinatorprotocol_3607',['KelvinatorProtocol',['../unionKelvinatorProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_8.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_8.js deleted file mode 100644 index fd517523e..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['lgprotocol_3608',['LGProtocol',['../unionLGProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_9.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_9.js deleted file mode 100644 index efcfa7b5d..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_9.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['magiquest_3609',['magiquest',['../unionmagiquest.html',1,'']]], - ['match_5fresult_5ft_3610',['match_result_t',['../structmatch__result__t.html',1,'']]], - ['mideaprotocol_3611',['MideaProtocol',['../unionMideaProtocol.html',1,'']]], - ['mitsubishi112protocol_3612',['Mitsubishi112Protocol',['../unionMitsubishi112Protocol.html',1,'']]], - ['mitsubishi136protocol_3613',['Mitsubishi136Protocol',['../unionMitsubishi136Protocol.html',1,'']]], - ['mitsubishi144protocol_3614',['Mitsubishi144Protocol',['../unionMitsubishi144Protocol.html',1,'']]], - ['mitsubishi152protocol_3615',['Mitsubishi152Protocol',['../unionMitsubishi152Protocol.html',1,'']]], - ['mitsubishi88protocol_3616',['Mitsubishi88Protocol',['../unionMitsubishi88Protocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_a.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_a.js deleted file mode 100644 index 6401b09bc..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['neoclimaprotocol_3617',['NeoclimaProtocol',['../unionNeoclimaProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_b.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_b.js deleted file mode 100644 index 2f6d41608..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['panasonicac32protocol_3618',['PanasonicAc32Protocol',['../unionPanasonicAc32Protocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_c.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_c.js deleted file mode 100644 index b6355be8b..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_c.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['samsungprotocol_3619',['SamsungProtocol',['../unionSamsungProtocol.html',1,'']]], - ['sanyoprotocol_3620',['SanyoProtocol',['../unionSanyoProtocol.html',1,'']]], - ['sharpprotocol_3621',['SharpProtocol',['../unionSharpProtocol.html',1,'']]], - ['state_5ft_3622',['state_t',['../structstdAc_1_1state__t.html',1,'stdAc']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_d.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_d.js deleted file mode 100644 index 57ae8c033..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['timerms_3623',['TimerMs',['../classTimerMs.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_e.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_e.js deleted file mode 100644 index faadfb5f1..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/classes_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['voltasprotocol_3624',['VoltasProtocol',['../unionVoltasProtocol.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_5.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_5.js deleted file mode 100644 index 402bf7136..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['opmode_5ft_6987',['opmode_t',['../namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f',1,'stdAc']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_7.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_7.js deleted file mode 100644 index c82f51ed6..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enums_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['sharp_5fac_5fremote_5fmodel_5ft_6989',['sharp_ac_remote_model_t',['../IRsend_8h.html#a258e4af12642d613587149fa734e45e7',1,'IRsend.h']]], - ['swingh_5ft_6990',['swingh_t',['../namespacestdAc.html#aae50ee315fa9c9ec1a4078da40d6b147',1,'stdAc']]], - ['swingv_5ft_6991',['swingv_t',['../namespacestdAc.html#ac07f224c7bb47cac55dd01f24770ef43',1,'stdAc']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enumvalues_3.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enumvalues_3.js deleted file mode 100644 index d1d7d023a..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/enumvalues_3.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['electra_5fac_7025',['ELECTRA_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada05f193ef4ead3e54624bd92dc3203fac',1,'IRremoteESP8266.h']]], - ['elitescreens_7026',['ELITESCREENS',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadafebe19d5453be4c99de8c031508b7cb1',1,'IRremoteESP8266.h']]], - ['epson_7027',['EPSON',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaaf677fd380c38297264a10732631927c',1,'IRremoteESP8266.h']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_0.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_0.js deleted file mode 100644 index 106a1db5f..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['de_2dch_2eh_3629',['de-CH.h',['../de-CH_8h.html',1,'']]], - ['de_2dde_2eh_3630',['de-DE.h',['../de-DE_8h.html',1,'']]], - ['defaults_2eh_3631',['defaults.h',['../defaults_8h.html',1,'']]], - ['doxygen_5findex_2emd_3632',['doxygen_index.md',['../doxygen__index_8md.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_1.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_1.js deleted file mode 100644 index ecfc159e2..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_1.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['en_2dau_2eh_3633',['en-AU.h',['../en-AU_8h.html',1,'']]], - ['en_2die_2eh_3634',['en-IE.h',['../en-IE_8h.html',1,'']]], - ['en_2duk_2eh_3635',['en-UK.h',['../en-UK_8h.html',1,'']]], - ['en_2dus_2eh_3636',['en-US.h',['../en-US_8h.html',1,'']]], - ['es_2des_2eh_3637',['es-ES.h',['../es-ES_8h.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_2.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_2.js deleted file mode 100644 index a941fb1ad..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['fr_2dfr_2eh_3638',['fr-FR.h',['../fr-FR_8h.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_3.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_3.js deleted file mode 100644 index f8fb7de2b..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_3.js +++ /dev/null @@ -1,115 +0,0 @@ -var searchData= -[ - ['i18n_2eh_3639',['i18n.h',['../i18n_8h.html',1,'']]], - ['ir_5fairwell_2ecpp_3640',['ir_Airwell.cpp',['../ir__Airwell_8cpp.html',1,'']]], - ['ir_5fairwell_2eh_3641',['ir_Airwell.h',['../ir__Airwell_8h.html',1,'']]], - ['ir_5faiwa_2ecpp_3642',['ir_Aiwa.cpp',['../ir__Aiwa_8cpp.html',1,'']]], - ['ir_5famcor_2ecpp_3643',['ir_Amcor.cpp',['../ir__Amcor_8cpp.html',1,'']]], - ['ir_5famcor_2eh_3644',['ir_Amcor.h',['../ir__Amcor_8h.html',1,'']]], - ['ir_5fargo_2ecpp_3645',['ir_Argo.cpp',['../ir__Argo_8cpp.html',1,'']]], - ['ir_5fargo_2eh_3646',['ir_Argo.h',['../ir__Argo_8h.html',1,'']]], - ['ir_5fcarrier_2ecpp_3647',['ir_Carrier.cpp',['../ir__Carrier_8cpp.html',1,'']]], - ['ir_5fcarrier_2eh_3648',['ir_Carrier.h',['../ir__Carrier_8h.html',1,'']]], - ['ir_5fcoolix_2ecpp_3649',['ir_Coolix.cpp',['../ir__Coolix_8cpp.html',1,'']]], - ['ir_5fcoolix_2eh_3650',['ir_Coolix.h',['../ir__Coolix_8h.html',1,'']]], - ['ir_5fcorona_2ecpp_3651',['ir_Corona.cpp',['../ir__Corona_8cpp.html',1,'']]], - ['ir_5fcorona_2eh_3652',['ir_Corona.h',['../ir__Corona_8h.html',1,'']]], - ['ir_5fdaikin_2ecpp_3653',['ir_Daikin.cpp',['../ir__Daikin_8cpp.html',1,'']]], - ['ir_5fdaikin_2eh_3654',['ir_Daikin.h',['../ir__Daikin_8h.html',1,'']]], - ['ir_5fdelonghi_2ecpp_3655',['ir_Delonghi.cpp',['../ir__Delonghi_8cpp.html',1,'']]], - ['ir_5fdelonghi_2eh_3656',['ir_Delonghi.h',['../ir__Delonghi_8h.html',1,'']]], - ['ir_5fdenon_2ecpp_3657',['ir_Denon.cpp',['../ir__Denon_8cpp.html',1,'']]], - ['ir_5fdish_2ecpp_3658',['ir_Dish.cpp',['../ir__Dish_8cpp.html',1,'']]], - ['ir_5fdoshisha_2ecpp_3659',['ir_Doshisha.cpp',['../ir__Doshisha_8cpp.html',1,'']]], - ['ir_5felectra_2ecpp_3660',['ir_Electra.cpp',['../ir__Electra_8cpp.html',1,'']]], - ['ir_5felectra_2eh_3661',['ir_Electra.h',['../ir__Electra_8h.html',1,'']]], - ['ir_5felitescreens_2ecpp_3662',['ir_EliteScreens.cpp',['../ir__EliteScreens_8cpp.html',1,'']]], - ['ir_5fepson_2ecpp_3663',['ir_Epson.cpp',['../ir__Epson_8cpp.html',1,'']]], - ['ir_5ffujitsu_2ecpp_3664',['ir_Fujitsu.cpp',['../ir__Fujitsu_8cpp.html',1,'']]], - ['ir_5ffujitsu_2eh_3665',['ir_Fujitsu.h',['../ir__Fujitsu_8h.html',1,'']]], - ['ir_5fgicable_2ecpp_3666',['ir_GICable.cpp',['../ir__GICable_8cpp.html',1,'']]], - ['ir_5fglobalcache_2ecpp_3667',['ir_GlobalCache.cpp',['../ir__GlobalCache_8cpp.html',1,'']]], - ['ir_5fgoodweather_2ecpp_3668',['ir_Goodweather.cpp',['../ir__Goodweather_8cpp.html',1,'']]], - ['ir_5fgoodweather_2eh_3669',['ir_Goodweather.h',['../ir__Goodweather_8h.html',1,'']]], - ['ir_5fgree_2ecpp_3670',['ir_Gree.cpp',['../ir__Gree_8cpp.html',1,'']]], - ['ir_5fgree_2eh_3671',['ir_Gree.h',['../ir__Gree_8h.html',1,'']]], - ['ir_5fhaier_2ecpp_3672',['ir_Haier.cpp',['../ir__Haier_8cpp.html',1,'']]], - ['ir_5fhaier_2eh_3673',['ir_Haier.h',['../ir__Haier_8h.html',1,'']]], - ['ir_5fhitachi_2ecpp_3674',['ir_Hitachi.cpp',['../ir__Hitachi_8cpp.html',1,'']]], - ['ir_5fhitachi_2eh_3675',['ir_Hitachi.h',['../ir__Hitachi_8h.html',1,'']]], - ['ir_5finax_2ecpp_3676',['ir_Inax.cpp',['../ir__Inax_8cpp.html',1,'']]], - ['ir_5fjvc_2ecpp_3677',['ir_JVC.cpp',['../ir__JVC_8cpp.html',1,'']]], - ['ir_5fkelvinator_2ecpp_3678',['ir_Kelvinator.cpp',['../ir__Kelvinator_8cpp.html',1,'']]], - ['ir_5fkelvinator_2eh_3679',['ir_Kelvinator.h',['../ir__Kelvinator_8h.html',1,'']]], - ['ir_5flasertag_2ecpp_3680',['ir_Lasertag.cpp',['../ir__Lasertag_8cpp.html',1,'']]], - ['ir_5flego_2ecpp_3681',['ir_Lego.cpp',['../ir__Lego_8cpp.html',1,'']]], - ['ir_5flg_2ecpp_3682',['ir_LG.cpp',['../ir__LG_8cpp.html',1,'']]], - ['ir_5flg_2eh_3683',['ir_LG.h',['../ir__LG_8h.html',1,'']]], - ['ir_5flutron_2ecpp_3684',['ir_Lutron.cpp',['../ir__Lutron_8cpp.html',1,'']]], - ['ir_5fmagiquest_2ecpp_3685',['ir_Magiquest.cpp',['../ir__Magiquest_8cpp.html',1,'']]], - ['ir_5fmagiquest_2eh_3686',['ir_Magiquest.h',['../ir__Magiquest_8h.html',1,'']]], - ['ir_5fmetz_2ecpp_3687',['ir_Metz.cpp',['../ir__Metz_8cpp.html',1,'']]], - ['ir_5fmidea_2ecpp_3688',['ir_Midea.cpp',['../ir__Midea_8cpp.html',1,'']]], - ['ir_5fmidea_2eh_3689',['ir_Midea.h',['../ir__Midea_8h.html',1,'']]], - ['ir_5fmirage_2ecpp_3690',['ir_Mirage.cpp',['../ir__Mirage_8cpp.html',1,'']]], - ['ir_5fmitsubishi_2ecpp_3691',['ir_Mitsubishi.cpp',['../ir__Mitsubishi_8cpp.html',1,'']]], - ['ir_5fmitsubishi_2eh_3692',['ir_Mitsubishi.h',['../ir__Mitsubishi_8h.html',1,'']]], - ['ir_5fmitsubishiheavy_2ecpp_3693',['ir_MitsubishiHeavy.cpp',['../ir__MitsubishiHeavy_8cpp.html',1,'']]], - ['ir_5fmitsubishiheavy_2eh_3694',['ir_MitsubishiHeavy.h',['../ir__MitsubishiHeavy_8h.html',1,'']]], - ['ir_5fmultibrackets_2ecpp_3695',['ir_Multibrackets.cpp',['../ir__Multibrackets_8cpp.html',1,'']]], - ['ir_5fmwm_2ecpp_3696',['ir_MWM.cpp',['../ir__MWM_8cpp.html',1,'']]], - ['ir_5fnec_2ecpp_3697',['ir_NEC.cpp',['../ir__NEC_8cpp.html',1,'']]], - ['ir_5fnec_2eh_3698',['ir_NEC.h',['../ir__NEC_8h.html',1,'']]], - ['ir_5fneoclima_2ecpp_3699',['ir_Neoclima.cpp',['../ir__Neoclima_8cpp.html',1,'']]], - ['ir_5fneoclima_2eh_3700',['ir_Neoclima.h',['../ir__Neoclima_8h.html',1,'']]], - ['ir_5fnikai_2ecpp_3701',['ir_Nikai.cpp',['../ir__Nikai_8cpp.html',1,'']]], - ['ir_5fpanasonic_2ecpp_3702',['ir_Panasonic.cpp',['../ir__Panasonic_8cpp.html',1,'']]], - ['ir_5fpanasonic_2eh_3703',['ir_Panasonic.h',['../ir__Panasonic_8h.html',1,'']]], - ['ir_5fpioneer_2ecpp_3704',['ir_Pioneer.cpp',['../ir__Pioneer_8cpp.html',1,'']]], - ['ir_5fpronto_2ecpp_3705',['ir_Pronto.cpp',['../ir__Pronto_8cpp.html',1,'']]], - ['ir_5frc5_5frc6_2ecpp_3706',['ir_RC5_RC6.cpp',['../ir__RC5__RC6_8cpp.html',1,'']]], - ['ir_5frcmm_2ecpp_3707',['ir_RCMM.cpp',['../ir__RCMM_8cpp.html',1,'']]], - ['ir_5fsamsung_2ecpp_3708',['ir_Samsung.cpp',['../ir__Samsung_8cpp.html',1,'']]], - ['ir_5fsamsung_2eh_3709',['ir_Samsung.h',['../ir__Samsung_8h.html',1,'']]], - ['ir_5fsanyo_2ecpp_3710',['ir_Sanyo.cpp',['../ir__Sanyo_8cpp.html',1,'']]], - ['ir_5fsanyo_2eh_3711',['ir_Sanyo.h',['../ir__Sanyo_8h.html',1,'']]], - ['ir_5fsharp_2ecpp_3712',['ir_Sharp.cpp',['../ir__Sharp_8cpp.html',1,'']]], - ['ir_5fsharp_2eh_3713',['ir_Sharp.h',['../ir__Sharp_8h.html',1,'']]], - ['ir_5fsherwood_2ecpp_3714',['ir_Sherwood.cpp',['../ir__Sherwood_8cpp.html',1,'']]], - ['ir_5fsony_2ecpp_3715',['ir_Sony.cpp',['../ir__Sony_8cpp.html',1,'']]], - ['ir_5fsymphony_2ecpp_3716',['ir_Symphony.cpp',['../ir__Symphony_8cpp.html',1,'']]], - ['ir_5ftcl_2ecpp_3717',['ir_Tcl.cpp',['../ir__Tcl_8cpp.html',1,'']]], - ['ir_5ftcl_2eh_3718',['ir_Tcl.h',['../ir__Tcl_8h.html',1,'']]], - ['ir_5ftechnibel_2ecpp_3719',['ir_Technibel.cpp',['../ir__Technibel_8cpp.html',1,'']]], - ['ir_5ftechnibel_2eh_3720',['ir_Technibel.h',['../ir__Technibel_8h.html',1,'']]], - ['ir_5fteco_2ecpp_3721',['ir_Teco.cpp',['../ir__Teco_8cpp.html',1,'']]], - ['ir_5fteco_2eh_3722',['ir_Teco.h',['../ir__Teco_8h.html',1,'']]], - ['ir_5ftoshiba_2ecpp_3723',['ir_Toshiba.cpp',['../ir__Toshiba_8cpp.html',1,'']]], - ['ir_5ftoshiba_2eh_3724',['ir_Toshiba.h',['../ir__Toshiba_8h.html',1,'']]], - ['ir_5ftranscold_2ecpp_3725',['ir_Transcold.cpp',['../ir__Transcold_8cpp.html',1,'']]], - ['ir_5ftranscold_2eh_3726',['ir_Transcold.h',['../ir__Transcold_8h.html',1,'']]], - ['ir_5ftrotec_2ecpp_3727',['ir_Trotec.cpp',['../ir__Trotec_8cpp.html',1,'']]], - ['ir_5ftrotec_2eh_3728',['ir_Trotec.h',['../ir__Trotec_8h.html',1,'']]], - ['ir_5fvestel_2ecpp_3729',['ir_Vestel.cpp',['../ir__Vestel_8cpp.html',1,'']]], - ['ir_5fvestel_2eh_3730',['ir_Vestel.h',['../ir__Vestel_8h.html',1,'']]], - ['ir_5fvoltas_2ecpp_3731',['ir_Voltas.cpp',['../ir__Voltas_8cpp.html',1,'']]], - ['ir_5fvoltas_2eh_3732',['ir_Voltas.h',['../ir__Voltas_8h.html',1,'']]], - ['ir_5fwhirlpool_2ecpp_3733',['ir_Whirlpool.cpp',['../ir__Whirlpool_8cpp.html',1,'']]], - ['ir_5fwhirlpool_2eh_3734',['ir_Whirlpool.h',['../ir__Whirlpool_8h.html',1,'']]], - ['ir_5fwhynter_2ecpp_3735',['ir_Whynter.cpp',['../ir__Whynter_8cpp.html',1,'']]], - ['ir_5fzepeal_2ecpp_3736',['ir_Zepeal.cpp',['../ir__Zepeal_8cpp.html',1,'']]], - ['irac_2ecpp_3737',['IRac.cpp',['../IRac_8cpp.html',1,'']]], - ['irac_2eh_3738',['IRac.h',['../IRac_8h.html',1,'']]], - ['irrecv_2ecpp_3739',['IRrecv.cpp',['../IRrecv_8cpp.html',1,'']]], - ['irrecv_2eh_3740',['IRrecv.h',['../IRrecv_8h.html',1,'']]], - ['irremoteesp8266_2eh_3741',['IRremoteESP8266.h',['../IRremoteESP8266_8h.html',1,'']]], - ['irsend_2ecpp_3742',['IRsend.cpp',['../IRsend_8cpp.html',1,'']]], - ['irsend_2eh_3743',['IRsend.h',['../IRsend_8h.html',1,'']]], - ['irtext_2ecpp_3744',['IRtext.cpp',['../IRtext_8cpp.html',1,'']]], - ['irtext_2eh_3745',['IRtext.h',['../IRtext_8h.html',1,'']]], - ['irtimer_2ecpp_3746',['IRtimer.cpp',['../IRtimer_8cpp.html',1,'']]], - ['irtimer_2eh_3747',['IRtimer.h',['../IRtimer_8h.html',1,'']]], - ['irutils_2ecpp_3748',['IRutils.cpp',['../IRutils_8cpp.html',1,'']]], - ['irutils_2eh_3749',['IRutils.h',['../IRutils_8h.html',1,'']]], - ['it_2dit_2eh_3750',['it-IT.h',['../it-IT_8h.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_4.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_4.js deleted file mode 100644 index 95f5f3b5c..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['pt_2dbr_2eh_3751',['pt-BR.h',['../pt-BR_8h.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_5.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_5.js deleted file mode 100644 index 090182563..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['readme_2emd_3752',['README.md',['../README_8md.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_6.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_6.js deleted file mode 100644 index 970f2b5e4..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/files_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['zh_2dcn_2eh_3753',['zh-CN.h',['../zh-CN_8h.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_1.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_1.js deleted file mode 100644 index 29929c826..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_1.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['add_3771',['add',['../classIRtimer.html#aa8e3ff975ae5468b4727790c828fa032',1,'IRtimer::add()'],['../classTimerMs.html#a77bfc23a029a9172c3dbac03f746b0cb',1,'TimerMs::add()']]], - ['addbooltostring_3772',['addBoolToString',['../namespaceirutils.html#a12ba9cf1830a886649a80c3cc5fdce2b',1,'irutils']]], - ['adddaytostring_3773',['addDayToString',['../namespaceirutils.html#a6ead1d10578c64627f8a24b5d8a7444f',1,'irutils']]], - ['addfantostring_3774',['addFanToString',['../namespaceirutils.html#af222d5a977e2cd2c979184c449d3c2f8',1,'irutils']]], - ['addinttostring_3775',['addIntToString',['../namespaceirutils.html#a772e623c4b60208200e02afbaec66651',1,'irutils']]], - ['addlabeledstring_3776',['addLabeledString',['../namespaceirutils.html#ac98793392d1e65c1b8d6895eb9d9b75b',1,'irutils']]], - ['addmodeltostring_3777',['addModelToString',['../namespaceirutils.html#a06e5a5c2b6f6649035dfa5eb19801367',1,'irutils']]], - ['addmodetostring_3778',['addModeToString',['../namespaceirutils.html#a8b74ae0258e98aa0eaebc6f3efe1481e',1,'irutils']]], - ['addtemptostring_3779',['addTempToString',['../namespaceirutils.html#a0cef0634f4db979a93b7dc19cc2b4a85',1,'irutils']]], - ['airwell_3780',['airwell',['../classIRac.html#a26cd62e09250d87b652d35406ebfb159',1,'IRac']]], - ['amcor_3781',['amcor',['../classIRac.html#a4bad16621b232572e14fe4a53f678131',1,'IRac']]], - ['argo_3782',['argo',['../classIRac.html#aa06ee1314529dbf96f4e6f3c28ea6821',1,'IRac']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_15.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_15.js deleted file mode 100644 index d85fa603e..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['whirlpool_4458',['whirlpool',['../classIRac.html#ae5f7a03589f614c03c5ad8629100b05a',1,'IRac']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_17.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_17.js deleted file mode 100644 index 8112c05fd..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_17.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['_7eirrecv_4460',['~IRrecv',['../classIRrecv.html#a87d4cca5e350177cb0922842dda1eb5b',1,'IRrecv']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_4.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_4.js deleted file mode 100644 index d577b5eae..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_4.js +++ /dev/null @@ -1,103 +0,0 @@ -var searchData= -[ - ['daikin_3821',['daikin',['../classIRac.html#afb6d77bbeb5b2465437cef4f58b83e0e',1,'IRac']]], - ['daikin128_3822',['daikin128',['../classIRac.html#a8fe7c254e1bcb32b6b6fdc1f91693a50',1,'IRac']]], - ['daikin152_3823',['daikin152',['../classIRac.html#a6dff8e608e3e9fecffe71c3fd1ebe74e',1,'IRac']]], - ['daikin160_3824',['daikin160',['../classIRac.html#a3b34f44d713efa52f30d43405cde831c',1,'IRac']]], - ['daikin176_3825',['daikin176',['../classIRac.html#aaae173fd58a7b53c3f4d2edbf7c4afe7',1,'IRac']]], - ['daikin2_3826',['daikin2',['../classIRac.html#a89eddc0e1b3c41c608208d2752dc954c',1,'IRac']]], - ['daikin216_3827',['daikin216',['../classIRac.html#a101ac8b9e9564e557ef1a1f61ff111d9',1,'IRac']]], - ['daikin64_3828',['daikin64',['../classIRac.html#a074db6fc0cff2878d80a397020e1b249',1,'IRac']]], - ['decode_3829',['decode',['../classIRrecv.html#aeaa5c07a8b46f8fbb982f996cc1f9f4b',1,'IRrecv']]], - ['decodeairwell_3830',['decodeAirwell',['../classIRrecv.html#acf4635d5ee146a82498cb0c269b6af41',1,'IRrecv']]], - ['decodeaiwarct501_3831',['decodeAiwaRCT501',['../classIRrecv.html#aa4d678376a4c0f8ea953474a6f5ef9d2',1,'IRrecv']]], - ['decodeamcor_3832',['decodeAmcor',['../classIRrecv.html#a8d81fcfb47e36925975d313027689a44',1,'IRrecv']]], - ['decodeargo_3833',['decodeArgo',['../classIRrecv.html#a94f12dc000a6e7b75ea8680fd48fc487',1,'IRrecv']]], - ['decodecarrierac_3834',['decodeCarrierAC',['../classIRrecv.html#acf3d1c37038120a5c0996d92577ce74a',1,'IRrecv']]], - ['decodecarrierac40_3835',['decodeCarrierAC40',['../classIRrecv.html#a4bdb35ec34f49401a6b9becd15b8a3b5',1,'IRrecv']]], - ['decodecarrierac64_3836',['decodeCarrierAC64',['../classIRrecv.html#a79d03c31da48a385ab47cc8f342ef9b3',1,'IRrecv']]], - ['decodecoolix_3837',['decodeCOOLIX',['../classIRrecv.html#a964af7e72e2133688f0596c718cb98ca',1,'IRrecv']]], - ['decodecoronaac_3838',['decodeCoronaAc',['../classIRrecv.html#a981cba14551c93af57f9c1c0e1775d12',1,'IRrecv']]], - ['decodedaikin_3839',['decodeDaikin',['../classIRrecv.html#a141f0de9f4cae8daeb025aff3904ecaa',1,'IRrecv']]], - ['decodedaikin128_3840',['decodeDaikin128',['../classIRrecv.html#ac7188577c874d9f8f19304a3ec775415',1,'IRrecv']]], - ['decodedaikin152_3841',['decodeDaikin152',['../classIRrecv.html#ab20a6586b4e56cc428012ec96f5ccc2c',1,'IRrecv']]], - ['decodedaikin160_3842',['decodeDaikin160',['../classIRrecv.html#af0b9822defe6b29099079d664d9dc413',1,'IRrecv']]], - ['decodedaikin176_3843',['decodeDaikin176',['../classIRrecv.html#aa142d1340201b6fdc5b462f46fe21ee0',1,'IRrecv']]], - ['decodedaikin2_3844',['decodeDaikin2',['../classIRrecv.html#a4c4799a0d45ea5562159c46939617d80',1,'IRrecv']]], - ['decodedaikin216_3845',['decodeDaikin216',['../classIRrecv.html#a7f860686a5c58aa8f4d1842cfb15b2f9',1,'IRrecv']]], - ['decodedaikin64_3846',['decodeDaikin64',['../classIRrecv.html#a030701f081a9c6eab0c07b75433b524c',1,'IRrecv']]], - ['decodedelonghiac_3847',['decodeDelonghiAc',['../classIRrecv.html#a8c91cc83770d243e942387cc16e9ca6f',1,'IRrecv']]], - ['decodedenon_3848',['decodeDenon',['../classIRrecv.html#a0b1bd1c817cb43bc3755126191b7f4a2',1,'IRrecv']]], - ['decodedish_3849',['decodeDISH',['../classIRrecv.html#a851776d9178aeb706d9a1abd3f254e31',1,'IRrecv']]], - ['decodedoshisha_3850',['decodeDoshisha',['../classIRrecv.html#a675c45e6b32aaeca3de734ccf2f0c819',1,'IRrecv']]], - ['decodeelectraac_3851',['decodeElectraAC',['../classIRrecv.html#ad3a7be8afc36451c8e28e27f3c3e9aaa',1,'IRrecv']]], - ['decodeelitescreens_3852',['decodeElitescreens',['../classIRrecv.html#ac830ece2c2c200b8c13fcd66828e2846',1,'IRrecv']]], - ['decodeepson_3853',['decodeEpson',['../classIRrecv.html#aaadef8415f273ba25f4086fecd681d2e',1,'IRrecv']]], - ['decodefujitsuac_3854',['decodeFujitsuAC',['../classIRrecv.html#aa3778bdf994bf9c99ac48ef95434a826',1,'IRrecv']]], - ['decodegicable_3855',['decodeGICable',['../classIRrecv.html#afade8dac9b1d023e5e0946e6b2c08aea',1,'IRrecv']]], - ['decodegoodweather_3856',['decodeGoodweather',['../classIRrecv.html#a64650ce7dbaf5fc860a6a253d906e9de',1,'IRrecv']]], - ['decodegree_3857',['decodeGree',['../classIRrecv.html#a2e756342d7524a13d53d6c656700638c',1,'IRrecv']]], - ['decodehaierac_3858',['decodeHaierAC',['../classIRrecv.html#ad97403174f05197a7fa9a4a0107e3111',1,'IRrecv']]], - ['decodehaieracyrw02_3859',['decodeHaierACYRW02',['../classIRrecv.html#a281fb9d972fee75db49209c42f649822',1,'IRrecv']]], - ['decodehash_3860',['decodeHash',['../classIRrecv.html#a7c15fbfa7936ca474712a1953911fd06',1,'IRrecv']]], - ['decodehitachiac_3861',['decodeHitachiAC',['../classIRrecv.html#aa42facfffc0e304005272b6ddd4583c8',1,'IRrecv']]], - ['decodehitachiac1_3862',['decodeHitachiAC1',['../classIRrecv.html#a122e0dcbf14c90ec2d77399acce21459',1,'IRrecv']]], - ['decodehitachiac3_3863',['decodeHitachiAc3',['../classIRrecv.html#a113bc834eff00f55d5545ce3fa1ab203',1,'IRrecv']]], - ['decodehitachiac424_3864',['decodeHitachiAc424',['../classIRrecv.html#a01c3dda56d6d916076fa1affa2213129',1,'IRrecv']]], - ['decodeinax_3865',['decodeInax',['../classIRrecv.html#a94545c6a8da027b9cb0e23ecba4c29d8',1,'IRrecv']]], - ['decodejvc_3866',['decodeJVC',['../classIRrecv.html#a25ab71efc223a418e9630d8421f44bc9',1,'IRrecv']]], - ['decodekelvinator_3867',['decodeKelvinator',['../classIRrecv.html#a0ac82f20b48b2d71ee07eb392578b226',1,'IRrecv']]], - ['decodelasertag_3868',['decodeLasertag',['../classIRrecv.html#ae4af614a45ea65cb3304ef5bd7965122',1,'IRrecv']]], - ['decodelegopf_3869',['decodeLegoPf',['../classIRrecv.html#aea75ad0ba1d8fec33de16501940f2553',1,'IRrecv']]], - ['decodelg_3870',['decodeLG',['../classIRrecv.html#afe70015c36b1477a5de0c193163e13a7',1,'IRrecv']]], - ['decodelutron_3871',['decodeLutron',['../classIRrecv.html#a6093c4404a9a9d415c5bfeab5ec53be5',1,'IRrecv']]], - ['decodemagiquest_3872',['decodeMagiQuest',['../classIRrecv.html#a6f3bfcc6767484151dee758bcf94fb0b',1,'IRrecv']]], - ['decodemetz_3873',['decodeMetz',['../classIRrecv.html#ac39aa52eec10d1c92b6e9713a22252b6',1,'IRrecv']]], - ['decodemidea_3874',['decodeMidea',['../classIRrecv.html#a255b15601f7439a09ab5e77ad78816fb',1,'IRrecv']]], - ['decodemidea24_3875',['decodeMidea24',['../classIRrecv.html#a62a04019308b29ae2aea4b3a83ba9155',1,'IRrecv']]], - ['decodemirage_3876',['decodeMirage',['../classIRrecv.html#aa88813f830a6ff6bfd6e7bde6728a3d5',1,'IRrecv']]], - ['decodemitsubishi_3877',['decodeMitsubishi',['../classIRrecv.html#a6efe3be80f0ebef3ff94ed0e56c5c52a',1,'IRrecv']]], - ['decodemitsubishi112_3878',['decodeMitsubishi112',['../classIRrecv.html#ae0690ff3cb5a5cdcdb6a514bb7bf0cdd',1,'IRrecv']]], - ['decodemitsubishi136_3879',['decodeMitsubishi136',['../classIRrecv.html#a87b3ee57dbdf762a0e305ddd43eec629',1,'IRrecv']]], - ['decodemitsubishi2_3880',['decodeMitsubishi2',['../classIRrecv.html#a9514197850491a5b8c30ae9ffc89d895',1,'IRrecv']]], - ['decodemitsubishiac_3881',['decodeMitsubishiAC',['../classIRrecv.html#a942c5f41df5cbff32a8b7703673cb621',1,'IRrecv']]], - ['decodemitsubishiheavy_3882',['decodeMitsubishiHeavy',['../classIRrecv.html#aef9cedf79793806df4cc5376710781bc',1,'IRrecv']]], - ['decodemultibrackets_3883',['decodeMultibrackets',['../classIRrecv.html#af61afacc9865232643164ba824e665ab',1,'IRrecv']]], - ['decodemwm_3884',['decodeMWM',['../classIRrecv.html#a27518b5d792cdf3ab333b324f409f328',1,'IRrecv']]], - ['decodenec_3885',['decodeNEC',['../classIRrecv.html#a52b844f80df7f64edf9ce9cc189ac5b9',1,'IRrecv']]], - ['decodeneoclima_3886',['decodeNeoclima',['../classIRrecv.html#a4729ee949e533448b481ae33bbbf1adf',1,'IRrecv']]], - ['decodenikai_3887',['decodeNikai',['../classIRrecv.html#abbcbf5fc07d7e37d7724acc37bb5f592',1,'IRrecv']]], - ['decodepanasonic_3888',['decodePanasonic',['../classIRrecv.html#aa8dd5f24d28576c6db03cc463bd0a865',1,'IRrecv']]], - ['decodepanasonicac_3889',['decodePanasonicAC',['../classIRrecv.html#a0f78e180ed731e8fb16d1c85aa721c95',1,'IRrecv']]], - ['decodepanasonicac32_3890',['decodePanasonicAC32',['../classIRrecv.html#a89ce20e483b1297cae05ab1ae96d24ec',1,'IRrecv']]], - ['decodepioneer_3891',['decodePioneer',['../classIRrecv.html#a78a9487cbe8a562392a07a4090b3091e',1,'IRrecv']]], - ['decoderc5_3892',['decodeRC5',['../classIRrecv.html#adab9dffbeceee514520fababd0e721bd',1,'IRrecv']]], - ['decoderc6_3893',['decodeRC6',['../classIRrecv.html#a67316499ef37db82e3b3ecaac25c5980',1,'IRrecv']]], - ['decodercmm_3894',['decodeRCMM',['../classIRrecv.html#a0e7bf769cb5bebf174e852e4b0b08cf3',1,'IRrecv']]], - ['decodesamsung_3895',['decodeSAMSUNG',['../classIRrecv.html#a18b6cf177364faf11b9a076dd2025eec',1,'IRrecv']]], - ['decodesamsung36_3896',['decodeSamsung36',['../classIRrecv.html#a290a9e6a0b12ef1fe02a92a456c8ad57',1,'IRrecv']]], - ['decodesamsungac_3897',['decodeSamsungAC',['../classIRrecv.html#ae779c76ebd0f3cd1fc13abaa55f80d67',1,'IRrecv']]], - ['decodesanyoac_3898',['decodeSanyoAc',['../classIRrecv.html#ab6c02d8b8079d7f344e141e6a4e7e225',1,'IRrecv']]], - ['decodesanyolc7461_3899',['decodeSanyoLC7461',['../classIRrecv.html#a01a165bf2e7d16dbbb916d1eae740bc5',1,'IRrecv']]], - ['decodesharp_3900',['decodeSharp',['../classIRrecv.html#a3390d63ba21a835d7c74c261532a22a7',1,'IRrecv']]], - ['decodesharpac_3901',['decodeSharpAc',['../classIRrecv.html#a8a9b920079f783e236f8a938e20b9743',1,'IRrecv']]], - ['decodesony_3902',['decodeSony',['../classIRrecv.html#ab03227955cf7d1d00c1620c55d7f9f18',1,'IRrecv']]], - ['decodesymphony_3903',['decodeSymphony',['../classIRrecv.html#a61cdf4d891654521afbc6ca9fb415745',1,'IRrecv']]], - ['decodetechnibelac_3904',['decodeTechnibelAc',['../classIRrecv.html#a2f022741309ad814bf11aec440a838d0',1,'IRrecv']]], - ['decodeteco_3905',['decodeTeco',['../classIRrecv.html#a950711d7df8dfe4cda86f53650cd9f56',1,'IRrecv']]], - ['decodetoshibaac_3906',['decodeToshibaAC',['../classIRrecv.html#aae6ab687ae319ae50a52238916bcfb1a',1,'IRrecv']]], - ['decodetostate_3907',['decodeToState',['../namespaceIRAcUtils.html#ac5eb498bf12cb6cba023c9c1e9726949',1,'IRAcUtils']]], - ['decodetranscold_3908',['decodeTranscold',['../classIRrecv.html#a16c44538d7e01d9b118d983de39d18e3',1,'IRrecv']]], - ['decodetrotec_3909',['decodeTrotec',['../classIRrecv.html#ae2920c488173f3fa37f5325438157ced',1,'IRrecv']]], - ['decodevestelac_3910',['decodeVestelAc',['../classIRrecv.html#a5d48b3c91434c18c7726cca504d75b73',1,'IRrecv']]], - ['decodevoltas_3911',['decodeVoltas',['../classIRrecv.html#a43539320036ba1c17e9875e4dc9fd055',1,'IRrecv']]], - ['decodewhirlpoolac_3912',['decodeWhirlpoolAC',['../classIRrecv.html#a0d1eec83cf092f5621cb34b3e94777c4',1,'IRrecv']]], - ['decodewhynter_3913',['decodeWhynter',['../classIRrecv.html#a66289f6a462557ad26e6c0a64f36cf02',1,'IRrecv']]], - ['decodezepeal_3914',['decodeZepeal',['../classIRrecv.html#a72afd857c8b2e0192021a40afc96c2d8',1,'IRrecv']]], - ['defaultbits_3915',['defaultBits',['../classIRsend.html#a70a2256bee8ad9b8ea8571dd4f26596f',1,'IRsend']]], - ['delonghiac_3916',['delonghiac',['../classIRac.html#af290b0b08cff5121bb88c62051ed1074',1,'IRac']]], - ['disableirin_3917',['disableIRIn',['../classIRrecv.html#a9f4a719e756ad78c7dd47186f8bef087',1,'IRrecv']]], - ['disableofftimer_3918',['disableOffTimer',['../classIRDaikinESP.html#a1e4e05ad0799002d0ab25db92dcaac06',1,'IRDaikinESP::disableOffTimer()'],['../classIRDaikin2.html#a8cbdbc0de31b14f974cd8cd87f3ca54a',1,'IRDaikin2::disableOffTimer()']]], - ['disableontimer_3919',['disableOnTimer',['../classIRDaikinESP.html#a0733e4a15d76baac23493926ef1765b1',1,'IRDaikinESP::disableOnTimer()'],['../classIRDaikin2.html#a170a1e9ddb7873dc1392184a85387cc3',1,'IRDaikin2::disableOnTimer()']]], - ['disablesleeptimer_3920',['disableSleepTimer',['../classIRDaikin2.html#a152532ef9d905e26930ae145a9623877',1,'IRDaikin2']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_a.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_a.js deleted file mode 100644 index 3e2144d46..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['kelvinator_4153',['kelvinator',['../classIRac.html#a6e4d8061841a7271205f81bd8e7d6171',1,'IRac']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_b.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_b.js deleted file mode 100644 index 35253a70f..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_b.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['ledoff_4154',['ledOff',['../classIRsend.html#ae71cc5aa99f894785fb4f7abc05841b2',1,'IRsend']]], - ['ledon_4155',['ledOn',['../classIRsend.html#a13d804171fa7c14aff4def38c6ffb6c8',1,'IRsend']]], - ['lg_4156',['lg',['../classIRac.html#afad31ecf9eae573882d53dd6629485fb',1,'IRac']]], - ['lowlevelsanitycheck_4157',['lowLevelSanityCheck',['../namespaceirutils.html#af67b75834051c4aced358b274c1c55a8',1,'irutils']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_d.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_d.js deleted file mode 100644 index 531b2c211..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['neoclima_4180',['neoclima',['../classIRac.html#a777da4b0552ee3b64d656c4592687f47',1,'IRac']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_f.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_f.js deleted file mode 100644 index 5e5bbe8bd..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/functions_f.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['panasonic_4184',['panasonic',['../classIRac.html#af873db2b9735127eb6f079861daed67a',1,'IRac']]], - ['panasonic32_4185',['panasonic32',['../classIRac.html#a66ed34d5686ad25a1659862f3b683f68',1,'IRac']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_0.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_0.js deleted file mode 100644 index 472443f82..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['_5firrecv_3625',['_IRrecv',['../namespace__IRrecv.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_1.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_1.js deleted file mode 100644 index 33ee5e9fe..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['iracutils_3626',['IRAcUtils',['../namespaceIRAcUtils.html',1,'']]], - ['irutils_3627',['irutils',['../namespaceirutils.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_2.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_2.js deleted file mode 100644 index d475ae536..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/namespaces_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['stdac_3628',['stdAc',['../namespacestdAc.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_0.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_0.js deleted file mode 100644 index 8302553ba..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['deprecated_20list_7141',['Deprecated List',['../deprecated.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_1.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_1.js deleted file mode 100644 index 15e2a9d93..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['irremoteesp8266_20library_20api_20documentation_7142',['IRremoteESP8266 Library API Documentation',['../index.html',1,'']]], - ['internationalisation_20_28i18n_29_20_26_20locale_20files_7143',['Internationalisation (I18N) & Locale Files',['../md_src_locale_README.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_2.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_2.js deleted file mode 100644 index bdb25f053..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/pages_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['todo_20list_7144',['Todo List',['../todo.html',1,'']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_1.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_1.js deleted file mode 100644 index 4974d20c7..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_1.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['a705_4530',['A705',['../unionSharpProtocol.html#a17a7db01f34cacdc975e64e738233d72',1,'SharpProtocol']]], - ['address_4531',['address',['../classdecode__results.html#a2858c3a5e28eccca95d44aaa87b70e9e',1,'decode_results']]], - ['airflow_4532',['AirFlow',['../unionGoodweatherProtocol.html#a7b876552a27a7a9bf84b1009f7b12f7a',1,'GoodweatherProtocol']]], - ['altmode_4533',['AltMode',['../unionDaikin176Protocol.html#a05511938e152951723792dc08b33d0dd',1,'Daikin176Protocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_13.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_13.js deleted file mode 100644 index 6aed82ea0..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_13.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['unknown_6959',['unknown',['../unionHaierProtocol.html#aabc2a684c5936858544c02ec8a68afb9',1,'HaierProtocol']]], - ['unknown1_6960',['unknown1',['../unionGreeProtocol.html#ae973c1c723b7162959374e1fd8ecab61',1,'GreeProtocol']]], - ['unknown2_6961',['unknown2',['../unionGreeProtocol.html#aa102f7d68c26f5b8644b13113a5b05f4',1,'GreeProtocol']]], - ['use_5ftime_5fstate_6962',['use_time_state',['../classIRVestelAc.html#af1b622c50a4952fb3edaf483e1bf9328',1,'IRVestelAc']]], - ['used_6963',['used',['../structmatch__result__t.html#a26cea305aa83ed65b88ac0b6ed6de54a',1,'match_result_t']]], - ['usefah_6964',['UseFah',['../unionNeoclimaProtocol.html#ae60408715008e78ab8058ab024669955',1,'NeoclimaProtocol']]], - ['usefahrenheit_6965',['useFahrenheit',['../unionMideaProtocol.html#a1b1258107620bb83fd6356815242e19b',1,'MideaProtocol::useFahrenheit()'],['../unionGreeProtocol.html#a47c79761efe40c00e6bb01b7712b272c',1,'GreeProtocol::UseFahrenheit()']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_14.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_14.js deleted file mode 100644 index f14120f7c..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_14.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['value_6966',['value',['../classdecode__results.html#a033502b7a6b4b0412e5a2062e33c5f47',1,'decode_results']]], - ['vane_6967',['Vane',['../unionMitsubishi144Protocol.html#af4cb685d4c5f87f6ff61d1305ccd6967',1,'Mitsubishi144Protocol']]], - ['vanebit_6968',['VaneBit',['../unionMitsubishi144Protocol.html#aaefd53cd1441b57b90dc3d21488bbdd3',1,'Mitsubishi144Protocol']]], - ['vent_6969',['Vent',['../unionAmcorProtocol.html#a289bcba64f01cd2c847845f41978d400',1,'AmcorProtocol']]], - ['ventswing_6970',['VentSwing',['../unionKelvinatorProtocol.html#af7cd4e8ebfaa36812d09105c54f868f2',1,'KelvinatorProtocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_15.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_15.js deleted file mode 100644 index 576ef6305..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_15.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['wall_6971',['Wall',['../unionDaikin128Protocol.html#aed2c5bc365820f2c0a5f27dd68fa8a05',1,'Daikin128Protocol']]], - ['wand_5fid_6972',['wand_id',['../unionmagiquest.html#a1b159cd47635d548e1d4198cd6d41e93',1,'magiquest']]], - ['weeklytimer_6973',['WeeklyTimer',['../unionDaikinESPProtocol.html#a25e632da82856caebd233699fda8d796',1,'DaikinESPProtocol']]], - ['widevane_6974',['WideVane',['../unionMitsubishi144Protocol.html#ad0c48e95ca7e0658edf7c2ac2b541c3c',1,'Mitsubishi144Protocol']]], - ['wifi_6975',['WiFi',['../unionGreeProtocol.html#a6cf8e0a6c54a5d2b6f14074c6f3dcc92',1,'GreeProtocol::WiFi()'],['../unionVoltasProtocol.html#aae1406825a156f159c5ad4b28d20364c',1,'VoltasProtocol::Wifi()']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_16.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_16.js deleted file mode 100644 index 58d432f48..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['xfan_6976',['Xfan',['../unionGreeProtocol.html#a3fbf66dfc2043710c5e00f8230eddb48',1,'GreeProtocol::Xfan()'],['../unionKelvinatorProtocol.html#a44a0ba82ee5dc39f64215d26edb9636c',1,'KelvinatorProtocol::XFan()']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_2.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_2.js deleted file mode 100644 index 010612382..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_2.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['backup_4534',['backup',['../classIRToshibaAC.html#adc8d8c6918cd110f524f6bedf6f2bb6e',1,'IRToshibaAC']]], - ['basicfan_4535',['BasicFan',['../unionKelvinatorProtocol.html#a9237eb894fd7d6807169d18655bb3261',1,'KelvinatorProtocol']]], - ['beep_4536',['beep',['../structstdAc_1_1state__t.html#a468ce4cf8b68467964b1f1840257663d',1,'stdAc::state_t::beep()'],['../unionDaikin2Protocol.html#ae464d693bde12c9a0085cf268010d158',1,'Daikin2Protocol::Beep()'],['../unionSamsungProtocol.html#a80645f900ef2b45b44b0b9522f4265cc',1,'SamsungProtocol::Beep()'],['../unionSanyoProtocol.html#a56e41c218b229561ee48e9e0184981bd',1,'SanyoProtocol::Beep()']]], - ['beepdisable_4537',['BeepDisable',['../unionMideaProtocol.html#a2a1d3b51765737427adb5dddcda84d60',1,'MideaProtocol']]], - ['bits_4538',['bits',['../classdecode__results.html#aa5ba2fd53bdb36bdc120d8eabd9f36d7',1,'decode_results']]], - ['boost_4539',['Boost',['../unionDelonghiProtocol.html#ad3347e0739d5c00f3fb5cba7c9f53bcd',1,'DelonghiProtocol']]], - ['breeze_4540',['Breeze',['../unionSamsungProtocol.html#a5b60f239d70e2005e14e0f4c3c9f8986',1,'SamsungProtocol']]], - ['bufsize_4541',['bufsize',['../structirparams__t.html#a2b34d697b85ee6a0ce08344c941e50ec',1,'irparams_t']]], - ['button_4542',['Button',['../unionHaierYRW02Protocol.html#ab5b13626ecf6214cc1be52d47909915d',1,'HaierYRW02Protocol::Button()'],['../unionHitachi424Protocol.html#aaadfa5a2e789fb1159ce795f833b83e5',1,'Hitachi424Protocol::Button()'],['../unionNeoclimaProtocol.html#aedacead75ecd658f9e2c8c3a23d2bc58',1,'NeoclimaProtocol::Button()']]], - ['byte_4543',['byte',['../unionmagiquest.html#af1a9c9a147a1610fe5f0e77ca3e09e44',1,'magiquest']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_4.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_4.js deleted file mode 100644 index a1149ff0c..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_4.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['d_4563',['D',['../unionMitsubishi152Protocol.html#ac493830f3bf09e178aa09b24368746c9',1,'Mitsubishi152Protocol']]], - ['data_4564',['data',['../structmatch__result__t.html#ae88be61a6d1ffa7c3525aa958f4c0d25',1,'match_result_t']]], - ['data0_4565',['Data0',['../structCoronaSection.html#a975b14d8bc30807013714158ef7474ea',1,'CoronaSection']]], - ['data0inv_4566',['Data0Inv',['../structCoronaSection.html#ab05024b8314929dcd8ccdda9b497be8c',1,'CoronaSection']]], - ['data1_4567',['Data1',['../structCoronaSection.html#a59d97a1bc0a1be50b6f96c4d70673425',1,'CoronaSection']]], - ['data1inv_4568',['Data1Inv',['../structCoronaSection.html#ada247bbfb60f24cd9e9a612c9621cbb4',1,'CoronaSection']]], - ['decode_5ftype_4569',['decode_type',['../classdecode__results.html#a9c0e9f161b9c90dc10b7561d4c0b50fa',1,'decode_results']]], - ['degrees_4570',['degrees',['../structstdAc_1_1state__t.html#a3d1ff0ff2e0035db4ee8ead5c53b2dbd',1,'stdAc::state_t']]], - ['disablesensor_4571',['disableSensor',['../unionMideaProtocol.html#a20cc2079eae404c980cc75101b4a3116',1,'MideaProtocol']]], - ['display_4572',['Display',['../unionSamsungProtocol.html#aac97ebabee022e772aa00d4357079eb4',1,'SamsungProtocol']]], - ['displaytemp_4573',['DisplayTemp',['../unionGreeProtocol.html#ad0756a64f9c90c9dd12ca6cd71c78bb2',1,'GreeProtocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_7.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_7.js deleted file mode 100644 index d10dd77c7..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_7.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['header_4588',['Header',['../unionMideaProtocol.html#a892508b7b4cade91dd2e315b678f5f1b',1,'MideaProtocol']]], - ['header0_4589',['Header0',['../structCoronaSection.html#a3b3c0a1a42da65bb4b481e59b42f26a6',1,'CoronaSection']]], - ['header1_4590',['Header1',['../structCoronaSection.html#a3d6d6c1e31f82a76cd88f81bcdb83a3a',1,'CoronaSection']]], - ['health_4591',['Health',['../unionHaierProtocol.html#a4cf70c633e33066e3fc0f98bb2ad3820',1,'HaierProtocol::Health()'],['../unionHaierYRW02Protocol.html#a7fa39803fd72a788736bb8f00acfa76f',1,'HaierYRW02Protocol::Health()']]], - ['heat_5fmode_4592',['heat_mode',['../classIRArgoAC.html#a255762f71502b9ffeb0686759991ec53',1,'IRArgoAC']]], - ['hold_4593',['Hold',['../unionNeoclimaProtocol.html#aaf3af5b5ab99978fb669e75949bfe136',1,'NeoclimaProtocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_a.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_a.js deleted file mode 100644 index 8f6cb2681..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_a.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['label_6828',['Label',['../structCoronaSection.html#abc6d0caa713c73244c4bf2f602074d48',1,'CoronaSection']]], - ['ledflag_6829',['ledFlag',['../classIRCoolixAC.html#a03ba5e0a6cb47a7bb054155c2111a69c',1,'IRCoolixAC']]], - ['light_6830',['Light',['../unionDaikin2Protocol.html#adaf55ec9e1b9ba278c7391d9d797f3ba',1,'Daikin2Protocol::Light()'],['../unionGoodweatherProtocol.html#a845565af7661af0c05290a7ce039f8e2',1,'GoodweatherProtocol::Light()'],['../unionGreeProtocol.html#a72092768725667d3bce381a6e2900c66',1,'GreeProtocol::Light()'],['../unionKelvinatorProtocol.html#a38f5b978fd63fda659f0e0b5f682440e',1,'KelvinatorProtocol::Light()'],['../unionNeoclimaProtocol.html#a598346f565ad6d57df03f5256a878dd6',1,'NeoclimaProtocol::Light()'],['../unionVoltasProtocol.html#a811a0de66771c693831740440aac460c',1,'VoltasProtocol::Light()'],['../structstdAc_1_1state__t.html#a51c3a5c4703ea49b420d70aeb18b6b9b',1,'stdAc::state_t::light()']]], - ['lighttoggle_6831',['LightToggle',['../unionElectraProtocol.html#aa2a5998cafd139e5ce7626edc4782c56',1,'ElectraProtocol']]], - ['llword_6832',['llword',['../unionmagiquest.html#ad57fbc75ab289c3e93b94be0b2187d65',1,'magiquest']]], - ['lword_6833',['lword',['../unionmagiquest.html#ac87102145311831a232002b52fe2d02c',1,'magiquest']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_f.js b/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_f.js deleted file mode 100644 index 48427bbed..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/search/variables_f.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['quiet_6897',['quiet',['../structstdAc_1_1state__t.html#a251ad14e187a9905137e9e4e010c3e34',1,'stdAc::state_t::quiet()'],['../unionDaikinESPProtocol.html#af93324815f6be6cfc5d0d50af9e73aad',1,'DaikinESPProtocol::Quiet()'],['../unionDaikin2Protocol.html#afa111c9afbc94bcf52e9ba15b59c1bee',1,'Daikin2Protocol::Quiet()'],['../unionDaikin152Protocol.html#ac5bfe8541e53cb2732bfcbc71500ed32',1,'Daikin152Protocol::Quiet()'],['../unionKelvinatorProtocol.html#ac803fe14d6d21155418d2fe0543c9d9f',1,'KelvinatorProtocol::Quiet()']]], - ['quiet1_6898',['Quiet1',['../unionSamsungProtocol.html#ac38e3f34f98ac3dae9738a1582dfeca6',1,'SamsungProtocol']]], - ['quiet5_6899',['Quiet5',['../unionSamsungProtocol.html#a94a9d2b42e1ab7a308d079322350c3f9',1,'SamsungProtocol']]] -]; diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/favicon.ico b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/favicon.ico deleted file mode 100644 index f206c7cc7241d6969ccd7c9ab8d12a56bbf09430..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16446 zcmeHOJ&4pm6wcwlC>+SC+-Bz|ncOa0_``w!;v&dd*eNP1*w}~`R)U3MsaV*Z3WAE- zh^Sy^V<(EBAP8cig^HjeihswUoZq|M+)ZM#o6SYd?#>=_Nhb5nyzkAMmp7A%W%b~% zTD9wvg&F2DHl)3K%lZ)GzcLWtR-sP5`mI!~$t=xuq?R-be{$>K0)U9+~cxG$w#g0?^E z?fd5>my`o5;@YWN)#;G`wqHJcY^DP#OC@l97sk;w>45AauI;Sy(Z;i=_9ye)H*syj zZVpYBtJ!||x{)mdeFc(aRziO z#?A=k!?qU1VJW}TSD9CD`-qOmc)CjYzD-&`WbM_l#6KyP%1Q1X z)bWx#=Uc&NQP%J`{jb{~`L?8XW$fRKf8BPB|1NQpNvqXDAQRA7wS3QE8XhEggMK-AlHcg7wSZ(x!QZL>3?JY9qItg_&5H~`2TeNA7f`P=gwux)s;M_aT%G~6Xn9vj(^%)60jRR zUd-uv)IOB7{3Z0+Zv4S@XV?bP^2eT?-R;I7eYQO-{z8;Rc)wSk^+9{lR6*HU@uzxd ztsVQbwnDGl@|;Mp!i|6{GR5ARur#>Wt?qvSTJ zA=+CW<*(9?fAXiWo5(%C0ei|xEQn|I`>6NIY5C)svMY}~8_ASq{DZo>I{u~o6^(SA z$9wobV@=oxq_uz4(}Ov{0r0$;_xA!MW87Y(Dew=gvMsL-e-r-&e3gm+BH};qTw4zA z1VUr{?`Ycp+S(awL-H+5K3zu%5Y*zys$1bF-0 z@DAg;&%gFfsT}q1b@~x~KZ^GQOMU)yB;QEip>zTFk*K*L>A6=CR_LR8#zu%k9v - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_1_on.svg b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_1_on.svg deleted file mode 100644 index 32505f2a4..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_1_on.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_off.svg b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_off.svg deleted file mode 100644 index 20d54679c..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_off.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_on.svg b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_on.svg deleted file mode 100644 index 307370607..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_2_on.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_off.svg b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_off.svg deleted file mode 100644 index 2bbf5848e..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_off.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_on.svg b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_on.svg deleted file mode 100644 index ca29839e2..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_3_on.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_off.svg b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_off.svg deleted file mode 100644 index 3ee1beced..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_off.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_on.svg b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_on.svg deleted file mode 100644 index 720d70148..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/level_4_on.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.html b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.html deleted file mode 100644 index cfefc20d5..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - Home Temperature - - - - - - - - - - - - - - - - -
- - - -
- -

-
- -
-
- - -
- OFF -
- -
-
-
-
- - -

Mode

-
- - - - - -
- -
-
- - -

Fan

-
- - - - -
- -
-
-
-
-
-
- - -

Target temperature

-
- ~ C -
- -
- - -
- - - -
-
-
- -
-
- - - - diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.js b/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.js deleted file mode 100644 index 9bdb8c795..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/examples/Web-AC-control/data/ui.js +++ /dev/null @@ -1,132 +0,0 @@ -var state = {} - -function updateStatus() { - $.ajax({ - type: 'GET', - url: "state", - dataType: "json", - data: [{ - name: "light", - value: "1" - }, ], - success: function(data) { - if (!data) { - return; - } - state = data; - if (state["power"] === true) { - $("#power").text(" ON"); - $("#power-btn").addClass("btn-info"); - $("#power-btn").removeClass("btn-default"); - } else { - $("#power").text(" OFF"); - $("#power-btn").addClass("btn-default"); - $("#power-btn").removeClass("btn-info"); - } - $("#target_temp").text(state["temp"] + " C"); - setModeColor(state["mode"]); - setFanColor(state["fan"]); - }, - error: function() { - console.log('error getting state'); - }, - timeout: 1000 - }); -} - -updateStatus(); - - - - -function postData(t) { - var e = new XMLHttpRequest; - e.timeout = 2000; - e.open("PUT", "state", !0); - e.setRequestHeader("Content-Type", "application/json"); - console.log(JSON.stringify(t)), e.send(JSON.stringify(t)); -} - -function mode_onclick(mode) { - state["mode"] = mode; - setModeColor(mode); - postData(state); -} - - -function setModeColor(mode) { - $(".mode-btn").addClass("btn-default"); - $(".mode-btn").removeClass("btn-info"); - - if (mode === 0) { - $("#mode_auto").removeClass("btn-default"); - $("#mode_auto").addClass("btn-info"); - setFanColor(0); - state["fan"] = 0; - } else if (mode === 1) { - $("#mode_cooling").removeClass("btn-default"); - $("#mode_cooling").addClass("btn-info"); - } else if (mode === 2) { - $("#mode_dehum").removeClass("btn-default"); - $("#mode_dehum").addClass("btn-info"); - } else if (mode === 3) { - $("#mode_heating").removeClass("btn-default"); - $("#mode_heating").addClass("btn-info"); - } else if (mode === 4) { - $("#mode_fan").removeClass("btn-default"); - $("#mode_fan").addClass("btn-info"); - } -} - -function setFanColor(fan) { - if (fan == 0) { - $("#fan_auto").removeClass("btn-default"); - $("#fan_auto").addClass("btn-info"); - } else { - $("#fan_auto").removeClass("btn-info"); - $("#fan_auto").addClass("btn-default"); - } - for (var i = 1; i <= 3; ++i) { - if (i <= fan) { - $("#fan_lvl_" + i).attr("src", "level_" + i + "_on.svg"); - } else { - $("#fan_lvl_" + i).attr("src", "level_" + i + "_off.svg"); - } - } -} - -function fan_onclick(fan) { - if (state["mode"] !== 0) { - state["fan"] = fan; - setFanColor(fan); - postData(state); - } -} - -function power_onclick(power) { - if (state["power"]) { - state["power"] = false; - $("#power").text(" OFF"); - $("#power-btn").removeClass("btn-info"); - $("#power-btn").addClass("btn-default"); - } else { - state["power"] = true; - $("#power").text(" ON"); - $("#power-btn").addClass("btn-info"); - $("#power-btn").removeClass("btn-default"); - } - postData(state); -} - - -function temp_onclick(temp) { - state["temp"] += temp; - if (state["temp"] < 17) { - state["temp"] = 17; - } - if (state["temp"] > 30) { - state["temp"] = 30; - } - $("#target_temp").text(state["temp"] + " C"); - postData(state); -} diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Technibel.h b/lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Technibel.h deleted file mode 100644 index 3539a4fd9..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Technibel.h +++ /dev/null @@ -1,166 +0,0 @@ -// Copyright 2020 Quentin Briollant - -/// @file -/// @brief Support for Technibel protocol. - -#ifndef IR_TECHNIBEL_H_ -#define IR_TECHNIBEL_H_ - -#define __STDC_LIMIT_MACROS -#include -#ifndef UNIT_TEST -#include -#endif -#include "IRremoteESP8266.h" -#include "IRsend.h" -#ifdef UNIT_TEST -#include "IRsend_test.h" -#endif - -// Supports: -// Brand: Technibel, Model: IRO PLUS - - -/* State bit map: - -+--+--+--+--+--+--+--+--+--+------------+-----------+----------+--+--+--+--+ -| FIXED HEADER |ON|TIMER CHANGE|TEMP CHANGE|FAN CHANGE| MODE | -+--+--+--+--+--+--+--+--+--+------------+-----------+----------+--+--+--+--+ - 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 - -+-----+------+-----+-----+---+--+--+--+---+--+--+--+--+--+--+--+ -|TIMER|C OR F|SWING|SLEEP| 0 | FAN | 0 | TEMPERATURE | -+-----+------+-----+-----+---+--+--+--+---+--+--+--+--+--+--+--+ - 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 - -+---+---+---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ -| 0 | 0 | 0 | ON TIME HOUR | FOOTER | CHECKSUM | -+---+---+---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ - 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - - -*/ - -// Constants -const uint8_t kTechnibelAcChecksumOffset = 0; -const uint8_t kTechnibelAcChecksumSize = 8; - -const uint8_t kTechnibelAcFooterOffset = kTechnibelAcChecksumOffset + - kTechnibelAcChecksumSize; -const uint8_t kTechnibelAcFooterSize = 8; - -const uint8_t kTechnibelAcTimerHoursOffset = kTechnibelAcFooterOffset + - kTechnibelAcFooterSize; -const uint8_t kTechnibelAcHoursSize = 8; // Max 24 hrs -const uint8_t kTechnibelAcTimerMax = 24; - -const uint8_t kTechnibelAcTempOffset = kTechnibelAcTimerHoursOffset + - kTechnibelAcHoursSize; -const uint8_t kTechnibelAcTempSize = 8; -const uint8_t kTechnibelAcTempMinC = 16; // Deg C -const uint8_t kTechnibelAcTempMaxC = 31; // Deg C -const uint8_t kTechnibelAcTempMinF = 61; // Deg F -const uint8_t kTechnibelAcTempMaxF = 88; // Deg F - -const uint8_t kTechnibelAcFanOffset = kTechnibelAcTempOffset - + kTechnibelAcTempSize; -const uint8_t kTechnibelAcFanSize = 4; -const uint8_t kTechnibelAcFanLow = 0b0001; -const uint8_t kTechnibelAcFanMedium = 0b0010; -const uint8_t kTechnibelAcFanHigh = 0b0100; - -const uint8_t kTechnibelAcSleepBit = kTechnibelAcFanOffset + - kTechnibelAcFanSize; - -const uint8_t kTechnibelAcSwingBit = kTechnibelAcSleepBit + 1; - -// (0 = Celsius, 1 = Fahrenheit) -const uint8_t kTechnibelAcTempUnitBit = kTechnibelAcSwingBit + 1; - -const uint8_t kTechnibelAcTimerEnableBit = kTechnibelAcTempUnitBit + 1; - -const uint8_t kTechnibelAcModeOffset = kTechnibelAcTimerEnableBit + 1; -const uint8_t kTechnibelAcModeSize = 4; -const uint8_t kTechnibelAcCool = 0b0001; -const uint8_t kTechnibelAcDry = 0b0010; -const uint8_t kTechnibelAcFan = 0b0100; -const uint8_t kTechnibelAcHeat = 0b1000; - -const uint8_t kTechnibelAcFanChangeBit = kTechnibelAcModeOffset + - kTechnibelAcModeSize; - -const uint8_t kTechnibelAcTempChangeBit = kTechnibelAcFanChangeBit + 1; - -const uint8_t kTechnibelAcTimerChangeBit = kTechnibelAcTempChangeBit + 1; - -const uint8_t kTechnibelAcPowerBit = kTechnibelAcTimerChangeBit + 1; - -const uint8_t kTechnibelAcHeaderOffset = kTechnibelAcPowerBit + 1; -const uint8_t kTechnibelAcHeaderSize = 8; -const uint8_t kTechnibelAcHeader = 0b00011000; - -const uint64_t kTechnibelAcResetState = 0x180101140000EA; ///< -///< Mode:Cool, Power:Off, fan:Low, temp:20, swing:Off, sleep:Off - - -// Classes -/// Class for handling detailed Technibel A/C messages. -class IRTechnibelAc { - public: - explicit IRTechnibelAc(const uint16_t pin, const bool inverted = false, - const bool use_modulation = true); - void stateReset(); -#if SEND_TECHNIBEL_AC - void send(const uint16_t repeat = kTechnibelAcDefaultRepeat); - /// Run the calibration to calculate uSec timing offsets for this platform. - /// @return The uSec timing offset needed per modulation of the IR Led. - /// @note This will produce a 65ms IR signal pulse at 38kHz. - /// Only ever needs to be run once per object instantiation, if at all. - int8_t calibrate(void) { return _irsend.calibrate(); } -#endif // SEND_TECHNIBEL_AC - void begin(); - static uint8_t calcChecksum(const uint64_t state); - static bool validChecksum(const uint64_t state); - void setPower(const bool on); - bool getPower(); - void on(); - void off(); - void setTempUnit(const bool celsius); - bool getTempUnit(void); - void setTemp(const uint8_t temp, const bool fahrenheit = false); - uint8_t getTemp(); - void setFan(const uint8_t speed); - uint8_t getFan(); - void setMode(const uint8_t mode); - uint8_t getMode(); - void setSwing(const bool on); - bool getSwing(); - bool convertSwing(const stdAc::swingv_t swing); - stdAc::swingv_t toCommonSwing(const bool swing); - void setSleep(const bool on); - bool getSleep(); - void setTimerEnabled(const bool on); - bool getTimerEnabled(void); - void setTimer(const uint16_t nr_of_mins); - uint16_t getTimer(void); - uint64_t getRaw(); - void setRaw(const uint64_t state); - uint8_t convertMode(const stdAc::opmode_t mode); - uint8_t convertFan(const stdAc::fanspeed_t speed); - static stdAc::opmode_t toCommonMode(const uint8_t mode); - static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed); - stdAc::state_t toCommon(void); - String toString(); -#ifndef UNIT_TEST - - private: - IRsend _irsend; -#else - IRsendTest _irsend; -#endif - uint64_t remote_state; // The state of the IR remote. - uint8_t _saved_temp; // The previously user requested temp value. - uint8_t _saved_temp_units; // The previously user requested temp units. - void checksum(void); -}; -#endif // IR_TECHNIBEL_H_ diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Teco.h b/lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Teco.h deleted file mode 100644 index 770890caa..000000000 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/src/ir_Teco.h +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2019 Fabien Valthier - -/// @file -/// @brief Support for Teco protocols. - -// Supports: -// Brand: Alaska, Model: SAC9010QC A/C -// Brand: Alaska, Model: SAC9010QC remote - -#ifndef IR_TECO_H_ -#define IR_TECO_H_ - -#ifndef UNIT_TEST -#include -#endif -#include "IRremoteESP8266.h" -#include "IRsend.h" -#ifdef UNIT_TEST -#include "IRsend_test.h" -#endif - -// Constants. -const uint8_t kTecoAuto = 0; -const uint8_t kTecoCool = 1; -const uint8_t kTecoDry = 2; -const uint8_t kTecoFan = 3; -const uint8_t kTecoHeat = 4; -const uint8_t kTecoFanAuto = 0; // 0b00 -const uint8_t kTecoFanLow = 1; // 0b01 -const uint8_t kTecoFanMed = 2; // 0b10 -const uint8_t kTecoFanHigh = 3; // 0b11 -const uint8_t kTecoMinTemp = 16; // 16C -const uint8_t kTecoMaxTemp = 30; // 30C - -const uint8_t kTecoModeOffset = 0; -const uint8_t kTecoPowerOffset = 3; -const uint8_t kTecoFanOffset = 4; -const uint8_t kTecoFanSize = 2; // Nr. of bits -const uint8_t kTecoSwingOffset = 6; -const uint8_t kTecoSleepOffset = 7; -const uint8_t kTecoTempOffset = 8; -const uint8_t kTecoTempSize = 4; // Nr. of bits -const uint8_t kTecoTimerHalfHourOffset = 12; -const uint8_t kTecoTimerTensHoursOffset = 13; -const uint8_t kTecoTimerTensHoursSize = 2; // Nr. of bits -const uint8_t kTecoTimerOnOffset = 15; -const uint8_t kTecoTimerUnitHoursOffset = 16; -const uint8_t kTecoTimerUnitHoursSize = 4; // Nr. of bits -const uint8_t kTecoHumidOffset = 20; -const uint8_t kTecoLightOffset = 21; -const uint8_t kTecoSaveOffset = 23; -const uint64_t kTecoReset = 0b01001010000000000000010000000000000; -/* - (header mark and space) - Teco AC map read and to be sent in LSB with number of bits - - byte 0 = Cst 0x02 - byte 1 = Cst 0x50 - b6-7 = "AIR" 0, 1, 2 (Not Implemented) - byte 2: - b0 = Save - b1 = "Tree with bubbles" / Filter?? (Not Implemented) - b2 = Light/LED. - b3 = Humid - b4-7 = Timer hours (unit, not thenth) - hours: - 0000 (0) = +0 hour - 0001 (1) = +1 hour - ... - 1001 (9) = +9 hours - byte 3: = timer and Temperature - b0 = Timer (1 = On, 0 = Off) - b1-2 = Timer - number of 10hours - 10Hours: - 00 = 0 * 10hours of timer - 01 = 1 * 10 hours of timer - 10 = 2 * 10hours of timer - b3 = Timer - half hour (1=half hour on, 0 = round hour) - b4-7: Degrees C. - 0000 (0) = 16C - 0001 (1) = 17C - 0010 (2) = 18C - ... - 1101 (13) = 29C - 1110 (14) = 30C - byte 4: Basics - b0 = Sleep Mode (1 = On, 0 = Off) - b1 = Vent swing (1 = On, 0 = Off) - b2-3 = Fan - Fan: - 00 = Auto - 01 = Fan 1 - 10 = Fan 2 - 11 = Fan 3 or higher - b4 = Power Status (1 = On, 0 = Off) - b5-7 = Modes LSB first - Modes: - 000 = Auto (temp = 25C) - 001 = Cool - 010 = Dry (temp = 25C, but not shown) - 011 = Fan - 100 = Heat -*/ - -// Classes -/// Class for handling detailed Teco A/C messages. -class IRTecoAc { - public: - explicit IRTecoAc(const uint16_t pin, const bool inverted = false, - const bool use_modulation = true); - void stateReset(void); -#if SEND_TECO - void send(const uint16_t repeat = kTecoDefaultRepeat); - /// Run the calibration to calculate uSec timing offsets for this platform. - /// @return The uSec timing offset needed per modulation of the IR Led. - /// @note This will produce a 65ms IR signal pulse at 38kHz. - /// Only ever needs to be run once per object instantiation, if at all. - int8_t calibrate(void) { return _irsend.calibrate(); } -#endif // SEND_TECO - void begin(void); - void on(void); - void off(void); - - void setPower(const bool on); - bool getPower(void); - - void setTemp(const uint8_t temp); - uint8_t getTemp(void); - - void setFan(const uint8_t fan); - uint8_t getFan(void); - - void setMode(const uint8_t mode); - uint8_t getMode(void); - - void setSwing(const bool on); - bool getSwing(void); - - void setSleep(const bool on); - bool getSleep(void); - - void setLight(const bool on); - bool getLight(void); - - void setHumid(const bool on); - bool getHumid(void); - - void setSave(const bool on); - bool getSave(void); - - uint16_t getTimer(void); - void setTimer(const uint16_t mins); - - uint64_t getRaw(void); - void setRaw(const uint64_t new_code); - - uint8_t convertMode(const stdAc::opmode_t mode); - uint8_t convertFan(const stdAc::fanspeed_t speed); - static stdAc::opmode_t toCommonMode(const uint8_t mode); - static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed); - stdAc::state_t toCommon(void); - String toString(void); -#ifndef UNIT_TEST - - private: - IRsend _irsend; ///< Instance of the IR send class -#else // UNIT_TEST - /// @cond IGNORE - IRsendTest _irsend; ///< Instance of the testing IR send class - /// @endcond -#endif // UNIT_TEST - uint64_t remote_state; ///< The state of the IR remote in IR code form. - bool getTimerEnabled(void); -}; - -#endif // IR_TECO_H_ diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/.github/CONTRIBUTING.md b/lib/lib_basic/IRremoteESP8266-2.7.15/.github/CONTRIBUTING.md similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/.github/CONTRIBUTING.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/.github/CONTRIBUTING.md diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/.github/Contributors.md b/lib/lib_basic/IRremoteESP8266-2.7.15/.github/Contributors.md similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/.github/Contributors.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/.github/Contributors.md diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/.github/issue_template.md b/lib/lib_basic/IRremoteESP8266-2.7.15/.github/issue_template.md similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/.github/issue_template.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/.github/issue_template.md diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/.gitignore b/lib/lib_basic/IRremoteESP8266-2.7.15/.gitignore similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/.gitignore rename to lib/lib_basic/IRremoteESP8266-2.7.15/.gitignore diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/.gitmodules b/lib/lib_basic/IRremoteESP8266-2.7.15/.gitmodules similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/.gitmodules rename to lib/lib_basic/IRremoteESP8266-2.7.15/.gitmodules diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/.style.yapf b/lib/lib_basic/IRremoteESP8266-2.7.15/.style.yapf similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/.style.yapf rename to lib/lib_basic/IRremoteESP8266-2.7.15/.style.yapf diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/.travis.yml b/lib/lib_basic/IRremoteESP8266-2.7.15/.travis.yml similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/.travis.yml rename to lib/lib_basic/IRremoteESP8266-2.7.15/.travis.yml diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/CPPLINT.cfg b/lib/lib_basic/IRremoteESP8266-2.7.15/CPPLINT.cfg similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/CPPLINT.cfg rename to lib/lib_basic/IRremoteESP8266-2.7.15/CPPLINT.cfg diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/Doxyfile b/lib/lib_basic/IRremoteESP8266-2.7.15/Doxyfile similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/Doxyfile rename to lib/lib_basic/IRremoteESP8266-2.7.15/Doxyfile diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/LICENSE.txt b/lib/lib_basic/IRremoteESP8266-2.7.15/LICENSE.txt similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/LICENSE.txt rename to lib/lib_basic/IRremoteESP8266-2.7.15/LICENSE.txt diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/README.md b/lib/lib_basic/IRremoteESP8266-2.7.15/README.md similarity index 97% rename from lib/lib_basic/IRremoteESP8266-2.7.14/README.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/README.md index ab7f2b338..cf67962a4 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/README.md +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/README.md @@ -1,4 +1,4 @@ -# IRremoteESP8266 Library +![IRremoteESP8266 Library](./assets/images/banner.svg) [![Build Status](https://travis-ci.org/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.org/crankyoldgit/IRremoteESP8266) [![arduino-library-badge](https://www.ardu-badge.com/badge/IRremoteESP8266.svg?)](https://www.ardu-badge.com/IRremoteESP8266) @@ -9,8 +9,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.7.14 Now Available -Version 2.7.14 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.7.15 Now Available +Version 2.7.15 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/lib/lib_basic/IRremoteESP8266-2.7.14/README_de.md b/lib/lib_basic/IRremoteESP8266-2.7.15/README_de.md similarity index 97% rename from lib/lib_basic/IRremoteESP8266-2.7.14/README_de.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/README_de.md index 39c4ef489..770e061cf 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/README_de.md +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/README_de.md @@ -1,4 +1,4 @@ -# IRremoteESP8266 Library +![IRremoteESP8266 Library](./assets/images/banner.svg) [![Build-Status](https://travis-ci.org/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.org/crankyoldgit/IRremoteESP8266) [![Arduino-Bibliothek-Abzeichen](https://www.ardu-badge.com/badge/IRremoteESP8266.svg?)](https://www.ardu-badge.com/IRremoteESP8266) @@ -9,8 +9,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.7.14 jetzt verfügbar -Version 2.7.14 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.7.15 jetzt verfügbar +Version 2.7.15 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/lib/lib_basic/IRremoteESP8266-2.7.14/README_fr.md b/lib/lib_basic/IRremoteESP8266-2.7.15/README_fr.md similarity index 97% rename from lib/lib_basic/IRremoteESP8266-2.7.14/README_fr.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/README_fr.md index 91e2a76f0..820731366 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/README_fr.md +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/README_fr.md @@ -1,4 +1,4 @@ -# IRremoteESP8266 Library +![IRremoteESP8266 Library](./assets/images/banner.svg) [![Build Status](https://travis-ci.org/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.org/crankyoldgit/IRremoteESP8266) [![arduino-library-badge](https://www.ardu-badge.com/badge/IRremoteESP8266.svg?)](https://www.ardu-badge.com/IRremoteESP8266) @@ -9,8 +9,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.7.14 disponible -Version 2.7.14 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.7.15 disponible +Version 2.7.15 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/lib/lib_basic/IRremoteESP8266-2.7.14/ReleaseNotes.md b/lib/lib_basic/IRremoteESP8266-2.7.15/ReleaseNotes.md similarity index 97% rename from lib/lib_basic/IRremoteESP8266-2.7.14/ReleaseNotes.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/ReleaseNotes.md index 5478be920..7feab2ca3 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/ReleaseNotes.md +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/ReleaseNotes.md @@ -1,5 +1,32 @@ # Release Notes +## _v2.7.15 (20210213)_ + +**[BREAKING CHANGES]** +- Some Daikin2 constants have been changed. (#1393) + +**[Features]** +- Experimental basic support for EcoClim 56 & 15 bit protocols. (#1397 #1410) +- MITSUBISHI_AC: Add support for enabling Weekly Timer. (#1403 #1404) +- Mitsubishi ACs: Improve handling swing/vane settings. (#1399 #1401) +- MITSUBISHI_AC: Add support for half degrees. (#1398 #1400) +- Add `irutils::addSwing[V|H]ToString()` and adjust some constants (#1365 #1393) +- SharpAc: Add support for model A903, and improve `IRac` fan & power control. (#1387 #1390) +- Experimental support for Milestag2 (#1360 #1380) + +**[Misc]** +- Improve `IRac::sendAc()` documentation. (#1408 #1409) +- refactor ir_Transcold (#1407) +- refactor ir_Toshiba (#1395) +- Fix Travis-CI build issues. (#1396) +- refactor ir_Teco (#1392) +- Fujitsu A/C: Add warning/suggestions for AR-RAH1U devices (#1376 #1386) +- refactor ir_Technibel (#1385) +- Add the new logo and banner :tada: (#1371 #1372) +- Update references to sbprojects website. (#1381 #1383) +- refactor ir_Tcl (#1379) + + ## _v2.7.14 (20210103)_ **[Bug Fixes]** diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/SupportedProtocols.md b/lib/lib_basic/IRremoteESP8266-2.7.15/SupportedProtocols.md similarity index 94% rename from lib/lib_basic/IRremoteESP8266-2.7.14/SupportedProtocols.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/SupportedProtocols.md index 7fe0409ff..07a4506b2 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/SupportedProtocols.md +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Fri 12 Feb 2021 23:30:54 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -22,12 +22,13 @@ | [Denon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Denon.cpp) | **Denon** | AVR-3801 A/V Receiver (probably) | | - | | [Dish](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Dish.cpp) | **DISH NETWORK** | echostar 301 | | - | | [Doshisha](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Doshisha.cpp) | **Doshisha** | CZ-S32D LED Light
CZ-S38D LED Light
CZ-S50D LED Light
RCZ01 remote | | - | +| [EcoClim](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EcoClim.cpp) | **EcoClim** | HYSFR-P348 remote
ZC200DPO A/C | | - | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[AUX](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | KFR-35GW/BpNFW=3 A/C
YKR-T/011 remote | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | Classic INV 17 / AXW12DCS A/C
YKR-M/003E remote | | Yes | | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Elite Screens** | CineTension2 / CineTension3 series
Home2 / Home3 series
Spectrum series
VMAX Plus4 series
VMAX2 / VMAX2 Plus series
ZSP-IR-B / ZSP-IR-W remote | | - | | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Lumene Screens** | Embassy | | - | | [Epson](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Epson.cpp) | **Epson** | EN-TW9100W Projector | | - | -| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AGTV14LAC A/C (ARRAH2E)
AR-DB1 remote (ARDB1)
AR-DL10 remote (ARDB1)
AR-RAC1E remote (ARRAH2E)
AR-RAE1E remote (ARRAH2E)
AR-RAH2E remote (ARRAH2E)
AR-REB1E remote (ARREB1E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASU30C1 A/C (ARDB1)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARRY4 | Yes | +| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AGTV14LAC A/C (ARRAH2E)
AR-DB1 remote (ARDB1)
AR-DL10 remote (ARDB1)
AR-RAC1E remote (ARRAH2E)
AR-RAE1E remote (ARRAH2E)
AR-RAH1U remote (ARREB1E)
AR-RAH2E remote (ARRAH2E)
AR-REB1E remote (ARREB1E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASU12RLF A/C (ARREB1E)
ASU30C1 A/C (ARDB1)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARRY4 | Yes | | [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu General](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AOHG09LLC A/C (ARRAH2E)
AR-JW2 remote (ARJW2)
AR-RCE1E remote (ARRAH2E)
ASHG09LLCA A/C (ARRAH2E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARRY4 | Yes | | [GICable](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GICable.cpp) | **G.I. Cable** | XRC-200 remote | | - | | [GlobalCache](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GlobalCache.cpp) | **Global Cache** | Control Tower IR DB | | - | @@ -60,9 +61,10 @@ | [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | FS40-7AR Stand Fan (MIDEA24) | | Yes | | [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[MrCool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | RG57A6/BGEFU1 remote (MIDEA) | | Yes | | [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Pioneer System](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | RG66B6(B)/BGEFU1 remote (MIDEA)
RUBO18GMFILCAD A/C (18K BTU) (MIDEA)
RYBO12GMFILCAD A/C (12K BTU) (MIDEA)
UB018GMFILCFHD A/C (12K BTU) (MIDEA)
WS012GMFI22HLD A/C (12K BTU) (MIDEA)
WS018GMFI22HLD A/C (12K BTU) (MIDEA) | | Yes | +| [MilesTag2](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MilesTag2.cpp) | **Milestag2** | Various | | - | | [Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.cpp) | **Mirage** | VLU series A/C | | - | | [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | HC3000 Projector (MITSUBISHI2)
KM14A 0179213 remote
MS-GK24VA A/C
TV (MITSUBISHI) | | Yes | -| [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | 001CP T7WE10714 remote (MITSUBISHI136)
KPOA remote (MITSUBISHI112)
MSH-A24WV A/C (MITSUBISHI112)
MUH-A24WV A/C (MITSUBISHI112)
PEAD-RP71JAA Ducted A/C (MITSUBISHI136) | | Yes | +| [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | 001CP T7WE10714 remote (MITSUBISHI136)
KPOA remote (MITSUBISHI112)
MLZ-RX5017AS A/C (MITSUBISHI_AC)
MSH-A24WV A/C (MITSUBISHI112)
MSZ-GV2519 A/C (MITSUBISHI_AC)
MUH-A24WV A/C (MITSUBISHI112)
PEAD-RP71JAA Ducted A/C (MITSUBISHI136)
RH151/M21ED6426 remote (MITSUBISHI_AC)
SG153/M21EDF426 remote (MITSUBISHI_AC) | | Yes | | [MitsubishiHeavy](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MitsubishiHeavy.cpp) | **[Mitsubishi Heavy Industries](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MitsubishiHeavy.h)** | RKX502A001C remote (88 bit)
RLA502A700B remote (152 bit)
SRKxxZJ-S A/C (88 bit)
SRKxxZM-S A/C (152 bit)
SRKxxZMXA-S A/C (152 bit) | | Yes | | [Multibrackets](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Multibrackets.cpp) | **Multibrackets** | Motorized Swing mount large - 4500 | | - | | [NEC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.cpp) | **[Aloka](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.h)** | SleepyLights LED Lamp | | - | @@ -80,7 +82,7 @@ | [RCMM](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_RCMM.cpp) | **Microsoft** | XBOX 360 | | - | | [Samsung](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Samsung.cpp) | **[Samsung](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Samsung.h)** | AH59-02692E Soundbar remote (SAMSUNG36)
AK59-00167A Bluray remote (SAMSUNG36)
AR09FSSDAWKNFA A/C (SAMSUNG_AC)
AR12HSSDBWKNEU A/C (SAMSUNG_AC)
AR12KSFPEWQNET A/C (SAMSUNG_AC)
AR12NXCXAWKXEU A/C (SAMSUNG_AC)
BN59-01178B TV remote (SAMSUNG)
DB63-03556X003 remote
DB93-16761C remote
HW-J551 Soundbar (SAMSUNG36)
IEC-R03 remote
UA55H6300 TV (SAMSUNG) | | Yes | | [Sanyo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sanyo.cpp) | **[Sanyo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sanyo.h)** | LC7461 transmitter IC (SANYO_LC7461)
RCS-2HS4E remote (SANYO_AC)
RCS-2S4E remote (SANYO_AC)
SA 8650B - disabled
SAP-K121AHA A/C (SANYO_AC)
SAP-K242AH A/C (SANYO_AC) | | Yes | -| [Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sharp.cpp) | **[Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sharp.h)** | AH-AxSAY A/C (A907)
AH-XP10NRY A/C (A907)
AY-ZP40KR A/C (A907)
CRMC-820 JBEZ remote (A907)
CRMC-A705 JBEZ remote (A705)
CRMC-A907 JBEZ remote (A907)
LC-52D62U TV | A705
A907 | Yes | +| [Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sharp.cpp) | **[Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sharp.h)** | AH-A12REVP-1 A/C (A903)
AH-AxSAY A/C (A907)
AH-PR13-GL A/C (A903)
AH-XP10NRY A/C (A903)
AY-ZP40KR A/C (A907)
CRMC-820 JBEZ remote (A903)
CRMC-A705 JBEZ remote (A705)
CRMC-A863 JBEZ remote (A903)
CRMC-A903JBEZ remote (A903)
CRMC-A907 JBEZ remote (A907)
LC-52D62U TV | A705
A903
A907 | Yes | | [Sherwood](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sherwood.cpp) | **Sherwood** | RC-138 remote
RD6505(B) Receiver | | - | | [Sony](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sony.cpp) | **Sony** | HT-CT380 Soundbar (Uses 38kHz & 3 repeats) | | - | | [Symphony](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Symphony.cpp) | **Blyss** | Owen-SW-5 3 Fan
WP-YK8 090218 remote | | - | @@ -135,6 +137,7 @@ - DENON - DISH - DOSHISHA +- ECOCLIM - ELECTRA_AC - ELITESCREENS - EPSON @@ -162,6 +165,7 @@ - METZ - MIDEA - MIDEA24 +- MILESTAG2 - MIRAGE - MITSUBISHI - MITSUBISHI112 diff --git a/lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/banner.svg b/lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/banner.svg new file mode 100644 index 000000000..d1e2c3592 --- /dev/null +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/banner.svg @@ -0,0 +1,142 @@ +
Custom logo

IRremoteESP8266

Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols

+
\ No newline at end of file diff --git a/lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/logo.svg b/lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/logo.svg new file mode 100644 index 000000000..a42691f96 --- /dev/null +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/assets/images/logo.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/README.md b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/README.md similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/README.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/README.md diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/README_de.md b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/README_de.md similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/README_de.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/README_de.md diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/README_fr.md b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/README_fr.md similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/README_fr.md rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/README_fr.md diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/_config.yml b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/_config.yml similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/_config.yml rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/_config.yml diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRac_8cpp.html b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRac_8cpp.html similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRac_8cpp.html rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRac_8cpp.html diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRac_8h.html b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRac_8h.html similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRac_8h.html rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRac_8h.html diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRac_8h_source.html b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRac_8h_source.html similarity index 98% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRac_8h_source.html rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRac_8h_source.html index 051b58a17..eb32f990c 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRac_8h_source.html +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRac_8h_source.html @@ -529,93 +529,93 @@ $(function() {
Support for Kelvinator A/C protocols.
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:130
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:1073
-
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:100
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:771
+
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:118
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:785
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:133
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:128
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:2842
-
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 bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1725
+
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:2848
+
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 bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1727
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:1149
Support for Electra A/C protocols.
-
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2705
+
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2711
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
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:691
Support for Trotec protocols.
-
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1681
-
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:651
+
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1683
+
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:658
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)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1255
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:1221
-
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:733
+
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:740
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
-
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:994
+
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1001
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
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:2992
-
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:164
+
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:2998
+
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:169
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:2036
+
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:2038
Results returned from the decoder.
Definition: IRrecv.h:92
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:760
-
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:1995
-
void tcl112(IRTcl112Ac *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 light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1778
-
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:2073
-
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2711
-
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2722
+
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:1997
+
void tcl112(IRTcl112Ac *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 light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1780
+
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:2075
+
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2717
+
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2728
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:129
-
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1124
+
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:133
+
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1131
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:1953
+
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:1955
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:371
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:527
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:54
-
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:829
+
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:836
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:90
-
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:135
-
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 bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1640
+
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:139
+
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 bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1642
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:567
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:246
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:45
-
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3061
+
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3067
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:106
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:1004
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:91
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:459
-
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:2963
+
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:2969
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:97
-
std::string String
Definition: IRremoteESP8266.h:1178
-
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:221
-
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:1916
-
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2882
+
std::string String
Definition: IRremoteESP8266.h:1199
+
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:242
+
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:1918
+
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2888
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
-
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:339
-
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:63
+
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:362
+
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:89
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:659
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:98
Support for TCL protocols.
-
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2734
+
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2740
void haierYrwo2(IRHaierACYRW02 *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)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1041
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:730
Support for Transcold A/C protocols.
Support for Hitachi A/C protocols.
Support for Panasonic protocols.
-
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:2122
-
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:285
-
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:141
+
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:2124
+
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:308
+
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:145
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
-
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:1365
-
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:3430
+
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:1367
+
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:3436
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:303
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:1183
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
-
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3067
+
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3073
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:604
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
Support for Gree A/C protocols.
@@ -623,56 +623,56 @@ $(function() {
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:151
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:121
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:103
-
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:113
+
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:120
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:112
void midea(IRMideaAC *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 econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1292
-
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:1562
-
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3014
+
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:1564
+
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3020
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:49
Support for Teco protocols.
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 bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:966
Delonghi A/C.
void electra(IRElectraAc *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 lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:817
-
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:2109
+
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:2111
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:1330
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:330
-
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:108
+
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
Support for Voltas A/C protocol.
-
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1064
+
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1071
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:67
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:244
-
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:1521
-
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:885
-
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:2970
-
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:131
-
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)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1880
+
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:1523
+
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:892
+
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:2976
+
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:137
+
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)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1882
Support for Goodweather compatible HVAC protocols.
void argo(IRArgoAC *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 int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:362
-
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:170
-
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:1401
+
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:175
+
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:1403
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:104
-
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:1847
-
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:2740
+
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:1849
+
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:2746
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:1110
-
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:111
+
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
-
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:1598
+
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:1600
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:2945
-
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:1436
-
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:2801
+
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:2951
+
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:1438
+
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:2807
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:116
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:219
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:76
-
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:107
-
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3038
+
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
+
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3044
void fujitsu(IRFujitsuAC *ac, const fujitsu_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 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:860
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:790
@@ -681,13 +681,13 @@ $(function() {
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:637
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:492
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:85
-
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:1477
+
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:1479
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
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:133
void coolix(IRCoolixAC *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 light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:431
-
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:2770
+
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:2776
Support for Toshiba protocols.
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:924
Structure to hold a common A/C state.
Definition: IRsend.h:97
@@ -697,12 +697,12 @@ $(function() {
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:127
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:138
-
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:937
+
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:944
Amcor A/C protocol.
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:102
-
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:1814
-
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:158
-
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:152
+
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:1816
+
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:163
+
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:156
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:394
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRrecv_8cpp.html b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRrecv_8cpp.html similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRrecv_8cpp.html rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRrecv_8cpp.html diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRrecv_8h.html b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRrecv_8h.html similarity index 100% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRrecv_8h.html rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRrecv_8h.html diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRrecv_8h_source.html b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRrecv_8h_source.html similarity index 87% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRrecv_8h_source.html rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRrecv_8h_source.html index 8e988309c..1a3c07175 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRrecv_8h_source.html +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRrecv_8h_source.html @@ -254,564 +254,577 @@ $(function() {
187  const uint8_t tolerance = kUseDefTol,
188  const int16_t excess = kMarkExcess,
189  const bool MSBfirst = true);
-
190  match_result_t matchData(volatile uint16_t *data_ptr, const uint16_t nbits,
+
190  match_result_t matchData(volatile uint16_t *data_ptr, const uint16_t nbits,
191  const uint16_t onemark, const uint32_t onespace,
192  const uint16_t zeromark, const uint32_t zerospace,
193  const uint8_t tolerance = kUseDefTol,
194  const int16_t excess = kMarkExcess,
-
195  const bool MSBfirst = true);
-
196  uint16_t matchBytes(volatile uint16_t *data_ptr, uint8_t *result_ptr,
-
197  const uint16_t remaining, const uint16_t nbytes,
-
198  const uint16_t onemark, const uint32_t onespace,
-
199  const uint16_t zeromark, const uint32_t zerospace,
-
200  const uint8_t tolerance = kUseDefTol,
-
201  const int16_t excess = kMarkExcess,
-
202  const bool MSBfirst = true);
-
203  uint16_t matchGeneric(volatile uint16_t *data_ptr,
-
204  uint64_t *result_ptr,
-
205  const uint16_t remaining, const uint16_t nbits,
-
206  const uint16_t hdrmark, const uint32_t hdrspace,
-
207  const uint16_t onemark, const uint32_t onespace,
-
208  const uint16_t zeromark, const uint32_t zerospace,
-
209  const uint16_t footermark, const uint32_t footerspace,
-
210  const bool atleast = false,
-
211  const uint8_t tolerance = kUseDefTol,
-
212  const int16_t excess = kMarkExcess,
-
213  const bool MSBfirst = true);
-
214  uint16_t matchGeneric(volatile uint16_t *data_ptr, uint8_t *result_ptr,
-
215  const uint16_t remaining, const uint16_t nbits,
-
216  const uint16_t hdrmark, const uint32_t hdrspace,
-
217  const uint16_t onemark, const uint32_t onespace,
-
218  const uint16_t zeromark, const uint32_t zerospace,
-
219  const uint16_t footermark,
-
220  const uint32_t footerspace,
-
221  const bool atleast = false,
-
222  const uint8_t tolerance = kUseDefTol,
-
223  const int16_t excess = kMarkExcess,
-
224  const bool MSBfirst = true);
-
225  uint16_t matchGenericConstBitTime(volatile uint16_t *data_ptr,
-
226  uint64_t *result_ptr,
-
227  const uint16_t remaining,
-
228  const uint16_t nbits,
-
229  const uint16_t hdrmark,
-
230  const uint32_t hdrspace,
-
231  const uint16_t one,
-
232  const uint32_t zero,
-
233  const uint16_t footermark,
-
234  const uint32_t footerspace,
-
235  const bool atleast = false,
-
236  const uint8_t tolerance = kUseDefTol,
-
237  const int16_t excess = kMarkExcess,
-
238  const bool MSBfirst = true);
-
239  uint16_t matchManchesterData(volatile const uint16_t *data_ptr,
-
240  uint64_t *result_ptr,
-
241  const uint16_t remaining,
-
242  const uint16_t nbits,
-
243  const uint16_t half_period,
-
244  const uint16_t starting_balance = 0,
-
245  const uint8_t tolerance = kUseDefTol,
-
246  const int16_t excess = kMarkExcess,
-
247  const bool MSBfirst = true,
-
248  const bool GEThomas = true);
-
249  uint16_t matchManchester(volatile const uint16_t *data_ptr,
-
250  uint64_t *result_ptr,
-
251  const uint16_t remaining,
-
252  const uint16_t nbits,
-
253  const uint16_t hdrmark,
-
254  const uint32_t hdrspace,
-
255  const uint16_t clock_period,
-
256  const uint16_t footermark,
-
257  const uint32_t footerspace,
-
258  const bool atleast = false,
-
259  const uint8_t tolerance = kUseDefTol,
-
260  const int16_t excess = kMarkExcess,
-
261  const bool MSBfirst = true,
-
262  const bool GEThomas = true);
-
263  void crudeNoiseFilter(decode_results *results, const uint16_t floor = 0);
-
264  bool decodeHash(decode_results *results);
-
265 #if DECODE_VOLTAS
-
266  bool decodeVoltas(decode_results *results,
-
267  uint16_t offset = kStartOffset,
-
268  const uint16_t nbits = kVoltasBits,
-
269  const bool strict = true);
-
270 #endif // DECODE_VOLTAS
-
271 #if (DECODE_NEC || DECODE_SHERWOOD || DECODE_AIWA_RC_T501 || DECODE_SANYO)
-
272  bool decodeNEC(decode_results *results, uint16_t offset = kStartOffset,
-
273  const uint16_t nbits = kNECBits, const bool strict = true);
-
274 #endif
-
275 #if DECODE_ARGO
-
276  bool decodeArgo(decode_results *results, uint16_t offset = kStartOffset,
-
277  const uint16_t nbits = kArgoBits, const bool strict = true);
-
278 #endif // DECODE_ARGO
-
279 #if DECODE_SONY
-
280  bool decodeSony(decode_results *results, uint16_t offset = kStartOffset,
-
281  const uint16_t nbits = kSonyMinBits,
-
282  const bool strict = false);
-
283 #endif
-
284 #if DECODE_SANYO
-
285  // DISABLED due to poor quality.
-
286  // bool decodeSanyo(decode_results *results, uint16_t offset = kStartOffset,
-
287  // uint16_t nbits = kSanyoSA8650BBits,
-
288  // bool strict = false);
-
289  bool decodeSanyoLC7461(decode_results *results,
-
290  uint16_t offset = kStartOffset,
-
291  const uint16_t nbits = kSanyoLC7461Bits,
-
292  const bool strict = true);
-
293 #endif
-
294 #if DECODE_SANYO_AC
-
295  bool decodeSanyoAc(decode_results *results,
-
296  uint16_t offset = kStartOffset,
-
297  const uint16_t nbits = kSanyoAcBits,
-
298  const bool strict = true);
-
299 #endif // DECODE_SANYO_AC
-
300 #if DECODE_MITSUBISHI
-
301  bool decodeMitsubishi(decode_results *results, uint16_t offset = kStartOffset,
-
302  const uint16_t nbits = kMitsubishiBits,
-
303  const bool strict = true);
-
304 #endif
-
305 #if DECODE_MITSUBISHI2
-
306  bool decodeMitsubishi2(decode_results *results,
-
307  uint16_t offset = kStartOffset,
-
308  const uint16_t nbits = kMitsubishiBits,
-
309  const bool strict = true);
-
310 #endif
-
311 #if DECODE_MITSUBISHI_AC
-
312  bool decodeMitsubishiAC(decode_results *results,
-
313  uint16_t offset = kStartOffset,
-
314  const uint16_t nbits = kMitsubishiACBits,
-
315  const bool strict = false);
-
316 #endif
-
317 #if DECODE_MITSUBISHI136
-
318  bool decodeMitsubishi136(decode_results *results,
-
319  uint16_t offset = kStartOffset,
-
320  const uint16_t nbits = kMitsubishi136Bits,
-
321  const bool strict = true);
-
322 #endif
-
323 #if DECODE_MITSUBISHI112
-
324  bool decodeMitsubishi112(decode_results *results,
-
325  uint16_t offset = kStartOffset,
-
326  const uint16_t nbits = kMitsubishi112Bits,
-
327  const bool strict = true);
-
328 #endif
-
329 #if DECODE_MITSUBISHIHEAVY
- -
331  uint16_t offset = kStartOffset,
-
332  const uint16_t nbits = kMitsubishiHeavy152Bits,
-
333  const bool strict = true);
-
334 #endif
-
335 #if (DECODE_RC5 || DECODE_RC6 || DECODE_LASERTAG || DECODE_MWM)
-
336  int16_t getRClevel(decode_results *results, uint16_t *offset, uint16_t *used,
-
337  uint16_t bitTime, const uint8_t tolerance = kUseDefTol,
-
338  const int16_t excess = kMarkExcess,
-
339  const uint16_t delta = 0, const uint8_t maxwidth = 3);
-
340 #endif
-
341 #if DECODE_RC5
-
342  bool decodeRC5(decode_results *results, uint16_t offset = kStartOffset,
-
343  const uint16_t nbits = kRC5XBits,
-
344  const bool strict = true);
-
345 #endif
-
346 #if DECODE_RC6
-
347  bool decodeRC6(decode_results *results, uint16_t offset = kStartOffset,
-
348  const uint16_t nbits = kRC6Mode0Bits,
-
349  const bool strict = false);
-
350 #endif
-
351 #if DECODE_RCMM
-
352  bool decodeRCMM(decode_results *results, uint16_t offset = kStartOffset,
-
353  const uint16_t nbits = kRCMMBits,
-
354  const bool strict = false);
-
355 #endif
-
356 #if (DECODE_PANASONIC || DECODE_DENON)
-
357  bool decodePanasonic(decode_results *results, uint16_t offset = kStartOffset,
-
358  const uint16_t nbits = kPanasonicBits,
-
359  const bool strict = false,
-
360  const uint32_t manufacturer = kPanasonicManufacturer);
-
361 #endif
-
362 #if DECODE_LG
-
363  bool decodeLG(decode_results *results, uint16_t offset = kStartOffset,
-
364  const uint16_t nbits = kLgBits,
-
365  const bool strict = false);
-
366 #endif
-
367 #if DECODE_INAX
-
368  bool decodeInax(decode_results *results, uint16_t offset = kStartOffset,
-
369  const uint16_t nbits = kInaxBits,
-
370  const bool strict = true);
-
371 #endif // DECODE_INAX
-
372 #if DECODE_JVC
-
373  bool decodeJVC(decode_results *results, uint16_t offset = kStartOffset,
-
374  const uint16_t nbits = kJvcBits,
-
375  const bool strict = true);
-
376 #endif
-
377 #if DECODE_SAMSUNG
-
378  bool decodeSAMSUNG(decode_results *results, uint16_t offset = kStartOffset,
-
379  const uint16_t nbits = kSamsungBits,
-
380  const bool strict = true);
-
381 #endif
-
382 #if DECODE_SAMSUNG
-
383  bool decodeSamsung36(decode_results *results, uint16_t offset = kStartOffset,
-
384  const uint16_t nbits = kSamsung36Bits,
-
385  const bool strict = true);
-
386 #endif
-
387 #if DECODE_SAMSUNG_AC
-
388  bool decodeSamsungAC(decode_results *results, uint16_t offset = kStartOffset,
-
389  const uint16_t nbits = kSamsungAcBits,
-
390  const bool strict = true);
-
391 #endif
-
392 #if DECODE_WHYNTER
-
393  bool decodeWhynter(decode_results *results, uint16_t offset = kStartOffset,
-
394  const uint16_t nbits = kWhynterBits,
-
395  const bool strict = true);
-
396 #endif
-
397 #if DECODE_COOLIX
-
398  bool decodeCOOLIX(decode_results *results, uint16_t offset = kStartOffset,
-
399  const uint16_t nbits = kCoolixBits,
-
400  const bool strict = true);
-
401 #endif
-
402 #if DECODE_DENON
-
403  bool decodeDenon(decode_results *results, uint16_t offset = kStartOffset,
-
404  const uint16_t nbits = kDenonBits,
-
405  const bool strict = true);
-
406 #endif
-
407 #if DECODE_DISH
-
408  bool decodeDISH(decode_results *results, uint16_t offset = kStartOffset,
-
409  const uint16_t nbits = kDishBits,
-
410  const bool strict = true);
-
411 #endif
-
412 #if (DECODE_SHARP || DECODE_DENON)
-
413  bool decodeSharp(decode_results *results, uint16_t offset = kStartOffset,
-
414  const uint16_t nbits = kSharpBits,
-
415  const bool strict = true, const bool expansion = true);
-
416 #endif
-
417 #if DECODE_SHARP_AC
-
418  bool decodeSharpAc(decode_results *results, uint16_t offset = kStartOffset,
-
419  const uint16_t nbits = kSharpAcBits,
-
420  const bool strict = true);
-
421 #endif
-
422 #if DECODE_AIWA_RC_T501
-
423  bool decodeAiwaRCT501(decode_results *results, uint16_t offset = kStartOffset,
-
424  const uint16_t nbits = kAiwaRcT501Bits,
-
425  const bool strict = true);
-
426 #endif
-
427 #if DECODE_NIKAI
-
428  bool decodeNikai(decode_results *results, uint16_t offset = kStartOffset,
-
429  const uint16_t nbits = kNikaiBits,
-
430  const bool strict = true);
-
431 #endif
-
432 #if DECODE_MAGIQUEST
-
433  bool decodeMagiQuest(decode_results *results, uint16_t offset = kStartOffset,
-
434  const uint16_t nbits = kMagiquestBits,
-
435  const bool strict = true);
-
436 #endif
-
437 #if DECODE_KELVINATOR
-
438  bool decodeKelvinator(decode_results *results, uint16_t offset = kStartOffset,
-
439  const uint16_t nbits = kKelvinatorBits,
-
440  const bool strict = true);
-
441 #endif
-
442 #if DECODE_DAIKIN
-
443  bool decodeDaikin(decode_results *results, uint16_t offset = kStartOffset,
-
444  const uint16_t nbits = kDaikinBits,
-
445  const bool strict = true);
-
446 #endif
-
447 #if DECODE_DAIKIN64
-
448  bool decodeDaikin64(decode_results *results, uint16_t offset = kStartOffset,
-
449  const uint16_t nbits = kDaikin64Bits,
-
450  const bool strict = true);
-
451 #endif // DECODE_DAIKIN64
-
452 #if DECODE_DAIKIN128
-
453  bool decodeDaikin128(decode_results *results, uint16_t offset = kStartOffset,
-
454  const uint16_t nbits = kDaikin128Bits,
-
455  const bool strict = true);
-
456 #endif // DECODE_DAIKIN128
-
457 #if DECODE_DAIKIN152
-
458  bool decodeDaikin152(decode_results *results, uint16_t offset = kStartOffset,
-
459  const uint16_t nbits = kDaikin152Bits,
-
460  const bool strict = true);
-
461 #endif // DECODE_DAIKIN152
-
462 #if DECODE_DAIKIN160
-
463  bool decodeDaikin160(decode_results *results, uint16_t offset = kStartOffset,
-
464  const uint16_t nbits = kDaikin160Bits,
-
465  const bool strict = true);
-
466 #endif // DECODE_DAIKIN160
-
467 #if DECODE_DAIKIN176
-
468  bool decodeDaikin176(decode_results *results, uint16_t offset = kStartOffset,
-
469  const uint16_t nbits = kDaikin176Bits,
-
470  const bool strict = true);
-
471 #endif // DECODE_DAIKIN176
-
472 #if DECODE_DAIKIN2
-
473  bool decodeDaikin2(decode_results *results, uint16_t offset = kStartOffset,
-
474  const uint16_t nbits = kDaikin2Bits,
-
475  const bool strict = true);
-
476 #endif
-
477 #if DECODE_DAIKIN216
-
478  bool decodeDaikin216(decode_results *results, uint16_t offset = kStartOffset,
-
479  const uint16_t nbits = kDaikin216Bits,
-
480  const bool strict = true);
-
481 #endif
-
482 #if DECODE_TOSHIBA_AC
-
483  bool decodeToshibaAC(decode_results *results, uint16_t offset = kStartOffset,
-
484  const uint16_t nbits = kToshibaACBits,
-
485  const bool strict = true);
-
486 #endif
-
487 #if DECODE_TROTEC
-
488  bool decodeTrotec(decode_results *results, uint16_t offset = kStartOffset,
-
489  const uint16_t nbits = kTrotecBits,
-
490  const bool strict = true);
-
491 #endif // DECODE_TROTEC
-
492 #if DECODE_MIDEA
-
493  bool decodeMidea(decode_results *results, uint16_t offset = kStartOffset,
-
494  const uint16_t nbits = kMideaBits,
-
495  const bool strict = true);
-
496 #endif // DECODE_MIDEA
-
497 #if DECODE_MIDEA24
-
498  bool decodeMidea24(decode_results *results, uint16_t offset = kStartOffset,
-
499  const uint16_t nbits = kMidea24Bits,
-
500  const bool strict = true);
-
501 #endif // DECODE_MIDEA24
-
502 #if DECODE_FUJITSU_AC
-
503  bool decodeFujitsuAC(decode_results *results, uint16_t offset = kStartOffset,
-
504  const uint16_t nbits = kFujitsuAcBits,
-
505  const bool strict = false);
-
506 #endif
-
507 #if DECODE_LASERTAG
-
508  bool decodeLasertag(decode_results *results, uint16_t offset = kStartOffset,
-
509  const uint16_t nbits = kLasertagBits,
-
510  const bool strict = true);
-
511 #endif
-
512 #if DECODE_CARRIER_AC
-
513  bool decodeCarrierAC(decode_results *results, uint16_t offset = kStartOffset,
-
514  const uint16_t nbits = kCarrierAcBits,
-
515  const bool strict = true);
-
516 #endif // DECODE_CARRIER_AC
-
517 #if DECODE_CARRIER_AC40
-
518  bool decodeCarrierAC40(decode_results *results,
-
519  uint16_t offset = kStartOffset,
-
520  const uint16_t nbits = kCarrierAc40Bits,
-
521  const bool strict = true);
-
522 #endif // DECODE_CARRIER_AC40
-
523 #if DECODE_CARRIER_AC64
-
524  bool decodeCarrierAC64(decode_results *results,
-
525  uint16_t offset = kStartOffset,
-
526  const uint16_t nbits = kCarrierAc64Bits,
-
527  const bool strict = true);
-
528 #endif // DECODE_CARRIER_AC64
-
529 #if DECODE_GOODWEATHER
-
530  bool decodeGoodweather(decode_results *results,
-
531  uint16_t offset = kStartOffset,
-
532  const uint16_t nbits = kGoodweatherBits,
-
533  const bool strict = true);
-
534 #endif // DECODE_GOODWEATHER
-
535 #if DECODE_GREE
-
536  bool decodeGree(decode_results *results, uint16_t offset = kStartOffset,
-
537  const uint16_t nbits = kGreeBits,
-
538  const bool strict = true);
-
539 #endif
-
540 #if (DECODE_HAIER_AC | DECODE_HAIER_AC_YRW02)
-
541  bool decodeHaierAC(decode_results *results, uint16_t offset = kStartOffset,
-
542  const uint16_t nbits = kHaierACBits,
-
543  const bool strict = true);
-
544 #endif
-
545 #if DECODE_HAIER_AC_YRW02
-
546  bool decodeHaierACYRW02(decode_results *results,
-
547  uint16_t offset = kStartOffset,
-
548  const uint16_t nbits = kHaierACYRW02Bits,
-
549  const bool strict = true);
-
550 #endif
-
551 #if (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC344)
-
552  bool decodeHitachiAC(decode_results *results, uint16_t offset = kStartOffset,
-
553  const uint16_t nbits = kHitachiAcBits,
-
554  const bool strict = true, const bool MSBfirst = true);
-
555 #endif
-
556 #if DECODE_HITACHI_AC1
-
557  bool decodeHitachiAC1(decode_results *results, uint16_t offset = kStartOffset,
-
558  const uint16_t nbits = kHitachiAc1Bits,
-
559  const bool strict = true);
-
560 #endif
-
561 #if DECODE_HITACHI_AC3
-
562  bool decodeHitachiAc3(decode_results *results,
-
563  uint16_t offset = kStartOffset,
-
564  const uint16_t nbits = kHitachiAc3Bits,
-
565  const bool strict = true);
-
566 #endif // DECODE_HITACHI_AC3
-
567 #if DECODE_HITACHI_AC424
-
568  bool decodeHitachiAc424(decode_results *results,
-
569  uint16_t offset = kStartOffset,
-
570  const uint16_t nbits = kHitachiAc424Bits,
-
571  const bool strict = true);
-
572 #endif // DECODE_HITACHI_AC424
-
573 #if DECODE_GICABLE
-
574  bool decodeGICable(decode_results *results, uint16_t offset = kStartOffset,
-
575  const uint16_t nbits = kGicableBits,
-
576  const bool strict = true);
-
577 #endif
-
578 #if DECODE_WHIRLPOOL_AC
-
579  bool decodeWhirlpoolAC(decode_results *results,
-
580  uint16_t offset = kStartOffset,
-
581  const uint16_t nbits = kWhirlpoolAcBits,
-
582  const bool strict = true);
-
583 #endif
-
584 #if DECODE_LUTRON
-
585  bool decodeLutron(decode_results *results, uint16_t offset = kStartOffset,
-
586  const uint16_t nbits = kLutronBits,
-
587  const bool strict = true);
-
588 #endif
-
589 #if DECODE_ELECTRA_AC
-
590  bool decodeElectraAC(decode_results *results, uint16_t offset = kStartOffset,
-
591  const uint16_t nbits = kElectraAcBits,
-
592  const bool strict = true);
-
593 #endif
-
594 #if DECODE_PANASONIC_AC
-
595  bool decodePanasonicAC(decode_results *results,
-
596  uint16_t offset = kStartOffset,
-
597  const uint16_t nbits = kPanasonicAcBits,
-
598  const bool strict = true);
-
599 #endif // DECODE_PANASONIC_AC
-
600 #if DECODE_PANASONIC_AC32
-
601  bool decodePanasonicAC32(decode_results *results,
-
602  uint16_t offset = kStartOffset,
-
603  const uint16_t nbits = kPanasonicAc32Bits,
-
604  const bool strict = true);
-
605 #endif // DECODE_PANASONIC_AC32
-
606 #if DECODE_PIONEER
-
607  bool decodePioneer(decode_results *results, uint16_t offset = kStartOffset,
-
608  const uint16_t nbits = kPioneerBits,
-
609  const bool strict = true);
-
610 #endif
-
611 #if DECODE_MWM
-
612  bool decodeMWM(decode_results *results, uint16_t offset = kStartOffset,
-
613  const uint16_t nbits = 24,
-
614  const bool strict = true);
-
615 #endif
-
616 #if DECODE_VESTEL_AC
-
617  bool decodeVestelAc(decode_results *results, uint16_t offset = kStartOffset,
-
618  const uint16_t nbits = kVestelAcBits,
-
619  const bool strict = true);
-
620 #endif
-
621 #if DECODE_TECO
-
622  bool decodeTeco(decode_results *results, uint16_t offset = kStartOffset,
-
623  const uint16_t nbits = kTecoBits,
-
624  const bool strict = false);
-
625 #endif
-
626 #if DECODE_LEGOPF
-
627  bool decodeLegoPf(decode_results *results, uint16_t offset = kStartOffset,
-
628  const uint16_t nbits = kLegoPfBits,
-
629  const bool strict = true);
-
630 #endif
-
631 #if DECODE_NEOCLIMA
-
632  bool decodeNeoclima(decode_results *results, uint16_t offset = kStartOffset,
-
633  const uint16_t nbits = kNeoclimaBits,
-
634  const bool strict = true);
-
635 #endif // DECODE_NEOCLIMA
-
636 #if DECODE_AMCOR
-
637  bool decodeAmcor(decode_results *results, uint16_t offset = kStartOffset,
-
638  const uint16_t nbits = kAmcorBits,
-
639  const bool strict = true);
-
640 #endif // DECODE_AMCOR
-
641 #if DECODE_EPSON
-
642  bool decodeEpson(decode_results *results, uint16_t offset = kStartOffset,
-
643  const uint16_t nbits = kEpsonBits,
-
644  const bool strict = true);
-
645 #endif // DECODE_EPSON
-
646 #if DECODE_SYMPHONY
-
647  bool decodeSymphony(decode_results *results, uint16_t offset = kStartOffset,
-
648  const uint16_t nbits = kSymphonyBits,
-
649  const bool strict = true);
-
650 #endif // DECODE_SYMPHONY
-
651 #if DECODE_AIRWELL
-
652  bool decodeAirwell(decode_results *results, uint16_t offset = kStartOffset,
-
653  const uint16_t nbits = kAirwellBits,
-
654  const bool strict = true);
-
655 #endif // DECODE_AIRWELL
-
656 #if DECODE_DELONGHI_AC
-
657  bool decodeDelonghiAc(decode_results *results, uint16_t offset = kStartOffset,
-
658  const uint16_t nbits = kDelonghiAcBits,
-
659  const bool strict = true);
-
660 #endif // DECODE_DELONGHI_AC
-
661 #if DECODE_DOSHISHA
-
662  bool decodeDoshisha(decode_results *results, uint16_t offset = kStartOffset,
-
663  const uint16_t nbits = kDoshishaBits,
-
664  const bool strict = true);
-
665 #endif // DECODE_DOSHISHA
-
666 #if DECODE_MULTIBRACKETS
-
667  bool decodeMultibrackets(decode_results *results,
-
668  uint16_t offset = kStartOffset,
-
669  const uint16_t nbits = kMultibracketsBits,
-
670  const bool strict = true);
-
671 #endif // DECODE_MULTIBRACKETS
-
672 #if DECODE_TECHNIBEL_AC
-
673  bool decodeTechnibelAc(decode_results *results,
-
674  uint16_t offset = kStartOffset,
-
675  const uint16_t nbits = kTechnibelAcBits,
-
676  const bool strict = true);
-
677 #endif // DECODE_TECHNIBEL_AC
-
678 #if DECODE_CORONA_AC
-
679  bool decodeCoronaAc(decode_results *results, uint16_t offset = kStartOffset,
-
680  const uint16_t nbits = kCoronaAcBitsShort,
-
681  const bool strict = true);
-
682 #endif // DECODE_CORONA_AC
-
683 #if DECODE_ZEPEAL
-
684  bool decodeZepeal(decode_results *results, uint16_t offset = kStartOffset,
-
685  const uint16_t nbits = kZepealBits,
-
686  const bool strict = true);
-
687 #endif // DECODE_ZEPEAL
-
688 #if DECODE_METZ
-
689  bool decodeMetz(decode_results *results, uint16_t offset = kStartOffset,
-
690  const uint16_t nbits = kMetzBits,
-
691  const bool strict = true);
-
692 #endif // DECODE_METZ
-
693 #if DECODE_TRANSCOLD
-
694  bool decodeTranscold(decode_results *results, uint16_t offset = kStartOffset,
-
695  const uint16_t nbits = kTranscoldBits,
-
696  const bool strict = true);
-
697 #endif // DECODE_TRANSCOLD
-
698 #if DECODE_MIRAGE
-
699  bool decodeMirage(decode_results *results,
-
700  uint16_t offset = kStartOffset,
-
701  const uint16_t nbits = kMirageBits,
-
702  const bool strict = true);
-
703 #endif // DECODE_MIRAGE
-
704 #if DECODE_ELITESCREENS
-
705  bool decodeElitescreens(decode_results *results,
-
706  uint16_t offset = kStartOffset,
-
707  const uint16_t nbits = kEliteScreensBits,
-
708  const bool strict = true);
-
709 #endif // DECODE_ELITESCREENS
-
710 };
-
711 
-
712 #endif // IRRECV_H_
+
195  const bool MSBfirst = true,
+
196  const bool expectlastspace = true);
+
197  uint16_t matchBytes(volatile uint16_t *data_ptr, uint8_t *result_ptr,
+
198  const uint16_t remaining, const uint16_t nbytes,
+
199  const uint16_t onemark, const uint32_t onespace,
+
200  const uint16_t zeromark, const uint32_t zerospace,
+
201  const uint8_t tolerance = kUseDefTol,
+
202  const int16_t excess = kMarkExcess,
+
203  const bool MSBfirst = true,
+
204  const bool expectlastspace = true);
+
205  uint16_t matchGeneric(volatile uint16_t *data_ptr,
+
206  uint64_t *result_ptr,
+
207  const uint16_t remaining, const uint16_t nbits,
+
208  const uint16_t hdrmark, const uint32_t hdrspace,
+
209  const uint16_t onemark, const uint32_t onespace,
+
210  const uint16_t zeromark, const uint32_t zerospace,
+
211  const uint16_t footermark, const uint32_t footerspace,
+
212  const bool atleast = false,
+
213  const uint8_t tolerance = kUseDefTol,
+
214  const int16_t excess = kMarkExcess,
+
215  const bool MSBfirst = true);
+
216  uint16_t matchGeneric(volatile uint16_t *data_ptr, uint8_t *result_ptr,
+
217  const uint16_t remaining, const uint16_t nbits,
+
218  const uint16_t hdrmark, const uint32_t hdrspace,
+
219  const uint16_t onemark, const uint32_t onespace,
+
220  const uint16_t zeromark, const uint32_t zerospace,
+
221  const uint16_t footermark,
+
222  const uint32_t footerspace,
+
223  const bool atleast = false,
+
224  const uint8_t tolerance = kUseDefTol,
+
225  const int16_t excess = kMarkExcess,
+
226  const bool MSBfirst = true);
+
227  uint16_t matchGenericConstBitTime(volatile uint16_t *data_ptr,
+
228  uint64_t *result_ptr,
+
229  const uint16_t remaining,
+
230  const uint16_t nbits,
+
231  const uint16_t hdrmark,
+
232  const uint32_t hdrspace,
+
233  const uint16_t one,
+
234  const uint32_t zero,
+
235  const uint16_t footermark,
+
236  const uint32_t footerspace,
+
237  const bool atleast = false,
+
238  const uint8_t tolerance = kUseDefTol,
+
239  const int16_t excess = kMarkExcess,
+
240  const bool MSBfirst = true);
+
241  uint16_t matchManchesterData(volatile const uint16_t *data_ptr,
+
242  uint64_t *result_ptr,
+
243  const uint16_t remaining,
+
244  const uint16_t nbits,
+
245  const uint16_t half_period,
+
246  const uint16_t starting_balance = 0,
+
247  const uint8_t tolerance = kUseDefTol,
+
248  const int16_t excess = kMarkExcess,
+
249  const bool MSBfirst = true,
+
250  const bool GEThomas = true);
+
251  uint16_t matchManchester(volatile const uint16_t *data_ptr,
+
252  uint64_t *result_ptr,
+
253  const uint16_t remaining,
+
254  const uint16_t nbits,
+
255  const uint16_t hdrmark,
+
256  const uint32_t hdrspace,
+
257  const uint16_t clock_period,
+
258  const uint16_t footermark,
+
259  const uint32_t footerspace,
+
260  const bool atleast = false,
+
261  const uint8_t tolerance = kUseDefTol,
+
262  const int16_t excess = kMarkExcess,
+
263  const bool MSBfirst = true,
+
264  const bool GEThomas = true);
+
265  void crudeNoiseFilter(decode_results *results, const uint16_t floor = 0);
+
266  bool decodeHash(decode_results *results);
+
267 #if DECODE_VOLTAS
+
268  bool decodeVoltas(decode_results *results,
+
269  uint16_t offset = kStartOffset,
+
270  const uint16_t nbits = kVoltasBits,
+
271  const bool strict = true);
+
272 #endif // DECODE_VOLTAS
+
273 #if (DECODE_NEC || DECODE_SHERWOOD || DECODE_AIWA_RC_T501 || DECODE_SANYO)
+
274  bool decodeNEC(decode_results *results, uint16_t offset = kStartOffset,
+
275  const uint16_t nbits = kNECBits, const bool strict = true);
+
276 #endif
+
277 #if DECODE_ARGO
+
278  bool decodeArgo(decode_results *results, uint16_t offset = kStartOffset,
+
279  const uint16_t nbits = kArgoBits, const bool strict = true);
+
280 #endif // DECODE_ARGO
+
281 #if DECODE_SONY
+
282  bool decodeSony(decode_results *results, uint16_t offset = kStartOffset,
+
283  const uint16_t nbits = kSonyMinBits,
+
284  const bool strict = false);
+
285 #endif
+
286 #if DECODE_SANYO
+
287  // DISABLED due to poor quality.
+
288  // bool decodeSanyo(decode_results *results, uint16_t offset = kStartOffset,
+
289  // uint16_t nbits = kSanyoSA8650BBits,
+
290  // bool strict = false);
+
291  bool decodeSanyoLC7461(decode_results *results,
+
292  uint16_t offset = kStartOffset,
+
293  const uint16_t nbits = kSanyoLC7461Bits,
+
294  const bool strict = true);
+
295 #endif
+
296 #if DECODE_SANYO_AC
+
297  bool decodeSanyoAc(decode_results *results,
+
298  uint16_t offset = kStartOffset,
+
299  const uint16_t nbits = kSanyoAcBits,
+
300  const bool strict = true);
+
301 #endif // DECODE_SANYO_AC
+
302 #if DECODE_MITSUBISHI
+
303  bool decodeMitsubishi(decode_results *results, uint16_t offset = kStartOffset,
+
304  const uint16_t nbits = kMitsubishiBits,
+
305  const bool strict = true);
+
306 #endif
+
307 #if DECODE_MITSUBISHI2
+
308  bool decodeMitsubishi2(decode_results *results,
+
309  uint16_t offset = kStartOffset,
+
310  const uint16_t nbits = kMitsubishiBits,
+
311  const bool strict = true);
+
312 #endif
+
313 #if DECODE_MITSUBISHI_AC
+
314  bool decodeMitsubishiAC(decode_results *results,
+
315  uint16_t offset = kStartOffset,
+
316  const uint16_t nbits = kMitsubishiACBits,
+
317  const bool strict = false);
+
318 #endif
+
319 #if DECODE_MITSUBISHI136
+
320  bool decodeMitsubishi136(decode_results *results,
+
321  uint16_t offset = kStartOffset,
+
322  const uint16_t nbits = kMitsubishi136Bits,
+
323  const bool strict = true);
+
324 #endif
+
325 #if DECODE_MITSUBISHI112
+
326  bool decodeMitsubishi112(decode_results *results,
+
327  uint16_t offset = kStartOffset,
+
328  const uint16_t nbits = kMitsubishi112Bits,
+
329  const bool strict = true);
+
330 #endif
+
331 #if DECODE_MITSUBISHIHEAVY
+ +
333  uint16_t offset = kStartOffset,
+
334  const uint16_t nbits = kMitsubishiHeavy152Bits,
+
335  const bool strict = true);
+
336 #endif
+
337 #if (DECODE_RC5 || DECODE_RC6 || DECODE_LASERTAG || DECODE_MWM)
+
338  int16_t getRClevel(decode_results *results, uint16_t *offset, uint16_t *used,
+
339  uint16_t bitTime, const uint8_t tolerance = kUseDefTol,
+
340  const int16_t excess = kMarkExcess,
+
341  const uint16_t delta = 0, const uint8_t maxwidth = 3);
+
342 #endif
+
343 #if DECODE_RC5
+
344  bool decodeRC5(decode_results *results, uint16_t offset = kStartOffset,
+
345  const uint16_t nbits = kRC5XBits,
+
346  const bool strict = true);
+
347 #endif
+
348 #if DECODE_RC6
+
349  bool decodeRC6(decode_results *results, uint16_t offset = kStartOffset,
+
350  const uint16_t nbits = kRC6Mode0Bits,
+
351  const bool strict = false);
+
352 #endif
+
353 #if DECODE_RCMM
+
354  bool decodeRCMM(decode_results *results, uint16_t offset = kStartOffset,
+
355  const uint16_t nbits = kRCMMBits,
+
356  const bool strict = false);
+
357 #endif
+
358 #if (DECODE_PANASONIC || DECODE_DENON)
+
359  bool decodePanasonic(decode_results *results, uint16_t offset = kStartOffset,
+
360  const uint16_t nbits = kPanasonicBits,
+
361  const bool strict = false,
+
362  const uint32_t manufacturer = kPanasonicManufacturer);
+
363 #endif
+
364 #if DECODE_LG
+
365  bool decodeLG(decode_results *results, uint16_t offset = kStartOffset,
+
366  const uint16_t nbits = kLgBits,
+
367  const bool strict = false);
+
368 #endif
+
369 #if DECODE_INAX
+
370  bool decodeInax(decode_results *results, uint16_t offset = kStartOffset,
+
371  const uint16_t nbits = kInaxBits,
+
372  const bool strict = true);
+
373 #endif // DECODE_INAX
+
374 #if DECODE_JVC
+
375  bool decodeJVC(decode_results *results, uint16_t offset = kStartOffset,
+
376  const uint16_t nbits = kJvcBits,
+
377  const bool strict = true);
+
378 #endif
+
379 #if DECODE_SAMSUNG
+
380  bool decodeSAMSUNG(decode_results *results, uint16_t offset = kStartOffset,
+
381  const uint16_t nbits = kSamsungBits,
+
382  const bool strict = true);
+
383 #endif
+
384 #if DECODE_SAMSUNG
+
385  bool decodeSamsung36(decode_results *results, uint16_t offset = kStartOffset,
+
386  const uint16_t nbits = kSamsung36Bits,
+
387  const bool strict = true);
+
388 #endif
+
389 #if DECODE_SAMSUNG_AC
+
390  bool decodeSamsungAC(decode_results *results, uint16_t offset = kStartOffset,
+
391  const uint16_t nbits = kSamsungAcBits,
+
392  const bool strict = true);
+
393 #endif
+
394 #if DECODE_WHYNTER
+
395  bool decodeWhynter(decode_results *results, uint16_t offset = kStartOffset,
+
396  const uint16_t nbits = kWhynterBits,
+
397  const bool strict = true);
+
398 #endif
+
399 #if DECODE_COOLIX
+
400  bool decodeCOOLIX(decode_results *results, uint16_t offset = kStartOffset,
+
401  const uint16_t nbits = kCoolixBits,
+
402  const bool strict = true);
+
403 #endif
+
404 #if DECODE_DENON
+
405  bool decodeDenon(decode_results *results, uint16_t offset = kStartOffset,
+
406  const uint16_t nbits = kDenonBits,
+
407  const bool strict = true);
+
408 #endif
+
409 #if DECODE_DISH
+
410  bool decodeDISH(decode_results *results, uint16_t offset = kStartOffset,
+
411  const uint16_t nbits = kDishBits,
+
412  const bool strict = true);
+
413 #endif
+
414 #if (DECODE_SHARP || DECODE_DENON)
+
415  bool decodeSharp(decode_results *results, uint16_t offset = kStartOffset,
+
416  const uint16_t nbits = kSharpBits,
+
417  const bool strict = true, const bool expansion = true);
+
418 #endif
+
419 #if DECODE_SHARP_AC
+
420  bool decodeSharpAc(decode_results *results, uint16_t offset = kStartOffset,
+
421  const uint16_t nbits = kSharpAcBits,
+
422  const bool strict = true);
+
423 #endif
+
424 #if DECODE_AIWA_RC_T501
+
425  bool decodeAiwaRCT501(decode_results *results, uint16_t offset = kStartOffset,
+
426  const uint16_t nbits = kAiwaRcT501Bits,
+
427  const bool strict = true);
+
428 #endif
+
429 #if DECODE_NIKAI
+
430  bool decodeNikai(decode_results *results, uint16_t offset = kStartOffset,
+
431  const uint16_t nbits = kNikaiBits,
+
432  const bool strict = true);
+
433 #endif
+
434 #if DECODE_MAGIQUEST
+
435  bool decodeMagiQuest(decode_results *results, uint16_t offset = kStartOffset,
+
436  const uint16_t nbits = kMagiquestBits,
+
437  const bool strict = true);
+
438 #endif
+
439 #if DECODE_KELVINATOR
+
440  bool decodeKelvinator(decode_results *results, uint16_t offset = kStartOffset,
+
441  const uint16_t nbits = kKelvinatorBits,
+
442  const bool strict = true);
+
443 #endif
+
444 #if DECODE_DAIKIN
+
445  bool decodeDaikin(decode_results *results, uint16_t offset = kStartOffset,
+
446  const uint16_t nbits = kDaikinBits,
+
447  const bool strict = true);
+
448 #endif
+
449 #if DECODE_DAIKIN64
+
450  bool decodeDaikin64(decode_results *results, uint16_t offset = kStartOffset,
+
451  const uint16_t nbits = kDaikin64Bits,
+
452  const bool strict = true);
+
453 #endif // DECODE_DAIKIN64
+
454 #if DECODE_DAIKIN128
+
455  bool decodeDaikin128(decode_results *results, uint16_t offset = kStartOffset,
+
456  const uint16_t nbits = kDaikin128Bits,
+
457  const bool strict = true);
+
458 #endif // DECODE_DAIKIN128
+
459 #if DECODE_DAIKIN152
+
460  bool decodeDaikin152(decode_results *results, uint16_t offset = kStartOffset,
+
461  const uint16_t nbits = kDaikin152Bits,
+
462  const bool strict = true);
+
463 #endif // DECODE_DAIKIN152
+
464 #if DECODE_DAIKIN160
+
465  bool decodeDaikin160(decode_results *results, uint16_t offset = kStartOffset,
+
466  const uint16_t nbits = kDaikin160Bits,
+
467  const bool strict = true);
+
468 #endif // DECODE_DAIKIN160
+
469 #if DECODE_DAIKIN176
+
470  bool decodeDaikin176(decode_results *results, uint16_t offset = kStartOffset,
+
471  const uint16_t nbits = kDaikin176Bits,
+
472  const bool strict = true);
+
473 #endif // DECODE_DAIKIN176
+
474 #if DECODE_DAIKIN2
+
475  bool decodeDaikin2(decode_results *results, uint16_t offset = kStartOffset,
+
476  const uint16_t nbits = kDaikin2Bits,
+
477  const bool strict = true);
+
478 #endif
+
479 #if DECODE_DAIKIN216
+
480  bool decodeDaikin216(decode_results *results, uint16_t offset = kStartOffset,
+
481  const uint16_t nbits = kDaikin216Bits,
+
482  const bool strict = true);
+
483 #endif
+
484 #if DECODE_TOSHIBA_AC
+
485  bool decodeToshibaAC(decode_results *results, uint16_t offset = kStartOffset,
+
486  const uint16_t nbits = kToshibaACBits,
+
487  const bool strict = true);
+
488 #endif
+
489 #if DECODE_TROTEC
+
490  bool decodeTrotec(decode_results *results, uint16_t offset = kStartOffset,
+
491  const uint16_t nbits = kTrotecBits,
+
492  const bool strict = true);
+
493 #endif // DECODE_TROTEC
+
494 #if DECODE_MIDEA
+
495  bool decodeMidea(decode_results *results, uint16_t offset = kStartOffset,
+
496  const uint16_t nbits = kMideaBits,
+
497  const bool strict = true);
+
498 #endif // DECODE_MIDEA
+
499 #if DECODE_MIDEA24
+
500  bool decodeMidea24(decode_results *results, uint16_t offset = kStartOffset,
+
501  const uint16_t nbits = kMidea24Bits,
+
502  const bool strict = true);
+
503 #endif // DECODE_MIDEA24
+
504 #if DECODE_FUJITSU_AC
+
505  bool decodeFujitsuAC(decode_results *results, uint16_t offset = kStartOffset,
+
506  const uint16_t nbits = kFujitsuAcBits,
+
507  const bool strict = false);
+
508 #endif
+
509 #if DECODE_LASERTAG
+
510  bool decodeLasertag(decode_results *results, uint16_t offset = kStartOffset,
+
511  const uint16_t nbits = kLasertagBits,
+
512  const bool strict = true);
+
513 #endif
+
514 #if DECODE_MILESTAG2
+
515  bool decodeMilestag2(decode_results *results, uint16_t offset = kStartOffset,
+
516  const uint16_t nbits = kMilesTag2ShotBits,
+
517  const bool strict = true);
+
518 #endif
+
519 #if DECODE_CARRIER_AC
+
520  bool decodeCarrierAC(decode_results *results, uint16_t offset = kStartOffset,
+
521  const uint16_t nbits = kCarrierAcBits,
+
522  const bool strict = true);
+
523 #endif // DECODE_CARRIER_AC
+
524 #if DECODE_CARRIER_AC40
+
525  bool decodeCarrierAC40(decode_results *results,
+
526  uint16_t offset = kStartOffset,
+
527  const uint16_t nbits = kCarrierAc40Bits,
+
528  const bool strict = true);
+
529 #endif // DECODE_CARRIER_AC40
+
530 #if DECODE_CARRIER_AC64
+
531  bool decodeCarrierAC64(decode_results *results,
+
532  uint16_t offset = kStartOffset,
+
533  const uint16_t nbits = kCarrierAc64Bits,
+
534  const bool strict = true);
+
535 #endif // DECODE_CARRIER_AC64
+
536 #if DECODE_GOODWEATHER
+
537  bool decodeGoodweather(decode_results *results,
+
538  uint16_t offset = kStartOffset,
+
539  const uint16_t nbits = kGoodweatherBits,
+
540  const bool strict = true);
+
541 #endif // DECODE_GOODWEATHER
+
542 #if DECODE_GREE
+
543  bool decodeGree(decode_results *results, uint16_t offset = kStartOffset,
+
544  const uint16_t nbits = kGreeBits,
+
545  const bool strict = true);
+
546 #endif
+
547 #if (DECODE_HAIER_AC | DECODE_HAIER_AC_YRW02)
+
548  bool decodeHaierAC(decode_results *results, uint16_t offset = kStartOffset,
+
549  const uint16_t nbits = kHaierACBits,
+
550  const bool strict = true);
+
551 #endif
+
552 #if DECODE_HAIER_AC_YRW02
+
553  bool decodeHaierACYRW02(decode_results *results,
+
554  uint16_t offset = kStartOffset,
+
555  const uint16_t nbits = kHaierACYRW02Bits,
+
556  const bool strict = true);
+
557 #endif
+
558 #if (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC344)
+
559  bool decodeHitachiAC(decode_results *results, uint16_t offset = kStartOffset,
+
560  const uint16_t nbits = kHitachiAcBits,
+
561  const bool strict = true, const bool MSBfirst = true);
+
562 #endif
+
563 #if DECODE_HITACHI_AC1
+
564  bool decodeHitachiAC1(decode_results *results, uint16_t offset = kStartOffset,
+
565  const uint16_t nbits = kHitachiAc1Bits,
+
566  const bool strict = true);
+
567 #endif
+
568 #if DECODE_HITACHI_AC3
+
569  bool decodeHitachiAc3(decode_results *results,
+
570  uint16_t offset = kStartOffset,
+
571  const uint16_t nbits = kHitachiAc3Bits,
+
572  const bool strict = true);
+
573 #endif // DECODE_HITACHI_AC3
+
574 #if DECODE_HITACHI_AC424
+
575  bool decodeHitachiAc424(decode_results *results,
+
576  uint16_t offset = kStartOffset,
+
577  const uint16_t nbits = kHitachiAc424Bits,
+
578  const bool strict = true);
+
579 #endif // DECODE_HITACHI_AC424
+
580 #if DECODE_GICABLE
+
581  bool decodeGICable(decode_results *results, uint16_t offset = kStartOffset,
+
582  const uint16_t nbits = kGicableBits,
+
583  const bool strict = true);
+
584 #endif
+
585 #if DECODE_WHIRLPOOL_AC
+
586  bool decodeWhirlpoolAC(decode_results *results,
+
587  uint16_t offset = kStartOffset,
+
588  const uint16_t nbits = kWhirlpoolAcBits,
+
589  const bool strict = true);
+
590 #endif
+
591 #if DECODE_LUTRON
+
592  bool decodeLutron(decode_results *results, uint16_t offset = kStartOffset,
+
593  const uint16_t nbits = kLutronBits,
+
594  const bool strict = true);
+
595 #endif
+
596 #if DECODE_ELECTRA_AC
+
597  bool decodeElectraAC(decode_results *results, uint16_t offset = kStartOffset,
+
598  const uint16_t nbits = kElectraAcBits,
+
599  const bool strict = true);
+
600 #endif
+
601 #if DECODE_PANASONIC_AC
+
602  bool decodePanasonicAC(decode_results *results,
+
603  uint16_t offset = kStartOffset,
+
604  const uint16_t nbits = kPanasonicAcBits,
+
605  const bool strict = true);
+
606 #endif // DECODE_PANASONIC_AC
+
607 #if DECODE_PANASONIC_AC32
+
608  bool decodePanasonicAC32(decode_results *results,
+
609  uint16_t offset = kStartOffset,
+
610  const uint16_t nbits = kPanasonicAc32Bits,
+
611  const bool strict = true);
+
612 #endif // DECODE_PANASONIC_AC32
+
613 #if DECODE_PIONEER
+
614  bool decodePioneer(decode_results *results, uint16_t offset = kStartOffset,
+
615  const uint16_t nbits = kPioneerBits,
+
616  const bool strict = true);
+
617 #endif
+
618 #if DECODE_MWM
+
619  bool decodeMWM(decode_results *results, uint16_t offset = kStartOffset,
+
620  const uint16_t nbits = 24,
+
621  const bool strict = true);
+
622 #endif
+
623 #if DECODE_VESTEL_AC
+
624  bool decodeVestelAc(decode_results *results, uint16_t offset = kStartOffset,
+
625  const uint16_t nbits = kVestelAcBits,
+
626  const bool strict = true);
+
627 #endif
+
628 #if DECODE_TECO
+
629  bool decodeTeco(decode_results *results, uint16_t offset = kStartOffset,
+
630  const uint16_t nbits = kTecoBits,
+
631  const bool strict = false);
+
632 #endif
+
633 #if DECODE_LEGOPF
+
634  bool decodeLegoPf(decode_results *results, uint16_t offset = kStartOffset,
+
635  const uint16_t nbits = kLegoPfBits,
+
636  const bool strict = true);
+
637 #endif
+
638 #if DECODE_NEOCLIMA
+
639  bool decodeNeoclima(decode_results *results, uint16_t offset = kStartOffset,
+
640  const uint16_t nbits = kNeoclimaBits,
+
641  const bool strict = true);
+
642 #endif // DECODE_NEOCLIMA
+
643 #if DECODE_AMCOR
+
644  bool decodeAmcor(decode_results *results, uint16_t offset = kStartOffset,
+
645  const uint16_t nbits = kAmcorBits,
+
646  const bool strict = true);
+
647 #endif // DECODE_AMCOR
+
648 #if DECODE_EPSON
+
649  bool decodeEpson(decode_results *results, uint16_t offset = kStartOffset,
+
650  const uint16_t nbits = kEpsonBits,
+
651  const bool strict = true);
+
652 #endif // DECODE_EPSON
+
653 #if DECODE_SYMPHONY
+
654  bool decodeSymphony(decode_results *results, uint16_t offset = kStartOffset,
+
655  const uint16_t nbits = kSymphonyBits,
+
656  const bool strict = true);
+
657 #endif // DECODE_SYMPHONY
+
658 #if DECODE_AIRWELL
+
659  bool decodeAirwell(decode_results *results, uint16_t offset = kStartOffset,
+
660  const uint16_t nbits = kAirwellBits,
+
661  const bool strict = true);
+
662 #endif // DECODE_AIRWELL
+
663 #if DECODE_DELONGHI_AC
+
664  bool decodeDelonghiAc(decode_results *results, uint16_t offset = kStartOffset,
+
665  const uint16_t nbits = kDelonghiAcBits,
+
666  const bool strict = true);
+
667 #endif // DECODE_DELONGHI_AC
+
668 #if DECODE_DOSHISHA
+
669  bool decodeDoshisha(decode_results *results, uint16_t offset = kStartOffset,
+
670  const uint16_t nbits = kDoshishaBits,
+
671  const bool strict = true);
+
672 #endif // DECODE_DOSHISHA
+
673 #if DECODE_MULTIBRACKETS
+
674  bool decodeMultibrackets(decode_results *results,
+
675  uint16_t offset = kStartOffset,
+
676  const uint16_t nbits = kMultibracketsBits,
+
677  const bool strict = true);
+
678 #endif // DECODE_MULTIBRACKETS
+
679 #if DECODE_TECHNIBEL_AC
+
680  bool decodeTechnibelAc(decode_results *results,
+
681  uint16_t offset = kStartOffset,
+
682  const uint16_t nbits = kTechnibelAcBits,
+
683  const bool strict = true);
+
684 #endif // DECODE_TECHNIBEL_AC
+
685 #if DECODE_CORONA_AC
+
686  bool decodeCoronaAc(decode_results *results, uint16_t offset = kStartOffset,
+
687  const uint16_t nbits = kCoronaAcBitsShort,
+
688  const bool strict = true);
+
689 #endif // DECODE_CORONA_AC
+
690 #if DECODE_ZEPEAL
+
691  bool decodeZepeal(decode_results *results, uint16_t offset = kStartOffset,
+
692  const uint16_t nbits = kZepealBits,
+
693  const bool strict = true);
+
694 #endif // DECODE_ZEPEAL
+
695 #if DECODE_METZ
+
696  bool decodeMetz(decode_results *results, uint16_t offset = kStartOffset,
+
697  const uint16_t nbits = kMetzBits,
+
698  const bool strict = true);
+
699 #endif // DECODE_METZ
+
700 #if DECODE_TRANSCOLD
+
701  bool decodeTranscold(decode_results *results, uint16_t offset = kStartOffset,
+
702  const uint16_t nbits = kTranscoldBits,
+
703  const bool strict = true);
+
704 #endif // DECODE_TRANSCOLD
+
705 #if DECODE_MIRAGE
+
706  bool decodeMirage(decode_results *results,
+
707  uint16_t offset = kStartOffset,
+
708  const uint16_t nbits = kMirageBits,
+
709  const bool strict = true);
+
710 #endif // DECODE_MIRAGE
+
711 #if DECODE_ELITESCREENS
+
712  bool decodeElitescreens(decode_results *results,
+
713  uint16_t offset = kStartOffset,
+
714  const uint16_t nbits = kEliteScreensBits,
+
715  const bool strict = true);
+
716 #endif // DECODE_ELITESCREENS
+
717 #if DECODE_ECOCLIM
+
718  bool decodeEcoclim(decode_results *results, uint16_t offset = kStartOffset,
+
719  const uint16_t nbits = kEcoclimBits,
+
720  const bool strict = true);
+
721 #endif // DECODE_ECOCLIM
+
722 };
+
723 
+
724 #endif // IRRECV_H_
bool decodeMultibrackets(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMultibracketsBits, const bool strict=true)
Decode the Multibrackets message. Status: BETA / Appears to be working.
Definition: ir_Multibrackets.cpp:59
-
const uint16_t kDelonghiAcBits
Definition: IRremoteESP8266.h:926
-
bool decodeMitsubishi(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiBits, const bool strict=true)
Decode the supplied Mitsubishi 16-bit message. Status: STABLE / Working.
Definition: ir_Mitsubishi.cpp:121
-
const uint16_t kMirageBits
Definition: IRremoteESP8266.h:998
+
uint16_t matchBytes(volatile uint16_t *data_ptr, uint8_t *result_ptr, const uint16_t remaining, const uint16_t nbytes, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool expectlastspace=true)
Match & decode the typical data section of an IR message. The bytes are stored at result_ptr....
Definition: IRrecv.cpp:1282
+
const uint16_t kDelonghiAcBits
Definition: IRremoteESP8266.h:942
+
bool decodeMitsubishi(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiBits, const bool strict=true)
Decode the supplied Mitsubishi 16-bit message. Status: STABLE / Working.
Definition: ir_Mitsubishi.cpp:126
+
const uint16_t kMirageBits
Definition: IRremoteESP8266.h:1016
bool decodeHaierAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHaierACBits, const bool strict=true)
Decode the supplied Haier HSU07-HEA03 remote message. Status: STABLE / Known to be working.
Definition: ir_Haier.cpp:974
bool decodeNEC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kNECBits, const bool strict=true)
Decode the supplied NEC (Renesas) message. Status: STABLE / Known good.
Definition: ir_NEC.cpp:81
const uint32_t kFnvPrime32
Definition: IRrecv.h:52
bool overflow
Definition: IRrecv.h:109
-
bool decodeDaikin128(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin128Bits, const bool strict=true)
Decode the supplied Daikin 128-bit message. (DAIKIN128) Status: STABLE / Known Working.
Definition: ir_Daikin.cpp:3029
-
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:948
-
uint16_t matchGeneric(volatile uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical <= 64bit IR message. The data is stored at result_ptr.
Definition: IRrecv.cpp:1399
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:771
-
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:891
-
bool decodeTranscold(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTranscoldBits, const bool strict=true)
Decode the supplied Transcold A/C message. Status: STABLE / Known Working.
Definition: ir_Transcold.cpp:482
+
bool decodeDaikin128(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin128Bits, const bool strict=true)
Decode the supplied Daikin 128-bit message. (DAIKIN128) Status: STABLE / Known Working.
Definition: ir_Daikin.cpp:3001
+
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:966
+
uint16_t matchGeneric(volatile uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical <= 64bit IR message. The data is stored at result_ptr.
Definition: IRrecv.cpp:1436
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:785
+
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:907
+
bool decodeTranscold(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTranscoldBits, const bool strict=true)
Decode the supplied Transcold A/C message. Status: STABLE / Known Working.
Definition: ir_Transcold.cpp:447
int16_t getRClevel(decode_results *results, uint16_t *offset, uint16_t *used, uint16_t bitTime, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const uint16_t delta=0, const uint8_t maxwidth=3)
Gets one undecoded level at a time from the raw buffer. The RC5/6 decoding is easier if the data is b...
Definition: ir_RC5_RC6.cpp:243
-
const uint16_t kMultibracketsBits
Definition: IRremoteESP8266.h:1019
-
const uint16_t kSharpAcBits
Definition: IRremoteESP8266.h:1060
-
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1091
-
bool decodeSanyoAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoAcBits, const bool strict=true)
Decode the supplied SanyoAc message. Status: STABLE / Reported as working.
Definition: ir_Sanyo.cpp:272
+
const uint16_t kMultibracketsBits
Definition: IRremoteESP8266.h:1037
+
const uint16_t kSharpAcBits
Definition: IRremoteESP8266.h:1078
+
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1109
+
bool decodeSanyoAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoAcBits, const bool strict=true)
Decode the supplied SanyoAc message. Status: STABLE / Reported as working.
Definition: ir_Sanyo.cpp:273
uint8_t overflow
Definition: IRrecv.h:78
-
bool decodeMitsubishi2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiBits, const bool strict=true)
Decode the supplied second variation of a Mitsubishi 16-bit message. Status: STABLE / Working.
Definition: ir_Mitsubishi.cpp:186
+
bool decodeMitsubishi2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiBits, const bool strict=true)
Decode the supplied second variation of a Mitsubishi 16-bit message. Status: STABLE / Working.
Definition: ir_Mitsubishi.cpp:191
bool decodeGree(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGreeBits, const bool strict=true)
Decode the supplied Gree HVAC message. Status: STABLE / Working.
Definition: ir_Gree.cpp:659
-
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:878
+
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:894
irparams_t * irparams_save
Definition: IRrecv.h:151
-
const uint16_t kMitsubishiACBits
Definition: IRremoteESP8266.h:1005
-
bool decodeFujitsuAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kFujitsuAcBits, const bool strict=false)
Decode the supplied Fujitsu AC IR message if possible. Status: STABLE / Working.
Definition: ir_Fujitsu.cpp:892
-
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:928
+
const uint16_t kMitsubishiACBits
Definition: IRremoteESP8266.h:1023
+
bool decodeFujitsuAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kFujitsuAcBits, const bool strict=false)
Decode the supplied Fujitsu AC IR message if possible. Status: STABLE / Working.
Definition: ir_Fujitsu.cpp:897
+
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:944
bool decodeTrotec(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTrotecBits, const bool strict=true)
Decode the supplied Trotec message. Status: STABLE / Works. Untested on real devices.
Definition: ir_Trotec.cpp:313
bool decodeNeoclima(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kNeoclimaBits, const bool strict=true)
Decode the supplied Neoclima message. Status: STABLE / Known working.
Definition: ir_Neoclima.cpp:571
-
const uint16_t kVoltasBits
Definition: IRremoteESP8266.h:1095
-
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:1201
+
const uint16_t kVoltasBits
Definition: IRremoteESP8266.h:1113
+
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:1243
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:772
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:1038
+
const uint16_t kRC5XBits
Definition: IRremoteESP8266.h:1056
bool decodeMagiQuest(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMagiquestBits, const bool strict=true)
Decode the supplied MagiQuest message. Status: Beta / Should work.
Definition: ir_Magiquest.cpp:69
uint16_t rawlen
Definition: IRrecv.h:77
const uint8_t kUseDefTol
Definition: IRrecv.h:36
@@ -819,209 +832,212 @@ $(function() {
Class for receiving IR messages.
Definition: IRrecv.h:114
uint16_t bufsize
Definition: IRrecv.h:73
Results returned from the decoder.
Definition: IRrecv.h:92
-
uint16_t matchGenericConstBitTime(volatile uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t one, const uint32_t zero, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical constant bit time <= 64bit IR message. The data is stored at result_...
Definition: IRrecv.cpp:1493
+
uint16_t matchGenericConstBitTime(volatile uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t one, const uint32_t zero, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical constant bit time <= 64bit IR message. The data is stored at result_...
Definition: IRrecv.cpp:1530
bool decodeCarrierAC64(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAc64Bits, const bool strict=true)
Decode the supplied Carrier 64-bit HVAC message. Status: STABLE / Known to be working.
Definition: ir_Carrier.cpp:195
-
const uint16_t kCoolixBits
Definition: IRremoteESP8266.h:889
+
const uint16_t kCoolixBits
Definition: IRremoteESP8266.h:905
bool decodeArgo(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kArgoBits, const bool strict=true)
Decode the supplied Argo message. Status: BETA / Probably works.
Definition: ir_Argo.cpp:445
-
const uint16_t kCoronaAcBitsShort
Definition: IRremoteESP8266.h:899
+
const uint16_t kCoronaAcBitsShort
Definition: IRremoteESP8266.h:915
uint64_t data
Definition: IRrecv.h:85
-
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:1043
-
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:990
+
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:1061
+
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:1008
uint16_t * rawbuf
Definition: IRrecv.h:74
Information for the interrupt handler.
Definition: IRrecv.h:69
uint16_t getBufSize(void)
Obtain the maximum number of entries possible in the capture buffer. i.e. It's size.
Definition: IRrecv.cpp:411
-
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1054
+
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1072
bool repeat
Definition: IRrecv.h:110
bool decodeHitachiAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAcBits, const bool strict=true, const bool MSBfirst=true)
Decode the supplied Hitachi A/C message. Status: STABLE / Expected to work.
Definition: ir_Hitachi.cpp:846
-
const uint16_t kTrotecBits
Definition: IRremoteESP8266.h:1086
+
const uint16_t kTrotecBits
Definition: IRremoteESP8266.h:1104
bool decodeVestelAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kVestelAcBits, const bool strict=true)
Decode the supplied Vestel message. Status: Alpha / Needs testing against a real device.
Definition: ir_Vestel.cpp:572
const uint8_t kIdleState
Definition: IRrecv.h:31
bool decodeAmcor(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAmcorBits, const bool strict=true)
Decode the supplied Amcor HVAC message. Status: STABLE / Reported as working.
Definition: ir_Amcor.cpp:58
-
bool decodeDaikin(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikinBits, const bool strict=true)
Decode the supplied Daikin 280-bit message. (DAIKIN) Status: STABLE / Reported as working.
Definition: ir_Daikin.cpp:595
-
const uint16_t kEliteScreensBits
Definition: IRremoteESP8266.h:941
+
bool decodeDaikin(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikinBits, const bool strict=true)
Decode the supplied Daikin 280-bit message. (DAIKIN) Status: STABLE / Reported as working.
Definition: ir_Daikin.cpp:597
+
const uint16_t kEliteScreensBits
Definition: IRremoteESP8266.h:959
uint8_t recvpin
Definition: IRrecv.h:70
uint16_t timer
Definition: IRrecv.h:72
-
bool decodeDaikin64(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin64Bits, const bool strict=true)
Decode the supplied Daikin 64-bit message. (DAIKIN64) Status: Beta / Probably Working.
Definition: ir_Daikin.cpp:3501
+
bool decodeDaikin64(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin64Bits, const bool strict=true)
Decode the supplied Daikin 64-bit message. (DAIKIN64) Status: Beta / Probably Working.
Definition: ir_Daikin.cpp:3473
bool decodeMetz(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMetzBits, const bool strict=true)
Decode the supplied Metz message. Status: BETA / Probably works.
Definition: ir_Metz.cpp:67
bool success
Definition: IRrecv.h:84
-
bool decodeDaikin2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin2Bits, const bool strict=true)
Decode the supplied Daikin 312-bit message. (DAIKIN2) Status: STABLE / Works as expected.
Definition: ir_Daikin.cpp:1379
-
const uint16_t kElectraAcBits
Definition: IRremoteESP8266.h:939
-
bool matchSpace(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess)
Check if we match a space signal(measured) with the desired within +/-tolerance percent,...
Definition: IRrecv.cpp:1131
-
const uint16_t kSonyMinBits
Definition: IRremoteESP8266.h:1067
+
bool decodeDaikin2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin2Bits, const bool strict=true)
Decode the supplied Daikin 312-bit message. (DAIKIN2) Status: STABLE / Works as expected.
Definition: ir_Daikin.cpp:1352
+
const uint16_t kElectraAcBits
Definition: IRremoteESP8266.h:957
+
bool matchSpace(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess)
Check if we match a space signal(measured) with the desired within +/-tolerance percent,...
Definition: IRrecv.cpp:1144
+
const uint16_t kSonyMinBits
Definition: IRremoteESP8266.h:1085
const uint8_t kStopState
Definition: IRrecv.h:34
uint16_t rawlen
Definition: IRrecv.h:108
const uint16_t kMaxTimeoutMs
Definition: IRrecv.h:49
-
bool decodePanasonicAC32(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicAc32Bits, const bool strict=true)
Decode the supplied Panasonic AC 32/16bit message. Status: STABLE / Confirmed working.
Definition: ir_Panasonic.cpp:990
-
const uint16_t kDaikin2Bits
Definition: IRremoteESP8266.h:907
-
bool decodePanasonic(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicBits, const bool strict=false, const uint32_t manufacturer=kPanasonicManufacturer)
Decode the supplied Panasonic message. Status: STABLE / Should be working.
Definition: ir_Panasonic.cpp:126
-
const uint16_t kHitachiAc1Bits
Definition: IRremoteESP8266.h:965
+
bool decodePanasonicAC32(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicAc32Bits, const bool strict=true)
Decode the supplied Panasonic AC 32/16bit message. Status: STABLE / Confirmed working.
Definition: ir_Panasonic.cpp:980
+
const uint16_t kDaikin2Bits
Definition: IRremoteESP8266.h:923
+
bool decodePanasonic(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicBits, const bool strict=false, const uint32_t manufacturer=kPanasonicManufacturer)
Decode the supplied Panasonic message. Status: STABLE / Should be working.
Definition: ir_Panasonic.cpp:128
+
const uint16_t kHitachiAc1Bits
Definition: IRremoteESP8266.h:983
bool decodeElectraAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kElectraAcBits, const bool strict=true)
Decode the supplied Electra A/C message. Status: STABLE / Known working.
Definition: ir_Electra.cpp:370
-
bool decodeDaikin216(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin216Bits, const bool strict=true)
Decode the supplied Daikin 216-bit message. (DAIKIN216) Status: STABLE / Should be working.
Definition: ir_Daikin.cpp:1742
-
bool decodeDaikin152(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin152Bits, const bool strict=true)
Decode the supplied Daikin 152-bit message. (DAIKIN152) Status: STABLE / Known Working.
Definition: ir_Daikin.cpp:3118
+
bool decodeDaikin216(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin216Bits, const bool strict=true)
Decode the supplied Daikin 216-bit message. (DAIKIN216) Status: STABLE / Should be working.
Definition: ir_Daikin.cpp:1715
+
bool decodeDaikin152(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin152Bits, const bool strict=true)
Decode the supplied Daikin 152-bit message. (DAIKIN152) Status: STABLE / Known Working.
Definition: ir_Daikin.cpp:3090
bool decodeElitescreens(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEliteScreensBits, const bool strict=true)
Decode the supplied Elite Screens message. Status: STABLE / Confirmed working.
Definition: ir_EliteScreens.cpp:63
bool decodeDenon(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDenonBits, const bool strict=true)
Decode the supplied Delonghi A/C message. Status: STABLE / Should work fine.
Definition: ir_Denon.cpp:70
-
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:1026
+
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:1044
+
const uint16_t kMilesTag2ShotBits
Definition: IRremoteESP8266.h:1115
decode_type_t decode_type
Definition: IRrecv.h:94
-
const uint16_t kPanasonicAcBits
Definition: IRremoteESP8266.h:1030
-
bool decodeTechnibelAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTechnibelAcBits, const bool strict=true)
Status: STABLE / Reported as working on a real device.
Definition: ir_Technibel.cpp:56
+
const uint16_t kPanasonicAcBits
Definition: IRremoteESP8266.h:1048
+
bool decodeTechnibelAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTechnibelAcBits, const bool strict=true)
Status: STABLE / Reported as working on a real device.
Definition: ir_Technibel.cpp:54
const uint64_t kRepeat
Definition: IRrecv.h:26
void setTolerance(const uint8_t percent=kTolerance)
Set the base tolerance percentage for matching incoming IR messages.
Definition: IRrecv.cpp:424
bool decodeMidea(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMideaBits, const bool strict=true)
Decode the supplied Midea message. Status: Alpha / Needs testing against a real device.
Definition: ir_Midea.cpp:666
bool decodeVoltas(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kVoltasBits, const bool strict=true)
Decode the supplied Voltas message. Status: STABLE / Working on real device.
Definition: ir_Voltas.cpp:61
-
const uint16_t kDaikin160Bits
Definition: IRremoteESP8266.h:912
+
const uint16_t kDaikin160Bits
Definition: IRremoteESP8266.h:928
void copyIrParams(volatile irparams_t *src, irparams_t *dst)
Make a copy of the interrupt state & buffer data. Needed because irparams is marked as volatile,...
Definition: IRrecv.cpp:387
bool decodeKelvinator(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kKelvinatorBits, const bool strict=true)
Decode the supplied Kelvinator message. Status: STABLE / Known working.
Definition: ir_Kelvinator.cpp:459
-
const uint16_t kGoodweatherBits
Definition: IRremoteESP8266.h:950
+
const uint16_t kGoodweatherBits
Definition: IRremoteESP8266.h:968
bool decodeMWM(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=24, const bool strict=true)
Decode the supplied MWM message. Status: Implemented.
Definition: ir_MWM.cpp:81
void enableIRIn(const bool pullup=false)
Set up and (re)start the IR capture mechanism.
Definition: IRrecv.cpp:319
-
const uint16_t kDaikin152Bits
Definition: IRremoteESP8266.h:918
-
bool decodePanasonicAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicAcBits, const bool strict=true)
Decode the supplied Panasonic AC message. Status: STABLE / Works with real device(s).
Definition: ir_Panasonic.cpp:861
+
const uint16_t kDaikin152Bits
Definition: IRremoteESP8266.h:934
+
bool decodePanasonicAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPanasonicAcBits, const bool strict=true)
Decode the supplied Panasonic AC message. Status: STABLE / Works with real device(s).
Definition: ir_Panasonic.cpp:851
bool decodeDoshisha(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDoshishaBits, const bool strict=true)
Decode the supplied Doshisha message. Status: STABLE / Works on real device.
Definition: ir_Doshisha.cpp:85
bool decodeZepeal(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kZepealBits, const bool strict=true)
Decode the supplied Zepeal message. Status: STABLE / Works on real device.
Definition: ir_Zepeal.cpp:67
-
bool decodeDaikin160(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin160Bits, const bool strict=true)
Decode the supplied Daikin 160-bit message. (DAIKIN160) Status: STABLE / Confirmed working.
Definition: ir_Daikin.cpp:2107
+
bool decodeDaikin160(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin160Bits, const bool strict=true)
Decode the supplied Daikin 160-bit message. (DAIKIN160) Status: STABLE / Confirmed working.
Definition: ir_Daikin.cpp:2080
bool decodeLasertag(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLasertagBits, const bool strict=true)
Decode the supplied Lasertag message. Status: BETA / Appears to be working 90% of the time.
Definition: ir_Lasertag.cpp:70
const uint8_t kTimeoutMs
Definition: IRrecv.h:47
-
uint16_t _matchGeneric(volatile uint16_t *data_ptr, uint64_t *result_bits_ptr, uint8_t *result_ptr, const bool use_bits, const uint16_t remaining, const uint16_t required, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical IR message. The data is stored in result_bits_ptr or result_bytes_pt...
Definition: IRrecv.cpp:1299
+
uint16_t _matchGeneric(volatile uint16_t *data_ptr, uint64_t *result_bits_ptr, uint8_t *result_ptr, const bool use_bits, const uint16_t remaining, const uint16_t required, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode a generic/typical IR message. The data is stored in result_bits_ptr or result_bytes_pt...
Definition: IRrecv.cpp:1334
const uint8_t kMarkState
Definition: IRrecv.h:32
void setUnknownThreshold(const uint16_t length)
Set the minimum length we will consider for reporting UNKNOWN message types.
Definition: IRrecv.cpp:416
-
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1069
+
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1087
bool decodeMirage(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMirageBits, const bool strict=true)
Decode the supplied Mirage message. Status: STABLE / Reported as working.
Definition: ir_Mirage.cpp:50
-
const uint16_t kRC6Mode0Bits
Definition: IRremoteESP8266.h:1039
+
const uint16_t kRC6Mode0Bits
Definition: IRremoteESP8266.h:1057
const uint16_t kStateSizeMax
Definition: IRrecv.h:60
Results from a data match.
Definition: IRrecv.h:83
uint8_t rcvstate
Definition: IRrecv.h:71
-
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:991
+
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:1009
bool decodeRC6(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRC6Mode0Bits, const bool strict=false)
Decode the supplied RC6 message. Status: Stable.
Definition: ir_RC5_RC6.cpp:383
bool decodeRC5(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRC5XBits, const bool strict=true)
Decode the supplied RC-5/RC5X message. Status: RC-5 (stable), RC-5X (alpha)
Definition: ir_RC5_RC6.cpp:309
~IRrecv(void)
Class destructor Cleans up after the object is no longer needed. e.g. Frees up all memory used by the...
Definition: IRrecv.cpp:304
bool decodeHitachiAc3(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc3Bits, const bool strict=true)
Decode the supplied Hitachi 15to27-byte/120to216-bit A/C message. Status: STABLE / Works fine.
Definition: ir_Hitachi.cpp:1425
bool decodeWhynter(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kWhynterBits, const bool strict=true)
Decode the supplied Whynter message. Status: STABLE / Working. Strict mode is ALPHA.
Definition: ir_Whynter.cpp:74
bool decodeCarrierAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAcBits, const bool strict=true)
Decode the supplied Carrier HVAC message.
Definition: ir_Carrier.cpp:82
-
match_result_t matchData(volatile uint16_t *data_ptr, const uint16_t nbits, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode the typical data section of an IR message. The data value is stored in the least signi...
Definition: IRrecv.cpp:1207
-
const uint16_t kMitsubishiHeavy152Bits
Definition: IRremoteESP8266.h:1017
-
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:935
-
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:893
+
const uint16_t kMitsubishiHeavy152Bits
Definition: IRremoteESP8266.h:1035
+
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:951
+
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:909
const uint16_t kStartOffset
Definition: IRrecv.h:20
-
const uint16_t kAmcorBits
Definition: IRremoteESP8266.h:884
+
const uint16_t kAmcorBits
Definition: IRremoteESP8266.h:900
bool decodeRCMM(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRCMMBits, const bool strict=false)
Decode a Philips RC-MM packet (between 12 & 32 bits) if possible. Status: STABLE / Should be working.
Definition: ir_RCMM.cpp:96
IRrecv(const uint16_t recvpin, const uint16_t bufsize=kRawBuf, const uint8_t timeout=kTimeoutMs, const bool save_buffer=false, const uint8_t timer_num=kDefaultESP32Timer)
Class constructor Args:
Definition: IRrecv.cpp:243
-
bool decodeMitsubishi136(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishi136Bits, const bool strict=true)
Decode the supplied Mitsubishi 136-bit A/C message. (MITSUBISHI136) Status: STABLE / Reported as work...
Definition: ir_Mitsubishi.cpp:829
+
bool decodeMitsubishi136(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishi136Bits, const bool strict=true)
Decode the supplied Mitsubishi 136-bit A/C message. (MITSUBISHI136) Status: STABLE / Reported as work...
Definition: ir_Mitsubishi.cpp:869
volatile uint16_t * rawbuf
Definition: IRrecv.h:107
const uint8_t kTolerance
Definition: IRrecv.h:35
bool decodeSharp(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSharpBits, const bool strict=true, const bool expansion=true)
Decode the supplied Sharp message. Status: STABLE / Working fine.
Definition: ir_Sharp.cpp:155
uint16_t used
Definition: IRrecv.h:86
-
const uint32_t kPanasonicManufacturer
Definition: IRremoteESP8266.h:1027
+
const uint32_t kPanasonicManufacturer
Definition: IRremoteESP8266.h:1045
uint32_t address
Definition: IRrecv.h:101
bool decodeNikai(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kNikaiBits, const bool strict=true)
Decode the supplied Nikai message. Status: STABLE / Working.
Definition: ir_Nikai.cpp:52
-
const uint16_t kMitsubishiBits
Definition: IRremoteESP8266.h:1000
-
bool match(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Check if we match a pulse(measured) with the desired within +/-tolerance percent and/or +/- a fixed d...
Definition: IRrecv.cpp:1039
+
const uint16_t kMitsubishiBits
Definition: IRremoteESP8266.h:1018
+
bool match(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Check if we match a pulse(measured) with the desired within +/-tolerance percent and/or +/- a fixed d...
Definition: IRrecv.cpp:1052
bool decodeSymphony(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSymphonyBits, const bool strict=true)
Decode the supplied Symphony packet/message. Status: STABLE / Should be working.
Definition: ir_Symphony.cpp:60
-
const uint16_t kSamsungAcBits
Definition: IRremoteESP8266.h:1045
+
const uint16_t kSamsungAcBits
Definition: IRremoteESP8266.h:1063
const uint16_t kUnknownThreshold
Definition: IRrecv.h:28
-
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:993
+
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:1011
bool decodeAiwaRCT501(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAiwaRcT501Bits, const bool strict=true)
Decode the supplied Aiwa RC T501 message. Status: BETA / Should work.
Definition: ir_Aiwa.cpp:61
-
const uint16_t kKelvinatorBits
Definition: IRremoteESP8266.h:980
+
const uint16_t kKelvinatorBits
Definition: IRremoteESP8266.h:998
bool decodeGICable(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGicableBits, const bool strict=true)
Decode the supplied G.I. Cable message. Status: Alpha / Not tested against a real device.
Definition: ir_GICable.cpp:63
-
bool decodeTeco(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTecoBits, const bool strict=false)
Decode the supplied Teco message. Status: STABLE / Tested.
Definition: ir_Teco.cpp:365
-
bool decodeSanyoLC7461(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoLC7461Bits, const bool strict=true)
Decode the supplied SANYO LC7461 message. Status: BETA / Probably works.
Definition: ir_Sanyo.cpp:135
+
bool decodeTeco(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTecoBits, const bool strict=false)
Decode the supplied Teco message. Status: STABLE / Tested.
Definition: ir_Teco.cpp:353
+
bool decodeSanyoLC7461(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoLC7461Bits, const bool strict=true)
Decode the supplied SANYO LC7461 message. Status: BETA / Probably works.
Definition: ir_Sanyo.cpp:136
bool decodeCarrierAC40(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCarrierAc40Bits, const bool strict=true)
Decode the supplied Carrier 40-bit HVAC message. Carrier HVAC messages contain only 40 bits,...
Definition: ir_Carrier.cpp:147
-
const uint16_t kNECBits
Definition: IRremoteESP8266.h:1022
-
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:930
-
const uint16_t kHaierACBits
Definition: IRremoteESP8266.h:956
-
bool matchAtLeast(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Check if we match a pulse(measured) of at least desired within tolerance percent and/or a fixed delta...
Definition: IRrecv.cpp:1070
-
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1093
-
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:995
-
bool decodeDaikin176(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin176Bits, const bool strict=true)
Decode the supplied Daikin 176-bit message. (DAIKIN176) Status: STABLE / Expected to work.
Definition: ir_Daikin.cpp:2500
-
const uint16_t kNeoclimaBits
Definition: IRremoteESP8266.h:1024
-
const uint16_t kWhirlpoolAcBits
Definition: IRremoteESP8266.h:1089
-
bool decodeSharpAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSharpAcBits, const bool strict=true)
Decode the supplied Sharp A/C message. Status: STABLE / Known working.
Definition: ir_Sharp.cpp:821
+
const uint16_t kNECBits
Definition: IRremoteESP8266.h:1040
+
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:946
+
const uint16_t kHaierACBits
Definition: IRremoteESP8266.h:974
+
bool matchAtLeast(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Check if we match a pulse(measured) of at least desired within tolerance percent and/or a fixed delta...
Definition: IRrecv.cpp:1083
+
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1111
+
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:1013
+
bool decodeDaikin176(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDaikin176Bits, const bool strict=true)
Decode the supplied Daikin 176-bit message. (DAIKIN176) Status: STABLE / Expected to work.
Definition: ir_Daikin.cpp:2472
+
const uint16_t kNeoclimaBits
Definition: IRremoteESP8266.h:1042
+
const uint16_t kWhirlpoolAcBits
Definition: IRremoteESP8266.h:1107
+
bool decodeSharpAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSharpAcBits, const bool strict=true)
Decode the supplied Sharp A/C message. Status: STABLE / Known working.
Definition: ir_Sharp.cpp:855
bool decodeJVC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kJvcBits, const bool strict=true)
Decode the supplied JVC message. Status: Stable / Known working.
Definition: ir_JVC.cpp:94
-
bool decodeMitsubishiAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiACBits, const bool strict=false)
Decode the supplied Mitsubish 144-bit A/C message. Status: BETA / Probably works.
Definition: ir_Mitsubishi.cpp:252
-
const uint16_t kCarrierAc64Bits
Definition: IRremoteESP8266.h:895
-
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1034
+
bool decodeEcoclim(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEcoclimBits, const bool strict=true)
Decode the supplied EcoClim A/C message. Status: STABLE / Confirmed working on real remote.
Definition: ir_EcoClim.cpp:62
+
bool decodeMitsubishiAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiACBits, const bool strict=false)
Decode the supplied Mitsubish 144-bit A/C message. Status: BETA / Probably works.
Definition: ir_Mitsubishi.cpp:257
+
const uint16_t kCarrierAc64Bits
Definition: IRremoteESP8266.h:911
+
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1052
uint16_t bits
Definition: IRrecv.h:106
-
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:953
-
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:978
-
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:982
-
const uint16_t kDaikin128Bits
Definition: IRremoteESP8266.h:915
-
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:880
-
uint32_t ticksLow(const uint32_t usecs, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Calculate the lower bound of the nr. of ticks.
Definition: IRrecv.cpp:1013
-
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1074
+
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:971
+
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:996
+
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:1000
+
const uint16_t kDaikin128Bits
Definition: IRremoteESP8266.h:931
+
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:896
+
uint32_t ticksLow(const uint32_t usecs, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Calculate the lower bound of the nr. of ticks.
Definition: IRrecv.cpp:1026
+
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1092
bool decodeEpson(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEpsonBits, const bool strict=true)
Decode the supplied Epson message. Status: Beta / Probably works.
Definition: ir_Epson.cpp:45
-
const uint16_t kToshibaACBits
Definition: IRremoteESP8266.h:1077
+
const uint16_t kToshibaACBits
Definition: IRremoteESP8266.h:1095
bool decodeSony(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSonyMinBits, const bool strict=false)
Decode the supplied Sony/SIRC message. Status: STABLE / Should be working. strict mode is ALPHA / Unt...
Definition: ir_Sony.cpp:121
-
const uint16_t kDaikinBits
Definition: IRremoteESP8266.h:902
-
bool matchMark(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess)
Check if we match a mark signal(measured) with the desired within +/-tolerance percent,...
Definition: IRrecv.cpp:1112
-
const uint16_t kHitachiAcBits
Definition: IRremoteESP8266.h:962
-
const uint16_t kHitachiAc3Bits
Definition: IRremoteESP8266.h:969
+
const uint16_t kDaikinBits
Definition: IRremoteESP8266.h:918
+
bool matchMark(const uint32_t measured, const uint32_t desired, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess)
Check if we match a mark signal(measured) with the desired within +/-tolerance percent,...
Definition: IRrecv.cpp:1125
+
const uint16_t kHitachiAcBits
Definition: IRremoteESP8266.h:980
+
const uint16_t kHitachiAc3Bits
Definition: IRremoteESP8266.h:987
const uint16_t kRawBuf
Definition: IRrecv.h:25
bool decode(decode_results *results, irparams_t *save=NULL, uint8_t max_skip=0, uint16_t noise_floor=0)
Decodes the received IR message. If the interrupt state is saved, we will immediately resume waiting ...
Definition: IRrecv.cpp:501
bool decodePioneer(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kPioneerBits, const bool strict=true)
Decode the supplied Pioneer message. Status: STABLE / Should be working. (Self decodes & real example...
Definition: ir_Pioneer.cpp:92
uint8_t getTolerance(void)
Get the base tolerance percentage for matching incoming IR messages.
Definition: IRrecv.cpp:430
-
const uint16_t kDishBits
Definition: IRremoteESP8266.h:933
-
uint16_t compare(const uint16_t oldval, const uint16_t newval)
Compare two tick values.
Definition: IRrecv.cpp:1149
+
const uint16_t kDishBits
Definition: IRremoteESP8266.h:949
+
uint16_t compare(const uint16_t oldval, const uint16_t newval)
Compare two tick values.
Definition: IRrecv.cpp:1162
uint32_t command
Definition: IRrecv.h:102
-
const uint16_t kFujitsuAcBits
Definition: IRremoteESP8266.h:946
+
const uint16_t kFujitsuAcBits
Definition: IRremoteESP8266.h:964
uint64_t value
Definition: IRrecv.h:100
-
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:887
-
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:966
+
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:903
+
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:984
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:192
const uint16_t kFooter
Definition: IRrecv.h:19
-
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:1021
-
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:989
+
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:1039
+
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:1007
uint8_t timeout
Definition: IRrecv.h:79
bool decodeCoronaAc(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoronaAcBitsShort, const bool strict=true)
Decode the supplied CoronaAc message. Status: STABLE / Appears to be working.
Definition: ir_Corona.cpp:88
bool decodeLutron(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kLutronBits, const bool strict=true)
Decode the supplied Lutron message. Status: STABLE / Working.
Definition: ir_Lutron.cpp:65
bool decodeDISH(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kDishBits, const bool strict=true)
Decode the supplied DISH NETWORK message. Status: ALPHA (untested and unconfirmed....
Definition: ir_Dish.cpp:77
const uint16_t kRawTick
Definition: IRrecv.h:37
-
uint16_t matchManchesterData(volatile const uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t half_period, const uint16_t starting_balance=0, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool GEThomas=true)
Match & decode a Manchester Code data (<= 64bits.
Definition: IRrecv.cpp:1687
+
uint16_t matchManchesterData(volatile const uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t half_period, const uint16_t starting_balance=0, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool GEThomas=true)
Match & decode a Manchester Code data (<= 64bits.
Definition: IRrecv.cpp:1724
void resume(void)
Resume collection of received IR data.
Definition: IRrecv.cpp:372
-
const uint16_t kHaierACYRW02Bits
Definition: IRremoteESP8266.h:959
-
const uint16_t kHitachiAc424Bits
Definition: IRremoteESP8266.h:975
+
bool decodeMilestag2(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMilesTag2ShotBits, const bool strict=true)
Decode the supplied MilesTag2 message. Status: ALPHA / Probably works but needs testing with a real d...
Definition: ir_MilesTag2.cpp:63
+
const uint16_t kEcoclimBits
Definition: IRremoteESP8266.h:952
+
const uint16_t kHaierACYRW02Bits
Definition: IRremoteESP8266.h:977
+
match_result_t matchData(volatile uint16_t *data_ptr, const uint16_t nbits, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool expectlastspace=true)
Match & decode the typical data section of an IR message. The data value is stored in the least signi...
Definition: IRrecv.cpp:1221
+
const uint16_t kHitachiAc424Bits
Definition: IRremoteESP8266.h:993
bool decodeWhirlpoolAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kWhirlpoolAcBits, const bool strict=true)
Decode the supplied Whirlpool A/C message. Status: STABLE / Working as intended.
Definition: ir_Whirlpool.cpp:652
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:1020
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:139
bool decodeCOOLIX(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolixBits, const bool strict=true)
Decode the supplied Coolix A/C message. Status: STABLE / Known Working.
Definition: ir_Coolix.cpp:628
-
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:984
-
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1058
+
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:1002
+
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1076
bool decodeGoodweather(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGoodweatherBits, const bool strict=true)
Decode the supplied Goodweather message. Status: BETA / Probably works.
Definition: ir_Goodweather.cpp:424
uint8_t _tolerance
Definition: IRrecv.h:152
const uint8_t kDefaultESP32Timer
Definition: IRrecv.h:56
-
uint16_t matchManchester(volatile const uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t clock_period, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool GEThomas=true)
Match & decode a Manchester Code <= 64bit IR message. The data is stored at result_ptr.
Definition: IRrecv.cpp:1580
+
uint16_t matchManchester(volatile const uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t clock_period, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true, const bool GEThomas=true)
Match & decode a Manchester Code <= 64bit IR message. The data is stored at result_ptr.
Definition: IRrecv.cpp:1617
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:437
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:118
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:1041
-
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1092
-
const uint16_t kTranscoldBits
Definition: IRremoteESP8266.h:1083
-
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:976
-
bool decodeMitsubishiHeavy(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiHeavy152Bits, const bool strict=true)
Decode the supplied Mitsubishi Heavy Industries A/C message. Status: BETA / Appears to be working....
Definition: ir_MitsubishiHeavy.cpp:1085
+
const uint16_t kRCMMBits
Definition: IRremoteESP8266.h:1059
+
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1110
+
const uint16_t kTranscoldBits
Definition: IRremoteESP8266.h:1101
+
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:994
+
bool decodeMitsubishiHeavy(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishiHeavy152Bits, const bool strict=true)
Decode the supplied Mitsubishi Heavy Industries A/C message. Status: BETA / Appears to be working....
Definition: ir_MitsubishiHeavy.cpp:1003
uint16_t _unknown_threshold
Definition: IRrecv.h:157
-
const uint16_t kDaikin176Bits
Definition: IRremoteESP8266.h:921
+
const uint16_t kDaikin176Bits
Definition: IRremoteESP8266.h:937
bool decodeMidea24(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMidea24Bits, const bool strict=true)
Decode the supplied Midea24 message. Status: STABLE / Confirmed working on a real device.
Definition: ir_Midea.cpp:759
void disableIRIn(void)
Stop collection of any received IR data. Disable any timers and interrupts.
Definition: IRrecv.cpp:356
bool decodeHitachiAc424(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc424Bits, const bool strict=true)
Decode the supplied Hitachi 53-byte/424-bit A/C message. Status: STABLE / Reported as working.
Definition: ir_Hitachi.cpp:959
-
bool decodeToshibaAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kToshibaACBits, const bool strict=true)
Decode the supplied Toshiba A/C message. Status: STABLE / Working.
Definition: ir_Toshiba.cpp:472
-
uint32_t ticksHigh(const uint32_t usecs, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Calculate the upper bound of the nr. of ticks.
Definition: IRrecv.cpp:1026
-
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:1042
+
bool decodeToshibaAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kToshibaACBits, const bool strict=true)
Decode the supplied Toshiba A/C message. Status: STABLE / Working.
Definition: ir_Toshiba.cpp:463
+
uint32_t ticksHigh(const uint32_t usecs, const uint8_t tolerance=kUseDefTol, const uint16_t delta=0)
Calculate the upper bound of the nr. of ticks.
Definition: IRrecv.cpp:1039
+
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:1060
uint8_t _timer_num
Definition: IRrecv.h:154
-
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:909
-
const uint16_t kPanasonicAc32Bits
Definition: IRremoteESP8266.h:1033
-
const uint16_t kDaikin216Bits
Definition: IRremoteESP8266.h:924
-
const uint16_t kMitsubishi136Bits
Definition: IRremoteESP8266.h:1008
-
uint16_t matchBytes(volatile uint16_t *data_ptr, uint8_t *result_ptr, const uint16_t remaining, const uint16_t nbytes, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)
Match & decode the typical data section of an IR message. The bytes are stored at result_ptr....
Definition: IRrecv.cpp:1249
-
const uint16_t kSanyoAcBits
Definition: IRremoteESP8266.h:1050
-
const uint16_t kMitsubishi112Bits
Definition: IRremoteESP8266.h:1011
-
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:936
+
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:925
+
const uint16_t kPanasonicAc32Bits
Definition: IRremoteESP8266.h:1051
+
const uint16_t kDaikin216Bits
Definition: IRremoteESP8266.h:940
+
const uint16_t kMitsubishi136Bits
Definition: IRremoteESP8266.h:1026
+
const uint16_t kSanyoAcBits
Definition: IRremoteESP8266.h:1068
+
const uint16_t kMitsubishi112Bits
Definition: IRremoteESP8266.h:1029
+
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:954
uint8_t state[kStateSizeMax]
Definition: IRrecv.h:104
-
bool decodeHash(decode_results *results)
Decode any arbitrary IR message into a 32-bit code value. Instead of decoding using a standard encodi...
Definition: IRrecv.cpp:1170
+
bool decodeHash(decode_results *results)
Decode any arbitrary IR message into a 32-bit code value. Instead of decoding using a standard encodi...
Definition: IRrecv.cpp:1183
const uint8_t kSpaceState
Definition: IRrecv.h:33
-
const uint16_t kLgBits
Definition: IRremoteESP8266.h:986
-
uint8_t _validTolerance(const uint8_t percentage)
Convert the tolerance percentage into something valid.
Definition: IRrecv.cpp:1004
+
const uint16_t kLgBits
Definition: IRremoteESP8266.h:1004
+
uint8_t _validTolerance(const uint8_t percentage)
Convert the tolerance percentage into something valid.
Definition: IRrecv.cpp:1017
const uint16_t kHeader
Definition: IRrecv.h:18
const uint32_t kFnvBasis32
Definition: IRrecv.h:53
diff --git a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRremoteESP8266_8h.html b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRremoteESP8266_8h.html similarity index 98% rename from lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRremoteESP8266_8h.html rename to lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRremoteESP8266_8h.html index bc9e49713..37e51415c 100644 --- a/lib/lib_basic/IRremoteESP8266-2.7.14/docs/doxygen/html/IRremoteESP8266_8h.html +++ b/lib/lib_basic/IRremoteESP8266-2.7.15/docs/doxygen/html/IRremoteESP8266_8h.html @@ -206,7 +206,10 @@ Enumerations
  ELITESCREENS, PANASONIC_AC32, -kLastDecodeType = PANASONIC_AC32 +MILESTAG2, +ECOCLIM, +
+  kLastDecodeType = ECOCLIM
}  Enumerator for defining and numbering of supported IR protocol. More...
@@ -334,6 +337,10 @@ Variables   const uint16_t kDoshishaBits = 40   +const uint16_t kEcoclimBits = 56 +  +const uint16_t kEcoclimShortBits = 15 +  const uint16_t kEpsonBits = 32   const uint16_t kEpsonMinRepeat = 2 @@ -650,6 +657,12 @@ Variables   const uint16_t kVoltasStateLength = 10   +const uint16_t kMilesTag2ShotBits = 14 +  +const uint16_t kMilesTag2MsgBits = 24 +  +const uint16_t kMilesMinRepeat = 0 + 

Typedef Documentation

@@ -780,6 +793,8 @@ Variables MIRAGE  ELITESCREENS  PANASONIC_AC32  +MILESTAG2  +ECOCLIM  kLastDecodeType  @@ -1568,6 +1583,34 @@ Variables
+
+ + +

◆ kEcoclimBits

+ +
+
+ + + + +
const uint16_t kEcoclimBits = 56
+
+ +
+
+ +

◆ kEcoclimShortBits

+ +
+
+ + + + +
const uint16_t kEcoclimShortBits = 15
+
+
@@ -2422,6 +2465,48 @@ Variables
+
+ + +

◆ kMilesMinRepeat

+ +
+
+ + + + +
const uint16_t kMilesMinRepeat = 0
+
+ +
+
+ +

◆ kMilesTag2MsgBits

+ +
+
+ + + + +
const uint16_t kMilesTag2MsgBits = 24
+
+ +
+
+ +

◆ kMilesTag2ShotBits

+ +
+
+ + + + +
const uint16_t kMilesTag2ShotBits = 14
+
+
@@ -3841,8 +3926,8 @@ Variables -
const uint16_t kSanyoLC7461CommandBits
Definition: IRremoteESP8266.h:1053
-
const uint16_t kSanyoLC7461AddressBits
Definition: IRremoteESP8266.h:1052
+
const uint16_t kSanyoLC7461CommandBits
Definition: IRremoteESP8266.h:1071
+
const uint16_t kSanyoLC7461AddressBits
Definition: IRremoteESP8266.h:1070