From c64fa1d25f62aade162729df969f72cafdbe823c Mon Sep 17 00:00:00 2001 From: David Conran Date: Sat, 1 Jan 2022 19:15:43 +1000 Subject: [PATCH] v2.8.1 release (#1719) ## _v2.8.1 (20220101)_ **[Bug Fixes]** - Arduino ESP32 Core v2.0.2+ crashes due to our timer hack. (#1715 #1713 ) - SONY: Fix old Sony CD-Player Remote (12 Bit) (#1714) **[Features]** - Add tool to convert protocol & code to raw timing info. (#1708 #1707 #1703) - Add basic support for COOLIX48 protocol. (#1697 #1694) - MITSUBISHI_AC: Added support for i-SAVE mode. (#1666) - TOSHIBA_AC: Add Filter setting support. aka. Pure. (#1693 #1692) - Airton: Add detailed A/C support. (#1688 #1670) **[Misc]** - Add a structured library version number. (#1717) - Workflows Split UnitTests (#1712) - Reduce time for workflow/Build (#1709) - Fix some compiler & linter warnings (#1699 #1700) - Fujitsu: Update supported A/C models (#1690 #1689 #1702 #1701) - Remove extra `const` qualifier for char pointer (#1704) - TCL: Update supported devices. (#1698) - ESP32-C3: Work around for some C3 specific compiler issues. (#1696 #1695) --- README.md | 4 +- README_de.md | 4 +- README_fr.md | 4 +- ReleaseNotes.md | 24 + SupportedProtocols.md | 13 +- docs/doxygen/html/IRac_8h_source.html | 1214 ++--- docs/doxygen/html/IRrecv_8h_source.html | 941 ++-- docs/doxygen/html/IRremoteESP8266_8h.html | 25 +- .../html/IRremoteESP8266_8h_source.html | 3050 +++++------ docs/doxygen/html/IRsend_8h_source.html | 1294 ++--- docs/doxygen/html/IRtext_8cpp.html | 579 +- docs/doxygen/html/IRtext_8h.html | 536 +- docs/doxygen/html/IRtext_8h_source.html | 12 +- docs/doxygen/html/IRutils_8cpp.html | 3 + docs/doxygen/html/IRutils_8h.html | 3 + docs/doxygen/html/IRutils_8h_source.html | 101 +- docs/doxygen/html/annotated.html | 242 +- .../doxygen/html/classIRAirtonAc-members.html | 120 + docs/doxygen/html/classIRAirtonAc.html | 1299 +++++ .../html/classIRAirtonAc__coll__graph.map | 5 + .../html/classIRAirtonAc__coll__graph.md5 | 1 + .../html/classIRAirtonAc__coll__graph.png | Bin 0 -> 5746 bytes .../html/classIRMitsubishiAC-members.html | 24 +- docs/doxygen/html/classIRMitsubishiAC.html | 331 +- .../html/classIRToshibaAC-members.html | 30 +- docs/doxygen/html/classIRToshibaAC.html | 53 + docs/doxygen/html/classIRac-members.html | 165 +- docs/doxygen/html/classIRac.html | 131 +- docs/doxygen/html/classIRrecv-members.html | 227 +- docs/doxygen/html/classIRrecv.html | 68 +- docs/doxygen/html/classIRsend-members.html | 219 +- docs/doxygen/html/classIRsend.html | 73 +- docs/doxygen/html/classdecode__results.html | 32 +- docs/doxygen/html/classes.html | 83 +- docs/doxygen/html/defaults_8h_source.html | 1835 +++---- .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 3 + docs/doxygen/html/files.html | 249 +- docs/doxygen/html/functions.html | 24 +- docs/doxygen/html/functions_a.html | 6 + docs/doxygen/html/functions_b.html | 3 +- docs/doxygen/html/functions_c.html | 20 +- docs/doxygen/html/functions_d.html | 6 + docs/doxygen/html/functions_e.html | 6 +- docs/doxygen/html/functions_f.html | 6 +- docs/doxygen/html/functions_func_a.html | 3 + docs/doxygen/html/functions_func_b.html | 3 +- docs/doxygen/html/functions_func_c.html | 18 +- docs/doxygen/html/functions_func_d.html | 3 + docs/doxygen/html/functions_func_g.html | 52 +- docs/doxygen/html/functions_func_i.html | 3 + docs/doxygen/html/functions_func_o.html | 6 +- docs/doxygen/html/functions_func_s.html | 65 +- docs/doxygen/html/functions_func_t.html | 14 +- docs/doxygen/html/functions_func_v.html | 3 +- docs/doxygen/html/functions_g.html | 52 +- docs/doxygen/html/functions_h.html | 9 +- docs/doxygen/html/functions_i.html | 9 + docs/doxygen/html/functions_l.html | 3 +- docs/doxygen/html/functions_m.html | 3 +- docs/doxygen/html/functions_n.html | 6 + docs/doxygen/html/functions_o.html | 6 +- docs/doxygen/html/functions_p.html | 3 +- docs/doxygen/html/functions_r.html | 3 +- docs/doxygen/html/functions_s.html | 72 +- docs/doxygen/html/functions_t.html | 20 +- docs/doxygen/html/functions_v.html | 3 +- docs/doxygen/html/functions_vars.html | 22 +- docs/doxygen/html/functions_vars_a.html | 3 + docs/doxygen/html/functions_vars_c.html | 2 +- docs/doxygen/html/functions_vars_d.html | 3 + docs/doxygen/html/functions_vars_e.html | 6 +- docs/doxygen/html/functions_vars_f.html | 6 +- docs/doxygen/html/functions_vars_h.html | 9 +- docs/doxygen/html/functions_vars_i.html | 6 + docs/doxygen/html/functions_vars_l.html | 3 +- docs/doxygen/html/functions_vars_m.html | 3 +- docs/doxygen/html/functions_vars_n.html | 6 + docs/doxygen/html/functions_vars_p.html | 3 +- docs/doxygen/html/functions_vars_r.html | 3 +- docs/doxygen/html/functions_vars_s.html | 9 +- docs/doxygen/html/functions_vars_t.html | 6 +- docs/doxygen/html/globals_c.html | 4 +- docs/doxygen/html/globals_eval.html | 3 + docs/doxygen/html/globals_func_i.html | 2 +- docs/doxygen/html/globals_i.html | 2 +- docs/doxygen/html/globals_k.html | 62 +- docs/doxygen/html/globals_vars_k.html | 62 +- docs/doxygen/html/hierarchy.html | 244 +- docs/doxygen/html/inherit_graph_0.map | 2 +- docs/doxygen/html/inherit_graph_0.md5 | 2 +- docs/doxygen/html/inherit_graph_0.png | Bin 1531 -> 1147 bytes docs/doxygen/html/inherit_graph_1.map | 2 +- docs/doxygen/html/inherit_graph_1.md5 | 2 +- docs/doxygen/html/inherit_graph_1.png | Bin 1156 -> 1531 bytes docs/doxygen/html/inherit_graph_10.map | 2 +- docs/doxygen/html/inherit_graph_10.md5 | 2 +- docs/doxygen/html/inherit_graph_10.png | Bin 1671 -> 1746 bytes docs/doxygen/html/inherit_graph_100.map | 2 +- docs/doxygen/html/inherit_graph_100.md5 | 2 +- docs/doxygen/html/inherit_graph_100.png | Bin 1936 -> 1732 bytes docs/doxygen/html/inherit_graph_101.map | 2 +- docs/doxygen/html/inherit_graph_101.md5 | 2 +- docs/doxygen/html/inherit_graph_101.png | Bin 1247 -> 1434 bytes docs/doxygen/html/inherit_graph_102.map | 2 +- docs/doxygen/html/inherit_graph_102.md5 | 2 +- docs/doxygen/html/inherit_graph_102.png | Bin 1790 -> 1936 bytes docs/doxygen/html/inherit_graph_103.map | 2 +- docs/doxygen/html/inherit_graph_103.md5 | 2 +- docs/doxygen/html/inherit_graph_103.png | Bin 1808 -> 1247 bytes docs/doxygen/html/inherit_graph_104.map | 2 +- docs/doxygen/html/inherit_graph_104.md5 | 2 +- docs/doxygen/html/inherit_graph_104.png | Bin 1449 -> 1790 bytes docs/doxygen/html/inherit_graph_105.map | 2 +- docs/doxygen/html/inherit_graph_105.md5 | 2 +- docs/doxygen/html/inherit_graph_105.png | Bin 1530 -> 1808 bytes docs/doxygen/html/inherit_graph_106.map | 2 +- docs/doxygen/html/inherit_graph_106.md5 | 2 +- docs/doxygen/html/inherit_graph_106.png | Bin 1307 -> 1449 bytes docs/doxygen/html/inherit_graph_107.map | 2 +- docs/doxygen/html/inherit_graph_107.md5 | 2 +- docs/doxygen/html/inherit_graph_107.png | Bin 1185 -> 1530 bytes docs/doxygen/html/inherit_graph_108.map | 2 +- docs/doxygen/html/inherit_graph_108.md5 | 2 +- docs/doxygen/html/inherit_graph_108.png | Bin 1443 -> 1307 bytes docs/doxygen/html/inherit_graph_109.map | 2 +- docs/doxygen/html/inherit_graph_109.md5 | 2 +- docs/doxygen/html/inherit_graph_109.png | Bin 1141 -> 1185 bytes docs/doxygen/html/inherit_graph_11.map | 2 +- docs/doxygen/html/inherit_graph_11.md5 | 2 +- docs/doxygen/html/inherit_graph_11.png | Bin 1668 -> 1671 bytes docs/doxygen/html/inherit_graph_110.map | 2 +- docs/doxygen/html/inherit_graph_110.md5 | 2 +- docs/doxygen/html/inherit_graph_110.png | Bin 985 -> 1443 bytes docs/doxygen/html/inherit_graph_111.map | 2 +- docs/doxygen/html/inherit_graph_111.md5 | 2 +- docs/doxygen/html/inherit_graph_111.png | Bin 1518 -> 1141 bytes docs/doxygen/html/inherit_graph_112.map | 2 +- docs/doxygen/html/inherit_graph_112.md5 | 2 +- docs/doxygen/html/inherit_graph_112.png | Bin 1527 -> 985 bytes docs/doxygen/html/inherit_graph_113.map | 2 +- docs/doxygen/html/inherit_graph_113.md5 | 2 +- docs/doxygen/html/inherit_graph_113.png | Bin 1573 -> 1518 bytes docs/doxygen/html/inherit_graph_114.map | 2 +- docs/doxygen/html/inherit_graph_114.md5 | 2 +- docs/doxygen/html/inherit_graph_114.png | Bin 1083 -> 1527 bytes docs/doxygen/html/inherit_graph_115.map | 2 +- docs/doxygen/html/inherit_graph_115.md5 | 2 +- docs/doxygen/html/inherit_graph_115.png | Bin 1234 -> 1573 bytes docs/doxygen/html/inherit_graph_116.map | 2 +- docs/doxygen/html/inherit_graph_116.md5 | 2 +- docs/doxygen/html/inherit_graph_116.png | Bin 1366 -> 1083 bytes docs/doxygen/html/inherit_graph_117.map | 2 +- docs/doxygen/html/inherit_graph_117.md5 | 2 +- docs/doxygen/html/inherit_graph_117.png | Bin 1349 -> 1234 bytes docs/doxygen/html/inherit_graph_118.map | 2 +- docs/doxygen/html/inherit_graph_118.md5 | 2 +- docs/doxygen/html/inherit_graph_118.png | Bin 1411 -> 1366 bytes docs/doxygen/html/inherit_graph_119.map | 3 + docs/doxygen/html/inherit_graph_119.md5 | 1 + docs/doxygen/html/inherit_graph_119.png | Bin 0 -> 1349 bytes docs/doxygen/html/inherit_graph_12.map | 2 +- docs/doxygen/html/inherit_graph_12.md5 | 2 +- docs/doxygen/html/inherit_graph_12.png | Bin 1479 -> 1668 bytes docs/doxygen/html/inherit_graph_120.map | 3 + docs/doxygen/html/inherit_graph_120.md5 | 1 + docs/doxygen/html/inherit_graph_120.png | Bin 0 -> 1411 bytes docs/doxygen/html/inherit_graph_13.map | 2 +- docs/doxygen/html/inherit_graph_13.md5 | 2 +- docs/doxygen/html/inherit_graph_13.png | Bin 1593 -> 1479 bytes docs/doxygen/html/inherit_graph_14.map | 2 +- docs/doxygen/html/inherit_graph_14.md5 | 2 +- docs/doxygen/html/inherit_graph_14.png | Bin 1569 -> 1593 bytes docs/doxygen/html/inherit_graph_15.map | 2 +- docs/doxygen/html/inherit_graph_15.md5 | 2 +- docs/doxygen/html/inherit_graph_15.png | Bin 1406 -> 1569 bytes docs/doxygen/html/inherit_graph_16.map | 2 +- docs/doxygen/html/inherit_graph_16.md5 | 2 +- docs/doxygen/html/inherit_graph_16.png | Bin 1465 -> 1406 bytes docs/doxygen/html/inherit_graph_17.map | 2 +- docs/doxygen/html/inherit_graph_17.md5 | 2 +- docs/doxygen/html/inherit_graph_17.png | Bin 1087 -> 1465 bytes docs/doxygen/html/inherit_graph_18.map | 2 +- docs/doxygen/html/inherit_graph_18.md5 | 2 +- docs/doxygen/html/inherit_graph_18.png | Bin 1331 -> 1087 bytes docs/doxygen/html/inherit_graph_19.map | 2 +- docs/doxygen/html/inherit_graph_19.md5 | 2 +- docs/doxygen/html/inherit_graph_19.png | Bin 1191 -> 1331 bytes docs/doxygen/html/inherit_graph_2.map | 2 +- docs/doxygen/html/inherit_graph_2.md5 | 2 +- docs/doxygen/html/inherit_graph_2.png | Bin 1217 -> 1156 bytes docs/doxygen/html/inherit_graph_20.map | 2 +- docs/doxygen/html/inherit_graph_20.md5 | 2 +- docs/doxygen/html/inherit_graph_20.png | Bin 1777 -> 1191 bytes docs/doxygen/html/inherit_graph_21.map | 2 +- docs/doxygen/html/inherit_graph_21.md5 | 2 +- docs/doxygen/html/inherit_graph_21.png | Bin 1204 -> 1777 bytes docs/doxygen/html/inherit_graph_22.map | 2 +- docs/doxygen/html/inherit_graph_22.md5 | 2 +- docs/doxygen/html/inherit_graph_22.png | Bin 1760 -> 1204 bytes docs/doxygen/html/inherit_graph_23.map | 2 +- docs/doxygen/html/inherit_graph_23.md5 | 2 +- docs/doxygen/html/inherit_graph_23.png | Bin 1220 -> 1760 bytes docs/doxygen/html/inherit_graph_24.map | 2 +- docs/doxygen/html/inherit_graph_24.md5 | 2 +- docs/doxygen/html/inherit_graph_24.png | Bin 1197 -> 1220 bytes docs/doxygen/html/inherit_graph_25.map | 2 +- docs/doxygen/html/inherit_graph_25.md5 | 2 +- docs/doxygen/html/inherit_graph_25.png | Bin 1417 -> 1197 bytes docs/doxygen/html/inherit_graph_26.map | 2 +- docs/doxygen/html/inherit_graph_26.md5 | 2 +- docs/doxygen/html/inherit_graph_26.png | Bin 1140 -> 1417 bytes docs/doxygen/html/inherit_graph_27.map | 2 +- docs/doxygen/html/inherit_graph_27.md5 | 2 +- docs/doxygen/html/inherit_graph_27.png | Bin 674 -> 1140 bytes docs/doxygen/html/inherit_graph_28.map | 2 +- docs/doxygen/html/inherit_graph_28.md5 | 2 +- docs/doxygen/html/inherit_graph_28.png | Bin 1301 -> 674 bytes docs/doxygen/html/inherit_graph_29.map | 2 +- docs/doxygen/html/inherit_graph_29.md5 | 2 +- docs/doxygen/html/inherit_graph_29.png | Bin 1068 -> 1116 bytes docs/doxygen/html/inherit_graph_3.map | 2 +- docs/doxygen/html/inherit_graph_3.md5 | 2 +- docs/doxygen/html/inherit_graph_3.png | Bin 1328 -> 1217 bytes docs/doxygen/html/inherit_graph_30.map | 2 +- docs/doxygen/html/inherit_graph_30.md5 | 2 +- docs/doxygen/html/inherit_graph_30.png | Bin 1161 -> 1301 bytes docs/doxygen/html/inherit_graph_31.map | 2 +- docs/doxygen/html/inherit_graph_31.md5 | 2 +- docs/doxygen/html/inherit_graph_31.png | Bin 1579 -> 1068 bytes docs/doxygen/html/inherit_graph_32.map | 2 +- docs/doxygen/html/inherit_graph_32.md5 | 2 +- docs/doxygen/html/inherit_graph_32.png | Bin 1141 -> 1161 bytes docs/doxygen/html/inherit_graph_33.map | 2 +- docs/doxygen/html/inherit_graph_33.md5 | 2 +- docs/doxygen/html/inherit_graph_33.png | Bin 1277 -> 1579 bytes docs/doxygen/html/inherit_graph_34.map | 2 +- docs/doxygen/html/inherit_graph_34.md5 | 2 +- docs/doxygen/html/inherit_graph_34.png | Bin 1330 -> 1141 bytes docs/doxygen/html/inherit_graph_35.map | 2 +- docs/doxygen/html/inherit_graph_35.md5 | 2 +- docs/doxygen/html/inherit_graph_35.png | Bin 1257 -> 1277 bytes docs/doxygen/html/inherit_graph_36.map | 2 +- docs/doxygen/html/inherit_graph_36.md5 | 2 +- docs/doxygen/html/inherit_graph_36.png | Bin 1371 -> 1330 bytes docs/doxygen/html/inherit_graph_37.map | 2 +- docs/doxygen/html/inherit_graph_37.md5 | 2 +- docs/doxygen/html/inherit_graph_37.png | Bin 1281 -> 1257 bytes docs/doxygen/html/inherit_graph_38.map | 2 +- docs/doxygen/html/inherit_graph_38.md5 | 2 +- docs/doxygen/html/inherit_graph_38.png | Bin 1088 -> 1371 bytes docs/doxygen/html/inherit_graph_39.map | 2 +- docs/doxygen/html/inherit_graph_39.md5 | 2 +- docs/doxygen/html/inherit_graph_39.png | Bin 1317 -> 1281 bytes docs/doxygen/html/inherit_graph_4.map | 2 +- docs/doxygen/html/inherit_graph_4.md5 | 2 +- docs/doxygen/html/inherit_graph_4.png | Bin 1339 -> 1328 bytes docs/doxygen/html/inherit_graph_40.map | 2 +- docs/doxygen/html/inherit_graph_40.md5 | 2 +- docs/doxygen/html/inherit_graph_40.png | Bin 1237 -> 1088 bytes docs/doxygen/html/inherit_graph_41.map | 2 +- docs/doxygen/html/inherit_graph_41.md5 | 2 +- docs/doxygen/html/inherit_graph_41.png | Bin 1264 -> 1317 bytes docs/doxygen/html/inherit_graph_42.map | 2 +- docs/doxygen/html/inherit_graph_42.md5 | 2 +- docs/doxygen/html/inherit_graph_42.png | Bin 1482 -> 1237 bytes docs/doxygen/html/inherit_graph_43.map | 2 +- docs/doxygen/html/inherit_graph_43.md5 | 2 +- docs/doxygen/html/inherit_graph_43.png | Bin 1114 -> 1264 bytes docs/doxygen/html/inherit_graph_44.map | 2 +- docs/doxygen/html/inherit_graph_44.md5 | 2 +- docs/doxygen/html/inherit_graph_44.png | Bin 1334 -> 1482 bytes docs/doxygen/html/inherit_graph_45.map | 2 +- docs/doxygen/html/inherit_graph_45.md5 | 2 +- docs/doxygen/html/inherit_graph_45.png | Bin 1280 -> 1114 bytes docs/doxygen/html/inherit_graph_46.map | 2 +- docs/doxygen/html/inherit_graph_46.md5 | 2 +- docs/doxygen/html/inherit_graph_46.png | Bin 1904 -> 1334 bytes docs/doxygen/html/inherit_graph_47.map | 2 +- docs/doxygen/html/inherit_graph_47.md5 | 2 +- docs/doxygen/html/inherit_graph_47.png | Bin 1214 -> 1280 bytes docs/doxygen/html/inherit_graph_48.map | 2 +- docs/doxygen/html/inherit_graph_48.md5 | 2 +- docs/doxygen/html/inherit_graph_48.png | Bin 1300 -> 1904 bytes docs/doxygen/html/inherit_graph_49.map | 3 +- docs/doxygen/html/inherit_graph_49.md5 | 2 +- docs/doxygen/html/inherit_graph_49.png | Bin 2795 -> 1214 bytes docs/doxygen/html/inherit_graph_5.map | 2 +- docs/doxygen/html/inherit_graph_5.md5 | 2 +- docs/doxygen/html/inherit_graph_5.png | Bin 1198 -> 1339 bytes docs/doxygen/html/inherit_graph_50.map | 2 +- docs/doxygen/html/inherit_graph_50.md5 | 2 +- docs/doxygen/html/inherit_graph_50.png | Bin 1089 -> 1300 bytes docs/doxygen/html/inherit_graph_51.map | 3 +- docs/doxygen/html/inherit_graph_51.md5 | 2 +- docs/doxygen/html/inherit_graph_51.png | Bin 1144 -> 2795 bytes docs/doxygen/html/inherit_graph_52.map | 2 +- docs/doxygen/html/inherit_graph_52.md5 | 2 +- docs/doxygen/html/inherit_graph_52.png | Bin 1273 -> 1089 bytes docs/doxygen/html/inherit_graph_53.map | 3 +- docs/doxygen/html/inherit_graph_53.md5 | 2 +- docs/doxygen/html/inherit_graph_53.png | Bin 2195 -> 1144 bytes docs/doxygen/html/inherit_graph_54.map | 2 +- docs/doxygen/html/inherit_graph_54.md5 | 2 +- docs/doxygen/html/inherit_graph_54.png | Bin 1269 -> 1273 bytes docs/doxygen/html/inherit_graph_55.map | 3 +- docs/doxygen/html/inherit_graph_55.md5 | 2 +- docs/doxygen/html/inherit_graph_55.png | Bin 1725 -> 2195 bytes docs/doxygen/html/inherit_graph_56.map | 2 +- docs/doxygen/html/inherit_graph_56.md5 | 2 +- docs/doxygen/html/inherit_graph_56.png | Bin 911 -> 1269 bytes docs/doxygen/html/inherit_graph_57.map | 2 +- docs/doxygen/html/inherit_graph_57.md5 | 2 +- docs/doxygen/html/inherit_graph_57.png | Bin 1369 -> 1725 bytes docs/doxygen/html/inherit_graph_58.map | 2 +- docs/doxygen/html/inherit_graph_58.md5 | 2 +- docs/doxygen/html/inherit_graph_58.png | Bin 1571 -> 911 bytes docs/doxygen/html/inherit_graph_59.map | 2 +- docs/doxygen/html/inherit_graph_59.md5 | 2 +- docs/doxygen/html/inherit_graph_59.png | Bin 1340 -> 1369 bytes docs/doxygen/html/inherit_graph_6.map | 2 +- docs/doxygen/html/inherit_graph_6.md5 | 2 +- docs/doxygen/html/inherit_graph_6.png | Bin 1556 -> 1198 bytes docs/doxygen/html/inherit_graph_60.map | 2 +- docs/doxygen/html/inherit_graph_60.md5 | 2 +- docs/doxygen/html/inherit_graph_60.png | Bin 1573 -> 1571 bytes docs/doxygen/html/inherit_graph_61.map | 2 +- docs/doxygen/html/inherit_graph_61.md5 | 2 +- docs/doxygen/html/inherit_graph_61.png | Bin 1583 -> 1340 bytes docs/doxygen/html/inherit_graph_62.map | 2 +- docs/doxygen/html/inherit_graph_62.md5 | 2 +- docs/doxygen/html/inherit_graph_62.png | Bin 2616 -> 1573 bytes docs/doxygen/html/inherit_graph_63.map | 2 +- docs/doxygen/html/inherit_graph_63.md5 | 2 +- docs/doxygen/html/inherit_graph_63.png | Bin 2503 -> 1583 bytes docs/doxygen/html/inherit_graph_64.map | 2 +- docs/doxygen/html/inherit_graph_64.md5 | 2 +- docs/doxygen/html/inherit_graph_64.png | Bin 1440 -> 2616 bytes docs/doxygen/html/inherit_graph_65.map | 2 +- docs/doxygen/html/inherit_graph_65.md5 | 2 +- docs/doxygen/html/inherit_graph_65.png | Bin 1494 -> 2503 bytes docs/doxygen/html/inherit_graph_66.map | 2 +- docs/doxygen/html/inherit_graph_66.md5 | 2 +- docs/doxygen/html/inherit_graph_66.png | Bin 1882 -> 1440 bytes docs/doxygen/html/inherit_graph_67.map | 2 +- docs/doxygen/html/inherit_graph_67.md5 | 2 +- docs/doxygen/html/inherit_graph_67.png | Bin 1122 -> 1494 bytes docs/doxygen/html/inherit_graph_68.map | 2 +- docs/doxygen/html/inherit_graph_68.md5 | 2 +- docs/doxygen/html/inherit_graph_68.png | Bin 878 -> 1882 bytes docs/doxygen/html/inherit_graph_69.map | 2 +- docs/doxygen/html/inherit_graph_69.md5 | 2 +- docs/doxygen/html/inherit_graph_69.png | Bin 1123 -> 1122 bytes docs/doxygen/html/inherit_graph_7.map | 2 +- docs/doxygen/html/inherit_graph_7.md5 | 2 +- docs/doxygen/html/inherit_graph_7.png | Bin 1726 -> 1556 bytes docs/doxygen/html/inherit_graph_70.map | 2 +- docs/doxygen/html/inherit_graph_70.md5 | 2 +- docs/doxygen/html/inherit_graph_70.png | Bin 1648 -> 878 bytes docs/doxygen/html/inherit_graph_71.map | 2 +- docs/doxygen/html/inherit_graph_71.md5 | 2 +- docs/doxygen/html/inherit_graph_71.png | Bin 1443 -> 1123 bytes docs/doxygen/html/inherit_graph_72.map | 2 +- docs/doxygen/html/inherit_graph_72.md5 | 2 +- docs/doxygen/html/inherit_graph_72.png | Bin 1654 -> 1648 bytes docs/doxygen/html/inherit_graph_73.map | 2 +- docs/doxygen/html/inherit_graph_73.md5 | 2 +- docs/doxygen/html/inherit_graph_73.png | Bin 925 -> 1443 bytes docs/doxygen/html/inherit_graph_74.map | 2 +- docs/doxygen/html/inherit_graph_74.md5 | 2 +- docs/doxygen/html/inherit_graph_74.png | Bin 1459 -> 1654 bytes docs/doxygen/html/inherit_graph_75.map | 2 +- docs/doxygen/html/inherit_graph_75.md5 | 2 +- docs/doxygen/html/inherit_graph_75.png | Bin 1014 -> 925 bytes docs/doxygen/html/inherit_graph_76.map | 2 +- docs/doxygen/html/inherit_graph_76.md5 | 2 +- docs/doxygen/html/inherit_graph_76.png | Bin 1212 -> 1459 bytes docs/doxygen/html/inherit_graph_77.map | 2 +- docs/doxygen/html/inherit_graph_77.md5 | 2 +- docs/doxygen/html/inherit_graph_77.png | Bin 1059 -> 1014 bytes docs/doxygen/html/inherit_graph_78.map | 2 +- docs/doxygen/html/inherit_graph_78.md5 | 2 +- docs/doxygen/html/inherit_graph_78.png | Bin 869 -> 1212 bytes docs/doxygen/html/inherit_graph_79.map | 2 +- docs/doxygen/html/inherit_graph_79.md5 | 2 +- docs/doxygen/html/inherit_graph_79.png | Bin 1428 -> 1059 bytes docs/doxygen/html/inherit_graph_8.map | 2 +- docs/doxygen/html/inherit_graph_8.md5 | 2 +- docs/doxygen/html/inherit_graph_8.png | Bin 1647 -> 1726 bytes docs/doxygen/html/inherit_graph_80.map | 2 +- docs/doxygen/html/inherit_graph_80.md5 | 2 +- docs/doxygen/html/inherit_graph_80.png | Bin 1466 -> 869 bytes docs/doxygen/html/inherit_graph_81.map | 2 +- docs/doxygen/html/inherit_graph_81.md5 | 2 +- docs/doxygen/html/inherit_graph_81.png | Bin 1490 -> 1428 bytes docs/doxygen/html/inherit_graph_82.map | 2 +- docs/doxygen/html/inherit_graph_82.md5 | 2 +- docs/doxygen/html/inherit_graph_82.png | Bin 1328 -> 1466 bytes docs/doxygen/html/inherit_graph_83.map | 2 +- docs/doxygen/html/inherit_graph_83.md5 | 2 +- docs/doxygen/html/inherit_graph_83.png | Bin 1154 -> 1490 bytes docs/doxygen/html/inherit_graph_84.map | 2 +- docs/doxygen/html/inherit_graph_84.md5 | 2 +- docs/doxygen/html/inherit_graph_84.png | Bin 1310 -> 1328 bytes docs/doxygen/html/inherit_graph_85.map | 2 +- docs/doxygen/html/inherit_graph_85.md5 | 2 +- docs/doxygen/html/inherit_graph_85.png | Bin 1104 -> 1154 bytes docs/doxygen/html/inherit_graph_86.map | 2 +- docs/doxygen/html/inherit_graph_86.md5 | 2 +- docs/doxygen/html/inherit_graph_86.png | Bin 1480 -> 1310 bytes docs/doxygen/html/inherit_graph_87.map | 2 +- docs/doxygen/html/inherit_graph_87.md5 | 2 +- docs/doxygen/html/inherit_graph_87.png | Bin 1244 -> 1104 bytes docs/doxygen/html/inherit_graph_88.map | 2 +- docs/doxygen/html/inherit_graph_88.md5 | 2 +- docs/doxygen/html/inherit_graph_88.png | Bin 1518 -> 1480 bytes docs/doxygen/html/inherit_graph_89.map | 2 +- docs/doxygen/html/inherit_graph_89.md5 | 2 +- docs/doxygen/html/inherit_graph_89.png | Bin 1126 -> 1244 bytes docs/doxygen/html/inherit_graph_9.map | 2 +- docs/doxygen/html/inherit_graph_9.md5 | 2 +- docs/doxygen/html/inherit_graph_9.png | Bin 1746 -> 1647 bytes docs/doxygen/html/inherit_graph_90.map | 2 +- docs/doxygen/html/inherit_graph_90.md5 | 2 +- docs/doxygen/html/inherit_graph_90.png | Bin 1310 -> 1518 bytes docs/doxygen/html/inherit_graph_91.map | 2 +- docs/doxygen/html/inherit_graph_91.md5 | 2 +- docs/doxygen/html/inherit_graph_91.png | Bin 1308 -> 1126 bytes docs/doxygen/html/inherit_graph_92.map | 2 +- docs/doxygen/html/inherit_graph_92.md5 | 2 +- docs/doxygen/html/inherit_graph_92.png | Bin 1446 -> 1310 bytes docs/doxygen/html/inherit_graph_93.map | 2 +- docs/doxygen/html/inherit_graph_93.md5 | 2 +- docs/doxygen/html/inherit_graph_93.png | Bin 2085 -> 1308 bytes docs/doxygen/html/inherit_graph_94.map | 2 +- docs/doxygen/html/inherit_graph_94.md5 | 2 +- docs/doxygen/html/inherit_graph_94.png | Bin 1693 -> 1446 bytes docs/doxygen/html/inherit_graph_95.map | 2 +- docs/doxygen/html/inherit_graph_95.md5 | 2 +- docs/doxygen/html/inherit_graph_95.png | Bin 1929 -> 2085 bytes docs/doxygen/html/inherit_graph_96.map | 2 +- docs/doxygen/html/inherit_graph_96.md5 | 2 +- docs/doxygen/html/inherit_graph_96.png | Bin 1668 -> 1693 bytes docs/doxygen/html/inherit_graph_97.map | 2 +- docs/doxygen/html/inherit_graph_97.md5 | 2 +- docs/doxygen/html/inherit_graph_97.png | Bin 1833 -> 1929 bytes docs/doxygen/html/inherit_graph_98.map | 2 +- docs/doxygen/html/inherit_graph_98.md5 | 2 +- docs/doxygen/html/inherit_graph_98.png | Bin 1732 -> 1668 bytes docs/doxygen/html/inherit_graph_99.map | 2 +- docs/doxygen/html/inherit_graph_99.md5 | 2 +- docs/doxygen/html/inherit_graph_99.png | Bin 1434 -> 1833 bytes docs/doxygen/html/inherits.html | 248 +- docs/doxygen/html/ir__Airton_8h.html | 313 ++ docs/doxygen/html/ir__Airton_8h_source.html | 283 + docs/doxygen/html/ir__Airwell_8h_source.html | 4 +- docs/doxygen/html/ir__Amcor_8h_source.html | 6 +- docs/doxygen/html/ir__Argo_8h_source.html | 6 +- docs/doxygen/html/ir__Arris_8cpp.html | 2 +- docs/doxygen/html/ir__Carrier_8h_source.html | 4 +- docs/doxygen/html/ir__Coolix_8cpp.html | 16 + docs/doxygen/html/ir__Coolix_8h.html | 5 +- docs/doxygen/html/ir__Coolix_8h_source.html | 554 +- docs/doxygen/html/ir__Corona_8h_source.html | 6 +- docs/doxygen/html/ir__Daikin_8h.html | 8 +- docs/doxygen/html/ir__Daikin_8h_source.html | 32 +- docs/doxygen/html/ir__Delonghi_8h_source.html | 4 +- docs/doxygen/html/ir__Denon_8cpp.html | 2 +- docs/doxygen/html/ir__Ecoclim_8h_source.html | 4 +- docs/doxygen/html/ir__Electra_8h_source.html | 6 +- docs/doxygen/html/ir__Fujitsu_8h_source.html | 560 +- docs/doxygen/html/ir__GICable_8cpp.html | 2 +- .../html/ir__Goodweather_8h_source.html | 4 +- docs/doxygen/html/ir__Gree_8h_source.html | 6 +- docs/doxygen/html/ir__Haier_8h_source.html | 14 +- docs/doxygen/html/ir__Hitachi_8h_source.html | 14 +- docs/doxygen/html/ir__JVC_8cpp.html | 2 +- docs/doxygen/html/ir__Kelon_8h_source.html | 4 +- .../html/ir__Kelvinator_8h_source.html | 6 +- docs/doxygen/html/ir__LG_8h_source.html | 8 +- .../doxygen/html/ir__Magiquest_8h_source.html | 4 +- docs/doxygen/html/ir__Midea_8h_source.html | 4 +- docs/doxygen/html/ir__Mirage_8h_source.html | 6 +- .../html/ir__MitsubishiHeavy_8h_source.html | 10 +- docs/doxygen/html/ir__Mitsubishi_8h.html | 48 + .../html/ir__Mitsubishi_8h_source.html | 1228 ++--- docs/doxygen/html/ir__NEC_8h.html | 2 +- docs/doxygen/html/ir__NEC_8h_source.html | 2 +- docs/doxygen/html/ir__Neoclima_8h_source.html | 6 +- .../doxygen/html/ir__Panasonic_8h_source.html | 6 +- docs/doxygen/html/ir__Rhoss_8h_source.html | 6 +- docs/doxygen/html/ir__Samsung_8cpp.html | 2 +- docs/doxygen/html/ir__Samsung_8h_source.html | 8 +- docs/doxygen/html/ir__Sanyo_8cpp.html | 2 +- docs/doxygen/html/ir__Sanyo_8h_source.html | 10 +- docs/doxygen/html/ir__Sharp_8cpp.html | 4 +- docs/doxygen/html/ir__Sharp_8h_source.html | 6 +- docs/doxygen/html/ir__Tcl_8h_source.html | 488 +- .../doxygen/html/ir__Technibel_8h_source.html | 4 +- docs/doxygen/html/ir__Teco_8h_source.html | 4 +- docs/doxygen/html/ir__Toshiba_8h.html | 4 +- docs/doxygen/html/ir__Toshiba_8h_source.html | 450 +- .../doxygen/html/ir__Transcold_8h_source.html | 4 +- docs/doxygen/html/ir__Trotec_8h_source.html | 6 +- docs/doxygen/html/ir__Truma_8h_source.html | 4 +- docs/doxygen/html/ir__Vestel_8h_source.html | 4 +- docs/doxygen/html/ir__Voltas_8h_source.html | 6 +- .../doxygen/html/ir__Whirlpool_8h_source.html | 6 +- docs/doxygen/html/ir__Whynter_8cpp.html | 2 +- docs/doxygen/html/namespaceirutils.html | 55 + docs/doxygen/html/namespacemembers.html | 7 +- docs/doxygen/html/namespacemembers_func.html | 3 + docs/doxygen/html/search/all_0.js | 20 +- docs/doxygen/html/search/all_1.js | 74 +- docs/doxygen/html/search/all_10.js | 64 +- docs/doxygen/html/search/all_11.js | 2 +- docs/doxygen/html/search/all_12.js | 60 +- docs/doxygen/html/search/all_13.js | 695 +-- docs/doxygen/html/search/all_14.js | 150 +- docs/doxygen/html/search/all_15.js | 30 +- docs/doxygen/html/search/all_16.js | 32 +- docs/doxygen/html/search/all_17.js | 20 +- docs/doxygen/html/search/all_18.js | 6 +- docs/doxygen/html/search/all_19.js | 4 +- docs/doxygen/html/search/all_1a.js | 8 +- docs/doxygen/html/search/all_1b.js | 2 +- docs/doxygen/html/search/all_2.js | 30 +- docs/doxygen/html/search/all_3.js | 139 +- docs/doxygen/html/search/all_4.js | 298 +- docs/doxygen/html/search/all_5.js | 87 +- docs/doxygen/html/search/all_6.js | 52 +- docs/doxygen/html/search/all_7.js | 294 +- docs/doxygen/html/search/all_8.js | 85 +- docs/doxygen/html/search/all_9.js | 476 +- docs/doxygen/html/search/all_a.js | 4 +- docs/doxygen/html/search/all_b.js | 4700 +++++++++-------- docs/doxygen/html/search/all_c.js | 46 +- docs/doxygen/html/search/all_d.js | 112 +- docs/doxygen/html/search/all_e.js | 16 +- docs/doxygen/html/search/all_f.js | 94 +- docs/doxygen/html/search/classes_0.js | 7 +- docs/doxygen/html/search/classes_1.js | 8 +- docs/doxygen/html/search/classes_10.js | 4 +- docs/doxygen/html/search/classes_11.js | 2 +- docs/doxygen/html/search/classes_2.js | 20 +- docs/doxygen/html/search/classes_3.js | 4 +- docs/doxygen/html/search/classes_4.js | 2 +- docs/doxygen/html/search/classes_5.js | 4 +- docs/doxygen/html/search/classes_6.js | 10 +- docs/doxygen/html/search/classes_7.js | 125 +- docs/doxygen/html/search/classes_8.js | 4 +- docs/doxygen/html/search/classes_9.js | 2 +- docs/doxygen/html/search/classes_a.js | 18 +- docs/doxygen/html/search/classes_b.js | 2 +- docs/doxygen/html/search/classes_c.js | 2 +- docs/doxygen/html/search/classes_d.js | 2 +- docs/doxygen/html/search/classes_e.js | 10 +- docs/doxygen/html/search/classes_f.js | 18 +- docs/doxygen/html/search/enums_0.js | 2 +- docs/doxygen/html/search/enums_1.js | 4 +- docs/doxygen/html/search/enums_2.js | 2 +- docs/doxygen/html/search/enums_3.js | 4 +- docs/doxygen/html/search/enums_4.js | 2 +- docs/doxygen/html/search/enums_5.js | 2 +- docs/doxygen/html/search/enums_6.js | 2 +- docs/doxygen/html/search/enums_7.js | 2 +- docs/doxygen/html/search/enums_8.js | 6 +- docs/doxygen/html/search/enums_9.js | 2 +- docs/doxygen/html/search/enums_a.js | 2 +- docs/doxygen/html/search/enums_b.js | 2 +- docs/doxygen/html/search/enumvalues_0.js | 36 +- docs/doxygen/html/search/enumvalues_1.js | 2 +- docs/doxygen/html/search/enumvalues_10.js | 26 +- docs/doxygen/html/search/enumvalues_11.js | 20 +- docs/doxygen/html/search/enumvalues_12.js | 4 +- docs/doxygen/html/search/enumvalues_13.js | 8 +- docs/doxygen/html/search/enumvalues_14.js | 4 +- docs/doxygen/html/search/enumvalues_15.js | 2 +- docs/doxygen/html/search/enumvalues_16.js | 4 +- docs/doxygen/html/search/enumvalues_17.js | 2 +- docs/doxygen/html/search/enumvalues_2.js | 11 +- docs/doxygen/html/search/enumvalues_3.js | 28 +- docs/doxygen/html/search/enumvalues_4.js | 8 +- docs/doxygen/html/search/enumvalues_5.js | 2 +- docs/doxygen/html/search/enumvalues_6.js | 12 +- docs/doxygen/html/search/enumvalues_7.js | 18 +- docs/doxygen/html/search/enumvalues_8.js | 2 +- docs/doxygen/html/search/enumvalues_9.js | 2 +- docs/doxygen/html/search/enumvalues_a.js | 74 +- docs/doxygen/html/search/enumvalues_b.js | 10 +- docs/doxygen/html/search/enumvalues_c.js | 30 +- docs/doxygen/html/search/enumvalues_d.js | 8 +- docs/doxygen/html/search/enumvalues_e.js | 10 +- docs/doxygen/html/search/enumvalues_f.js | 16 +- docs/doxygen/html/search/files_0.js | 8 +- docs/doxygen/html/search/files_1.js | 10 +- docs/doxygen/html/search/files_2.js | 2 +- docs/doxygen/html/search/files_3.js | 255 +- docs/doxygen/html/search/files_4.js | 2 +- docs/doxygen/html/search/files_5.js | 4 +- docs/doxygen/html/search/files_6.js | 2 +- docs/doxygen/html/search/files_7.js | 2 +- docs/doxygen/html/search/functions_0.js | 52 +- docs/doxygen/html/search/functions_1.js | 37 +- docs/doxygen/html/search/functions_10.js | 22 +- docs/doxygen/html/search/functions_11.js | 531 +- docs/doxygen/html/search/functions_12.js | 54 +- docs/doxygen/html/search/functions_13.js | 12 +- docs/doxygen/html/search/functions_14.js | 8 +- docs/doxygen/html/search/functions_15.js | 2 +- docs/doxygen/html/search/functions_16.js | 2 +- docs/doxygen/html/search/functions_17.js | 2 +- docs/doxygen/html/search/functions_2.js | 8 +- docs/doxygen/html/search/functions_3.js | 74 +- docs/doxygen/html/search/functions_4.js | 227 +- docs/doxygen/html/search/functions_5.js | 52 +- docs/doxygen/html/search/functions_6.js | 12 +- docs/doxygen/html/search/functions_7.js | 280 +- docs/doxygen/html/search/functions_8.js | 26 +- docs/doxygen/html/search/functions_9.js | 183 +- docs/doxygen/html/search/functions_a.js | 4 +- docs/doxygen/html/search/functions_b.js | 8 +- docs/doxygen/html/search/functions_c.js | 50 +- docs/doxygen/html/search/functions_d.js | 2 +- docs/doxygen/html/search/functions_e.js | 6 +- docs/doxygen/html/search/functions_f.js | 4 +- docs/doxygen/html/search/namespaces_0.js | 2 +- docs/doxygen/html/search/namespaces_1.js | 6 +- docs/doxygen/html/search/namespaces_2.js | 2 +- docs/doxygen/html/search/pages_0.js | 2 +- docs/doxygen/html/search/pages_1.js | 4 +- docs/doxygen/html/search/pages_2.js | 2 +- docs/doxygen/html/search/related_0.js | 4 +- docs/doxygen/html/search/typedefs_0.js | 2 +- docs/doxygen/html/search/typedefs_1.js | 2 +- docs/doxygen/html/search/variables_0.js | 164 +- docs/doxygen/html/search/variables_1.js | 7 +- docs/doxygen/html/search/variables_10.js | 2 +- docs/doxygen/html/search/variables_11.js | 20 +- docs/doxygen/html/search/variables_12.js | 122 +- docs/doxygen/html/search/variables_13.js | 64 +- docs/doxygen/html/search/variables_14.js | 16 +- docs/doxygen/html/search/variables_15.js | 12 +- docs/doxygen/html/search/variables_16.js | 10 +- docs/doxygen/html/search/variables_17.js | 2 +- docs/doxygen/html/search/variables_18.js | 4 +- docs/doxygen/html/search/variables_2.js | 20 +- docs/doxygen/html/search/variables_3.js | 50 +- docs/doxygen/html/search/variables_4.js | 27 +- docs/doxygen/html/search/variables_5.js | 15 +- docs/doxygen/html/search/variables_6.js | 30 +- docs/doxygen/html/search/variables_7.js | 25 +- docs/doxygen/html/search/variables_8.js | 26 +- docs/doxygen/html/search/variables_9.js | 2 +- docs/doxygen/html/search/variables_a.js | 4622 ++++++++-------- docs/doxygen/html/search/variables_b.js | 26 +- docs/doxygen/html/search/variables_c.js | 24 +- docs/doxygen/html/search/variables_d.js | 6 +- docs/doxygen/html/search/variables_e.js | 86 +- docs/doxygen/html/search/variables_f.js | 46 +- .../html/unionAirtonProtocol-members.html | 98 + docs/doxygen/html/unionAirtonProtocol.html | 419 ++ docs/doxygen/html/unionAirwellProtocol.html | 38 +- docs/doxygen/html/unionAmcorProtocol.html | 74 +- docs/doxygen/html/unionArgoProtocol.html | 118 +- docs/doxygen/html/unionCarrierProtocol.html | 86 +- docs/doxygen/html/unionCoolixProtocol.html | 60 +- docs/doxygen/html/unionCoronaProtocol.html | 70 +- docs/doxygen/html/unionDaikin128Protocol.html | 110 +- docs/doxygen/html/unionDaikin152Protocol.html | 102 +- docs/doxygen/html/unionDaikin160Protocol.html | 78 +- docs/doxygen/html/unionDaikin176Protocol.html | 130 +- docs/doxygen/html/unionDaikin216Protocol.html | 90 +- docs/doxygen/html/unionDaikin2Protocol.html | 236 +- docs/doxygen/html/unionDaikin64Protocol.html | 78 +- docs/doxygen/html/unionDaikinESPProtocol.html | 170 +- docs/doxygen/html/unionDelonghiProtocol.html | 90 +- docs/doxygen/html/unionEcoclimProtocol.html | 102 +- docs/doxygen/html/unionElectraProtocol.html | 118 +- docs/doxygen/html/unionFujitsuProtocol.html | 144 +- .../html/unionGoodweatherProtocol.html | 78 +- docs/doxygen/html/unionGreeProtocol.html | 134 +- .../doxygen/html/unionHaierAc176Protocol.html | 174 +- docs/doxygen/html/unionHaierProtocol.html | 90 +- docs/doxygen/html/unionHitachi1Protocol.html | 90 +- .../doxygen/html/unionHitachi424Protocol.html | 78 +- docs/doxygen/html/unionHitachiProtocol.html | 66 +- docs/doxygen/html/unionKelonProtocol.html | 74 +- .../doxygen/html/unionKelvinatorProtocol.html | 146 +- docs/doxygen/html/unionLGProtocol.html | 38 +- docs/doxygen/html/unionMideaProtocol.html | 86 +- docs/doxygen/html/unionMirage120Protocol.html | 248 +- .../html/unionMitsubishi112Protocol.html | 74 +- .../html/unionMitsubishi136Protocol.html | 54 +- .../unionMitsubishi144Protocol-members.html | 53 +- .../html/unionMitsubishi144Protocol.html | 266 +- .../html/unionMitsubishi152Protocol.html | 114 +- .../html/unionMitsubishi88Protocol.html | 70 +- docs/doxygen/html/unionNeoclimaProtocol.html | 130 +- .../html/unionPanasonicAc32Protocol.html | 52 +- docs/doxygen/html/unionRhossProtocol.html | 78 +- docs/doxygen/html/unionSamsungProtocol.html | 254 +- docs/doxygen/html/unionSanyoAc88Protocol.html | 98 +- docs/doxygen/html/unionSanyoProtocol.html | 100 +- docs/doxygen/html/unionSharpProtocol.html | 114 +- docs/doxygen/html/unionTcl112Protocol.html | 158 +- docs/doxygen/html/unionTechnibelProtocol.html | 82 +- docs/doxygen/html/unionTecoProtocol.html | 74 +- .../html/unionToshibaProtocol-members.html | 6 +- docs/doxygen/html/unionToshibaProtocol.html | 112 +- docs/doxygen/html/unionTranscoldProtocol.html | 34 +- .../doxygen/html/unionTrotec3550Protocol.html | 86 +- docs/doxygen/html/unionTrotecProtocol.html | 78 +- docs/doxygen/html/unionTrumaProtocol.html | 58 +- docs/doxygen/html/unionVestelProtocol.html | 126 +- docs/doxygen/html/unionVoltasProtocol.html | 126 +- docs/doxygen/html/unionWhirlpoolProtocol.html | 174 +- docs/doxygen/html/unionmagiquest-members.html | 2 +- docs/doxygen/html/unionmagiquest.html | 26 +- keywords.txt | 48 + library.json | 2 +- library.properties | 2 +- src/IRremoteESP8266.h | 2 +- tools/mkkeywords | 5 +- 723 files changed, 22705 insertions(+), 18186 deletions(-) create mode 100644 docs/doxygen/html/classIRAirtonAc-members.html create mode 100644 docs/doxygen/html/classIRAirtonAc.html create mode 100644 docs/doxygen/html/classIRAirtonAc__coll__graph.map create mode 100644 docs/doxygen/html/classIRAirtonAc__coll__graph.md5 create mode 100644 docs/doxygen/html/classIRAirtonAc__coll__graph.png create mode 100644 docs/doxygen/html/inherit_graph_119.map create mode 100644 docs/doxygen/html/inherit_graph_119.md5 create mode 100644 docs/doxygen/html/inherit_graph_119.png create mode 100644 docs/doxygen/html/inherit_graph_120.map create mode 100644 docs/doxygen/html/inherit_graph_120.md5 create mode 100644 docs/doxygen/html/inherit_graph_120.png create mode 100644 docs/doxygen/html/ir__Airton_8h.html create mode 100644 docs/doxygen/html/ir__Airton_8h_source.html create mode 100644 docs/doxygen/html/unionAirtonProtocol-members.html create mode 100644 docs/doxygen/html/unionAirtonProtocol.html diff --git a/README.md b/README.md index 90fd8d4c8..f392c5529 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ This library enables you to **send _and_ receive** infra-red signals on an [ESP8266](https://github.com/esp8266/Arduino) or an [ESP32](https://github.com/espressif/arduino-esp32) using the [Arduino framework](https://www.arduino.cc/) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc. -## v2.8.0 Now Available -Version 2.8.0 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. +## v2.8.1 Now Available +Version 2.8.1 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. #### Upgrading from pre-v2.0 Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/README_de.md b/README_de.md index 4dbd835c4..884628149 100644 --- a/README_de.md +++ b/README_de.md @@ -11,8 +11,8 @@ Diese Programmbibliothek ermöglicht das **Senden _und_ Empfangen** von Infrarotsignalen mit [ESP8266](https://github.com/esp8266/Arduino)- und [ESP32](https://github.com/espressif/arduino-esp32)-Mikrocontrollern mithilfe des [Arduino-Frameworks](https://www.arduino.cc/) und handelsüblichen 940nm Infrarot-LEDs undIR-Empfängermodulen, wie zum Beispiel TSOP{17,22,24,36,38,44,48}*-Demodulatoren. -## v2.8.0 jetzt verfügbar -Version 2.8.0 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.8.1 jetzt verfügbar +Version 2.8.1 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. #### Hinweis für Nutzer von Versionen vor v2.0 Die Benutzung der Bibliothek hat sich mit Version 2.0 leicht geändert. Einige Anpassungen im aufrufenden Code werden nötig sein, um mit Version ab 2.0 korrekt zu funktionieren. Mehr zu den Anpassungen finden sich auf unserer [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0)-Seite. diff --git a/README_fr.md b/README_fr.md index d7033c093..3f1a93048 100644 --- a/README_fr.md +++ b/README_fr.md @@ -10,8 +10,8 @@ Cette librairie vous permetra de **recevoir et d'envoyer des signaux** infrarouge sur le protocole [ESP8266](https://github.com/esp8266/Arduino) ou sur le protocole [ESP32](https://github.com/espressif/arduino-esp32) en utilisant le [Arduino framework](https://www.arduino.cc/) qui utilise la norme 940nm IR LEDs et le module basique de reception d'onde IR. Exemple : TSOP{17,22,24,36,38,44,48}* modules etc. -## v2.8.0 disponible -Version 2.8.0 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. +## v2.8.1 disponible +Version 2.8.1 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/ReleaseNotes.md b/ReleaseNotes.md index 0f41b562d..9c8d7df98 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,29 @@ # Release Notes +## _v2.8.1 (20220101)_ + +**[Bug Fixes]** +- Arduino ESP32 Core v2.0.2+ crashes due to our timer hack. (#1715 #1713) +- SONY: Fix old Sony CD-Player Remote (12 Bit) (#1714) + +**[Features]** +- Add tool to convert protocol & code to raw timing info. (#1708 #1707 #1703) +- Add basic support for COOLIX48 protocol. (#1697 #1694) +- MITSUBISHI_AC: Added support for i-SAVE mode. (#1666) +- TOSHIBA_AC: Add Filter setting support. aka. Pure. (#1693 #1692) +- Airton: Add detailed A/C support. (#1688 #1670) + +**[Misc]** +- Add a structured library version number. (#1717) +- Workflows Split UnitTests (#1712) +- Reduce time for workflow/Build (#1709) +- Fix some compiler & linter warnings (#1699 #1700) +- Fujitsu: Update supported A/C models (#1690 #1689 #1702 #1701) +- Remove extra `const` qualifier for char pointer (#1704) +- TCL: Update supported devices. (#1698) +- ESP32-C3: Work around for some C3 specific compiler issues. (#1696 #1695) + + ## _v2.8.0 (20211119)_ **[Bug Fixes]** diff --git a/SupportedProtocols.md b/SupportedProtocols.md index cf960a0eb..0b6fb06c1 100644 --- a/SupportedProtocols.md +++ b/SupportedProtocols.md @@ -1,11 +1,11 @@ + Last generated: Fri 31 Dec 2021 21:49:00 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | | --- | --- | --- | --- | --- | -| [Airton](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airton.cpp) | **Airton** | RD1A1 remote
SMVH09B-2A2A3NH ref. 409730 A/C | | - | +| [Airton](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airton.cpp) | **[Airton](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airton.h)** | RD1A1 remote
SMVH09B-2A2A3NH ref. 409730 A/C | | Yes | | [Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airwell.cpp) | **[Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airwell.h)** | DLS 21 DCI R410 AW A/C
RC04 remote
RC08W remote | | Yes | | [Aiwa](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Aiwa.cpp) | **Aiwa** | RC-T501 RCU | | - | | [Amcor](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Amcor.cpp) | **[Amcor](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Amcor.h)** | ADR-853H A/C
TAC-444 remote
TAC-495 remote | | Yes | @@ -15,6 +15,7 @@ | [Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.cpp) | **[Carrier/Surrey](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.h)** | 42QG5A55970 remote
53NGK009/012 Inverter
619EGX0090E0 A/C
619EGX0120E0 A/C
619EGX0180E0 A/C
619EGX0220E0 A/C | | Yes | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | RC08B remote | | Yes | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Beko](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | BINR 070/071 split-type A/C
RG57K7(B)/BGEF Remote | | Yes | +| [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Bosch](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | B1ZAI2441W/B1ZAO2441W A/C
RG36B4/BGE remote | | Yes | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Kastron](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | RG57A7/BGEF Inverter remote | | Yes | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Kaysun](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | Casual CF A/C | | Yes | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | MS12FU-10HRDN1-QRD0GW(B) A/C
MSABAU-07HRFN1-QRD0GW A/C (circa 2016)
RG52D/BGE Remote | | Yes | @@ -35,7 +36,7 @@ | [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
EX3220 Projector
EX5220 Projector
EX5230 Projector
EX6220 Projector
EX7220 Projector
VS230 Projector
VS330 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-RAH1U remote (ARREB1E)
AR-RAH2E remote (ARRAH2E)
AR-REB1E remote (ARREB1E)
AR-REW4E remote (ARREW4E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASU12RLF A/C (ARREB1E)
ASU30C1 A/C (ARDB1)
ASYG09KETA-B A/C (ARREW4E)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARREW4E
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-REB4E remote (ARREB1E)
AR-REW1E remote (ARREW4E)
AR-REW4E remote (ARREW4E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASTG09K A/C (ARREW4E)
ASTG18K A/C (ARREW4E)
ASU12RLF A/C (ARREB1E)
ASU30C1 A/C (ARDB1)
ASYG09KETA-B A/C (ARREW4E)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARREW4E
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
ARREW4E
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 | | - | @@ -79,7 +80,7 @@ | [Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.cpp) | **[Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.h)** | VLU series A/C | KKG29AC1
KKG9AC1 | Yes | | [Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.cpp) | **[Tronitechnik](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.h)** | KKG29A-C1 remote
Reykir 9000 A/C | KKG29AC1
KKG9AC1 | Yes | | [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)
MLZ-RX5017AS A/C (MITSUBISHI_AC)
MSH-A24WV A/C (MITSUBISHI112)
MSZ-GV2519 A/C (MITSUBISHI_AC)
MSZ-SF25VE3 A/C (MITSUBISHI_AC)
MSZ-ZW4017S 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)
SG15D remote (MITSUBISHI_AC) | | 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-FHnnVE A/C (MITSUBISHI_AC)
MSZ-GV2519 A/C (MITSUBISHI_AC)
MSZ-SF25VE3 A/C (MITSUBISHI_AC)
MSZ-ZW4017S 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)
SG15D 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 | | - | @@ -107,6 +108,7 @@ | [Symphony](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Symphony.cpp) | **SilverCrest** | SSVS 85 A1 Fan | | - | | [Symphony](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Symphony.cpp) | **Symphony** | Air Cooler 3Di | | - | | [Symphony](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Symphony.cpp) | **Westinghouse** | 78095 Remote
Ceiling fan | | - | +| [Tcl](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.cpp) | **[Daewoo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.h)** | DSB-F0934ELH-V A/C
GYKQ-52E remote | GZ055BE1
TAC09CHSD | Yes | | [Tcl](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.cpp) | **[Leberg](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.h)** | LBS-TOR07 A/C (TAC09CHSD) | GZ055BE1
TAC09CHSD | Yes | | [Tcl](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.cpp) | **[TCL](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.h)** | TAC-09CHSD/XA31I A/C (TAC09CHSD) | GZ055BE1
TAC09CHSD | Yes | | [Tcl](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.cpp) | **[Teknopoint](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.h)** | Allegro SSA-09H A/C (GZ055BE1)
GZ-055B-E1 remote (GZ055BE1) | GZ055BE1
TAC09CHSD | Yes | @@ -114,7 +116,7 @@ | [Teco](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teco.cpp) | **[Alaska](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teco.h)** | SAC9010QC A/C
SAC9010QC remote | | Yes | | [Teknopoint](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teknopoint.cpp) | **Teknopoint** | Allegro SSA-09H A/C
GZ-055B-E1 remote | | - | | [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | 42NQV025M2 / 38NYV025M2 A/C
42NQV035M2 / 38NYV035M2 A/C
42NQV050M2 / 38NYV050M2 A/C
42NQV060M2 / 38NYV060M2 A/C | | Yes | -| [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | Akita EVO II
RAS 18SKP-ES
RAS-2558V A/C
RAS-B13N3KV2
RAS-B13N3KVP-E
WC-L03SE
WH-TA04NE
WH-UB03NJ remote | | Yes | +| [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | Akita EVO II
RAS 18SKP-ES
RAS-2558V A/C
RAS-25SKVP2-ND A/C
RAS-B13N3KV2
RAS-B13N3KVP-E
WC-L03SE
WH-TA01JE remote
WH-TA04NE
WH-UB03NJ remote | | Yes | | [Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.cpp) | **[Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.h)** | M1-F-NO-6 A/C | | Yes | | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Duux](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | Blizzard Smart 10K / DXMA04 A/C (TROTEC) | | Yes | | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | PAC 3200 A/C (TROTEC)
PAC 3550 Pro A/C (TROTEC_3550) | | Yes | @@ -149,6 +151,7 @@ - CARRIER_AC40 - CARRIER_AC64 - COOLIX +- COOLIX48 - CORONA_AC - DAIKIN - DAIKIN128 diff --git a/docs/doxygen/html/IRac_8h_source.html b/docs/doxygen/html/IRac_8h_source.html index 71e879021..89455aacd 100644 --- a/docs/doxygen/html/IRac_8h_source.html +++ b/docs/doxygen/html/IRac_8h_source.html @@ -78,638 +78,649 @@
7 #include <Arduino.h>
8 #endif
9 #include "IRremoteESP8266.h"
-
10 #include "ir_Airwell.h"
-
11 #include "ir_Amcor.h"
-
12 #include "ir_Argo.h"
-
13 #include "ir_Carrier.h"
-
14 #include "ir_Coolix.h"
-
15 #include "ir_Corona.h"
-
16 #include "ir_Daikin.h"
-
17 #include "ir_Delonghi.h"
-
18 #include "ir_Fujitsu.h"
-
19 #include "ir_Ecoclim.h"
-
20 #include "ir_Electra.h"
-
21 #include "ir_Goodweather.h"
-
22 #include "ir_Gree.h"
-
23 #include "ir_Haier.h"
-
24 #include "ir_Hitachi.h"
-
25 #include "ir_Kelon.h"
-
26 #include "ir_Kelvinator.h"
-
27 #include "ir_LG.h"
-
28 #include "ir_Midea.h"
-
29 #include "ir_Mirage.h"
-
30 #include "ir_Mitsubishi.h"
-
31 #include "ir_MitsubishiHeavy.h"
-
32 #include "ir_Neoclima.h"
-
33 #include "ir_Panasonic.h"
-
34 #include "ir_Rhoss.h"
-
35 #include "ir_Samsung.h"
-
36 #include "ir_Sanyo.h"
-
37 #include "ir_Sharp.h"
-
38 #include "ir_Tcl.h"
-
39 #include "ir_Technibel.h"
-
40 #include "ir_Teco.h"
-
41 #include "ir_Toshiba.h"
-
42 #include "ir_Transcold.h"
-
43 #include "ir_Trotec.h"
-
44 #include "ir_Truma.h"
-
45 #include "ir_Vestel.h"
-
46 #include "ir_Voltas.h"
-
47 #include "ir_Whirlpool.h"
-
48 
-
49 // Constants
-
50 const int8_t kGpioUnused = -1;
-
51 
-
52 // Class
-
54 class IRac {
-
55  public:
-
56  explicit IRac(const uint16_t pin, const bool inverted = false,
-
57  const bool use_modulation = true);
-
58  static bool isProtocolSupported(const decode_type_t protocol);
-
59  static void initState(stdAc::state_t *state,
-
60  const decode_type_t vendor, const int16_t model,
-
61  const bool power, const stdAc::opmode_t mode,
-
62  const float degrees, const bool celsius,
-
63  const stdAc::fanspeed_t fan,
-
64  const stdAc::swingv_t swingv,
-
65  const stdAc::swingh_t swingh,
-
66  const bool quiet, const bool turbo, const bool econo,
-
67  const bool light, const bool filter, const bool clean,
-
68  const bool beep, const int16_t sleep,
-
69  const int16_t clock);
-
70  static void initState(stdAc::state_t *state);
-
71  void markAsSent(void);
-
72  bool sendAc(void);
-
73  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
74  bool sendAc(const decode_type_t vendor, const int16_t model,
-
75  const bool power, const stdAc::opmode_t mode, const float degrees,
-
76  const bool celsius, const stdAc::fanspeed_t fan,
-
77  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
78  const bool quiet, const bool turbo, const bool econo,
-
79  const bool light, const bool filter, const bool clean,
-
80  const bool beep, const int16_t sleep = -1,
-
81  const int16_t clock = -1);
-
82  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
83  static bool strToBool(const char *str, const bool def = false);
-
84  static int16_t strToModel(const char *str, const int16_t def = -1);
-
85  static stdAc::opmode_t strToOpmode(
-
86  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
-
87  static stdAc::fanspeed_t strToFanspeed(
-
88  const char *str,
-
89  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
-
90  static stdAc::swingv_t strToSwingV(
-
91  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
-
92  static stdAc::swingh_t strToSwingH(
-
93  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
94  static String boolToString(const bool value);
-
95  static String opmodeToString(const stdAc::opmode_t mode,
-
96  const bool ha = false);
-
97  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
98  static String swingvToString(const stdAc::swingv_t swingv);
-
99  static String swinghToString(const stdAc::swingh_t swingh);
-
100  stdAc::state_t getState(void);
-
101  stdAc::state_t getStatePrev(void);
-
102  bool hasStateChanged(void);
-
103  stdAc::state_t next;
-
104 #ifndef UNIT_TEST
-
105 
-
106  private:
-
107 #endif
-
108  uint16_t _pin;
-
109  bool _inverted;
-
110  bool _modulation;
-
111  stdAc::state_t _prev;
-
112 #if SEND_AIRWELL
-
113  void airwell(IRAirwellAc *ac,
-
114  const bool on, const stdAc::opmode_t mode, const float degrees,
-
115  const stdAc::fanspeed_t fan);
-
116 #endif // SEND_AIRWELL
-
117 #if SEND_AMCOR
-
118  void amcor(IRAmcorAc *ac,
-
119  const bool on, const stdAc::opmode_t mode, const float degrees,
-
120  const stdAc::fanspeed_t fan);
-
121 #endif // SEND_AMCOR
-
122 #if SEND_ARGO
-
123  void argo(IRArgoAC *ac,
-
124  const bool on, const stdAc::opmode_t mode, const float degrees,
-
125  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
126  const bool turbo, const int16_t sleep = -1);
-
127 #endif // SEND_ARGO
-
128 #if SEND_CARRIER_AC64
-
129 void carrier64(IRCarrierAc64 *ac,
-
130  const bool on, const stdAc::opmode_t mode,
-
131  const float degrees, const stdAc::fanspeed_t fan,
-
132  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
133 #endif // SEND_CARRIER_AC64
-
134 #if SEND_COOLIX
-
135  void coolix(IRCoolixAC *ac,
-
136  const bool on, const stdAc::opmode_t mode, const float degrees,
-
137  const stdAc::fanspeed_t fan,
-
138  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
139  const bool turbo, const bool light, const bool clean,
-
140  const int16_t sleep = -1);
-
141 #endif // SEND_COOLIX
-
142 #if SEND_CORONA_AC
-
143  void corona(IRCoronaAc *ac,
-
144  const bool on, const stdAc::opmode_t mode,
-
145  const float degrees, const stdAc::fanspeed_t fan,
-
146  const stdAc::swingv_t swingv, const bool econo);
-
147 #endif // SEND_CORONA_AC
-
148 #if SEND_DAIKIN
-
149  void daikin(IRDaikinESP *ac,
-
150  const bool on, const stdAc::opmode_t mode, const float degrees,
-
151  const stdAc::fanspeed_t fan,
-
152  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
153  const bool quiet, const bool turbo, const bool econo,
-
154  const bool clean);
-
155 #endif // SEND_DAIKIN
-
156 #if SEND_DAIKIN128
-
157  void daikin128(IRDaikin128 *ac,
-
158  const bool on, const stdAc::opmode_t mode,
-
159  const float degrees, const stdAc::fanspeed_t fan,
-
160  const stdAc::swingv_t swingv,
-
161  const bool quiet, const bool turbo, const bool light,
-
162  const bool econo, const int16_t sleep = -1,
-
163  const int16_t clock = -1);
-
164 #endif // SEND_DAIKIN128
-
165 #if SEND_DAIKIN152
-
166  void daikin152(IRDaikin152 *ac,
+
10 #include "ir_Airton.h"
+
11 #include "ir_Airwell.h"
+
12 #include "ir_Amcor.h"
+
13 #include "ir_Argo.h"
+
14 #include "ir_Carrier.h"
+
15 #include "ir_Coolix.h"
+
16 #include "ir_Corona.h"
+
17 #include "ir_Daikin.h"
+
18 #include "ir_Delonghi.h"
+
19 #include "ir_Fujitsu.h"
+
20 #include "ir_Ecoclim.h"
+
21 #include "ir_Electra.h"
+
22 #include "ir_Goodweather.h"
+
23 #include "ir_Gree.h"
+
24 #include "ir_Haier.h"
+
25 #include "ir_Hitachi.h"
+
26 #include "ir_Kelon.h"
+
27 #include "ir_Kelvinator.h"
+
28 #include "ir_LG.h"
+
29 #include "ir_Midea.h"
+
30 #include "ir_Mirage.h"
+
31 #include "ir_Mitsubishi.h"
+
32 #include "ir_MitsubishiHeavy.h"
+
33 #include "ir_Neoclima.h"
+
34 #include "ir_Panasonic.h"
+
35 #include "ir_Rhoss.h"
+
36 #include "ir_Samsung.h"
+
37 #include "ir_Sanyo.h"
+
38 #include "ir_Sharp.h"
+
39 #include "ir_Tcl.h"
+
40 #include "ir_Technibel.h"
+
41 #include "ir_Teco.h"
+
42 #include "ir_Toshiba.h"
+
43 #include "ir_Transcold.h"
+
44 #include "ir_Trotec.h"
+
45 #include "ir_Truma.h"
+
46 #include "ir_Vestel.h"
+
47 #include "ir_Voltas.h"
+
48 #include "ir_Whirlpool.h"
+
49 
+
50 // Constants
+
51 const int8_t kGpioUnused = -1;
+
52 
+
53 // Class
+
55 class IRac {
+
56  public:
+
57  explicit IRac(const uint16_t pin, const bool inverted = false,
+
58  const bool use_modulation = true);
+
59  static bool isProtocolSupported(const decode_type_t protocol);
+
60  static void initState(stdAc::state_t *state,
+
61  const decode_type_t vendor, const int16_t model,
+
62  const bool power, const stdAc::opmode_t mode,
+
63  const float degrees, const bool celsius,
+
64  const stdAc::fanspeed_t fan,
+
65  const stdAc::swingv_t swingv,
+
66  const stdAc::swingh_t swingh,
+
67  const bool quiet, const bool turbo, const bool econo,
+
68  const bool light, const bool filter, const bool clean,
+
69  const bool beep, const int16_t sleep,
+
70  const int16_t clock);
+
71  static void initState(stdAc::state_t *state);
+
72  void markAsSent(void);
+
73  bool sendAc(void);
+
74  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
+
75  bool sendAc(const decode_type_t vendor, const int16_t model,
+
76  const bool power, const stdAc::opmode_t mode, const float degrees,
+
77  const bool celsius, const stdAc::fanspeed_t fan,
+
78  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
79  const bool quiet, const bool turbo, const bool econo,
+
80  const bool light, const bool filter, const bool clean,
+
81  const bool beep, const int16_t sleep = -1,
+
82  const int16_t clock = -1);
+
83  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
+
84  static bool strToBool(const char *str, const bool def = false);
+
85  static int16_t strToModel(const char *str, const int16_t def = -1);
+
86  static stdAc::opmode_t strToOpmode(
+
87  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
+
88  static stdAc::fanspeed_t strToFanspeed(
+
89  const char *str,
+
90  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
+
91  static stdAc::swingv_t strToSwingV(
+
92  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
+
93  static stdAc::swingh_t strToSwingH(
+
94  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
+
95  static String boolToString(const bool value);
+
96  static String opmodeToString(const stdAc::opmode_t mode,
+
97  const bool ha = false);
+
98  static String fanspeedToString(const stdAc::fanspeed_t speed);
+
99  static String swingvToString(const stdAc::swingv_t swingv);
+
100  static String swinghToString(const stdAc::swingh_t swingh);
+
101  stdAc::state_t getState(void);
+
102  stdAc::state_t getStatePrev(void);
+
103  bool hasStateChanged(void);
+
104  stdAc::state_t next;
+
105 #ifndef UNIT_TEST
+
106 
+
107  private:
+
108 #endif
+
109  uint16_t _pin;
+
110  bool _inverted;
+
111  bool _modulation;
+
112  stdAc::state_t _prev;
+
113 #if SEND_AIRTON
+
114  void airton(IRAirtonAc *ac,
+
115  const bool on, const stdAc::opmode_t mode,
+
116  const float degrees, const stdAc::fanspeed_t fan,
+
117  const stdAc::swingv_t swingv, const bool turbo,
+
118  const bool light, const bool econo, const bool filter,
+
119  const int16_t sleep = -1);
+
120 #endif // SEND_AIRTON
+
121 #if SEND_AIRWELL
+
122  void airwell(IRAirwellAc *ac,
+
123  const bool on, const stdAc::opmode_t mode, const float degrees,
+
124  const stdAc::fanspeed_t fan);
+
125 #endif // SEND_AIRWELL
+
126 #if SEND_AMCOR
+
127  void amcor(IRAmcorAc *ac,
+
128  const bool on, const stdAc::opmode_t mode, const float degrees,
+
129  const stdAc::fanspeed_t fan);
+
130 #endif // SEND_AMCOR
+
131 #if SEND_ARGO
+
132  void argo(IRArgoAC *ac,
+
133  const bool on, const stdAc::opmode_t mode, const float degrees,
+
134  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
135  const bool turbo, const int16_t sleep = -1);
+
136 #endif // SEND_ARGO
+
137 #if SEND_CARRIER_AC64
+
138 void carrier64(IRCarrierAc64 *ac,
+
139  const bool on, const stdAc::opmode_t mode,
+
140  const float degrees, const stdAc::fanspeed_t fan,
+
141  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
142 #endif // SEND_CARRIER_AC64
+
143 #if SEND_COOLIX
+
144  void coolix(IRCoolixAC *ac,
+
145  const bool on, const stdAc::opmode_t mode, const float degrees,
+
146  const stdAc::fanspeed_t fan,
+
147  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
148  const bool turbo, const bool light, const bool clean,
+
149  const int16_t sleep = -1);
+
150 #endif // SEND_COOLIX
+
151 #if SEND_CORONA_AC
+
152  void corona(IRCoronaAc *ac,
+
153  const bool on, const stdAc::opmode_t mode,
+
154  const float degrees, const stdAc::fanspeed_t fan,
+
155  const stdAc::swingv_t swingv, const bool econo);
+
156 #endif // SEND_CORONA_AC
+
157 #if SEND_DAIKIN
+
158  void daikin(IRDaikinESP *ac,
+
159  const bool on, const stdAc::opmode_t mode, const float degrees,
+
160  const stdAc::fanspeed_t fan,
+
161  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
162  const bool quiet, const bool turbo, const bool econo,
+
163  const bool clean);
+
164 #endif // SEND_DAIKIN
+
165 #if SEND_DAIKIN128
+
166  void daikin128(IRDaikin128 *ac,
167  const bool on, const stdAc::opmode_t mode,
168  const float degrees, const stdAc::fanspeed_t fan,
169  const stdAc::swingv_t swingv,
-
170  const bool quiet, const bool turbo, const bool econo);
-
171 #endif // SEND_DAIKIN152
-
172 #if SEND_DAIKIN160
-
173  void daikin160(IRDaikin160 *ac,
-
174  const bool on, const stdAc::opmode_t mode,
-
175  const float degrees, const stdAc::fanspeed_t fan,
-
176  const stdAc::swingv_t swingv);
-
177 #endif // SEND_DAIKIN160
-
178 #if SEND_DAIKIN176
-
179  void daikin176(IRDaikin176 *ac,
-
180  const bool on, const stdAc::opmode_t mode,
-
181  const float degrees, const stdAc::fanspeed_t fan,
-
182  const stdAc::swingh_t swingh);
-
183 #endif // SEND_DAIKIN176
-
184 #if SEND_DAIKIN2
-
185  void daikin2(IRDaikin2 *ac,
-
186  const bool on, const stdAc::opmode_t mode,
-
187  const float degrees, const stdAc::fanspeed_t fan,
-
188  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
189  const bool quiet, const bool turbo, const bool light,
-
190  const bool econo, const bool filter, const bool clean,
-
191  const bool beep, const int16_t sleep = -1,
-
192  const int16_t clock = -1);
-
193 #endif // SEND_DAIKIN2
-
194 #if SEND_DAIKIN216
-
195 void daikin216(IRDaikin216 *ac,
-
196  const bool on, const stdAc::opmode_t mode,
-
197  const float degrees, const stdAc::fanspeed_t fan,
-
198  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
199  const bool quiet, const bool turbo);
-
200 #endif // SEND_DAIKIN216
-
201 #if SEND_DAIKIN64
-
202  void daikin64(IRDaikin64 *ac,
-
203  const bool on, const stdAc::opmode_t mode,
-
204  const float degrees, const stdAc::fanspeed_t fan,
-
205  const stdAc::swingv_t swingv,
-
206  const bool quiet, const bool turbo,
-
207  const int16_t sleep = -1, const int16_t clock = -1);
-
208 #endif // SEND_DAIKIN64
-
209 #if SEND_DELONGHI_AC
-
210  void delonghiac(IRDelonghiAc *ac,
-
211  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
212  const float degrees, const stdAc::fanspeed_t fan,
-
213  const bool turbo, const int16_t sleep = -1);
-
214 #endif // SEND_DELONGHI_AC
-
215 #if SEND_ECOCLIM
-
216 void ecoclim(IREcoclimAc *ac,
-
217  const bool on, const stdAc::opmode_t mode,
-
218  const float degrees, const stdAc::fanspeed_t fan,
-
219  const int16_t sleep = -1, const int16_t clock = -1);
-
220 #endif // SEND_ECOCLIM
-
221 #if SEND_ELECTRA_AC
-
222 void electra(IRElectraAc *ac,
-
223  const bool on, const stdAc::opmode_t mode,
-
224  const float degrees, const stdAc::fanspeed_t fan,
-
225  const stdAc::swingv_t swingv,
-
226  const stdAc::swingh_t swingh, const bool turbo,
-
227  const bool lighttoggle, const bool clean);
-
228 #endif // SEND_ELECTRA_AC
-
229 #if SEND_FUJITSU_AC
-
230  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
231  const bool on, const stdAc::opmode_t mode,
-
232  const bool celsius, const float degrees,
-
233  const stdAc::fanspeed_t fan,
-
234  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
235  const bool quiet, const bool turbo, const bool econo,
-
236  const bool filter, const bool clean, const int16_t sleep = -1);
-
237 #endif // SEND_FUJITSU_AC
-
238 #if SEND_GOODWEATHER
-
239  void goodweather(IRGoodweatherAc *ac,
-
240  const bool on, const stdAc::opmode_t mode,
-
241  const float degrees,
-
242  const stdAc::fanspeed_t fan,
-
243  const stdAc::swingv_t swingv,
-
244  const bool turbo, const bool light,
-
245  const int16_t sleep = -1);
-
246 #endif // SEND_GOODWEATHER
-
247 #if SEND_GREE
-
248  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
249  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
250  const float degrees, const stdAc::fanspeed_t fan,
-
251  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
252  const bool turbo, const bool econo, const bool light,
-
253  const bool clean, const int16_t sleep = -1);
-
254 #endif // SEND_GREE
-
255 #if SEND_HAIER_AC
-
256  void haier(IRHaierAC *ac,
-
257  const bool on, const stdAc::opmode_t mode, const float degrees,
-
258  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
259  const bool filter, const int16_t sleep = -1,
-
260  const int16_t clock = -1);
-
261 #endif // SEND_HAIER_AC
-
262 #if SEND_HAIER_AC176
-
263  void haier176(IRHaierAC176 *ac,
-
264  const haier_ac176_remote_model_t model, const bool on,
-
265  const stdAc::opmode_t mode, const bool celsius,
-
266  const float degrees, const stdAc::fanspeed_t fan,
-
267  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
268  const bool turbo, const bool quiet, const bool filter,
-
269  const int16_t sleep = -1);
-
270 #endif // SEND_HAIER_AC176
-
271 #if SEND_HAIER_AC_YRW02
-
272  void haierYrwo2(IRHaierACYRW02 *ac,
-
273  const bool on, const stdAc::opmode_t mode,
-
274  const bool celsius, const float degrees,
-
275  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
276  const stdAc::swingh_t swingh, const bool turbo,
-
277  const bool quiet, const bool filter,
-
278  const int16_t sleep = -1);
-
279 #endif // SEND_HAIER_AC_YRW02
-
280 #if SEND_HITACHI_AC
-
281  void hitachi(IRHitachiAc *ac,
-
282  const bool on, const stdAc::opmode_t mode,
-
283  const float degrees, const stdAc::fanspeed_t fan,
-
284  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
285 #endif // SEND_HITACHI_AC
-
286 #if SEND_HITACHI_AC1
-
287  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
288  const bool on, const bool power_toggle,
-
289  const stdAc::opmode_t mode,
-
290  const float degrees, const stdAc::fanspeed_t fan,
-
291  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
292  const bool swing_toggle, const int16_t sleep = -1);
-
293 #endif // SEND_HITACHI_AC1
-
294 #if SEND_HITACHI_AC344
-
295  void hitachi344(IRHitachiAc344 *ac,
-
296  const bool on, const stdAc::opmode_t mode,
-
297  const float degrees, const stdAc::fanspeed_t fan,
-
298  const stdAc::swingv_t swingv,
-
299  const stdAc::swingh_t swingh);
-
300 #endif // SEND_HITACHI_AC344
-
301 #if SEND_HITACHI_AC424
-
302  void hitachi424(IRHitachiAc424 *ac,
-
303  const bool on, const stdAc::opmode_t mode,
-
304  const float degrees, const stdAc::fanspeed_t fan,
-
305  const stdAc::swingv_t swingv);
-
306 #endif // SEND_HITACHI_AC424
-
307 #if SEND_KELON
-
308  void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode,
-
309  const int8_t dryGrade, const float degrees,
-
310  const stdAc::fanspeed_t fan, const bool toggleSwing,
-
311  const bool superCool, const int16_t sleep);
-
312 #endif // SEND_KELON
-
313 #if SEND_KELVINATOR
-
314  void kelvinator(IRKelvinatorAC *ac,
-
315  const bool on, const stdAc::opmode_t mode,
-
316  const float degrees, const stdAc::fanspeed_t fan,
-
317  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
318  const bool quiet, const bool turbo, const bool light,
-
319  const bool filter, const bool clean);
-
320 #endif // SEND_KELVINATOR
-
321 #if SEND_LG
-
322  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
323  const bool on, const stdAc::opmode_t mode,
-
324  const float degrees, const stdAc::fanspeed_t fan,
-
325  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
-
326  const stdAc::swingh_t swingh, const bool light);
-
327 #endif // SEND_LG
-
328 #if SEND_MIDEA
-
329  void midea(IRMideaAC *ac,
-
330  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
331  const float degrees, const stdAc::fanspeed_t fan,
-
332  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
-
333  const bool light, const int16_t sleep = -1);
-
334 #endif // SEND_MIDEA
-
335 #if SEND_MIRAGE
-
336  void mirage(IRMirageAc *ac, const stdAc::state_t state);
-
337 #endif // SEND_MIRAGE
-
338 #if SEND_MITSUBISHI_AC
-
339  void mitsubishi(IRMitsubishiAC *ac,
-
340  const bool on, const stdAc::opmode_t mode,
-
341  const float degrees,
-
342  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
343  const stdAc::swingh_t swingh,
-
344  const bool quiet, const int16_t clock = -1);
-
345 #endif // SEND_MITSUBISHI_AC
-
346 #if SEND_MITSUBISHI112
-
347  void mitsubishi112(IRMitsubishi112 *ac,
-
348  const bool on, const stdAc::opmode_t mode,
-
349  const float degrees, const stdAc::fanspeed_t fan,
-
350  const stdAc::swingv_t swingv,
-
351  const stdAc::swingh_t swingh,
-
352  const bool quiet);
-
353 #endif // SEND_MITSUBISHI112
-
354 #if SEND_MITSUBISHI136
-
355  void mitsubishi136(IRMitsubishi136 *ac,
-
356  const bool on, const stdAc::opmode_t mode,
-
357  const float degrees, const stdAc::fanspeed_t fan,
-
358  const stdAc::swingv_t swingv, const bool quiet);
-
359 #endif // SEND_MITSUBISHI136
-
360 #if SEND_MITSUBISHIHEAVY
-
361  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
-
362  const bool on, const stdAc::opmode_t mode,
-
363  const float degrees, const stdAc::fanspeed_t fan,
-
364  const stdAc::swingv_t swingv,
-
365  const stdAc::swingh_t swingh,
-
366  const bool turbo, const bool econo, const bool clean);
-
367  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
-
368  const bool on, const stdAc::opmode_t mode,
-
369  const float degrees, const stdAc::fanspeed_t fan,
-
370  const stdAc::swingv_t swingv,
-
371  const stdAc::swingh_t swingh,
-
372  const bool quiet, const bool turbo, const bool econo,
-
373  const bool filter, const bool clean,
-
374  const int16_t sleep = -1);
-
375 #endif // SEND_MITSUBISHIHEAVY
-
376 #if SEND_NEOCLIMA
-
377  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
378  const bool celsius, const float degrees,
-
379  const stdAc::fanspeed_t fan,
-
380  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
381  const bool turbo, const bool econo, const bool light,
-
382  const bool filter, const int16_t sleep = -1);
-
383 #endif // SEND_NEOCLIMA
-
384 #if SEND_PANASONIC_AC
-
385  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
-
386  const bool on, const stdAc::opmode_t mode, const float degrees,
-
387  const stdAc::fanspeed_t fan,
-
388  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
389  const bool quiet, const bool turbo, const bool filter,
-
390  const int16_t clock = -1);
-
391 #endif // SEND_PANASONIC_AC
-
392 #if SEND_PANASONIC_AC32
-
393  void panasonic32(IRPanasonicAc32 *ac,
-
394  const bool on, const stdAc::opmode_t mode,
-
395  const float degrees, const stdAc::fanspeed_t fan,
-
396  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
397 #endif // SEND_PANASONIC_AC32
-
398 #if SEND_RHOSS
-
399  void rhoss(IRRhossAc *ac,
-
400  const bool on, const stdAc::opmode_t mode, const float degrees,
-
401  const stdAc::fanspeed_t fan, const stdAc::swingv_t swing);
-
402 #endif // SEND_RHOSS
-
403 #if SEND_SAMSUNG_AC
-
404  void samsung(IRSamsungAc *ac,
-
405  const bool on, const stdAc::opmode_t mode, const float degrees,
-
406  const stdAc::fanspeed_t fan,
-
407  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
408  const bool quiet, const bool turbo, const bool econo,
-
409  const bool light, const bool filter, const bool clean,
-
410  const bool beep, const int16_t sleep = -1,
-
411  const bool prevpower = true, const int16_t prevsleep = -1,
-
412  const bool forceextended = true);
-
413 #endif // SEND_SAMSUNG_AC
-
414 #if SEND_SANYO_AC
-
415  void sanyo(IRSanyoAc *ac,
-
416  const bool on, const stdAc::opmode_t mode, const float degrees,
-
417  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
418  const bool beep, const int16_t sleep = -1);
-
419 #endif // SEND_SANYO_AC
-
420 #if SEND_SANYO_AC88
-
421  void sanyo88(IRSanyoAc88 *ac,
-
422  const bool on, const stdAc::opmode_t mode,
-
423  const float degrees, const stdAc::fanspeed_t fan,
-
424  const stdAc::swingv_t swingv, const bool turbo,
-
425  const bool filter,
-
426  const int16_t sleep = -1, const int16_t clock = -1);
-
427 #endif // SEND_SANYO_AC88
-
428 #if SEND_SHARP_AC
-
429  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
-
430  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
431  const float degrees, const stdAc::fanspeed_t fan,
-
432  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
-
433  const bool turbo, const bool light,
-
434  const bool filter, const bool clean);
-
435 #endif // SEND_SHARP_AC
-
436 #if SEND_TCL112AC
-
437  void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model,
-
438  const bool on, const stdAc::opmode_t mode, const float degrees,
-
439  const stdAc::fanspeed_t fan,
-
440  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
441  const bool quiet, const bool turbo, const bool light,
-
442  const bool econo, const bool filter);
-
443 #endif // SEND_TCL112AC
-
444 #if SEND_TECHNIBEL_AC
-
445  void technibel(IRTechnibelAc *ac,
-
446  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
447  const float degrees, const stdAc::fanspeed_t fan,
-
448  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
449 #endif // SEND_TECHNIBEL_AC
-
450 #if SEND_TECO
-
451  void teco(IRTecoAc *ac,
-
452  const bool on, const stdAc::opmode_t mode, const float degrees,
-
453  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
454  const bool light, const int16_t sleep = -1);
-
455 #endif // SEND_TECO
-
456 #if SEND_TOSHIBA_AC
-
457  void toshiba(IRToshibaAC *ac,
-
458  const bool on, const stdAc::opmode_t mode, const float degrees,
-
459  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
460  const bool turbo, const bool econo);
-
461 #endif // SEND_TOSHIBA_AC
-
462 #if SEND_TROTEC
-
463  void trotec(IRTrotecESP *ac,
-
464  const bool on, const stdAc::opmode_t mode, const float degrees,
-
465  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
466 #endif // SEND_TROTEC
-
467 #if SEND_TROTEC_3550
-
468  void trotec3550(IRTrotec3550 *ac,
-
469  const bool on, const stdAc::opmode_t mode,
-
470  const bool celsius, const float degrees,
-
471  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv);
-
472 #endif // SEND_TROTEC_3550
-
473 #if SEND_TRUMA
-
474  void truma(IRTrumaAc *ac,
-
475  const bool on, const stdAc::opmode_t mode, const float degrees,
-
476  const stdAc::fanspeed_t fan, const bool quiet);
-
477 #endif // SEND_TRUMA
-
478 #if SEND_VESTEL_AC
-
479  void vestel(IRVestelAc *ac,
-
480  const bool on, const stdAc::opmode_t mode, const float degrees,
-
481  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
482  const bool turbo, const bool filter,
-
483  const int16_t sleep = -1, const int16_t clock = -1,
-
484  const bool sendNormal = true);
-
485 #endif // SEND_VESTEL_AC
-
486 #if SEND_VOLTAS
-
487  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
-
488  const bool on, const stdAc::opmode_t mode,
-
489  const float degrees, const stdAc::fanspeed_t fan,
-
490  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
491  const bool turbo, const bool econo, const bool light,
-
492  const int16_t sleep = -1);
-
493 #endif // SEND_VOLTAS
-
494 #if SEND_WHIRLPOOL_AC
-
495  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
-
496  const bool on, const stdAc::opmode_t mode, const float degrees,
-
497  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
498  const bool turbo, const bool light,
-
499  const int16_t sleep = -1, const int16_t clock = -1);
-
500 #endif // SEND_WHIRLPOOL_AC
-
501 #if SEND_TRANSCOLD
-
502  void transcold(IRTranscoldAc *ac,
-
503  const bool on, const stdAc::opmode_t mode, const float degrees,
-
504  const stdAc::fanspeed_t fan,
-
505  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
506 #endif // SEND_TRANSCOLD
-
507 static stdAc::state_t cleanState(const stdAc::state_t state);
-
508 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
509  const stdAc::state_t *prev = NULL);
-
510 }; // IRac class
-
511 
-
513 namespace IRAcUtils {
-
514  String resultAcToString(const decode_results * const results);
-
515  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
516  const stdAc::state_t *prev = NULL);
-
517 } // namespace IRAcUtils
-
518 #endif // IRAC_H_
+
170  const bool quiet, const bool turbo, const bool light,
+
171  const bool econo, const int16_t sleep = -1,
+
172  const int16_t clock = -1);
+
173 #endif // SEND_DAIKIN128
+
174 #if SEND_DAIKIN152
+
175  void daikin152(IRDaikin152 *ac,
+
176  const bool on, const stdAc::opmode_t mode,
+
177  const float degrees, const stdAc::fanspeed_t fan,
+
178  const stdAc::swingv_t swingv,
+
179  const bool quiet, const bool turbo, const bool econo);
+
180 #endif // SEND_DAIKIN152
+
181 #if SEND_DAIKIN160
+
182  void daikin160(IRDaikin160 *ac,
+
183  const bool on, const stdAc::opmode_t mode,
+
184  const float degrees, const stdAc::fanspeed_t fan,
+
185  const stdAc::swingv_t swingv);
+
186 #endif // SEND_DAIKIN160
+
187 #if SEND_DAIKIN176
+
188  void daikin176(IRDaikin176 *ac,
+
189  const bool on, const stdAc::opmode_t mode,
+
190  const float degrees, const stdAc::fanspeed_t fan,
+
191  const stdAc::swingh_t swingh);
+
192 #endif // SEND_DAIKIN176
+
193 #if SEND_DAIKIN2
+
194  void daikin2(IRDaikin2 *ac,
+
195  const bool on, const stdAc::opmode_t mode,
+
196  const float degrees, const stdAc::fanspeed_t fan,
+
197  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
198  const bool quiet, const bool turbo, const bool light,
+
199  const bool econo, const bool filter, const bool clean,
+
200  const bool beep, const int16_t sleep = -1,
+
201  const int16_t clock = -1);
+
202 #endif // SEND_DAIKIN2
+
203 #if SEND_DAIKIN216
+
204 void daikin216(IRDaikin216 *ac,
+
205  const bool on, const stdAc::opmode_t mode,
+
206  const float degrees, const stdAc::fanspeed_t fan,
+
207  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
208  const bool quiet, const bool turbo);
+
209 #endif // SEND_DAIKIN216
+
210 #if SEND_DAIKIN64
+
211  void daikin64(IRDaikin64 *ac,
+
212  const bool on, const stdAc::opmode_t mode,
+
213  const float degrees, const stdAc::fanspeed_t fan,
+
214  const stdAc::swingv_t swingv,
+
215  const bool quiet, const bool turbo,
+
216  const int16_t sleep = -1, const int16_t clock = -1);
+
217 #endif // SEND_DAIKIN64
+
218 #if SEND_DELONGHI_AC
+
219  void delonghiac(IRDelonghiAc *ac,
+
220  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
221  const float degrees, const stdAc::fanspeed_t fan,
+
222  const bool turbo, const int16_t sleep = -1);
+
223 #endif // SEND_DELONGHI_AC
+
224 #if SEND_ECOCLIM
+
225 void ecoclim(IREcoclimAc *ac,
+
226  const bool on, const stdAc::opmode_t mode,
+
227  const float degrees, const stdAc::fanspeed_t fan,
+
228  const int16_t sleep = -1, const int16_t clock = -1);
+
229 #endif // SEND_ECOCLIM
+
230 #if SEND_ELECTRA_AC
+
231 void electra(IRElectraAc *ac,
+
232  const bool on, const stdAc::opmode_t mode,
+
233  const float degrees, const stdAc::fanspeed_t fan,
+
234  const stdAc::swingv_t swingv,
+
235  const stdAc::swingh_t swingh, const bool turbo,
+
236  const bool lighttoggle, const bool clean);
+
237 #endif // SEND_ELECTRA_AC
+
238 #if SEND_FUJITSU_AC
+
239  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
+
240  const bool on, const stdAc::opmode_t mode,
+
241  const bool celsius, const float degrees,
+
242  const stdAc::fanspeed_t fan,
+
243  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
244  const bool quiet, const bool turbo, const bool econo,
+
245  const bool filter, const bool clean, const int16_t sleep = -1);
+
246 #endif // SEND_FUJITSU_AC
+
247 #if SEND_GOODWEATHER
+
248  void goodweather(IRGoodweatherAc *ac,
+
249  const bool on, const stdAc::opmode_t mode,
+
250  const float degrees,
+
251  const stdAc::fanspeed_t fan,
+
252  const stdAc::swingv_t swingv,
+
253  const bool turbo, const bool light,
+
254  const int16_t sleep = -1);
+
255 #endif // SEND_GOODWEATHER
+
256 #if SEND_GREE
+
257  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
+
258  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
259  const float degrees, const stdAc::fanspeed_t fan,
+
260  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
261  const bool turbo, const bool econo, const bool light,
+
262  const bool clean, const int16_t sleep = -1);
+
263 #endif // SEND_GREE
+
264 #if SEND_HAIER_AC
+
265  void haier(IRHaierAC *ac,
+
266  const bool on, const stdAc::opmode_t mode, const float degrees,
+
267  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
268  const bool filter, const int16_t sleep = -1,
+
269  const int16_t clock = -1);
+
270 #endif // SEND_HAIER_AC
+
271 #if SEND_HAIER_AC176
+
272  void haier176(IRHaierAC176 *ac,
+
273  const haier_ac176_remote_model_t model, const bool on,
+
274  const stdAc::opmode_t mode, const bool celsius,
+
275  const float degrees, const stdAc::fanspeed_t fan,
+
276  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
277  const bool turbo, const bool quiet, const bool filter,
+
278  const int16_t sleep = -1);
+
279 #endif // SEND_HAIER_AC176
+
280 #if SEND_HAIER_AC_YRW02
+
281  void haierYrwo2(IRHaierACYRW02 *ac,
+
282  const bool on, const stdAc::opmode_t mode,
+
283  const bool celsius, const float degrees,
+
284  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
285  const stdAc::swingh_t swingh, const bool turbo,
+
286  const bool quiet, const bool filter,
+
287  const int16_t sleep = -1);
+
288 #endif // SEND_HAIER_AC_YRW02
+
289 #if SEND_HITACHI_AC
+
290  void hitachi(IRHitachiAc *ac,
+
291  const bool on, const stdAc::opmode_t mode,
+
292  const float degrees, const stdAc::fanspeed_t fan,
+
293  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
294 #endif // SEND_HITACHI_AC
+
295 #if SEND_HITACHI_AC1
+
296  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
+
297  const bool on, const bool power_toggle,
+
298  const stdAc::opmode_t mode,
+
299  const float degrees, const stdAc::fanspeed_t fan,
+
300  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
301  const bool swing_toggle, const int16_t sleep = -1);
+
302 #endif // SEND_HITACHI_AC1
+
303 #if SEND_HITACHI_AC344
+
304  void hitachi344(IRHitachiAc344 *ac,
+
305  const bool on, const stdAc::opmode_t mode,
+
306  const float degrees, const stdAc::fanspeed_t fan,
+
307  const stdAc::swingv_t swingv,
+
308  const stdAc::swingh_t swingh);
+
309 #endif // SEND_HITACHI_AC344
+
310 #if SEND_HITACHI_AC424
+
311  void hitachi424(IRHitachiAc424 *ac,
+
312  const bool on, const stdAc::opmode_t mode,
+
313  const float degrees, const stdAc::fanspeed_t fan,
+
314  const stdAc::swingv_t swingv);
+
315 #endif // SEND_HITACHI_AC424
+
316 #if SEND_KELON
+
317  void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode,
+
318  const int8_t dryGrade, const float degrees,
+
319  const stdAc::fanspeed_t fan, const bool toggleSwing,
+
320  const bool superCool, const int16_t sleep);
+
321 #endif // SEND_KELON
+
322 #if SEND_KELVINATOR
+
323  void kelvinator(IRKelvinatorAC *ac,
+
324  const bool on, const stdAc::opmode_t mode,
+
325  const float degrees, const stdAc::fanspeed_t fan,
+
326  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
327  const bool quiet, const bool turbo, const bool light,
+
328  const bool filter, const bool clean);
+
329 #endif // SEND_KELVINATOR
+
330 #if SEND_LG
+
331  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
+
332  const bool on, const stdAc::opmode_t mode,
+
333  const float degrees, const stdAc::fanspeed_t fan,
+
334  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
+
335  const stdAc::swingh_t swingh, const bool light);
+
336 #endif // SEND_LG
+
337 #if SEND_MIDEA
+
338  void midea(IRMideaAC *ac,
+
339  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
340  const float degrees, const stdAc::fanspeed_t fan,
+
341  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
+
342  const bool light, const int16_t sleep = -1);
+
343 #endif // SEND_MIDEA
+
344 #if SEND_MIRAGE
+
345  void mirage(IRMirageAc *ac, const stdAc::state_t state);
+
346 #endif // SEND_MIRAGE
+
347 #if SEND_MITSUBISHI_AC
+
348  void mitsubishi(IRMitsubishiAC *ac,
+
349  const bool on, const stdAc::opmode_t mode,
+
350  const float degrees,
+
351  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
352  const stdAc::swingh_t swingh,
+
353  const bool quiet, const int16_t clock = -1);
+
354 #endif // SEND_MITSUBISHI_AC
+
355 #if SEND_MITSUBISHI112
+
356  void mitsubishi112(IRMitsubishi112 *ac,
+
357  const bool on, const stdAc::opmode_t mode,
+
358  const float degrees, const stdAc::fanspeed_t fan,
+
359  const stdAc::swingv_t swingv,
+
360  const stdAc::swingh_t swingh,
+
361  const bool quiet);
+
362 #endif // SEND_MITSUBISHI112
+
363 #if SEND_MITSUBISHI136
+
364  void mitsubishi136(IRMitsubishi136 *ac,
+
365  const bool on, const stdAc::opmode_t mode,
+
366  const float degrees, const stdAc::fanspeed_t fan,
+
367  const stdAc::swingv_t swingv, const bool quiet);
+
368 #endif // SEND_MITSUBISHI136
+
369 #if SEND_MITSUBISHIHEAVY
+
370  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
+
371  const bool on, const stdAc::opmode_t mode,
+
372  const float degrees, const stdAc::fanspeed_t fan,
+
373  const stdAc::swingv_t swingv,
+
374  const stdAc::swingh_t swingh,
+
375  const bool turbo, const bool econo, const bool clean);
+
376  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
+
377  const bool on, const stdAc::opmode_t mode,
+
378  const float degrees, const stdAc::fanspeed_t fan,
+
379  const stdAc::swingv_t swingv,
+
380  const stdAc::swingh_t swingh,
+
381  const bool quiet, const bool turbo, const bool econo,
+
382  const bool filter, const bool clean,
+
383  const int16_t sleep = -1);
+
384 #endif // SEND_MITSUBISHIHEAVY
+
385 #if SEND_NEOCLIMA
+
386  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
+
387  const bool celsius, const float degrees,
+
388  const stdAc::fanspeed_t fan,
+
389  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
390  const bool turbo, const bool econo, const bool light,
+
391  const bool filter, const int16_t sleep = -1);
+
392 #endif // SEND_NEOCLIMA
+
393 #if SEND_PANASONIC_AC
+
394  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
+
395  const bool on, const stdAc::opmode_t mode, const float degrees,
+
396  const stdAc::fanspeed_t fan,
+
397  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
398  const bool quiet, const bool turbo, const bool filter,
+
399  const int16_t clock = -1);
+
400 #endif // SEND_PANASONIC_AC
+
401 #if SEND_PANASONIC_AC32
+
402  void panasonic32(IRPanasonicAc32 *ac,
+
403  const bool on, const stdAc::opmode_t mode,
+
404  const float degrees, const stdAc::fanspeed_t fan,
+
405  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
406 #endif // SEND_PANASONIC_AC32
+
407 #if SEND_RHOSS
+
408  void rhoss(IRRhossAc *ac,
+
409  const bool on, const stdAc::opmode_t mode, const float degrees,
+
410  const stdAc::fanspeed_t fan, const stdAc::swingv_t swing);
+
411 #endif // SEND_RHOSS
+
412 #if SEND_SAMSUNG_AC
+
413  void samsung(IRSamsungAc *ac,
+
414  const bool on, const stdAc::opmode_t mode, const float degrees,
+
415  const stdAc::fanspeed_t fan,
+
416  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
417  const bool quiet, const bool turbo, const bool econo,
+
418  const bool light, const bool filter, const bool clean,
+
419  const bool beep, const int16_t sleep = -1,
+
420  const bool prevpower = true, const int16_t prevsleep = -1,
+
421  const bool forceextended = true);
+
422 #endif // SEND_SAMSUNG_AC
+
423 #if SEND_SANYO_AC
+
424  void sanyo(IRSanyoAc *ac,
+
425  const bool on, const stdAc::opmode_t mode, const float degrees,
+
426  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
427  const bool beep, const int16_t sleep = -1);
+
428 #endif // SEND_SANYO_AC
+
429 #if SEND_SANYO_AC88
+
430  void sanyo88(IRSanyoAc88 *ac,
+
431  const bool on, const stdAc::opmode_t mode,
+
432  const float degrees, const stdAc::fanspeed_t fan,
+
433  const stdAc::swingv_t swingv, const bool turbo,
+
434  const bool filter,
+
435  const int16_t sleep = -1, const int16_t clock = -1);
+
436 #endif // SEND_SANYO_AC88
+
437 #if SEND_SHARP_AC
+
438  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
+
439  const bool on, const bool prev_power, const stdAc::opmode_t mode,
+
440  const float degrees, const stdAc::fanspeed_t fan,
+
441  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
+
442  const bool turbo, const bool light,
+
443  const bool filter, const bool clean);
+
444 #endif // SEND_SHARP_AC
+
445 #if SEND_TCL112AC
+
446  void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model,
+
447  const bool on, const stdAc::opmode_t mode, const float degrees,
+
448  const stdAc::fanspeed_t fan,
+
449  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
450  const bool quiet, const bool turbo, const bool light,
+
451  const bool econo, const bool filter);
+
452 #endif // SEND_TCL112AC
+
453 #if SEND_TECHNIBEL_AC
+
454  void technibel(IRTechnibelAc *ac,
+
455  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
456  const float degrees, const stdAc::fanspeed_t fan,
+
457  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
458 #endif // SEND_TECHNIBEL_AC
+
459 #if SEND_TECO
+
460  void teco(IRTecoAc *ac,
+
461  const bool on, const stdAc::opmode_t mode, const float degrees,
+
462  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
463  const bool light, const int16_t sleep = -1);
+
464 #endif // SEND_TECO
+
465 #if SEND_TOSHIBA_AC
+
466  void toshiba(IRToshibaAC *ac,
+
467  const bool on, const stdAc::opmode_t mode, const float degrees,
+
468  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
469  const bool turbo, const bool econo, const bool filter);
+
470 #endif // SEND_TOSHIBA_AC
+
471 #if SEND_TROTEC
+
472  void trotec(IRTrotecESP *ac,
+
473  const bool on, const stdAc::opmode_t mode, const float degrees,
+
474  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
+
475 #endif // SEND_TROTEC
+
476 #if SEND_TROTEC_3550
+
477  void trotec3550(IRTrotec3550 *ac,
+
478  const bool on, const stdAc::opmode_t mode,
+
479  const bool celsius, const float degrees,
+
480  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv);
+
481 #endif // SEND_TROTEC_3550
+
482 #if SEND_TRUMA
+
483  void truma(IRTrumaAc *ac,
+
484  const bool on, const stdAc::opmode_t mode, const float degrees,
+
485  const stdAc::fanspeed_t fan, const bool quiet);
+
486 #endif // SEND_TRUMA
+
487 #if SEND_VESTEL_AC
+
488  void vestel(IRVestelAc *ac,
+
489  const bool on, const stdAc::opmode_t mode, const float degrees,
+
490  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
491  const bool turbo, const bool filter,
+
492  const int16_t sleep = -1, const int16_t clock = -1,
+
493  const bool sendNormal = true);
+
494 #endif // SEND_VESTEL_AC
+
495 #if SEND_VOLTAS
+
496  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
+
497  const bool on, const stdAc::opmode_t mode,
+
498  const float degrees, const stdAc::fanspeed_t fan,
+
499  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
500  const bool turbo, const bool econo, const bool light,
+
501  const int16_t sleep = -1);
+
502 #endif // SEND_VOLTAS
+
503 #if SEND_WHIRLPOOL_AC
+
504  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
+
505  const bool on, const stdAc::opmode_t mode, const float degrees,
+
506  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
507  const bool turbo, const bool light,
+
508  const int16_t sleep = -1, const int16_t clock = -1);
+
509 #endif // SEND_WHIRLPOOL_AC
+
510 #if SEND_TRANSCOLD
+
511  void transcold(IRTranscoldAc *ac,
+
512  const bool on, const stdAc::opmode_t mode, const float degrees,
+
513  const stdAc::fanspeed_t fan,
+
514  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
515 #endif // SEND_TRANSCOLD
+
516 static stdAc::state_t cleanState(const stdAc::state_t state);
+
517 static stdAc::state_t handleToggles(const stdAc::state_t desired,
+
518  const stdAc::state_t *prev = NULL);
+
519 }; // IRac class
+
520 
+
522 namespace IRAcUtils {
+
523  String resultAcToString(const decode_results * const results);
+
524  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
+
525  const stdAc::state_t *prev = NULL);
+
526 } // namespace IRAcUtils
+
527 #endif // IRAC_H_
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:104
-
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:336
+
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:378
Support for Kelvinator A/C protocols.
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:185
-
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:1207
-
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:121
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:866
-
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:148
-
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:143
+
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:1249
+
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:127
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:894
+
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:149
+
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:144
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:3282
-
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:1283
+
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:3336
+
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:1325
@ kAuto
+
Class for handling detailed Airton 56-bit A/C messages.
Definition: ir_Airton.h:75
Support for Electra A/C protocols.
-
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:854
-
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3139
+
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:896
+
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3193
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:731
+
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:773
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 Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:1877
+
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 Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:1920
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:693
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:1386
+
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:1428
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:775
-
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:939
+
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:981
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1040
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:3457
+
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:3511
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:188
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:2339
+
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:2383
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:800
-
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1833
-
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:2298
-
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:2376
+
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:842
+
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1876
+
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:2342
+
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:2420
tcl_ac_remote_model_t
TCL A/C model numbers.
Definition: IRsend.h:176
-
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3145
-
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3156
+
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3199
+
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3210
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:134
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1170
-
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1171
+
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1213
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:2256
+
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:2300
Class for handling detailed Rhoss A/C messages.
Definition: ir_Rhoss.h:94
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h: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:567
-
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:69
+
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:609
+
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:70
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:873
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:90
-
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1960
+
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:2003
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:146
-
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1129
-
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:607
+
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1171
+
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:649
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:50
-
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3502
+
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:51
+
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3556
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:108
-
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:1088
+
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:1130
Definition: ir_Kelon.h:70
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
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:3434
-
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:103
-
std::string String
Definition: IRremoteESP8266.h:1309
-
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:252
-
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:2155
-
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3323
+
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3488
+
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:104
+
std::string String
Definition: IRremoteESP8266.h:1339
+
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:265
+
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:2199
+
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3377
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:374
+
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:399
EcoClim A/C protocol.
-
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:122
-
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:699
+
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:124
+
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:741
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:112
Support for TCL protocols.
-
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3168
-
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:770
+
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3222
+
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:812
Support for Transcold A/C protocols.
Support for Hitachi A/C protocols.
Support for Panasonic protocols.
-
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2415
-
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:2454
-
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:320
+
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2459
+
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:2498
+
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:345
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:158
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:1554
-
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:3924
+
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:1597
+
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:3985
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:303
Class for handling detailed Mirage 120-bit A/C messages.
Definition: ir_Mirage.h:196
-
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1317
+
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:1359
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
-
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3442
-
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3508
-
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:644
+
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3496
+
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3562
+
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:686
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
Support for Gree A/C protocols.
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:84
Support for Mirage protocol.
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:153
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:109
-
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:169
+
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:110
+
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:173
+
Support for Airton protocol.
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
-
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:116
-
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:1468
-
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:1751
-
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3472
+
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:120
+
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:1510
+
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:1794
+
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3526
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
-
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:54
+
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:55
Support for Teco protocols.
Class for handling detailed Trotec 3550 A/C messages.
Definition: ir_Trotec.h:198
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:896
-
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:2441
+
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:938
+
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:2485
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:1517
-
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:364
+
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:1559
+
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:406
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
Class for handling detailed EcoClim A/C 56 bit messages.
Definition: ir_Ecoclim.h:84
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
@@ -717,62 +728,63 @@
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1110
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:112
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
-
void trotec3550(IRTrotec3550 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2187
+
void trotec3550(IRTrotec3550 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2231
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:292
-
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:1710
+
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:1753
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:929
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:153
-
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:2119
Class for handling detailed Haier 176 bit A/C messages.
Definition: ir_Haier.h:362
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:396
+
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:438
+
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:2163
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:194
-
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:1590
+
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:1633
@ kAuto
Support for Rhoss A/C protocol.
-
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:110
-
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:2086
-
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:3174
+
void airton(IRAirtonAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition: IRac.cpp:347
+
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:111
+
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:2129
+
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:3228
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:1244
+
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:1286
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
@ kOff
-
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1787
+
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:1830
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:3416
-
void sanyo88(IRSanyoAc88 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:1918
-
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:1625
-
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:3241
+
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3470
+
void sanyo88(IRSanyoAc88 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:1961
+
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:1668
+
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:3295
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:100
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:223
-
void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2016
-
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1498
+
void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2059
+
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1540
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:133
Support for Truma protocol.
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
-
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2219
-
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3488
+
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2263
+
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3542
Class for handling detailed Truma A/C messages.
Definition: ir_Truma.h:69
Support for Technibel protocol.
-
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:830
-
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1352
+
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:872
+
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1394
Support for Kelan AC protocol. Both sending and decoding should be functional for models of series KE...
-
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:111
+
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:112
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:460
-
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:677
-
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:532
-
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:100
-
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1424
-
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:1666
+
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:719
+
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:574
+
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:101
+
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1466
+
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:1709
@ kOff
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:271
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:152
-
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:465
-
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:3210
+
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:507
+
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:3264
Support for Toshiba 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 stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1048
-
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:1004
+
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1090
+
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:1046
Structure to hold a common A/C state.
Definition: IRsend.h:97
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:100
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
@@ -780,15 +792,15 @@
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:127
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:226
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:153
+
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:154
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:981
Amcor A/C protocol.
-
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:108
-
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:2053
+
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:109
+
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:2096
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:182
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:169
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:428
+
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:470
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:140
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
diff --git a/docs/doxygen/html/IRrecv_8h_source.html b/docs/doxygen/html/IRrecv_8h_source.html index 3513d4c84..654f87515 100644 --- a/docs/doxygen/html/IRrecv_8h_source.html +++ b/docs/doxygen/html/IRrecv_8h_source.html @@ -486,410 +486,415 @@
419  bool decodeCOOLIX(decode_results *results, uint16_t offset = kStartOffset,
420  const uint16_t nbits = kCoolixBits,
421  const bool strict = true);
-
422 #endif
-
423 #if DECODE_DENON
-
424  bool decodeDenon(decode_results *results, uint16_t offset = kStartOffset,
-
425  const uint16_t nbits = kDenonBits,
-
426  const bool strict = true);
-
427 #endif
-
428 #if DECODE_DISH
-
429  bool decodeDISH(decode_results *results, uint16_t offset = kStartOffset,
-
430  const uint16_t nbits = kDishBits,
-
431  const bool strict = true);
+
422 #endif // DECODE_COOLIX
+
423 #if DECODE_COOLIX48
+
424  bool decodeCoolix48(decode_results *results, uint16_t offset = kStartOffset,
+
425  const uint16_t nbits = kCoolix48Bits,
+
426  const bool strict = true);
+
427 #endif // DECODE_COOLIX48
+
428 #if DECODE_DENON
+
429  bool decodeDenon(decode_results *results, uint16_t offset = kStartOffset,
+
430  const uint16_t nbits = kDenonBits,
+
431  const bool strict = true);
432 #endif
-
433 #if (DECODE_SHARP || DECODE_DENON)
-
434  bool decodeSharp(decode_results *results, uint16_t offset = kStartOffset,
-
435  const uint16_t nbits = kSharpBits,
-
436  const bool strict = true, const bool expansion = true);
+
433 #if DECODE_DISH
+
434  bool decodeDISH(decode_results *results, uint16_t offset = kStartOffset,
+
435  const uint16_t nbits = kDishBits,
+
436  const bool strict = true);
437 #endif
-
438 #if DECODE_SHARP_AC
-
439  bool decodeSharpAc(decode_results *results, uint16_t offset = kStartOffset,
-
440  const uint16_t nbits = kSharpAcBits,
-
441  const bool strict = true);
+
438 #if (DECODE_SHARP || DECODE_DENON)
+
439  bool decodeSharp(decode_results *results, uint16_t offset = kStartOffset,
+
440  const uint16_t nbits = kSharpBits,
+
441  const bool strict = true, const bool expansion = true);
442 #endif
-
443 #if DECODE_AIWA_RC_T501
-
444  bool decodeAiwaRCT501(decode_results *results, uint16_t offset = kStartOffset,
-
445  const uint16_t nbits = kAiwaRcT501Bits,
-
446  const bool strict = true);
+
443 #if DECODE_SHARP_AC
+
444  bool decodeSharpAc(decode_results *results, uint16_t offset = kStartOffset,
+
445  const uint16_t nbits = kSharpAcBits,
+
446  const bool strict = true);
447 #endif
-
448 #if DECODE_NIKAI
-
449  bool decodeNikai(decode_results *results, uint16_t offset = kStartOffset,
-
450  const uint16_t nbits = kNikaiBits,
-
451  const bool strict = true);
+
448 #if DECODE_AIWA_RC_T501
+
449  bool decodeAiwaRCT501(decode_results *results, uint16_t offset = kStartOffset,
+
450  const uint16_t nbits = kAiwaRcT501Bits,
+
451  const bool strict = true);
452 #endif
-
453 #if DECODE_MAGIQUEST
-
454  bool decodeMagiQuest(decode_results *results, uint16_t offset = kStartOffset,
-
455  const uint16_t nbits = kMagiquestBits,
-
456  const bool strict = true);
+
453 #if DECODE_NIKAI
+
454  bool decodeNikai(decode_results *results, uint16_t offset = kStartOffset,
+
455  const uint16_t nbits = kNikaiBits,
+
456  const bool strict = true);
457 #endif
-
458 #if DECODE_KELVINATOR
-
459  bool decodeKelvinator(decode_results *results, uint16_t offset = kStartOffset,
-
460  const uint16_t nbits = kKelvinatorBits,
-
461  const bool strict = true);
+
458 #if DECODE_MAGIQUEST
+
459  bool decodeMagiQuest(decode_results *results, uint16_t offset = kStartOffset,
+
460  const uint16_t nbits = kMagiquestBits,
+
461  const bool strict = true);
462 #endif
-
463 #if DECODE_DAIKIN
-
464  bool decodeDaikin(decode_results *results, uint16_t offset = kStartOffset,
-
465  const uint16_t nbits = kDaikinBits,
-
466  const bool strict = true);
+
463 #if DECODE_KELVINATOR
+
464  bool decodeKelvinator(decode_results *results, uint16_t offset = kStartOffset,
+
465  const uint16_t nbits = kKelvinatorBits,
+
466  const bool strict = true);
467 #endif
-
468 #if DECODE_DAIKIN64
-
469  bool decodeDaikin64(decode_results *results, uint16_t offset = kStartOffset,
-
470  const uint16_t nbits = kDaikin64Bits,
-
471  const bool strict = true);
-
472 #endif // DECODE_DAIKIN64
-
473 #if DECODE_DAIKIN128
-
474  bool decodeDaikin128(decode_results *results, uint16_t offset = kStartOffset,
-
475  const uint16_t nbits = kDaikin128Bits,
-
476  const bool strict = true);
-
477 #endif // DECODE_DAIKIN128
-
478 #if DECODE_DAIKIN152
-
479  bool decodeDaikin152(decode_results *results, uint16_t offset = kStartOffset,
-
480  const uint16_t nbits = kDaikin152Bits,
+
468 #if DECODE_DAIKIN
+
469  bool decodeDaikin(decode_results *results, uint16_t offset = kStartOffset,
+
470  const uint16_t nbits = kDaikinBits,
+
471  const bool strict = true);
+
472 #endif
+
473 #if DECODE_DAIKIN64
+
474  bool decodeDaikin64(decode_results *results, uint16_t offset = kStartOffset,
+
475  const uint16_t nbits = kDaikin64Bits,
+
476  const bool strict = true);
+
477 #endif // DECODE_DAIKIN64
+
478 #if DECODE_DAIKIN128
+
479  bool decodeDaikin128(decode_results *results, uint16_t offset = kStartOffset,
+
480  const uint16_t nbits = kDaikin128Bits,
481  const bool strict = true);
-
482 #endif // DECODE_DAIKIN152
-
483 #if DECODE_DAIKIN160
-
484  bool decodeDaikin160(decode_results *results, uint16_t offset = kStartOffset,
-
485  const uint16_t nbits = kDaikin160Bits,
+
482 #endif // DECODE_DAIKIN128
+
483 #if DECODE_DAIKIN152
+
484  bool decodeDaikin152(decode_results *results, uint16_t offset = kStartOffset,
+
485  const uint16_t nbits = kDaikin152Bits,
486  const bool strict = true);
-
487 #endif // DECODE_DAIKIN160
-
488 #if DECODE_DAIKIN176
-
489  bool decodeDaikin176(decode_results *results, uint16_t offset = kStartOffset,
-
490  const uint16_t nbits = kDaikin176Bits,
+
487 #endif // DECODE_DAIKIN152
+
488 #if DECODE_DAIKIN160
+
489  bool decodeDaikin160(decode_results *results, uint16_t offset = kStartOffset,
+
490  const uint16_t nbits = kDaikin160Bits,
491  const bool strict = true);
-
492 #endif // DECODE_DAIKIN176
-
493 #if DECODE_DAIKIN2
-
494  bool decodeDaikin2(decode_results *results, uint16_t offset = kStartOffset,
-
495  const uint16_t nbits = kDaikin2Bits,
-
496  const bool strict = true);
-
497 #endif
-
498 #if DECODE_DAIKIN216
-
499  bool decodeDaikin216(decode_results *results, uint16_t offset = kStartOffset,
-
500  const uint16_t nbits = kDaikin216Bits,
-
501  const bool strict = true);
+
492 #endif // DECODE_DAIKIN160
+
493 #if DECODE_DAIKIN176
+
494  bool decodeDaikin176(decode_results *results, uint16_t offset = kStartOffset,
+
495  const uint16_t nbits = kDaikin176Bits,
+
496  const bool strict = true);
+
497 #endif // DECODE_DAIKIN176
+
498 #if DECODE_DAIKIN2
+
499  bool decodeDaikin2(decode_results *results, uint16_t offset = kStartOffset,
+
500  const uint16_t nbits = kDaikin2Bits,
+
501  const bool strict = true);
502 #endif
-
503 #if DECODE_TOSHIBA_AC
-
504  bool decodeToshibaAC(decode_results *results, uint16_t offset = kStartOffset,
-
505  const uint16_t nbits = kToshibaACBits,
+
503 #if DECODE_DAIKIN216
+
504  bool decodeDaikin216(decode_results *results, uint16_t offset = kStartOffset,
+
505  const uint16_t nbits = kDaikin216Bits,
506  const bool strict = true);
507 #endif
-
508 #if DECODE_TROTEC
-
509  bool decodeTrotec(decode_results *results, uint16_t offset = kStartOffset,
-
510  const uint16_t nbits = kTrotecBits,
-
511  const bool strict = true);
-
512 #endif // DECODE_TROTEC
-
513 #if DECODE_TROTEC_3550
-
514  bool decodeTrotec3550(decode_results *results, uint16_t offset = kStartOffset,
-
515  const uint16_t nbits = kTrotecBits,
-
516  const bool strict = true);
-
517 #endif // DECODE_TROTEC_3550
-
518 #if DECODE_MIDEA
-
519  bool decodeMidea(decode_results *results, uint16_t offset = kStartOffset,
-
520  const uint16_t nbits = kMideaBits,
-
521  const bool strict = true);
-
522 #endif // DECODE_MIDEA
-
523 #if DECODE_MIDEA24
-
524  bool decodeMidea24(decode_results *results, uint16_t offset = kStartOffset,
-
525  const uint16_t nbits = kMidea24Bits,
-
526  const bool strict = true);
-
527 #endif // DECODE_MIDEA24
-
528 #if DECODE_FUJITSU_AC
-
529  bool decodeFujitsuAC(decode_results *results, uint16_t offset = kStartOffset,
-
530  const uint16_t nbits = kFujitsuAcBits,
-
531  const bool strict = false);
-
532 #endif
-
533 #if DECODE_LASERTAG
-
534  bool decodeLasertag(decode_results *results, uint16_t offset = kStartOffset,
-
535  const uint16_t nbits = kLasertagBits,
-
536  const bool strict = true);
+
508 #if DECODE_TOSHIBA_AC
+
509  bool decodeToshibaAC(decode_results *results, uint16_t offset = kStartOffset,
+
510  const uint16_t nbits = kToshibaACBits,
+
511  const bool strict = true);
+
512 #endif
+
513 #if DECODE_TROTEC
+
514  bool decodeTrotec(decode_results *results, uint16_t offset = kStartOffset,
+
515  const uint16_t nbits = kTrotecBits,
+
516  const bool strict = true);
+
517 #endif // DECODE_TROTEC
+
518 #if DECODE_TROTEC_3550
+
519  bool decodeTrotec3550(decode_results *results, uint16_t offset = kStartOffset,
+
520  const uint16_t nbits = kTrotecBits,
+
521  const bool strict = true);
+
522 #endif // DECODE_TROTEC_3550
+
523 #if DECODE_MIDEA
+
524  bool decodeMidea(decode_results *results, uint16_t offset = kStartOffset,
+
525  const uint16_t nbits = kMideaBits,
+
526  const bool strict = true);
+
527 #endif // DECODE_MIDEA
+
528 #if DECODE_MIDEA24
+
529  bool decodeMidea24(decode_results *results, uint16_t offset = kStartOffset,
+
530  const uint16_t nbits = kMidea24Bits,
+
531  const bool strict = true);
+
532 #endif // DECODE_MIDEA24
+
533 #if DECODE_FUJITSU_AC
+
534  bool decodeFujitsuAC(decode_results *results, uint16_t offset = kStartOffset,
+
535  const uint16_t nbits = kFujitsuAcBits,
+
536  const bool strict = false);
537 #endif
-
538 #if DECODE_MILESTAG2
-
539  bool decodeMilestag2(decode_results *results, uint16_t offset = kStartOffset,
-
540  const uint16_t nbits = kMilesTag2ShotBits,
-
541  const bool strict = true);
+
538 #if DECODE_LASERTAG
+
539  bool decodeLasertag(decode_results *results, uint16_t offset = kStartOffset,
+
540  const uint16_t nbits = kLasertagBits,
+
541  const bool strict = true);
542 #endif
-
543 #if DECODE_CARRIER_AC
-
544  bool decodeCarrierAC(decode_results *results, uint16_t offset = kStartOffset,
-
545  const uint16_t nbits = kCarrierAcBits,
+
543 #if DECODE_MILESTAG2
+
544  bool decodeMilestag2(decode_results *results, uint16_t offset = kStartOffset,
+
545  const uint16_t nbits = kMilesTag2ShotBits,
546  const bool strict = true);
-
547 #endif // DECODE_CARRIER_AC
-
548 #if DECODE_CARRIER_AC40
-
549  bool decodeCarrierAC40(decode_results *results,
-
550  uint16_t offset = kStartOffset,
-
551  const uint16_t nbits = kCarrierAc40Bits,
-
552  const bool strict = true);
-
553 #endif // DECODE_CARRIER_AC40
-
554 #if DECODE_CARRIER_AC64
-
555  bool decodeCarrierAC64(decode_results *results,
-
556  uint16_t offset = kStartOffset,
-
557  const uint16_t nbits = kCarrierAc64Bits,
-
558  const bool strict = true);
-
559 #endif // DECODE_CARRIER_AC64
-
560 #if DECODE_GOODWEATHER
-
561  bool decodeGoodweather(decode_results *results,
-
562  uint16_t offset = kStartOffset,
-
563  const uint16_t nbits = kGoodweatherBits,
-
564  const bool strict = true);
-
565 #endif // DECODE_GOODWEATHER
-
566 #if DECODE_GREE
-
567  bool decodeGree(decode_results *results, uint16_t offset = kStartOffset,
-
568  const uint16_t nbits = kGreeBits,
-
569  const bool strict = true);
-
570 #endif
-
571 #if (DECODE_HAIER_AC | DECODE_HAIER_AC_YRW02)
-
572  bool decodeHaierAC(decode_results *results, uint16_t offset = kStartOffset,
-
573  const uint16_t nbits = kHaierACBits,
-
574  const bool strict = true);
+
547 #endif
+
548 #if DECODE_CARRIER_AC
+
549  bool decodeCarrierAC(decode_results *results, uint16_t offset = kStartOffset,
+
550  const uint16_t nbits = kCarrierAcBits,
+
551  const bool strict = true);
+
552 #endif // DECODE_CARRIER_AC
+
553 #if DECODE_CARRIER_AC40
+
554  bool decodeCarrierAC40(decode_results *results,
+
555  uint16_t offset = kStartOffset,
+
556  const uint16_t nbits = kCarrierAc40Bits,
+
557  const bool strict = true);
+
558 #endif // DECODE_CARRIER_AC40
+
559 #if DECODE_CARRIER_AC64
+
560  bool decodeCarrierAC64(decode_results *results,
+
561  uint16_t offset = kStartOffset,
+
562  const uint16_t nbits = kCarrierAc64Bits,
+
563  const bool strict = true);
+
564 #endif // DECODE_CARRIER_AC64
+
565 #if DECODE_GOODWEATHER
+
566  bool decodeGoodweather(decode_results *results,
+
567  uint16_t offset = kStartOffset,
+
568  const uint16_t nbits = kGoodweatherBits,
+
569  const bool strict = true);
+
570 #endif // DECODE_GOODWEATHER
+
571 #if DECODE_GREE
+
572  bool decodeGree(decode_results *results, uint16_t offset = kStartOffset,
+
573  const uint16_t nbits = kGreeBits,
+
574  const bool strict = true);
575 #endif
-
576 #if DECODE_HAIER_AC_YRW02
-
577  bool decodeHaierACYRW02(decode_results *results,
-
578  uint16_t offset = kStartOffset,
-
579  const uint16_t nbits = kHaierACYRW02Bits,
-
580  const bool strict = true);
-
581 #endif
-
582 #if DECODE_HAIER_AC176
-
583  bool decodeHaierAC176(decode_results *results,
-
584  uint16_t offset = kStartOffset,
-
585  const uint16_t nbits = kHaierAC176Bits,
-
586  const bool strict = true);
-
587 #endif // DECODE_HAIER_AC176
-
588 #if (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC344)
-
589  bool decodeHitachiAC(decode_results *results, uint16_t offset = kStartOffset,
-
590  const uint16_t nbits = kHitachiAcBits,
-
591  const bool strict = true, const bool MSBfirst = true);
-
592 #endif
-
593 #if DECODE_HITACHI_AC1
-
594  bool decodeHitachiAC1(decode_results *results, uint16_t offset = kStartOffset,
-
595  const uint16_t nbits = kHitachiAc1Bits,
-
596  const bool strict = true);
+
576 #if (DECODE_HAIER_AC | DECODE_HAIER_AC_YRW02)
+
577  bool decodeHaierAC(decode_results *results, uint16_t offset = kStartOffset,
+
578  const uint16_t nbits = kHaierACBits,
+
579  const bool strict = true);
+
580 #endif
+
581 #if DECODE_HAIER_AC_YRW02
+
582  bool decodeHaierACYRW02(decode_results *results,
+
583  uint16_t offset = kStartOffset,
+
584  const uint16_t nbits = kHaierACYRW02Bits,
+
585  const bool strict = true);
+
586 #endif
+
587 #if DECODE_HAIER_AC176
+
588  bool decodeHaierAC176(decode_results *results,
+
589  uint16_t offset = kStartOffset,
+
590  const uint16_t nbits = kHaierAC176Bits,
+
591  const bool strict = true);
+
592 #endif // DECODE_HAIER_AC176
+
593 #if (DECODE_HITACHI_AC || DECODE_HITACHI_AC2 || DECODE_HITACHI_AC344)
+
594  bool decodeHitachiAC(decode_results *results, uint16_t offset = kStartOffset,
+
595  const uint16_t nbits = kHitachiAcBits,
+
596  const bool strict = true, const bool MSBfirst = true);
597 #endif
-
598 #if DECODE_HITACHI_AC3
-
599  bool decodeHitachiAc3(decode_results *results,
-
600  uint16_t offset = kStartOffset,
-
601  const uint16_t nbits = kHitachiAc3Bits,
-
602  const bool strict = true);
-
603 #endif // DECODE_HITACHI_AC3
-
604 #if DECODE_HITACHI_AC424
-
605  bool decodeHitachiAc424(decode_results *results,
-
606  uint16_t offset = kStartOffset,
-
607  const uint16_t nbits = kHitachiAc424Bits,
-
608  const bool strict = true);
-
609 #endif // DECODE_HITACHI_AC424
-
610 #if DECODE_GICABLE
-
611  bool decodeGICable(decode_results *results, uint16_t offset = kStartOffset,
-
612  const uint16_t nbits = kGicableBits,
-
613  const bool strict = true);
-
614 #endif
-
615 #if DECODE_WHIRLPOOL_AC
-
616  bool decodeWhirlpoolAC(decode_results *results,
-
617  uint16_t offset = kStartOffset,
-
618  const uint16_t nbits = kWhirlpoolAcBits,
-
619  const bool strict = true);
-
620 #endif
-
621 #if DECODE_LUTRON
-
622  bool decodeLutron(decode_results *results, uint16_t offset = kStartOffset,
-
623  const uint16_t nbits = kLutronBits,
-
624  const bool strict = true);
+
598 #if DECODE_HITACHI_AC1
+
599  bool decodeHitachiAC1(decode_results *results, uint16_t offset = kStartOffset,
+
600  const uint16_t nbits = kHitachiAc1Bits,
+
601  const bool strict = true);
+
602 #endif
+
603 #if DECODE_HITACHI_AC3
+
604  bool decodeHitachiAc3(decode_results *results,
+
605  uint16_t offset = kStartOffset,
+
606  const uint16_t nbits = kHitachiAc3Bits,
+
607  const bool strict = true);
+
608 #endif // DECODE_HITACHI_AC3
+
609 #if DECODE_HITACHI_AC424
+
610  bool decodeHitachiAc424(decode_results *results,
+
611  uint16_t offset = kStartOffset,
+
612  const uint16_t nbits = kHitachiAc424Bits,
+
613  const bool strict = true);
+
614 #endif // DECODE_HITACHI_AC424
+
615 #if DECODE_GICABLE
+
616  bool decodeGICable(decode_results *results, uint16_t offset = kStartOffset,
+
617  const uint16_t nbits = kGicableBits,
+
618  const bool strict = true);
+
619 #endif
+
620 #if DECODE_WHIRLPOOL_AC
+
621  bool decodeWhirlpoolAC(decode_results *results,
+
622  uint16_t offset = kStartOffset,
+
623  const uint16_t nbits = kWhirlpoolAcBits,
+
624  const bool strict = true);
625 #endif
-
626 #if DECODE_ELECTRA_AC
-
627  bool decodeElectraAC(decode_results *results, uint16_t offset = kStartOffset,
-
628  const uint16_t nbits = kElectraAcBits,
-
629  const bool strict = true);
+
626 #if DECODE_LUTRON
+
627  bool decodeLutron(decode_results *results, uint16_t offset = kStartOffset,
+
628  const uint16_t nbits = kLutronBits,
+
629  const bool strict = true);
630 #endif
-
631 #if DECODE_PANASONIC_AC
-
632  bool decodePanasonicAC(decode_results *results,
-
633  uint16_t offset = kStartOffset,
-
634  const uint16_t nbits = kPanasonicAcBits,
-
635  const bool strict = true);
-
636 #endif // DECODE_PANASONIC_AC
-
637 #if DECODE_PANASONIC_AC32
-
638  bool decodePanasonicAC32(decode_results *results,
-
639  uint16_t offset = kStartOffset,
-
640  const uint16_t nbits = kPanasonicAc32Bits,
-
641  const bool strict = true);
-
642 #endif // DECODE_PANASONIC_AC32
-
643 #if DECODE_PIONEER
-
644  bool decodePioneer(decode_results *results, uint16_t offset = kStartOffset,
-
645  const uint16_t nbits = kPioneerBits,
-
646  const bool strict = true);
-
647 #endif
-
648 #if DECODE_MWM
-
649  bool decodeMWM(decode_results *results, uint16_t offset = kStartOffset,
-
650  const uint16_t nbits = 24,
-
651  const bool strict = true);
+
631 #if DECODE_ELECTRA_AC
+
632  bool decodeElectraAC(decode_results *results, uint16_t offset = kStartOffset,
+
633  const uint16_t nbits = kElectraAcBits,
+
634  const bool strict = true);
+
635 #endif
+
636 #if DECODE_PANASONIC_AC
+
637  bool decodePanasonicAC(decode_results *results,
+
638  uint16_t offset = kStartOffset,
+
639  const uint16_t nbits = kPanasonicAcBits,
+
640  const bool strict = true);
+
641 #endif // DECODE_PANASONIC_AC
+
642 #if DECODE_PANASONIC_AC32
+
643  bool decodePanasonicAC32(decode_results *results,
+
644  uint16_t offset = kStartOffset,
+
645  const uint16_t nbits = kPanasonicAc32Bits,
+
646  const bool strict = true);
+
647 #endif // DECODE_PANASONIC_AC32
+
648 #if DECODE_PIONEER
+
649  bool decodePioneer(decode_results *results, uint16_t offset = kStartOffset,
+
650  const uint16_t nbits = kPioneerBits,
+
651  const bool strict = true);
652 #endif
-
653 #if DECODE_VESTEL_AC
-
654  bool decodeVestelAc(decode_results *results, uint16_t offset = kStartOffset,
-
655  const uint16_t nbits = kVestelAcBits,
-
656  const bool strict = true);
+
653 #if DECODE_MWM
+
654  bool decodeMWM(decode_results *results, uint16_t offset = kStartOffset,
+
655  const uint16_t nbits = 24,
+
656  const bool strict = true);
657 #endif
-
658 #if DECODE_TECO
-
659  bool decodeTeco(decode_results *results, uint16_t offset = kStartOffset,
-
660  const uint16_t nbits = kTecoBits,
-
661  const bool strict = false);
+
658 #if DECODE_VESTEL_AC
+
659  bool decodeVestelAc(decode_results *results, uint16_t offset = kStartOffset,
+
660  const uint16_t nbits = kVestelAcBits,
+
661  const bool strict = true);
662 #endif
-
663 #if DECODE_LEGOPF
-
664  bool decodeLegoPf(decode_results *results, uint16_t offset = kStartOffset,
-
665  const uint16_t nbits = kLegoPfBits,
-
666  const bool strict = true);
+
663 #if DECODE_TECO
+
664  bool decodeTeco(decode_results *results, uint16_t offset = kStartOffset,
+
665  const uint16_t nbits = kTecoBits,
+
666  const bool strict = false);
667 #endif
-
668 #if DECODE_NEOCLIMA
-
669  bool decodeNeoclima(decode_results *results, uint16_t offset = kStartOffset,
-
670  const uint16_t nbits = kNeoclimaBits,
-
671  const bool strict = true);
-
672 #endif // DECODE_NEOCLIMA
-
673 #if DECODE_AMCOR
-
674  bool decodeAmcor(decode_results *results, uint16_t offset = kStartOffset,
-
675  const uint16_t nbits = kAmcorBits,
-
676  const bool strict = true);
-
677 #endif // DECODE_AMCOR
-
678 #if DECODE_EPSON
-
679  bool decodeEpson(decode_results *results, uint16_t offset = kStartOffset,
-
680  const uint16_t nbits = kEpsonBits,
+
668 #if DECODE_LEGOPF
+
669  bool decodeLegoPf(decode_results *results, uint16_t offset = kStartOffset,
+
670  const uint16_t nbits = kLegoPfBits,
+
671  const bool strict = true);
+
672 #endif
+
673 #if DECODE_NEOCLIMA
+
674  bool decodeNeoclima(decode_results *results, uint16_t offset = kStartOffset,
+
675  const uint16_t nbits = kNeoclimaBits,
+
676  const bool strict = true);
+
677 #endif // DECODE_NEOCLIMA
+
678 #if DECODE_AMCOR
+
679  bool decodeAmcor(decode_results *results, uint16_t offset = kStartOffset,
+
680  const uint16_t nbits = kAmcorBits,
681  const bool strict = true);
-
682 #endif // DECODE_EPSON
-
683 #if DECODE_SYMPHONY
-
684  bool decodeSymphony(decode_results *results, uint16_t offset = kStartOffset,
-
685  const uint16_t nbits = kSymphonyBits,
+
682 #endif // DECODE_AMCOR
+
683 #if DECODE_EPSON
+
684  bool decodeEpson(decode_results *results, uint16_t offset = kStartOffset,
+
685  const uint16_t nbits = kEpsonBits,
686  const bool strict = true);
-
687 #endif // DECODE_SYMPHONY
-
688 #if DECODE_AIRWELL
-
689  bool decodeAirwell(decode_results *results, uint16_t offset = kStartOffset,
-
690  const uint16_t nbits = kAirwellBits,
-
691  const bool strict = true);
-
692 #endif // DECODE_AIRWELL
-
693 #if DECODE_DELONGHI_AC
-
694  bool decodeDelonghiAc(decode_results *results, uint16_t offset = kStartOffset,
-
695  const uint16_t nbits = kDelonghiAcBits,
+
687 #endif // DECODE_EPSON
+
688 #if DECODE_SYMPHONY
+
689  bool decodeSymphony(decode_results *results, uint16_t offset = kStartOffset,
+
690  const uint16_t nbits = kSymphonyBits,
+
691  const bool strict = true);
+
692 #endif // DECODE_SYMPHONY
+
693 #if DECODE_AIRWELL
+
694  bool decodeAirwell(decode_results *results, uint16_t offset = kStartOffset,
+
695  const uint16_t nbits = kAirwellBits,
696  const bool strict = true);
-
697 #endif // DECODE_DELONGHI_AC
-
698 #if DECODE_DOSHISHA
-
699  bool decodeDoshisha(decode_results *results, uint16_t offset = kStartOffset,
-
700  const uint16_t nbits = kDoshishaBits,
-
701  const bool strict = true);
-
702 #endif // DECODE_DOSHISHA
-
703 #if DECODE_MULTIBRACKETS
-
704  bool decodeMultibrackets(decode_results *results,
-
705  uint16_t offset = kStartOffset,
-
706  const uint16_t nbits = kMultibracketsBits,
-
707  const bool strict = true);
-
708 #endif // DECODE_MULTIBRACKETS
-
709 #if DECODE_TECHNIBEL_AC
-
710  bool decodeTechnibelAc(decode_results *results,
-
711  uint16_t offset = kStartOffset,
-
712  const uint16_t nbits = kTechnibelAcBits,
-
713  const bool strict = true);
-
714 #endif // DECODE_TECHNIBEL_AC
-
715 #if DECODE_CORONA_AC
-
716  bool decodeCoronaAc(decode_results *results, uint16_t offset = kStartOffset,
-
717  const uint16_t nbits = kCoronaAcBitsShort,
-
718  const bool strict = true);
-
719 #endif // DECODE_CORONA_AC
-
720 #if DECODE_ZEPEAL
-
721  bool decodeZepeal(decode_results *results, uint16_t offset = kStartOffset,
-
722  const uint16_t nbits = kZepealBits,
-
723  const bool strict = true);
-
724 #endif // DECODE_ZEPEAL
-
725 #if DECODE_METZ
-
726  bool decodeMetz(decode_results *results, uint16_t offset = kStartOffset,
-
727  const uint16_t nbits = kMetzBits,
-
728  const bool strict = true);
-
729 #endif // DECODE_METZ
-
730 #if DECODE_TRANSCOLD
-
731  bool decodeTranscold(decode_results *results, uint16_t offset = kStartOffset,
-
732  const uint16_t nbits = kTranscoldBits,
-
733  const bool strict = true);
-
734 #endif // DECODE_TRANSCOLD
-
735 #if DECODE_MIRAGE
-
736  bool decodeMirage(decode_results *results,
-
737  uint16_t offset = kStartOffset,
-
738  const uint16_t nbits = kMirageBits,
-
739  const bool strict = true);
-
740 #endif // DECODE_MIRAGE
-
741 #if DECODE_ELITESCREENS
-
742  bool decodeElitescreens(decode_results *results,
-
743  uint16_t offset = kStartOffset,
-
744  const uint16_t nbits = kEliteScreensBits,
-
745  const bool strict = true);
-
746 #endif // DECODE_ELITESCREENS
-
747 #if DECODE_ECOCLIM
-
748  bool decodeEcoclim(decode_results *results, uint16_t offset = kStartOffset,
-
749  const uint16_t nbits = kEcoclimBits,
-
750  const bool strict = true);
-
751 #endif // DECODE_ECOCLIM
-
752 #if DECODE_XMP
-
753  bool decodeXmp(decode_results *results, uint16_t offset = kStartOffset,
-
754  const uint16_t nbits = kXmpBits, const bool strict = true);
-
755 #endif // DECODE_XMP
-
756 #if DECODE_TRUMA
-
757  bool decodeTruma(decode_results *results, uint16_t offset = kStartOffset,
-
758  const uint16_t nbits = kTrumaBits, const bool strict = true);
-
759 #endif // DECODE_TRUMA
-
760 #if DECODE_TEKNOPOINT
-
761  bool decodeTeknopoint(decode_results *results, uint16_t offset = kStartOffset,
-
762  const uint16_t nbits = kTeknopointBits,
-
763  const bool strict = true);
-
764 #endif // DECODE_TEKNOPOINT
-
765 #if DECODE_KELON
-
766  bool decodeKelon(decode_results *results, uint16_t offset = kStartOffset,
-
767  const uint16_t nbits = kKelonBits, const bool strict = true);
-
768 #endif // DECODE_KELON
-
769 #if DECODE_BOSE
-
770  bool decodeBose(decode_results *results, uint16_t offset = kStartOffset,
-
771  const uint16_t nbits = kBoseBits, const bool strict = true);
-
772 #endif // DECODE_BOSE
-
773 #if DECODE_RHOSS
-
774  bool decodeRhoss(decode_results *results, uint16_t offset = kStartOffset,
-
775  const uint16_t nbits = kRhossBits, const bool strict = true);
-
776 #endif // DECODE_RHOSS
-
777 #if DECODE_AIRTON
-
778  bool decodeAirton(decode_results *results, uint16_t offset = kStartOffset,
-
779  const uint16_t nbits = kAirtonBits,
-
780  const bool strict = true);
-
781 #endif // DECODE_AIRTON
-
782 };
-
783 
-
784 #endif // IRRECV_H_
+
697 #endif // DECODE_AIRWELL
+
698 #if DECODE_DELONGHI_AC
+
699  bool decodeDelonghiAc(decode_results *results, uint16_t offset = kStartOffset,
+
700  const uint16_t nbits = kDelonghiAcBits,
+
701  const bool strict = true);
+
702 #endif // DECODE_DELONGHI_AC
+
703 #if DECODE_DOSHISHA
+
704  bool decodeDoshisha(decode_results *results, uint16_t offset = kStartOffset,
+
705  const uint16_t nbits = kDoshishaBits,
+
706  const bool strict = true);
+
707 #endif // DECODE_DOSHISHA
+
708 #if DECODE_MULTIBRACKETS
+
709  bool decodeMultibrackets(decode_results *results,
+
710  uint16_t offset = kStartOffset,
+
711  const uint16_t nbits = kMultibracketsBits,
+
712  const bool strict = true);
+
713 #endif // DECODE_MULTIBRACKETS
+
714 #if DECODE_TECHNIBEL_AC
+
715  bool decodeTechnibelAc(decode_results *results,
+
716  uint16_t offset = kStartOffset,
+
717  const uint16_t nbits = kTechnibelAcBits,
+
718  const bool strict = true);
+
719 #endif // DECODE_TECHNIBEL_AC
+
720 #if DECODE_CORONA_AC
+
721  bool decodeCoronaAc(decode_results *results, uint16_t offset = kStartOffset,
+
722  const uint16_t nbits = kCoronaAcBitsShort,
+
723  const bool strict = true);
+
724 #endif // DECODE_CORONA_AC
+
725 #if DECODE_ZEPEAL
+
726  bool decodeZepeal(decode_results *results, uint16_t offset = kStartOffset,
+
727  const uint16_t nbits = kZepealBits,
+
728  const bool strict = true);
+
729 #endif // DECODE_ZEPEAL
+
730 #if DECODE_METZ
+
731  bool decodeMetz(decode_results *results, uint16_t offset = kStartOffset,
+
732  const uint16_t nbits = kMetzBits,
+
733  const bool strict = true);
+
734 #endif // DECODE_METZ
+
735 #if DECODE_TRANSCOLD
+
736  bool decodeTranscold(decode_results *results, uint16_t offset = kStartOffset,
+
737  const uint16_t nbits = kTranscoldBits,
+
738  const bool strict = true);
+
739 #endif // DECODE_TRANSCOLD
+
740 #if DECODE_MIRAGE
+
741  bool decodeMirage(decode_results *results,
+
742  uint16_t offset = kStartOffset,
+
743  const uint16_t nbits = kMirageBits,
+
744  const bool strict = true);
+
745 #endif // DECODE_MIRAGE
+
746 #if DECODE_ELITESCREENS
+
747  bool decodeElitescreens(decode_results *results,
+
748  uint16_t offset = kStartOffset,
+
749  const uint16_t nbits = kEliteScreensBits,
+
750  const bool strict = true);
+
751 #endif // DECODE_ELITESCREENS
+
752 #if DECODE_ECOCLIM
+
753  bool decodeEcoclim(decode_results *results, uint16_t offset = kStartOffset,
+
754  const uint16_t nbits = kEcoclimBits,
+
755  const bool strict = true);
+
756 #endif // DECODE_ECOCLIM
+
757 #if DECODE_XMP
+
758  bool decodeXmp(decode_results *results, uint16_t offset = kStartOffset,
+
759  const uint16_t nbits = kXmpBits, const bool strict = true);
+
760 #endif // DECODE_XMP
+
761 #if DECODE_TRUMA
+
762  bool decodeTruma(decode_results *results, uint16_t offset = kStartOffset,
+
763  const uint16_t nbits = kTrumaBits, const bool strict = true);
+
764 #endif // DECODE_TRUMA
+
765 #if DECODE_TEKNOPOINT
+
766  bool decodeTeknopoint(decode_results *results, uint16_t offset = kStartOffset,
+
767  const uint16_t nbits = kTeknopointBits,
+
768  const bool strict = true);
+
769 #endif // DECODE_TEKNOPOINT
+
770 #if DECODE_KELON
+
771  bool decodeKelon(decode_results *results, uint16_t offset = kStartOffset,
+
772  const uint16_t nbits = kKelonBits, const bool strict = true);
+
773 #endif // DECODE_KELON
+
774 #if DECODE_BOSE
+
775  bool decodeBose(decode_results *results, uint16_t offset = kStartOffset,
+
776  const uint16_t nbits = kBoseBits, const bool strict = true);
+
777 #endif // DECODE_BOSE
+
778 #if DECODE_RHOSS
+
779  bool decodeRhoss(decode_results *results, uint16_t offset = kStartOffset,
+
780  const uint16_t nbits = kRhossBits, const bool strict = true);
+
781 #endif // DECODE_RHOSS
+
782 #if DECODE_AIRTON
+
783  bool decodeAirton(decode_results *results, uint16_t offset = kStartOffset,
+
784  const uint16_t nbits = kAirtonBits,
+
785  const bool strict = true);
+
786 #endif // DECODE_AIRTON
+
787 };
+
788 
+
789 #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
-
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:1373
+
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:1399
bool decodeRhoss(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kRhossBits, const bool strict=true)
Decode the supplied Rhoss formatted message. Status: STABLE / Known working.
Definition: ir_Rhoss.cpp:59
-
const uint16_t kDelonghiAcBits
Definition: IRremoteESP8266.h:1037
+
const uint16_t kDelonghiAcBits
Definition: IRremoteESP8266.h:1067
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 kRhossBits
Definition: IRremoteESP8266.h:1226
-
const uint16_t kMirageBits
Definition: IRremoteESP8266.h:1115
+
const uint16_t kRhossBits
Definition: IRremoteESP8266.h:1256
+
const uint16_t kMirageBits
Definition: IRremoteESP8266.h:1145
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:1336
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:2921
-
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:1061
-
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:1527
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:866
-
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:1002
+
const uint16_t kGicableBits
Definition: IRremoteESP8266.h:1091
+
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:1553
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:894
+
const uint16_t kCarrierAcBits
Definition: IRremoteESP8266.h:1032
bool decodeTranscold(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTranscoldBits, const bool strict=true)
Decode the supplied Transcold A/C message. Status: STABLE / Known Working.
Definition: ir_Transcold.cpp:441
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:1136
-
const uint16_t kSharpAcBits
Definition: IRremoteESP8266.h:1180
-
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1214
+
const uint16_t kMultibracketsBits
Definition: IRremoteESP8266.h:1166
+
const uint16_t kSharpAcBits
Definition: IRremoteESP8266.h:1210
+
const uint16_t kWhynterBits
Definition: IRremoteESP8266.h:1244
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:283
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: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:677
-
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:988
+
const uint16_t kAirwellBits
Definition: IRremoteESP8266.h:1017
irparams_t * irparams_save
Definition: IRrecv.h:157
-
const uint16_t kMitsubishiACBits
Definition: IRremoteESP8266.h:1122
+
const uint16_t kMitsubishiACBits
Definition: IRremoteESP8266.h:1152
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:946
bool decodeSanyoAc88(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSanyoAc88Bits, const bool strict=true)
Decode the supplied SanyoAc message. Status: ALPHA / Untested.
Definition: ir_Sanyo.cpp:700
-
const uint16_t kArrisBits
Definition: IRremoteESP8266.h:999
-
bool matchMarkRange(const uint32_t measured, const uint32_t desired, const uint16_t range=100, const int16_t excess=kMarkExcess)
Check if we match a mark signal(measured) with the desired within a range (in uSeconds) either side o...
Definition: IRrecv.cpp:1196
-
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:1039
+
const uint16_t kArrisBits
Definition: IRremoteESP8266.h:1028
+
bool matchMarkRange(const uint32_t measured, const uint32_t desired, const uint16_t range=100, const int16_t excess=kMarkExcess)
Check if we match a mark signal(measured) with the desired within a range (in uSeconds) either side o...
Definition: IRrecv.cpp:1222
+
const uint16_t kTechnibelAcBits
Definition: IRremoteESP8266.h:1069
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:316
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:1219
-
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:1187
+
const uint16_t kVoltasBits
Definition: IRremoteESP8266.h:1249
+
bool decodeMitsubishi112(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishi112Bits, const bool strict=true)
Decode the supplied Mitsubishi/TCL 112-bit A/C message. (MITSUBISHI112, TCL112AC) Status: STABLE / Re...
Definition: ir_Mitsubishi.cpp:1291
bool decodeSamsungAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungAcBits, const bool strict=true)
Decode the supplied Samsung A/C message. Status: Stable / Known to be working.
Definition: ir_Samsung.cpp:954
bool 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:1155
+
const uint16_t kRC5XBits
Definition: IRremoteESP8266.h:1185
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
@@ -897,231 +902,233 @@
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:1621
-
const uint16_t kBoseBits
Definition: IRremoteESP8266.h:1224
+
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:1647
+
const uint16_t kBoseBits
Definition: IRremoteESP8266.h:1254
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:1000
+
const uint16_t kCoolixBits
Definition: IRremoteESP8266.h:1029
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:1010
+
const uint16_t kCoronaAcBitsShort
Definition: IRremoteESP8266.h:1040
uint64_t data
Definition: IRrecv.h:85
-
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:1160
-
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:1107
+
const uint16_t kSamsung36Bits
Definition: IRremoteESP8266.h:1190
+
const uint16_t kMagiquestBits
Definition: IRremoteESP8266.h:1137
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:416
-
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1174
+
uint16_t getBufSize(void)
Obtain the maximum number of entries possible in the capture buffer. i.e. It's size.
Definition: IRrecv.cpp:437
+
const uint16_t kSanyoLC7461Bits
Definition: IRremoteESP8266.h:1204
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:1208
+
const uint16_t kTrotecBits
Definition: IRremoteESP8266.h:1238
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:537
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:598
bool decodeTeknopoint(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTeknopointBits, const bool strict=true)
Decode the supplied Teknopoint message. Status: Alpha / Probably works.
Definition: ir_Teknopoint.cpp:49
bool decodeHaierAC176(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHaierAC176Bits, const bool strict=true)
Decode the supplied Haier 176 bit remote A/C message. Status: STABLE / Known to be working.
Definition: ir_Haier.cpp:1415
-
const uint16_t kEliteScreensBits
Definition: IRremoteESP8266.h:1054
+
const uint16_t kEliteScreensBits
Definition: IRremoteESP8266.h:1084
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:3371
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:1332
-
const uint16_t kElectraAcBits
Definition: IRremoteESP8266.h:1052
-
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:1215
-
const uint16_t kSonyMinBits
Definition: IRremoteESP8266.h:1187
-
const uint16_t kHaierAC176Bits
Definition: IRremoteESP8266.h:1075
+
const uint16_t kElectraAcBits
Definition: IRremoteESP8266.h:1082
+
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:1241
+
const uint16_t kSonyMinBits
Definition: IRremoteESP8266.h:1217
+
const uint16_t kHaierAC176Bits
Definition: IRremoteESP8266.h:1105
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:982
-
const uint16_t kDaikin2Bits
Definition: IRremoteESP8266.h:1018
+
const uint16_t kDaikin2Bits
Definition: IRremoteESP8266.h:1048
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:1081
+
const uint16_t kHitachiAc1Bits
Definition: IRremoteESP8266.h:1111
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:424
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:1679
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:3010
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
bool decodeBose(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kBoseBits, const bool strict=true)
Decode the supplied Bose formatted message. Status: STABLE / Known working.
Definition: ir_Bose.cpp:48
-
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:1143
-
const uint16_t kMilesTag2ShotBits
Definition: IRremoteESP8266.h:1221
+
const uint16_t kPanasonicBits
Definition: IRremoteESP8266.h:1173
+
const uint16_t kMilesTag2ShotBits
Definition: IRremoteESP8266.h:1251
decode_type_t decode_type
Definition: IRrecv.h:94
-
const uint16_t kPanasonicAcBits
Definition: IRremoteESP8266.h:1147
+
const uint16_t kPanasonicAcBits
Definition: IRremoteESP8266.h:1177
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:429
-
const uint16_t kXmpBits
Definition: IRremoteESP8266.h:1216
+
void setTolerance(const uint8_t percent=kTolerance)
Set the base tolerance percentage for matching incoming IR messages.
Definition: IRrecv.cpp:450
+
const uint16_t kXmpBits
Definition: IRremoteESP8266.h:1246
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
-
bool decodeAirton(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAirtonBits, const bool strict=true)
Decode the supplied Airton message. Status: STABLE / Confirmed working. LSBF ordering confirmed via t...
Definition: ir_Airton.cpp:47
-
const uint16_t kDaikin160Bits
Definition: IRremoteESP8266.h:1023
-
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:392
+
bool decodeAirton(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kAirtonBits, const bool strict=true)
Decode the supplied Airton message. Status: STABLE / Confirmed working. LSBF ordering confirmed via t...
Definition: ir_Airton.cpp:52
+
const uint16_t kDaikin160Bits
Definition: IRremoteESP8266.h:1053
+
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:413
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:1063
+
const uint16_t kGoodweatherBits
Definition: IRremoteESP8266.h:1093
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:323
-
const uint16_t kDaikin152Bits
Definition: IRremoteESP8266.h:1029
-
bool matchSpaceRange(const uint32_t measured, const uint32_t desired, const uint16_t range=100, const int16_t excess=kMarkExcess)
Check if we match a space signal(measured) with the desired within a range (in uSeconds) either side ...
Definition: IRrecv.cpp:1235
+
void enableIRIn(const bool pullup=false)
Set up and (re)start the IR capture mechanism.
Definition: IRrecv.cpp:342
+
const uint16_t kDaikin152Bits
Definition: IRremoteESP8266.h:1059
+
bool matchSpaceRange(const uint32_t measured, const uint32_t desired, const uint16_t range=100, const int16_t excess=kMarkExcess)
Check if we match a space signal(measured) with the desired within a range (in uSeconds) either side ...
Definition: IRrecv.cpp:1261
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:853
-
const uint16_t kKelonBits
Definition: IRremoteESP8266.h:1095
+
const uint16_t kKelonBits
Definition: IRremoteESP8266.h:1125
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:2034
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:1425
+
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:1451
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:421
-
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1189
+
void setUnknownThreshold(const uint16_t length)
Set the minimum length we will consider for reporting UNKNOWN message types.
Definition: IRrecv.cpp:442
+
const uint16_t kSymphonyBits
Definition: IRremoteESP8266.h:1219
bool decodeMirage(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMirageBits, const bool strict=true)
Decode the supplied Mirage message. Status: STABLE / Reported as working.
Definition: ir_Mirage.cpp:73
-
const uint16_t kRC6Mode0Bits
Definition: IRremoteESP8266.h:1156
+
const uint16_t kRC6Mode0Bits
Definition: IRremoteESP8266.h:1186
const uint16_t kStateSizeMax
Definition: IRrecv.h:60
Results from a data match.
Definition: IRrecv.h:83
bool decodeTrotec3550(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTrotecBits, const bool strict=true)
Decode the supplied Trotec 3550 message. Status: STABLE / Known to be working.
Definition: ir_Trotec.cpp:376
uint8_t rcvstate
Definition: IRrecv.h:71
-
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:1108
+
const uint16_t kMetzBits
Definition: IRremoteESP8266.h:1138
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:308
+
~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:327
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
-
const uint16_t kMitsubishiHeavy152Bits
Definition: IRremoteESP8266.h:1134
-
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:1046
-
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:1004
+
const uint16_t kMitsubishiHeavy152Bits
Definition: IRremoteESP8266.h:1164
+
const uint16_t kDoshishaBits
Definition: IRremoteESP8266.h:1076
+
const uint16_t kCarrierAc40Bits
Definition: IRremoteESP8266.h:1034
const uint16_t kStartOffset
Definition: IRrecv.h:20
-
const uint16_t kAmcorBits
Definition: IRremoteESP8266.h:994
+
const uint16_t kAmcorBits
Definition: IRremoteESP8266.h:1023
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:247
-
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:813
+
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:266
+
bool decodeMitsubishi136(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kMitsubishi136Bits, const bool strict=true)
Decode the supplied Mitsubishi 136-bit A/C message. (MITSUBISHI136) Status: STABLE / Reported as work...
Definition: ir_Mitsubishi.cpp:917
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:157
uint16_t used
Definition: IRrecv.h:86
-
const uint32_t kPanasonicManufacturer
Definition: IRremoteESP8266.h:1144
+
const uint32_t kPanasonicManufacturer
Definition: IRremoteESP8266.h:1174
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:1117
-
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:1103
+
const uint16_t kMitsubishiBits
Definition: IRremoteESP8266.h:1147
+
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:1128
bool decodeSymphony(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSymphonyBits, const bool strict=true)
Decode the supplied Symphony packet/message. Status: STABLE / Should be working.
Definition: ir_Symphony.cpp:69
bool decodeTruma(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kTrumaBits, const bool strict=true)
Decode the supplied Truma message. Status: STABLE / Confirmed working with real device.
Definition: ir_Truma.cpp:65
-
const uint16_t kSamsungAcBits
Definition: IRremoteESP8266.h:1162
+
const uint16_t kSamsungAcBits
Definition: IRremoteESP8266.h:1192
const uint16_t kUnknownThreshold
Definition: IRrecv.h:28
-
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:1110
+
const uint16_t kMideaBits
Definition: IRremoteESP8266.h:1140
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:1097
+
const uint16_t kKelvinatorBits
Definition: IRremoteESP8266.h:1127
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: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:146
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:1139
-
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:1041
-
const uint16_t kHaierACBits
Definition: IRremoteESP8266.h:1069
-
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:1134
-
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1217
-
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:1112
+
const uint16_t kNECBits
Definition: IRremoteESP8266.h:1169
+
const uint16_t kDenonBits
Definition: IRremoteESP8266.h:1071
+
const uint16_t kHaierACBits
Definition: IRremoteESP8266.h:1099
+
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:1159
+
const uint16_t kZepealBits
Definition: IRremoteESP8266.h:1247
+
const uint16_t kMidea24Bits
Definition: IRremoteESP8266.h:1142
bool decodeKelon(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kKelonBits, const bool strict=true)
Decode the supplied Kelon message. Status: STABLE / Working.
Definition: ir_Kelon.cpp:71
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:2426
-
const uint16_t kNeoclimaBits
Definition: IRremoteESP8266.h:1141
-
const uint16_t kWhirlpoolAcBits
Definition: IRremoteESP8266.h:1212
+
const uint16_t kNeoclimaBits
Definition: IRremoteESP8266.h:1171
+
const uint16_t kWhirlpoolAcBits
Definition: IRremoteESP8266.h:1242
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:947
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 decodeEcoclim(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEcoclimBits, const bool strict=true)
Decode the supplied EcoClim A/C message. Status: STABLE / Confirmed working on real remote.
Definition: ir_Ecoclim.cpp:68
bool 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:1006
-
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1151
+
const uint16_t kCarrierAc64Bits
Definition: IRremoteESP8266.h:1036
+
const uint16_t kPioneerBits
Definition: IRremoteESP8266.h:1181
uint16_t bits
Definition: IRrecv.h:106
-
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:1066
-
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:1094
-
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:1099
-
const uint16_t kDaikin128Bits
Definition: IRremoteESP8266.h:1026
-
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:990
-
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:1077
-
const uint16_t kTrumaBits
Definition: IRremoteESP8266.h:1210
-
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1194
+
const uint16_t kGreeBits
Definition: IRremoteESP8266.h:1096
+
bool decodeCoolix48(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolix48Bits, const bool strict=true)
Decode the supplied Coolix 48-bit A/C message. Status: BETA / Probably Working.
Definition: ir_Coolix.cpp:735
+
const uint16_t kJvcBits
Definition: IRremoteESP8266.h:1124
+
const uint16_t kLasertagBits
Definition: IRremoteESP8266.h:1129
+
const uint16_t kDaikin128Bits
Definition: IRremoteESP8266.h:1056
+
const uint16_t kAiwaRcT501Bits
Definition: IRremoteESP8266.h:1019
+
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:1102
+
const uint16_t kTrumaBits
Definition: IRremoteESP8266.h:1240
+
const uint16_t kTecoBits
Definition: IRremoteESP8266.h:1224
bool decodeEpson(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kEpsonBits, const bool strict=true)
Decode the supplied Epson message. Status: Beta / Probably works.
Definition: ir_Epson.cpp:52
-
const uint16_t kToshibaACBits
Definition: IRremoteESP8266.h:1199
+
const uint16_t kToshibaACBits
Definition: IRremoteESP8266.h:1229
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:1013
-
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:1176
-
const uint16_t kHitachiAcBits
Definition: IRremoteESP8266.h:1078
-
const uint16_t kSanyoAc88Bits
Definition: IRremoteESP8266.h:1169
-
const uint16_t kHitachiAc3Bits
Definition: IRremoteESP8266.h:1085
+
const uint16_t kDaikinBits
Definition: IRremoteESP8266.h:1043
+
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:1202
+
const uint16_t kHitachiAcBits
Definition: IRremoteESP8266.h:1108
+
const uint16_t kSanyoAc88Bits
Definition: IRremoteESP8266.h:1199
+
const uint16_t kHitachiAc3Bits
Definition: IRremoteESP8266.h:1115
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:506
+
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:527
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:435
-
const uint16_t kDishBits
Definition: IRremoteESP8266.h:1044
-
uint16_t compare(const uint16_t oldval, const uint16_t newval)
Compare two tick values.
Definition: IRrecv.cpp:1253
+
uint8_t getTolerance(void)
Get the base tolerance percentage for matching incoming IR messages.
Definition: IRrecv.cpp:456
+
const uint16_t kDishBits
Definition: IRremoteESP8266.h:1074
+
uint16_t compare(const uint16_t oldval, const uint16_t newval)
Compare two tick values.
Definition: IRrecv.cpp:1279
uint32_t command
Definition: IRrecv.h:102
-
const uint16_t kFujitsuAcBits
Definition: IRremoteESP8266.h:1059
+
const uint16_t kFujitsuAcBits
Definition: IRremoteESP8266.h:1089
uint64_t value
Definition: IRrecv.h:100
-
const uint16_t kAirtonBits
Definition: IRremoteESP8266.h:986
-
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:997
-
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:1082
+
const uint16_t kAirtonBits
Definition: IRremoteESP8266.h:1015
+
const uint16_t kArgoBits
Definition: IRremoteESP8266.h:1026
+
const uint16_t kHitachiAc2StateLength
Definition: IRremoteESP8266.h:1112
bool decodeSamsung36(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsung36Bits, const bool strict=true)
Decode the supplied Samsung36 message. Status: STABLE / Expected to work.
Definition: ir_Samsung.cpp:206
const uint16_t kFooter
Definition: IRrecv.h:19
-
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:1138
-
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:1106
+
const uint16_t kNikaiBits
Definition: IRremoteESP8266.h:1168
+
const uint16_t kLutronBits
Definition: IRremoteESP8266.h:1136
bool decodeXmp(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kXmpBits, const bool strict=true)
Decode the supplied XMP packet/message. Status: BETA / Probably works.
Definition: ir_Xmp.cpp:160
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:1815
-
void resume(void)
Resume collection of received IR data.
Definition: IRrecv.cpp:377
+
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:1841
+
void resume(void)
Resume collection of received IR data.
Definition: IRrecv.cpp:398
+
const uint16_t kCoolix48Bits
Definition: IRremoteESP8266.h:1030
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:1047
-
const uint16_t kHaierACYRW02Bits
Definition: IRremoteESP8266.h:1072
-
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:1312
-
const uint16_t kHitachiAc424Bits
Definition: IRremoteESP8266.h:1091
+
const uint16_t kEcoclimBits
Definition: IRremoteESP8266.h:1077
+
const uint16_t kHaierACYRW02Bits
Definition: IRremoteESP8266.h:1102
+
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:1338
+
const uint16_t kHitachiAc424Bits
Definition: IRremoteESP8266.h:1121
bool decodeWhirlpoolAC(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kWhirlpoolAcBits, const bool strict=true)
Decode the supplied Whirlpool A/C message. Status: STABLE / Working as intended.
Definition: ir_Whirlpool.cpp:607
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:1382
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:155
-
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:632
-
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:1101
-
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1178
+
bool decodeCOOLIX(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kCoolixBits, const bool strict=true)
Decode the supplied Coolix 24-bit A/C message. Status: STABLE / Known Working.
Definition: ir_Coolix.cpp:633
+
const uint16_t kLegoPfBits
Definition: IRremoteESP8266.h:1131
+
const uint16_t kSharpBits
Definition: IRremoteESP8266.h:1208
bool decodeGoodweather(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kGoodweatherBits, const bool strict=true)
Decode the supplied Goodweather message. Status: BETA / Probably works.
Definition: ir_Goodweather.cpp:426
uint8_t _tolerance
Definition: IRrecv.h:158
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:1708
+
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:1734
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:442
+
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:463
bool decodeHitachiAC1(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kHitachiAc1Bits, const bool strict=true)
bool decodeSAMSUNG(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kSamsungBits, const bool strict=true)
Decode the supplied Samsung 32-bit message. Status: STABLE.
Definition: ir_Samsung.cpp:132
bool 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:1158
-
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1215
-
const uint16_t kTranscoldBits
Definition: IRremoteESP8266.h:1205
-
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:1092
+
const uint16_t kRCMMBits
Definition: IRremoteESP8266.h:1188
+
const uint8_t kVestelAcBits
Definition: IRremoteESP8266.h:1245
+
const uint16_t kTranscoldBits
Definition: IRremoteESP8266.h:1235
+
const uint16_t kInaxBits
Definition: IRremoteESP8266.h:1122
bool decodeArris(decode_results *results, uint16_t offset=kStartOffset, const uint16_t nbits=kArrisBits, const bool strict=true)
Decode the supplied Arris "Manchester code" message. Status: STABLE / Confirmed working.
Definition: ir_Arris.cpp:83
bool 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:163
-
const uint16_t kDaikin176Bits
Definition: IRremoteESP8266.h:1032
+
const uint16_t kDaikin176Bits
Definition: IRremoteESP8266.h:1062
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:360
+
void disableIRIn(void)
Stop collection of any received IR data. Disable any timers and interrupts.
Definition: IRrecv.cpp:381
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:493
-
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:1090
-
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:1159
+
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:505
+
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:1115
+
const uint16_t kSamsungBits
Definition: IRremoteESP8266.h:1189
uint8_t _timer_num
Definition: IRrecv.h:160
-
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:1020
-
const uint16_t kTeknopointBits
Definition: IRremoteESP8266.h:1197
-
const uint16_t kPanasonicAc32Bits
Definition: IRremoteESP8266.h:1150
-
volatile irparams_t * _getParamsPtr(void)
Unit test helper to get access to the params structure.
Definition: IRrecv.cpp:1936
-
const uint16_t kDaikin216Bits
Definition: IRremoteESP8266.h:1035
-
const uint16_t kMitsubishi136Bits
Definition: IRremoteESP8266.h:1125
-
const uint16_t kSanyoAcBits
Definition: IRremoteESP8266.h:1167
-
const uint16_t kMitsubishi112Bits
Definition: IRremoteESP8266.h:1128
-
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:1049
+
const uint16_t kDaikin64Bits
Definition: IRremoteESP8266.h:1050
+
const uint16_t kTeknopointBits
Definition: IRremoteESP8266.h:1227
+
const uint16_t kPanasonicAc32Bits
Definition: IRremoteESP8266.h:1180
+
volatile irparams_t * _getParamsPtr(void)
Unit test helper to get access to the params structure.
Definition: IRrecv.cpp:1962
+
const uint16_t kDaikin216Bits
Definition: IRremoteESP8266.h:1065
+
const uint16_t kMitsubishi136Bits
Definition: IRremoteESP8266.h:1155
+
const uint16_t kSanyoAcBits
Definition: IRremoteESP8266.h:1197
+
const uint16_t kMitsubishi112Bits
Definition: IRremoteESP8266.h:1158
+
const uint16_t kEpsonBits
Definition: IRremoteESP8266.h:1079
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:1274
+
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:1300
const uint8_t kSpaceState
Definition: IRrecv.h:33
-
const uint16_t kLgBits
Definition: IRremoteESP8266.h:1103
-
uint8_t _validTolerance(const uint8_t percentage)
Convert the tolerance percentage into something valid.
Definition: IRrecv.cpp:1068
+
const uint16_t kLgBits
Definition: IRremoteESP8266.h:1133
+
uint8_t _validTolerance(const uint8_t percentage)
Convert the tolerance percentage into something valid.
Definition: IRrecv.cpp:1093
const uint16_t kHeader
Definition: IRrecv.h:18
const uint32_t kFnvBasis32
Definition: IRrecv.h:53
diff --git a/docs/doxygen/html/IRremoteESP8266_8h.html b/docs/doxygen/html/IRremoteESP8266_8h.html index f45b67d93..cb0a2a41c 100644 --- a/docs/doxygen/html/IRremoteESP8266_8h.html +++ b/docs/doxygen/html/IRremoteESP8266_8h.html @@ -222,7 +222,9 @@   ARRIS, RHOSS, AIRTON, -kLastDecodeType = AIRTON +COOLIX48, +
+  kLastDecodeType = COOLIX48
}  Enumerator for defining and numbering of supported IR protocol. More...
@@ -264,6 +266,8 @@   const uint16_t kCoolixBits = 24   +const uint16_t kCoolix48Bits = kCoolixBits * 2 +  const uint16_t kCoolixDefaultRepeat = kSingleRepeat   const uint16_t kCarrierAcBits = 32 @@ -855,6 +859,7 @@

ARRIS  RHOSS  AIRTON  +COOLIX48  kLastDecodeType  @@ -1153,6 +1158,20 @@

+ + + +

◆ kCoolix48Bits

+ +
+
+ + + + +
const uint16_t kCoolix48Bits = kCoolixBits * 2
+
+
@@ -4238,8 +4257,8 @@

const uint16_t kSanyoLC7461CommandBits
Definition: IRremoteESP8266.h:1173
-
const uint16_t kSanyoLC7461AddressBits
Definition: IRremoteESP8266.h:1172
+
const uint16_t kSanyoLC7461CommandBits
Definition: IRremoteESP8266.h:1203
+
const uint16_t kSanyoLC7461AddressBits
Definition: IRremoteESP8266.h:1202