Update IRRemoteESP8266 version to 2.5.5

factorize IR send signal function between the 2 types of receiving
Add new IRRemoteESP8266 protocols
replace pins on mega according schema
remove unecessaries spaces
This commit is contained in:
Florian committed 2019-02-08 16:50:37 +01:00
1 parent 0180a0dbd5
commit f0305236db
149 files changed
+20957 -7850

No files matched your search

+175 -164
View File
@@ -1,8 +1,8 @@
// Copyright 2017 David Conran
#include "ir_Midea.h"
#include "IRsend.h"
#include "IRsend_test.h"
#include "ir_Midea.h"
#include "gtest/gtest.h"
// Tests for sendMidea().
@@ -30,7 +30,8 @@ TEST(TestSendMidea, SendDataOnly) {
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
"m560s5600", irsend.outputStr());
"m560s5600",
irsend.outputStr());
irsend.reset();
irsend.sendMidea(0x55AA55AA55AA);
@@ -50,7 +51,8 @@ TEST(TestSendMidea, SendDataOnly) {
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600", irsend.outputStr());
"m560s5600",
irsend.outputStr());
irsend.reset();
irsend.sendMidea(0xFFFFFFFFFFFF);
@@ -70,7 +72,8 @@ TEST(TestSendMidea, SendDataOnly) {
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
"m560s5600", irsend.outputStr());
"m560s5600",
irsend.outputStr());
}
// Test sending with different repeats.
@@ -79,7 +82,7 @@ TEST(TestSendMidea, SendWithRepeats) {
irsend.begin();
irsend.reset();
irsend.sendMidea(0x55AA55AA55AA, MIDEA_BITS, 1); // 1 repeat.
irsend.sendMidea(0x55AA55AA55AA, kMideaBits, 1); // 1 repeat.
EXPECT_EQ(
"m4480s4480"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
@@ -112,57 +115,59 @@ TEST(TestSendMidea, SendWithRepeats) {
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600", irsend.outputStr());
irsend.sendMidea(0x55AA55AA55AA, MIDEA_BITS, 2); // 2 repeats.
"m560s5600",
irsend.outputStr());
irsend.sendMidea(0x55AA55AA55AA, kMideaBits, 2); // 2 repeats.
EXPECT_EQ(
"m4480s4480"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s5600"
"m4480s4480"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600"
"m4480s4480"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s5600"
"m4480s4480"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600"
"m4480s4480"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s5600"
"m4480s4480"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600", irsend.outputStr());
"m4480s4480"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s5600"
"m4480s4480"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600"
"m4480s4480"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s5600"
"m4480s4480"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600"
"m4480s4480"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s5600"
"m4480s4480"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
"m560s5600",
irsend.outputStr());
}
// Test sending an atypical data size.
@@ -178,7 +183,8 @@ TEST(TestSendMidea, SendUnusualSize) {
"m560s5600"
"m4480s4480"
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
"m560s5600", irsend.outputStr());
"m560s5600",
irsend.outputStr());
irsend.reset();
irsend.sendMidea(0x1234567890ABCDEF, 64);
@@ -202,12 +208,13 @@ TEST(TestSendMidea, SendUnusualSize) {
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s560"
"m560s560m560s560m560s1680m560s1680m560s560m560s560m560s1680m560s560"
"m560s560m560s560m560s560m560s1680m560s560m560s560m560s560m560s560"
"m560s5600", irsend.outputStr());
"m560s5600",
irsend.outputStr());
// Bit sizes must be a multiple of 8.
irsend.reset();
irsend.sendMidea(0x0, 17);
EXPECT_EQ("" , irsend.outputStr());
EXPECT_EQ("", irsend.outputStr());
}
// Tests for IRMideaAC class.
@@ -228,7 +235,6 @@ TEST(TestMideaACClass, Power) {
EXPECT_FALSE(midea.getPower());
EXPECT_EQ(0xA1026FFFFFE2, midea.getRaw());
midea.setPower(true);
EXPECT_TRUE(midea.getPower());
EXPECT_EQ(0xA1826FFFFF62, midea.getRaw());
@@ -272,32 +278,32 @@ TEST(TestMideaACClass, OperatingMode) {
midea.begin();
midea.setRaw(0xA1826FFFFF62); // Auto mode already set.
midea.setMode(MIDEA_AC_AUTO);
EXPECT_EQ(MIDEA_AC_AUTO, midea.getMode());
midea.setMode(kMideaACAuto);
EXPECT_EQ(kMideaACAuto, midea.getMode());
EXPECT_EQ(0xA1826FFFFF62, midea.getRaw()); // State shouldn't have changed.
midea.setMode(MIDEA_AC_COOL);
EXPECT_EQ(MIDEA_AC_COOL, midea.getMode());
midea.setMode(kMideaACCool);
EXPECT_EQ(kMideaACCool, midea.getMode());
EXPECT_EQ(0xA1806FFFFF61, midea.getRaw());
midea.setMode(MIDEA_AC_AUTO);
EXPECT_EQ(MIDEA_AC_AUTO, midea.getMode());
midea.setMode(kMideaACAuto);
EXPECT_EQ(kMideaACAuto, midea.getMode());
EXPECT_EQ(0xA1826FFFFF62, midea.getRaw());
midea.setMode(MIDEA_AC_HEAT);
EXPECT_EQ(MIDEA_AC_HEAT, midea.getMode());
midea.setMode(kMideaACHeat);
EXPECT_EQ(kMideaACHeat, midea.getMode());
EXPECT_EQ(0xA1836FFFFF63, midea.getRaw());
midea.setMode(MIDEA_AC_DRY);
EXPECT_EQ(MIDEA_AC_DRY, midea.getMode());
midea.setMode(kMideaACDry);
EXPECT_EQ(kMideaACDry, midea.getMode());
EXPECT_EQ(0xA1816FFFFF60, midea.getRaw());
midea.setMode(MIDEA_AC_FAN);
EXPECT_EQ(MIDEA_AC_FAN, midea.getMode());
midea.setMode(kMideaACFan);
EXPECT_EQ(kMideaACFan, midea.getMode());
EXPECT_EQ(0xA1846FFFFF66, midea.getRaw());
midea.setMode(255);
EXPECT_EQ(MIDEA_AC_AUTO, midea.getMode());
EXPECT_EQ(kMideaACAuto, midea.getMode());
EXPECT_EQ(0xA1826FFFFF62, midea.getRaw());
}
@@ -306,26 +312,26 @@ TEST(TestMideaACClass, FanSpeed) {
midea.begin();
midea.setRaw(0xA1826FFFFF62); // Auto mode already set.
EXPECT_EQ(MIDEA_AC_FAN_AUTO, midea.getFan());
EXPECT_EQ(kMideaACFanAuto, midea.getFan());
midea.setFan(MIDEA_AC_FAN_LOW);
EXPECT_EQ(MIDEA_AC_FAN_LOW, midea.getFan());
midea.setFan(kMideaACFanLow);
EXPECT_EQ(kMideaACFanLow, midea.getFan());
EXPECT_EQ(0xA18A6FFFFF6C, midea.getRaw());
midea.setFan(255); // Setting an unexpected value defaults to auto.
EXPECT_EQ(MIDEA_AC_FAN_AUTO, midea.getFan());
EXPECT_EQ(kMideaACFanAuto, midea.getFan());
EXPECT_EQ(0xA1826FFFFF62, midea.getRaw());
midea.setFan(MIDEA_AC_FAN_MED);
EXPECT_EQ(MIDEA_AC_FAN_MED, midea.getFan());
midea.setFan(kMideaACFanMed);
EXPECT_EQ(kMideaACFanMed, midea.getFan());
EXPECT_EQ(0xA1926FFFFF7C, midea.getRaw());
midea.setFan(MIDEA_AC_FAN_HI);
EXPECT_EQ(MIDEA_AC_FAN_HI, midea.getFan());
midea.setFan(kMideaACFanHigh);
EXPECT_EQ(kMideaACFanHigh, midea.getFan());
EXPECT_EQ(0xA19A6FFFFF74, midea.getRaw());
midea.setFan(MIDEA_AC_FAN_AUTO);
EXPECT_EQ(MIDEA_AC_FAN_AUTO, midea.getFan());
midea.setFan(kMideaACFanAuto);
EXPECT_EQ(kMideaACFanAuto, midea.getFan());
EXPECT_EQ(0xA1826FFFFF62, midea.getRaw());
}
@@ -333,81 +339,81 @@ TEST(TestMideaACClass, Temperature) {
IRMideaAC midea(0);
midea.begin();
midea.setRaw(0xA1826FFFFF62); // 77F / 25C
EXPECT_EQ(77, midea.getTemp()); // F
midea.setRaw(0xA1826FFFFF62); // 77F / 25C
EXPECT_EQ(77, midea.getTemp()); // F
EXPECT_EQ(77, midea.getTemp(false)); // F
EXPECT_EQ(25, midea.getTemp(true)); // F
EXPECT_EQ(25, midea.getTemp(true)); // F
midea.setTemp(0);
EXPECT_EQ(MIDEA_AC_MIN_TEMP_F, midea.getTemp());
EXPECT_EQ(kMideaACMinTempF, midea.getTemp());
EXPECT_EQ(0xA18260FFFF6C, midea.getRaw());
midea.setTemp(255);
EXPECT_EQ(MIDEA_AC_MAX_TEMP_F, midea.getTemp());
EXPECT_EQ(kMideaACMaxTempF, midea.getTemp());
EXPECT_EQ(0xA18278FFFF78, midea.getRaw());
midea.setTemp(0, true);
EXPECT_EQ(MIDEA_AC_MIN_TEMP_F, midea.getTemp());
EXPECT_EQ(kMideaACMinTempF, midea.getTemp());
EXPECT_EQ(0xA18260FFFF6C, midea.getRaw());
midea.setTemp(255, true);
EXPECT_EQ(MIDEA_AC_MAX_TEMP_F, midea.getTemp());
EXPECT_EQ(kMideaACMaxTempF, midea.getTemp());
EXPECT_EQ(0xA18278FFFF78, midea.getRaw());
// fahrenheit min/max etc.
midea.setTemp(MIDEA_AC_MIN_TEMP_F);
EXPECT_EQ(MIDEA_AC_MIN_TEMP_F, midea.getTemp());
midea.setTemp(kMideaACMinTempF);
EXPECT_EQ(kMideaACMinTempF, midea.getTemp());
midea.setTemp(MIDEA_AC_MAX_TEMP_F);
EXPECT_EQ(MIDEA_AC_MAX_TEMP_F, midea.getTemp());
midea.setTemp(kMideaACMaxTempF);
EXPECT_EQ(kMideaACMaxTempF, midea.getTemp());
midea.setTemp(MIDEA_AC_MIN_TEMP_F - 1);
EXPECT_EQ(MIDEA_AC_MIN_TEMP_F, midea.getTemp());
midea.setTemp(kMideaACMinTempF - 1);
EXPECT_EQ(kMideaACMinTempF, midea.getTemp());
midea.setTemp(MIDEA_AC_MAX_TEMP_F + 1);
EXPECT_EQ(MIDEA_AC_MAX_TEMP_F, midea.getTemp());
midea.setTemp(kMideaACMaxTempF + 1);
EXPECT_EQ(kMideaACMaxTempF, midea.getTemp());
// celsius min/max etc.
midea.setTemp(MIDEA_AC_MIN_TEMP_C, true);
EXPECT_EQ(MIDEA_AC_MIN_TEMP_C, midea.getTemp(true));
EXPECT_EQ(MIDEA_AC_MIN_TEMP_F, midea.getTemp(false));
midea.setTemp(kMideaACMinTempC, true);
EXPECT_EQ(kMideaACMinTempC, midea.getTemp(true));
EXPECT_EQ(kMideaACMinTempF, midea.getTemp(false));
midea.setTemp(MIDEA_AC_MAX_TEMP_C, true);
EXPECT_EQ(MIDEA_AC_MAX_TEMP_C, midea.getTemp(true));
EXPECT_EQ(MIDEA_AC_MAX_TEMP_F, midea.getTemp(false));
midea.setTemp(kMideaACMaxTempC, true);
EXPECT_EQ(kMideaACMaxTempC, midea.getTemp(true));
EXPECT_EQ(kMideaACMaxTempF, midea.getTemp(false));
midea.setTemp(MIDEA_AC_MIN_TEMP_C - 1, true);
EXPECT_EQ(MIDEA_AC_MIN_TEMP_C, midea.getTemp(true));
midea.setTemp(kMideaACMinTempC - 1, true);
EXPECT_EQ(kMideaACMinTempC, midea.getTemp(true));
midea.setTemp(MIDEA_AC_MAX_TEMP_C + 1, true);
EXPECT_EQ(MIDEA_AC_MAX_TEMP_C, midea.getTemp(true));
EXPECT_EQ(MIDEA_AC_MAX_TEMP_F, midea.getTemp(false));
midea.setTemp(kMideaACMaxTempC + 1, true);
EXPECT_EQ(kMideaACMaxTempC, midea.getTemp(true));
EXPECT_EQ(kMideaACMaxTempF, midea.getTemp(false));
// General changes.
midea.setTemp(17, true); // C
EXPECT_EQ(17, midea.getTemp(true)); // C
midea.setTemp(17, true); // C
EXPECT_EQ(17, midea.getTemp(true)); // C
EXPECT_EQ(63, midea.getTemp(false)); // F
midea.setTemp(21, true); // C
EXPECT_EQ(21, midea.getTemp(true)); // C
midea.setTemp(21, true); // C
EXPECT_EQ(21, midea.getTemp(true)); // C
EXPECT_EQ(70, midea.getTemp(false)); // F
midea.setTemp(25, true); // C
EXPECT_EQ(25, midea.getTemp(true)); // C
midea.setTemp(25, true); // C
EXPECT_EQ(25, midea.getTemp(true)); // C
EXPECT_EQ(77, midea.getTemp(false)); // F
midea.setTemp(30, true); // C
EXPECT_EQ(30, midea.getTemp(true)); // C
midea.setTemp(30, true); // C
EXPECT_EQ(30, midea.getTemp(true)); // C
EXPECT_EQ(86, midea.getTemp(false)); // F
midea.setTemp(80, false); // F
EXPECT_EQ(26, midea.getTemp(true)); // C
midea.setTemp(80, false); // F
EXPECT_EQ(26, midea.getTemp(true)); // C
EXPECT_EQ(80, midea.getTemp(false)); // F
midea.setTemp(70); // F
EXPECT_EQ(21, midea.getTemp(true)); // C
midea.setTemp(70); // F
EXPECT_EQ(21, midea.getTemp(true)); // C
EXPECT_EQ(70, midea.getTemp(false)); // F
EXPECT_EQ(70, midea.getTemp()); // F
EXPECT_EQ(70, midea.getTemp()); // F
}
// Tests for controlling the sleep state.
@@ -431,12 +437,14 @@ TEST(TestMideaACClass, HumanReadableOutput) {
midea.begin();
midea.setRaw(0xA1826FFFFF62);
EXPECT_EQ("Power: On, Mode: 2 (AUTO), Temp: 25C/77F, Fan: 0 (AUTO), "
"Sleep: Off", midea.toString());
EXPECT_EQ(
"Power: On, Mode: 2 (AUTO), Temp: 25C/77F, Fan: 0 (AUTO), "
"Sleep: Off",
midea.toString());
midea.off();
midea.setTemp(25);
midea.setFan(MIDEA_AC_FAN_HI);
midea.setMode(MIDEA_AC_DRY);
midea.setFan(kMideaACFanHigh);
midea.setMode(kMideaACDry);
midea.setSleep(true);
EXPECT_EQ("Power: Off, Mode: 1 (DRY), Temp: 16C/62F, Fan: 3 (HI), Sleep: On",
midea.toString());
@@ -458,9 +466,9 @@ TEST(TestDecodeMidea, NormalDecodeWithStrict) {
irsend.reset();
irsend.sendMidea(0x1234567890DF);
irsend.makeDecodeResult();
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0x1234567890DF, irsend.capture.value);
EXPECT_EQ(0x0, irsend.capture.address);
EXPECT_EQ(0x0, irsend.capture.command);
@@ -470,9 +478,9 @@ TEST(TestDecodeMidea, NormalDecodeWithStrict) {
irsend.reset();
irsend.sendMidea(0x0);
irsend.makeDecodeResult();
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0x0, irsend.capture.value);
EXPECT_EQ(0x0, irsend.capture.address);
EXPECT_EQ(0x0, irsend.capture.command);
@@ -482,9 +490,9 @@ TEST(TestDecodeMidea, NormalDecodeWithStrict) {
irsend.reset();
irsend.sendMidea(0xFFFFFFFFFFA0);
irsend.makeDecodeResult();
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0xFFFFFFFFFFA0, irsend.capture.value);
EXPECT_EQ(0x0, irsend.capture.address);
EXPECT_EQ(0x0, irsend.capture.command);
@@ -497,7 +505,7 @@ TEST(TestDecodeMidea, NormalDecodeWithStrict) {
irsend.makeDecodeResult();
ASSERT_TRUE(irrecv.decode(&irsend.capture));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0xA18263FFFF6E, irsend.capture.value);
EXPECT_EQ(0x0, irsend.capture.address);
EXPECT_EQ(0x0, irsend.capture.command);
@@ -512,24 +520,24 @@ TEST(TestDecodeMidea, NormalDecodeWithRepeatAndStrict) {
// Normal Midea 48-bit message with 2 repeats.
irsend.reset();
irsend.sendMidea(0xA18263FFFF6E, MIDEA_BITS, 2);
irsend.sendMidea(0xA18263FFFF6E, kMideaBits, 2);
irsend.makeDecodeResult();
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0xA18263FFFF6E, irsend.capture.value);
EXPECT_FALSE(irsend.capture.repeat);
irsend.makeDecodeResult(2 * (2 * MIDEA_BITS + 4));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
irsend.makeDecodeResult(2 * (2 * kMideaBits + 4));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0xA18263FFFF6E, irsend.capture.value);
irsend.makeDecodeResult(4 * (2 * MIDEA_BITS + 4));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
irsend.makeDecodeResult(4 * (2 * kMideaBits + 4));
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0xA18263FFFF6E, irsend.capture.value);
}
@@ -543,7 +551,7 @@ TEST(TestDecodeMidea, DecodeWithNonStrictSizes) {
irsend.sendMidea(0x12, 8); // Illegal value Midea 8-bit message.
irsend.makeDecodeResult();
// Should fail with strict on.
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
// Should pass if strict off.
ASSERT_TRUE(irrecv.decodeMidea(&irsend.capture, 8, false));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
@@ -554,7 +562,7 @@ TEST(TestDecodeMidea, DecodeWithNonStrictSizes) {
irsend.sendMidea(0x12345678, 32); // Illegal value Midea 32-bit message.
irsend.makeDecodeResult();
// Shouldn't pass with strict when we ask for less bits than we got.
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, true));
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture, kMideaBits, true));
irsend.makeDecodeResult();
// Should fail with strict when we ask for the wrong bit size.
@@ -567,7 +575,7 @@ TEST(TestDecodeMidea, DecodeWithNonStrictSizes) {
// Decode should fail if asked to decode non-multiples of 8 bits.
irsend.reset();
irsend.sendMidea(0x123456, MIDEA_BITS, 2);
irsend.sendMidea(0x123456, kMideaBits, 2);
irsend.makeDecodeResult();
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture, 9, false));
}
@@ -597,14 +605,15 @@ TEST(TestDecodeMidea, FailToDecodeNonMideaExample) {
irsend.reset();
// Modified a few entries to unexpected values, based on previous test case.
uint16_t gc_test[39] = {38000, 1, 1, 322, 162, 20, 61, 20, 61, 20, 20, 20, 20,
20, 20, 20, 127, 20, 61, 9, 20, 20, 61, 20, 20, 20,
61, 20, 61, 20, 61, 20, 20, 20, 20, 20, 20, 20, 884};
uint16_t gc_test[39] = {38000, 1, 1, 322, 162, 20, 61, 20, 61, 20,
20, 20, 20, 20, 20, 20, 127, 20, 61, 9,
20, 20, 61, 20, 20, 20, 61, 20, 61, 20,
61, 20, 20, 20, 20, 20, 20, 20, 884};
irsend.sendGC(gc_test, 39);
irsend.makeDecodeResult();
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture));
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture, MIDEA_BITS, false));
ASSERT_FALSE(irrecv.decodeMidea(&irsend.capture, kMideaBits, false));
}
// Decode against a real capture reported by a user. See issue #354
@@ -615,26 +624,28 @@ TEST(TestDecodeMidea, DecodeRealExample) {
irsend.reset();
uint16_t rawData[199] = {
4366, 4470, 498, 1658, 522, 554, 498, 1658, 496, 580, 498, 580, 498, 578,
498, 580, 498, 1658, 498, 1658, 498, 578, 498, 578, 498, 580, 496, 582,
496, 578, 498, 1658, 498, 580, 498, 580, 498, 1656, 498, 1656, 500, 580,
498, 578, 502, 576, 500, 1656, 498, 1656, 500, 1654, 500, 1656, 500, 1656,
498, 1658, 498, 1656, 500, 1658, 498, 1656, 498, 1656, 500, 1656, 500,
1654, 500, 1578, 578, 1658, 498, 1656, 500, 1658, 498, 1656, 498, 1656,
500, 578, 498, 1638, 516, 1656, 500, 578, 500, 1656, 500, 1656, 498, 1658,
522, 554, 500, 5258, 4366, 4472, 498, 580, 498, 1658, 498, 580, 498, 1656,
500, 1600, 556, 1658, 500, 1656, 500, 578, 498, 578, 522, 1634, 498, 1588,
568, 1658, 498, 1656, 500, 1654, 498, 580, 498, 1658, 498, 1658, 498, 580,
496, 578, 500, 1654, 500, 1636, 518, 1656, 500, 578, 520, 558, 498, 578,
498, 580, 498, 576, 500, 578, 498, 580, 498, 578, 498, 578, 498, 580, 498,
578, 498, 580, 498, 580, 520, 556, 498, 580, 496, 580, 498, 578, 500, 578,
498, 1658, 498, 580, 498, 578, 498, 1656, 500, 578, 498, 580, 498, 580,
498, 1656, 522};
4366, 4470, 498, 1658, 522, 554, 498, 1658, 496, 580, 498, 580,
498, 578, 498, 580, 498, 1658, 498, 1658, 498, 578, 498, 578,
498, 580, 496, 582, 496, 578, 498, 1658, 498, 580, 498, 580,
498, 1656, 498, 1656, 500, 580, 498, 578, 502, 576, 500, 1656,
498, 1656, 500, 1654, 500, 1656, 500, 1656, 498, 1658, 498, 1656,
500, 1658, 498, 1656, 498, 1656, 500, 1656, 500, 1654, 500, 1578,
578, 1658, 498, 1656, 500, 1658, 498, 1656, 498, 1656, 500, 578,
498, 1638, 516, 1656, 500, 578, 500, 1656, 500, 1656, 498, 1658,
522, 554, 500, 5258, 4366, 4472, 498, 580, 498, 1658, 498, 580,
498, 1656, 500, 1600, 556, 1658, 500, 1656, 500, 578, 498, 578,
522, 1634, 498, 1588, 568, 1658, 498, 1656, 500, 1654, 498, 580,
498, 1658, 498, 1658, 498, 580, 496, 578, 500, 1654, 500, 1636,
518, 1656, 500, 578, 520, 558, 498, 578, 498, 580, 498, 576,
500, 578, 498, 580, 498, 578, 498, 578, 498, 580, 498, 578,
498, 580, 498, 580, 520, 556, 498, 580, 496, 580, 498, 578,
500, 578, 498, 1658, 498, 580, 498, 578, 498, 1656, 500, 578,
498, 580, 498, 580, 498, 1656, 522};
irsend.sendRaw(rawData, 199, 38000);
irsend.makeDecodeResult();
ASSERT_TRUE(irrecv.decode(&irsend.capture));
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
EXPECT_EQ(MIDEA_BITS, irsend.capture.bits);
EXPECT_EQ(kMideaBits, irsend.capture.bits);
EXPECT_EQ(0xA18263FFFF6E, irsend.capture.value);
}