update irremote ESP8266 to 2.5.6
This commit is contained in:
1 parent
1abd939125
commit
7a39bba272
36 files changed
+3023
-530
No files matched your search
@@ -1,7 +1,8 @@
|
||||
// Copyright 2017 David Conran
|
||||
// Copyright 2017,2019 David Conran
|
||||
|
||||
#include "IRsend_test.h"
|
||||
#include "IRsend.h"
|
||||
#include "IRutils.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// Tests sendData().
|
||||
@@ -288,3 +289,310 @@ TEST(TestLowLevelSend, SpaceNoModulation) {
|
||||
irsend.space(1000);
|
||||
EXPECT_EQ("[Off]1000usecs", irsend.low_level_sequence);
|
||||
}
|
||||
|
||||
// Test expected to work/produce a message for irsend:send()
|
||||
TEST(TestSend, GenericSimpleSendMethod) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(AIWA_RC_T501, 0x1234, kAiwaRcT501Bits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(AIWA_RC_T501, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kAiwaRcT501Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(CARRIER_AC, 0x1234, kCarrierAcBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(CARRIER_AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kCarrierAcBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(COOLIX, 0x1234, kCoolixBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(COOLIX, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kCoolixBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(DENON, 0x1234, kDenonBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(DENON, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kDenonBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(DISH, 0x1234, kDishBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(DISH, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kDishBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(GICABLE, 0x1234, kGicableBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(GICABLE, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kGicableBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(GREE, 0x0009205000200050, kGreeBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(GREE, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kGreeBits, irsend.capture.bits);
|
||||
// No simple value test for gree as it decodes to an Array.
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(JVC, 0x1234, kJvcBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(JVC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kJvcBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(LASERTAG, 0x123, kLasertagBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(LASERTAG, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kLasertagBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x123, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(LG, 0x700992, kLgBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(LG, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kLgBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x700992, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(LG, 0x700992, kLg32Bits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(LG, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kLg32Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x700992, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(LG2, 0x880094D, kLgBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(LG2, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kLgBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x880094D, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(LUTRON, 0x1234, kLutronBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(LUTRON, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kLutronBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(MAGIQUEST, 0x560F40020455, kMagiquestBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(MAGIQUEST, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kMagiquestBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x560F40020455, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(MIDEA, 0xA18263FFFF6E, kMideaBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(MIDEA, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kMideaBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0xA18263FFFF6E, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(MITSUBISHI, 0x1234, kMitsubishiBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(MITSUBISHI, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kMitsubishiBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(MITSUBISHI2, 0x1234, kMitsubishiBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(MITSUBISHI2, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kMitsubishiBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(NIKAI, 0x1234, kNikaiBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(NIKAI, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kNikaiBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(NEC, 0x4BB640BF, kNECBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(NEC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kNECBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x4BB640BF, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(NEC_LIKE, 0x12345678, kNECBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(NEC_LIKE, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kNECBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x12345678, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(PANASONIC, 0x40040190ED7C, kPanasonicBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(PANASONIC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kPanasonicBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x40040190ED7C, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(PIONEER, 0x659A05FAF50AC53A, kPioneerBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(PIONEER, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kPioneerBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x659A05FAF50AC53A, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(RC5, 0x175, kRC5Bits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(RC5, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kRC5Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x175, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(RC6, 0xC800F740C, kRC6_36Bits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(RC6, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kRC6_36Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0xC800F740C, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(RCMM, 0x1234, kRCMMBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(RCMM, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kRCMMBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(SAMSUNG, 0xE0E09966, kSamsungBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(SAMSUNG, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSamsungBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0xE0E09966, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(SAMSUNG36, 0x1234, kSamsung36Bits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(SAMSUNG36, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSamsung36Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(SANYO_LC7461, 0x2468DCB56A9, kSanyoLC7461Bits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(SANYO_LC7461, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSanyoLC7461Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x2468DCB56A9, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(SHARP, 0x7266, kSharpBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(SHARP, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSharpBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x7266, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(SHERWOOD, 0x4BB640BF, kSherwoodBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(NEC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSherwoodBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x4BB640BF, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(SONY, 0x1234, kSony20Bits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(SONY, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSony20Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(TECO, 0x1234, kTecoBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(TECO, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kTecoBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(VESTEL_AC, 0xF4410001FF1201, kVestelAcBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(VESTEL_AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kVestelAcBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0xF4410001FF1201, irsend.capture.value);
|
||||
|
||||
irsend.reset();
|
||||
ASSERT_TRUE(irsend.send(WHYNTER, 0x1234, kWhynterBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(WHYNTER, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kWhynterBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x1234, irsend.capture.value);
|
||||
}
|
||||
|
||||
// Test some expected types to NOT work/produce a message via irsend:send()
|
||||
TEST(TestSend, GenericSimpleSendMethodFailure) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
|
||||
// Check nothing is sent for unexpected protocols
|
||||
irsend.reset();
|
||||
ASSERT_FALSE(irsend.send(KELVINATOR, 0x1234, kKelvinatorBits));
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_FALSE(irrecv.decode(&irsend.capture));
|
||||
|
||||
// For every A/C protocol which decodes to having a state[].
|
||||
for (int i = 0; i < 200; i++) {
|
||||
if (hasACState((decode_type_t)i) && i != GREE) { // Gree is an exception.
|
||||
// Check it fails.
|
||||
ASSERT_FALSE(irsend.send((decode_type_t)i, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
// Test some other special cases.
|
||||
ASSERT_FALSE(irsend.send(UNKNOWN, 0, 0));
|
||||
ASSERT_FALSE(irsend.send(UNUSED, 0, 0));
|
||||
ASSERT_FALSE(irsend.send(RAW, 0, 0));
|
||||
ASSERT_FALSE(irsend.send(PRONTO, 0, 0));
|
||||
ASSERT_FALSE(irsend.send(GLOBALCACHE, 0, 0));
|
||||
}
|
||||
@@ -36,7 +36,7 @@ TESTS = IRutils_test IRsend_test ir_NEC_test ir_GlobalCache_test \
|
||||
ir_Toshiba_test ir_Midea_test ir_Magiquest_test ir_Lasertag_test \
|
||||
ir_Carrier_test ir_Haier_test ir_Hitachi_test ir_GICable_test \
|
||||
ir_Whirlpool_test ir_Lutron_test ir_Electra_test ir_Pioneer_test \
|
||||
ir_MWM_test ir_Vestel_test
|
||||
ir_MWM_test ir_Vestel_test ir_Teco_test ir_Tcl_test
|
||||
|
||||
# All Google Test headers. Usually you shouldn't change this
|
||||
# definition.
|
||||
@@ -80,7 +80,7 @@ PROTOCOLS = ir_NEC.o ir_Sony.o ir_Samsung.o ir_JVC.o ir_RCMM.o ir_RC5_RC6.o \
|
||||
ir_Kelvinator.o ir_Daikin.o ir_Gree.o ir_Pronto.o ir_Nikai.o ir_Toshiba.o \
|
||||
ir_Midea.o ir_Magiquest.o ir_Lasertag.o ir_Carrier.o ir_Haier.o \
|
||||
ir_Hitachi.o ir_GICable.o ir_Whirlpool.o ir_Lutron.o ir_Electra.o \
|
||||
ir_Pioneer.o ir_MWM.o ir_Vestel.o
|
||||
ir_Pioneer.o ir_MWM.o ir_Vestel.o ir_Teco.o ir_Tcl.o
|
||||
|
||||
# All the IR Protocol header files.
|
||||
PROTOCOLS_H = $(USER_DIR)/ir_Argo.h \
|
||||
@@ -100,7 +100,9 @@ PROTOCOLS_H = $(USER_DIR)/ir_Argo.h \
|
||||
$(USER_DIR)/ir_LG.h \
|
||||
$(USER_DIR)/ir_Panasonic.h \
|
||||
$(USER_DIR)/ir_Whirlpool.h \
|
||||
$(USER_DIR)/ir_Vestel.h
|
||||
$(USER_DIR)/ir_Vestel.h \
|
||||
$(USER_DIR)/ir_Tcl.h \
|
||||
$(USER_DIR)/ir_Teco.h
|
||||
# Common object files
|
||||
COMMON_OBJ = IRutils.o IRtimer.o IRsend.o IRrecv.o ir_GlobalCache.o \
|
||||
$(PROTOCOLS) gtest_main.a
|
||||
@@ -505,3 +507,21 @@ ir_Vestel_test.o : ir_Vestel_test.cpp $(COMMON_TEST_DEPS) $(GTEST_HEADERS)
|
||||
|
||||
ir_Vestel_test : $(COMMON_OBJ) ir_Vestel_test.o
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@
|
||||
|
||||
ir_Teco.o : $(USER_DIR)/ir_Teco.cpp $(COMMON_DEPS)
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/ir_Teco.cpp
|
||||
|
||||
ir_Teco_test.o : ir_Teco_test.cpp $(COMMON_TEST_DEPS) $(GTEST_HEADERS)
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -I$(USER_DIR) -c ir_Teco_test.cpp
|
||||
|
||||
ir_Teco_test : $(COMMON_OBJ) ir_Teco_test.o
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@
|
||||
|
||||
ir_Tcl.o : $(USER_DIR)/ir_Tcl.cpp $(COMMON_DEPS)
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/ir_Tcl.cpp
|
||||
|
||||
ir_Tcl_test.o : ir_Tcl_test.cpp $(COMMON_TEST_DEPS) $(GTEST_HEADERS)
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -I$(USER_DIR) -c ir_Tcl_test.cpp
|
||||
|
||||
ir_Tcl_test : $(COMMON_OBJ) ir_Tcl_test.o
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@
|
||||
@@ -15,6 +15,14 @@ TEST(TestSendCoolix, SendDataOnly) {
|
||||
irsend.reset();
|
||||
irsend.sendCOOLIX(0x0);
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s5040"
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
@@ -28,6 +36,14 @@ TEST(TestSendCoolix, SendDataOnly) {
|
||||
irsend.reset();
|
||||
irsend.sendCOOLIX(0xAA55AA);
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
|
||||
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
|
||||
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
|
||||
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
|
||||
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
|
||||
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
|
||||
"m560s5040"
|
||||
"m4480s4480"
|
||||
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560"
|
||||
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680"
|
||||
@@ -41,6 +57,14 @@ TEST(TestSendCoolix, SendDataOnly) {
|
||||
irsend.reset();
|
||||
irsend.sendCOOLIX(0xFFFFFF);
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s5040"
|
||||
"m4480s4480"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
@@ -114,6 +138,10 @@ TEST(TestSendCoolix, SendUnusualSize) {
|
||||
irsend.reset();
|
||||
irsend.sendCOOLIX(0x0, 8);
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s5040"
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
@@ -123,6 +151,24 @@ TEST(TestSendCoolix, SendUnusualSize) {
|
||||
irsend.reset();
|
||||
irsend.sendCOOLIX(0x1234567890ABCDEF, 64);
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s1680m560s560m560s560m560s1680m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s1680m560s1680m560s560m560s1680"
|
||||
"m560s560m560s560m560s1680m560s1680m560s560m560s1680m560s560m560s560"
|
||||
"m560s1680m560s1680m560s560m560s560m560s1680m560s560m560s1680m560s1680"
|
||||
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s1680m560s560"
|
||||
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s560m560s1680"
|
||||
"m560s560m560s1680m560s1680m560s1680m560s1680m560s560m560s560m560s560"
|
||||
"m560s1680m560s560m560s560m560s560m560s560m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s560m560s560m560s1680m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s1680m560s1680m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s1680"
|
||||
"m560s560m560s1680m560s560m560s1680m560s560m560s1680m560s560m560s560"
|
||||
"m560s1680m560s1680m560s560m560s560m560s1680m560s1680m560s560m560s1680"
|
||||
"m560s560m560s560m560s1680m560s1680m560s560m560s560m560s1680m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s560m560s560m560s560m560s1680m560s560m560s560m560s560m560s560"
|
||||
"m560s5040"
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s1680m560s560m560s560m560s1680m560s560"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s1680m560s1680m560s560m560s1680"
|
||||
@@ -411,7 +457,7 @@ TEST(TestCoolixACClass, HumanReadable) {
|
||||
|
||||
// Initial starting point.
|
||||
EXPECT_EQ(
|
||||
"Power: On, Fan: 5 (AUTO), Mode: 2 (AUTO), Temp: 25C, "
|
||||
"Power: On, Mode: 2 (AUTO), Fan: 5 (AUTO), Temp: 25C, "
|
||||
"Zone Follow: Off, Sensor Temp: Ignored",
|
||||
ircoolix.toString());
|
||||
|
||||
@@ -420,11 +466,11 @@ TEST(TestCoolixACClass, HumanReadable) {
|
||||
ircoolix.setMode(kCoolixCool);
|
||||
ircoolix.setFan(kCoolixFanMin);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Fan: 4 (MIN), Mode: 0 (COOL), Temp: 22C, "
|
||||
"Power: On, Mode: 0 (COOL), Fan: 4 (MIN), Temp: 22C, "
|
||||
"Zone Follow: On, Sensor Temp: 24C",
|
||||
ircoolix.toString());
|
||||
ircoolix.setSwing();
|
||||
EXPECT_EQ("Power: On, Fan: 3 (UNKNOWN), Swing: Toggle", ircoolix.toString());
|
||||
EXPECT_EQ("Power: On, Swing: Toggle", ircoolix.toString());
|
||||
ircoolix.setPower(false);
|
||||
EXPECT_EQ("Power: Off", ircoolix.toString());
|
||||
}
|
||||
@@ -434,12 +480,12 @@ TEST(TestCoolixACClass, KnownExamples) {
|
||||
|
||||
ircoolix.setRaw(0b101100101011111111100100);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Fan: 5 (AUTO), Mode: 4 (FAN), Zone Follow: Off, "
|
||||
"Power: On, Mode: 4 (FAN), Fan: 5 (AUTO), Zone Follow: Off, "
|
||||
"Sensor Temp: Ignored",
|
||||
ircoolix.toString());
|
||||
ircoolix.setRaw(0b101100101001111100000000);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Fan: 4 (MIN), Mode: 0 (COOL), Temp: 17C, "
|
||||
"Power: On, Mode: 0 (COOL), Fan: 4 (MIN), Temp: 17C, "
|
||||
"Zone Follow: Off, Sensor Temp: Ignored",
|
||||
ircoolix.toString());
|
||||
}
|
||||
@@ -449,7 +495,7 @@ TEST(TestCoolixACClass, Issue579FanAuto0) {
|
||||
|
||||
ircoolix.setRaw(0xB21F28);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Fan: 0 (AUTO0), Mode: 2 (AUTO), Temp: 20C, "
|
||||
"Power: On, Mode: 2 (AUTO), Fan: 0 (AUTO0), Temp: 20C, "
|
||||
"Zone Follow: Off, Sensor Temp: Ignored",
|
||||
ircoolix.toString());
|
||||
}
|
||||
@@ -491,3 +537,56 @@ TEST(TestCoolixACClass, RealCaptureExample) {
|
||||
EXPECT_EQ(0x0, irsend.capture.address);
|
||||
EXPECT_EQ(0x0, irsend.capture.command);
|
||||
}
|
||||
|
||||
|
||||
// Tests to debug/fix:
|
||||
// https://github.com/markszabo/IRremoteESP8266/issues/624
|
||||
TEST(TestCoolixACClass, Issue624HandleSpecialStatesBetter) {
|
||||
IRCoolixAC ac(0);
|
||||
ac.begin();
|
||||
// Default
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 2 (AUTO), Fan: 5 (AUTO), Temp: 25C, Zone Follow: Off, "
|
||||
"Sensor Temp: Ignored",
|
||||
ac.toString());
|
||||
EXPECT_EQ(0xB2BFC8, ac.getRaw());
|
||||
// Change of settings.
|
||||
ac.setPower(true);
|
||||
ac.setTemp(24);
|
||||
ac.setMode(kCoolixCool);
|
||||
ac.setFan(kCoolixFanAuto);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 0 (COOL), Fan: 5 (AUTO), Temp: 24C, Zone Follow: Off, "
|
||||
"Sensor Temp: Ignored",
|
||||
ac.toString());
|
||||
EXPECT_EQ(0xB2BF40, ac.getRaw());
|
||||
// Turn the unit off.
|
||||
ac.setPower(false);
|
||||
EXPECT_EQ(
|
||||
"Power: Off",
|
||||
ac.toString());
|
||||
EXPECT_EQ(kCoolixOff, ac.getRaw());
|
||||
// Repeat change of settings.
|
||||
ac.setPower(true);
|
||||
ac.setTemp(24);
|
||||
ac.setMode(kCoolixCool);
|
||||
ac.setFan(kCoolixFanAuto);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 0 (COOL), Fan: 5 (AUTO), Temp: 24C, Zone Follow: Off, "
|
||||
"Sensor Temp: Ignored",
|
||||
ac.toString());
|
||||
EXPECT_EQ(0xB2BF40, ac.getRaw());
|
||||
|
||||
// Now test if we setRaw() a special state first.
|
||||
ac.setRaw(kCoolixSwing);
|
||||
// Repeat change of settings.
|
||||
ac.setPower(true);
|
||||
ac.setTemp(24);
|
||||
ac.setMode(kCoolixCool);
|
||||
ac.setFan(kCoolixFanAuto);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 0 (COOL), Fan: 5 (AUTO), Temp: 24C, Zone Follow: Off, "
|
||||
"Sensor Temp: Ignored",
|
||||
ac.toString());
|
||||
EXPECT_EQ(0xB2BF40, ac.getRaw());
|
||||
}
|
||||
@@ -420,3 +420,54 @@ TEST(TestDecodeLG2, RealLG2Example) {
|
||||
EXPECT_EQ(kLgBits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x880094D, irsend.capture.value);
|
||||
}
|
||||
|
||||
// Tests for issue reported in
|
||||
// https://github.com/markszabo/IRremoteESP8266/issues/620
|
||||
TEST(TestDecodeLG, Issue620) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
|
||||
// Raw data as reported in initial comment of Issue #620
|
||||
uint16_t rawData[59] = {
|
||||
8886, 4152,
|
||||
560, 1538, 532, 502, 532, 504, 530, 484, 558, 1536,
|
||||
508, 516, 558, 502, 532, 484, 558, 502, 532, 500,
|
||||
534, 508, 532, 502, 532, 1518, 558, 510, 532, 484,
|
||||
556, 486, 556, 510, 532, 1518, 558, 1560, 532, 1528,
|
||||
556, 504, 530, 506, 530, 1520, 558, 508, 534, 500,
|
||||
532, 512, 530, 484, 556, 1536, 532}; // LG 8808721
|
||||
irsend.sendRaw(rawData, 59, 38000);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(LG, irsend.capture.decode_type);
|
||||
EXPECT_EQ(28, irsend.capture.bits);
|
||||
EXPECT_EQ(0x8808721, irsend.capture.value);
|
||||
EXPECT_EQ(0x88, irsend.capture.address);
|
||||
EXPECT_EQ(0x872, irsend.capture.command);
|
||||
|
||||
irsend.reset();
|
||||
|
||||
// Resend the same code as the report is a sent code doesn't decode
|
||||
// to the same message code.
|
||||
irsend.sendLG(0x8808721);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(LG, irsend.capture.decode_type);
|
||||
EXPECT_EQ(28, irsend.capture.bits);
|
||||
EXPECT_EQ(0x8808721, irsend.capture.value);
|
||||
EXPECT_EQ(0x88, irsend.capture.address);
|
||||
EXPECT_EQ(0x872, irsend.capture.command);
|
||||
// The following seems to match the rawData above.
|
||||
EXPECT_EQ(
|
||||
"m8500s4250"
|
||||
"m550s1600m550s550m550s550m550s550m550s1600"
|
||||
"m550s550m550s550m550s550m550s550m550s550"
|
||||
"m550s550m550s550m550s1600m550s550m550s550"
|
||||
"m550s550m550s550m550s1600m550s1600m550s1600"
|
||||
"m550s550m550s550m550s1600m550s550m550s550"
|
||||
"m550s550m550s550m550s1600m550"
|
||||
"s55550",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2017 David Conran
|
||||
// Copyright 2017, 2018, 2019 David Conran
|
||||
|
||||
#include "ir_Samsung.h"
|
||||
#include "IRrecv.h"
|
||||
@@ -7,6 +7,13 @@
|
||||
#include "IRsend_test.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
|
||||
// General housekeeping
|
||||
TEST(TestSamsung, Housekeeping) {
|
||||
ASSERT_EQ("SAMSUNG", typeToString(SAMSUNG));
|
||||
ASSERT_FALSE(hasACState(SAMSUNG));
|
||||
}
|
||||
|
||||
// Tests for sendSAMSUNG().
|
||||
|
||||
// Test sending typical data only.
|
||||
@@ -281,6 +288,12 @@ TEST(TestDecodeSamsung, FailToDecodeNonSamsungExample) {
|
||||
ASSERT_FALSE(irrecv.decodeSAMSUNG(&irsend.capture, kSamsungBits, false));
|
||||
}
|
||||
|
||||
// General housekeeping
|
||||
TEST(TestSamsungAC, Housekeeping) {
|
||||
ASSERT_EQ("SAMSUNG_AC", typeToString(SAMSUNG_AC));
|
||||
ASSERT_TRUE(hasACState(SAMSUNG_AC));
|
||||
}
|
||||
|
||||
// Tests for sendSamsungAC().
|
||||
|
||||
// Test sending typical data only.
|
||||
@@ -976,3 +989,133 @@ TEST(TestDecodeSamsungAC, Issue604DecodeExtended) {
|
||||
"Beep: Off, Clean: Off, Quiet: Off",
|
||||
samsung.toString());
|
||||
}
|
||||
|
||||
TEST(TestSendSamsung36, SendDataOnly) {
|
||||
IRsendTest irsend(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
irsend.sendSamsung36(0);
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560"
|
||||
"m560s26880",
|
||||
irsend.outputStr());
|
||||
irsend.sendSamsung36(0x400E00FF);
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s1680m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s4480"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s26880",
|
||||
irsend.outputStr());
|
||||
irsend.reset();
|
||||
}
|
||||
|
||||
// General housekeeping
|
||||
TEST(TestSamsung36, Housekeeping) {
|
||||
ASSERT_EQ("SAMSUNG36", typeToString(SAMSUNG36));
|
||||
ASSERT_FALSE(hasACState(SAMSUNG36));
|
||||
}
|
||||
|
||||
// Test sending with different repeats.
|
||||
TEST(TestSendSamsung36, SendWithRepeats) {
|
||||
IRsendTest irsend(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
irsend.sendSamsung36(0x400E00FF, kSamsung36Bits, 1); // 1 repeat.
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s1680m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s4480"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s26880"
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s1680m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s4480"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s26880",
|
||||
irsend.outputStr());
|
||||
irsend.sendSamsung36(0x400E00FF, kSamsung36Bits, 2); // 2 repeats.
|
||||
EXPECT_EQ(
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s1680m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s4480"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s26880"
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s1680m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s4480"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s26880"
|
||||
"m4480s4480"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s1680m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s4480"
|
||||
"m560s1680m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s560m560s560m560s560m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s26880",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
TEST(TestDecodeSamsung36, RealExample) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
uint16_t rawData[77] = {
|
||||
4542, 4438, 568, 432, 562, 436, 536, 462, 538, 460, 538, 460, 564, 1434,
|
||||
564, 434, 534, 464, 536, 462, 562, 436, 536, 464, 564, 432, 538, 462, 536,
|
||||
464, 534, 464, 564, 420, 566, 4414, 538, 1462, 566, 1432, 562, 1436, 536,
|
||||
462, 564, 436, 562, 436, 560, 436, 562, 436, 562, 436, 560, 438, 536, 462,
|
||||
562, 436, 562, 1436, 562, 1434, 536, 1462, 564, 1434, 562, 1436, 564,
|
||||
1436, 534, 1462, 534, 1464, 536}; // UNKNOWN E4CD1208
|
||||
|
||||
irsend.sendRaw(rawData, 77, 38000);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
ASSERT_EQ(SAMSUNG36, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSamsung36Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x400E00FF, irsend.capture.value);
|
||||
EXPECT_EQ(0xE00FF, irsend.capture.command);
|
||||
EXPECT_EQ(0x400, irsend.capture.address);
|
||||
}
|
||||
|
||||
TEST(TestDecodeSamsung36, SyntheticExample) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
irsend.reset();
|
||||
|
||||
irsend.sendSamsung36(0x400E00FF);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decodeSamsung36(&irsend.capture));
|
||||
ASSERT_EQ(SAMSUNG36, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kSamsung36Bits, irsend.capture.bits);
|
||||
EXPECT_EQ(0x400E00FF, irsend.capture.value);
|
||||
EXPECT_EQ(0xE00FF, irsend.capture.command);
|
||||
EXPECT_EQ(0x400, irsend.capture.address);
|
||||
}
|
||||
@@ -0,0 +1,247 @@
|
||||
// Copyright 2019 David Conran
|
||||
|
||||
#include "ir_Tcl.h"
|
||||
#include "IRrecv.h"
|
||||
#include "IRrecv_test.h"
|
||||
#include "IRsend.h"
|
||||
#include "IRsend_test.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// General housekeeping
|
||||
TEST(TestTcl112Ac, Housekeeping) {
|
||||
ASSERT_EQ("TCL112AC", typeToString(TCL112AC));
|
||||
ASSERT_TRUE(hasACState(TCL112AC));
|
||||
}
|
||||
|
||||
// Tests for decodeTcl112Ac().
|
||||
|
||||
// Decode a real Tcl112Ac A/C example from Issue #619
|
||||
TEST(TestDecodeTcl112Ac, DecodeRealExample) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
// Tcl112Ac A/C example from Issue #619 On.txt
|
||||
uint16_t rawData[227] = {
|
||||
3030, 1658, 494, 1066, 494, 1068, 498, 320, 494,
|
||||
326, 498, 320, 494, 1068, 500, 320, 494, 332,
|
||||
494, 1068, 500, 1062, 496, 324, 492, 1044, 524,
|
||||
322, 492, 326, 498, 1062, 494, 1074, 494, 326,
|
||||
500, 1062, 496, 1066, 490, 328, 496, 322, 492,
|
||||
1070, 498, 322, 494, 332, 492, 1068, 498, 320,
|
||||
494, 326, 498, 320, 496, 324, 500, 320, 494,
|
||||
324, 490, 336, 500, 320, 496, 324, 490, 328,
|
||||
496, 322, 492, 328, 498, 322, 492, 326, 498,
|
||||
328, 496, 322, 492, 328, 498, 1064, 494, 326,
|
||||
498, 320, 494, 1066, 490, 330, 496, 330, 494,
|
||||
1066, 490, 1070, 498, 322, 492, 328, 498, 322,
|
||||
492, 326, 498, 322, 492, 332, 492, 1068, 498,
|
||||
1062, 494, 1066, 500, 318, 496, 324, 490, 328,
|
||||
496, 324, 492, 334, 490, 328, 496, 324, 492,
|
||||
328, 496, 322, 492, 328, 498, 320, 494, 1068,
|
||||
500, 326, 500, 320, 492, 326, 500, 320, 496,
|
||||
324, 500, 318, 496, 324, 490, 328, 496, 330,
|
||||
496, 324, 490, 328, 496, 324, 490, 328, 498,
|
||||
322, 492, 328, 498, 320, 492, 334, 492, 328,
|
||||
498, 322, 494, 326, 498, 320, 494, 324, 500,
|
||||
322, 492, 324, 490, 336, 498, 320, 494, 324,
|
||||
500, 320, 496, 324, 490, 328, 498, 322, 492,
|
||||
328, 496, 1070, 496, 1064, 492, 1070, 498, 322,
|
||||
494, 326, 500, 320, 494, 324, 500, 320, 494,
|
||||
324, 470}; // UNKNOWN CE60D6B9
|
||||
uint8_t expectedState[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x07, 0x40, 0x00, 0x00, 0x00, 0x80, 0x03};
|
||||
|
||||
irsend.sendRaw(rawData, 227, 38000);
|
||||
irsend.makeDecodeResult();
|
||||
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
ASSERT_EQ(TCL112AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kTcl112AcBits, irsend.capture.bits);
|
||||
EXPECT_STATE_EQ(expectedState, irsend.capture.state, irsend.capture.bits);
|
||||
|
||||
IRTcl112Ac ac(0);
|
||||
ac.setRaw(irsend.capture.state);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 24C", ac.toString());
|
||||
}
|
||||
|
||||
// Decode a synthetic Tcl112Ac A/C example from Issue #619
|
||||
TEST(TestDecodeTcl112Ac, DecodeSyntheticExample) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
|
||||
uint8_t expectedState[kTcl112AcStateLength] = {0x23, 0xCB, 0x26, 0x01, 0x00,
|
||||
0x24, 0x03, 0x07, 0x40, 0x00,
|
||||
0x00, 0x00, 0x80, 0x03};
|
||||
|
||||
irsend.sendTcl112Ac(expectedState);
|
||||
irsend.makeDecodeResult();
|
||||
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
ASSERT_EQ(TCL112AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kTcl112AcBits, irsend.capture.bits);
|
||||
EXPECT_STATE_EQ(expectedState, irsend.capture.state, irsend.capture.bits);
|
||||
}
|
||||
|
||||
TEST(TestTcl112AcClass, Temperature) {
|
||||
const uint8_t temp16C[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xCB};
|
||||
const uint8_t temp16point5C[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x0F, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEB};
|
||||
const uint8_t temp19point5C[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x0C, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xE8};
|
||||
const uint8_t temp31C[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xBC};
|
||||
IRTcl112Ac ac(0);
|
||||
ac.setRaw(temp16C);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 16C", ac.toString());
|
||||
ac.setRaw(temp16point5C);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 16.5C", ac.toString());
|
||||
ac.setRaw(temp19point5C);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 19.5C", ac.toString());
|
||||
ac.setRaw(temp31C);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 31C", ac.toString());
|
||||
|
||||
ac.setTemp(kTcl112AcTempMin);
|
||||
EXPECT_EQ(kTcl112AcTempMin, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTcl112AcTempMin + 1);
|
||||
EXPECT_EQ(kTcl112AcTempMin + 1, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTcl112AcTempMax);
|
||||
EXPECT_EQ(kTcl112AcTempMax, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTcl112AcTempMin - 1);
|
||||
EXPECT_EQ(kTcl112AcTempMin, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTcl112AcTempMax + 0.5);
|
||||
EXPECT_EQ(kTcl112AcTempMax, ac.getTemp());
|
||||
|
||||
ac.setTemp(23);
|
||||
EXPECT_EQ(23, ac.getTemp());
|
||||
|
||||
ac.setTemp(27.4);
|
||||
EXPECT_EQ(27, ac.getTemp());
|
||||
|
||||
ac.setTemp(22.5);
|
||||
EXPECT_EQ(22.5, ac.getTemp());
|
||||
|
||||
ac.setTemp(25.6);
|
||||
EXPECT_EQ(25.5, ac.getTemp());
|
||||
|
||||
ac.setTemp(0);
|
||||
EXPECT_EQ(kTcl112AcTempMin, ac.getTemp());
|
||||
|
||||
ac.setTemp(255);
|
||||
EXPECT_EQ(kTcl112AcTempMax, ac.getTemp());
|
||||
}
|
||||
|
||||
TEST(TestTcl112AcClass, OperatingMode) {
|
||||
IRTcl112Ac ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setMode(kTcl112AcAuto);
|
||||
EXPECT_EQ(kTcl112AcAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcCool);
|
||||
EXPECT_EQ(kTcl112AcCool, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcHeat);
|
||||
EXPECT_EQ(kTcl112AcHeat, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcFan);
|
||||
EXPECT_EQ(kTcl112AcFan, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcDry);
|
||||
EXPECT_EQ(kTcl112AcDry, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcHeat - 1);
|
||||
EXPECT_EQ(kTcl112AcAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcCool);
|
||||
EXPECT_EQ(kTcl112AcCool, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcAuto + 1);
|
||||
EXPECT_EQ(kTcl112AcAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcCool);
|
||||
ac.setMode(255);
|
||||
EXPECT_EQ(kTcl112AcAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kTcl112AcCool);
|
||||
ac.setMode(0);
|
||||
EXPECT_EQ(kTcl112AcAuto, ac.getMode());
|
||||
|
||||
const uint8_t automode[] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x08,
|
||||
0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x48};
|
||||
ac.setRaw(automode);
|
||||
EXPECT_EQ("Power: On, Mode: 8 (AUTO), Temp: 24C", ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestTcl112AcClass, Power) {
|
||||
IRTcl112Ac ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setPower(true);
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
|
||||
ac.setPower(false);
|
||||
EXPECT_EQ(false, ac.getPower());
|
||||
|
||||
ac.setPower(true);
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
|
||||
ac.off();
|
||||
EXPECT_EQ(false, ac.getPower());
|
||||
|
||||
ac.on();
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
|
||||
const uint8_t on[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xCB};
|
||||
ac.setRaw(on);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 16C", ac.toString());
|
||||
|
||||
const uint8_t off[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x20, 0x03,
|
||||
0x07, 0x40, 0x00, 0x00, 0x00, 0x80, 0xCB};
|
||||
ac.setRaw(off);
|
||||
EXPECT_EQ("Power: Off, Mode: 3 (COOL), Temp: 24C", ac.toString());
|
||||
}
|
||||
|
||||
|
||||
TEST(TestTcl112AcClass, Checksum) {
|
||||
uint8_t temp16C[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x0F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xCB};
|
||||
uint8_t temp31C[kTcl112AcStateLength] = {
|
||||
0x23, 0xCB, 0x26, 0x01, 0x00, 0x24, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xBC};
|
||||
IRTcl112Ac ac(0);
|
||||
EXPECT_EQ(0xCB, ac.calcChecksum(temp16C));
|
||||
ac.setRaw(temp16C);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 16C", ac.toString());
|
||||
ac.setRaw(temp31C);
|
||||
EXPECT_EQ("Power: On, Mode: 3 (COOL), Temp: 31C", ac.toString());
|
||||
EXPECT_EQ(0xBC, ac.calcChecksum(temp31C));
|
||||
|
||||
EXPECT_TRUE(IRTcl112Ac::validChecksum(temp16C));
|
||||
EXPECT_TRUE(IRTcl112Ac::validChecksum(temp31C));
|
||||
EXPECT_TRUE(ac.validChecksum(temp31C));
|
||||
ac.setRaw(temp16C);
|
||||
EXPECT_TRUE(ac.validChecksum(ac.getRaw()));
|
||||
ac.setTemp(31);
|
||||
EXPECT_TRUE(ac.validChecksum(ac.getRaw()));
|
||||
EXPECT_EQ(0xBC, ac.calcChecksum(ac.getRaw()));
|
||||
}
|
||||
@@ -0,0 +1,356 @@
|
||||
// Copyright 2019 David Conran
|
||||
|
||||
#include "ir_Teco.h"
|
||||
#include "IRrecv.h"
|
||||
#include "IRrecv_test.h"
|
||||
#include "IRsend.h"
|
||||
#include "IRsend_test.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// General housekeeping
|
||||
TEST(TestTeco, Housekeeping) {
|
||||
ASSERT_EQ("TECO", typeToString(TECO));
|
||||
ASSERT_FALSE(hasACState(TECO)); // Uses uint64_t, not uint8_t*.
|
||||
}
|
||||
|
||||
// Tests for sendTeco()
|
||||
|
||||
// Test sending typical data only.
|
||||
TEST(TestSendTeco, SendDataOnly) {
|
||||
IRsendTest irsend(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
irsend.sendTeco(0x250002BC9);
|
||||
EXPECT_EQ(
|
||||
"m9000s4440"
|
||||
"m620s1650m620s580m620s580m620s1650m620s580m620s580m620s1650m620s1650"
|
||||
"m620s1650m620s1650m620s580m620s1650m620s580m620s1650m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s580m620s580m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s1650m620s580m620s1650m620s580"
|
||||
"m620s580m620s1650m620s580"
|
||||
"m620s1000000",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
// Test sending typical data with repeats.
|
||||
TEST(TestSendTeco, SendWithRepeats) {
|
||||
IRsendTest irsend(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
irsend.sendTeco(0x250002BC9, kTecoBits, 2); // two repeats.
|
||||
EXPECT_EQ(
|
||||
"m9000s4440"
|
||||
"m620s1650m620s580m620s580m620s1650m620s580m620s580m620s1650m620s1650"
|
||||
"m620s1650m620s1650m620s580m620s1650m620s580m620s1650m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s580m620s580m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s1650m620s580m620s1650m620s580"
|
||||
"m620s580m620s1650m620s580"
|
||||
"m620s1000000"
|
||||
"m9000s4440"
|
||||
"m620s1650m620s580m620s580m620s1650m620s580m620s580m620s1650m620s1650"
|
||||
"m620s1650m620s1650m620s580m620s1650m620s580m620s1650m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s580m620s580m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s1650m620s580m620s1650m620s580"
|
||||
"m620s580m620s1650m620s580"
|
||||
"m620s1000000"
|
||||
"m9000s4440"
|
||||
"m620s1650m620s580m620s580m620s1650m620s580m620s580m620s1650m620s1650"
|
||||
"m620s1650m620s1650m620s580m620s1650m620s580m620s1650m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s580m620s580m620s580m620s580"
|
||||
"m620s580m620s580m620s580m620s580m620s1650m620s580m620s1650m620s580"
|
||||
"m620s580m620s1650m620s580"
|
||||
"m620s1000000",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
|
||||
// Tests for IRTeco class.
|
||||
|
||||
TEST(TestTecoACClass, Power) {
|
||||
IRTecoAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setPower(true);
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
|
||||
ac.setPower(false);
|
||||
EXPECT_EQ(false, ac.getPower());
|
||||
|
||||
ac.setPower(true);
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
|
||||
ac.off();
|
||||
EXPECT_EQ(false, ac.getPower());
|
||||
|
||||
ac.on();
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
}
|
||||
|
||||
TEST(TestTecoACClass, OperatingMode) {
|
||||
IRTecoAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setMode(kTecoAuto);
|
||||
EXPECT_EQ(kTecoAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kTecoCool);
|
||||
EXPECT_EQ(kTecoCool, ac.getMode());
|
||||
|
||||
ac.setMode(kTecoHeat);
|
||||
EXPECT_EQ(kTecoHeat, ac.getMode());
|
||||
|
||||
ac.setMode(kTecoFan);
|
||||
EXPECT_EQ(kTecoFan, ac.getMode());
|
||||
|
||||
ac.setMode(kTecoDry);
|
||||
EXPECT_EQ(kTecoDry, ac.getMode());
|
||||
|
||||
ac.setMode(kTecoAuto - 1);
|
||||
EXPECT_EQ(kTecoAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kTecoCool);
|
||||
EXPECT_EQ(kTecoCool, ac.getMode());
|
||||
|
||||
ac.setMode(kTecoHeat + 1);
|
||||
EXPECT_EQ(kTecoAuto, ac.getMode());
|
||||
|
||||
ac.setMode(255);
|
||||
EXPECT_EQ(kTecoAuto, ac.getMode());
|
||||
}
|
||||
|
||||
TEST(TestTecoACClass, Temperature) {
|
||||
IRTecoAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setTemp(kTecoMinTemp);
|
||||
EXPECT_EQ(kTecoMinTemp, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTecoMinTemp + 1);
|
||||
EXPECT_EQ(kTecoMinTemp + 1, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTecoMaxTemp);
|
||||
EXPECT_EQ(kTecoMaxTemp, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTecoMinTemp - 1);
|
||||
EXPECT_EQ(kTecoMinTemp, ac.getTemp());
|
||||
|
||||
ac.setTemp(kTecoMaxTemp + 1);
|
||||
EXPECT_EQ(kTecoMaxTemp, ac.getTemp());
|
||||
|
||||
ac.setTemp(23);
|
||||
EXPECT_EQ(23, ac.getTemp());
|
||||
|
||||
ac.setTemp(0);
|
||||
EXPECT_EQ(kTecoMinTemp, ac.getTemp());
|
||||
|
||||
ac.setTemp(255);
|
||||
EXPECT_EQ(kTecoMaxTemp, ac.getTemp());
|
||||
}
|
||||
|
||||
TEST(TestTecoACClass, FanSpeed) {
|
||||
IRTecoAc ac(0);
|
||||
ac.begin();
|
||||
ac.setFan(kTecoFanLow);
|
||||
|
||||
ac.setFan(kTecoFanAuto);
|
||||
EXPECT_EQ(kTecoFanAuto, ac.getFan());
|
||||
|
||||
ac.setFan(kTecoFanLow);
|
||||
EXPECT_EQ(kTecoFanLow, ac.getFan());
|
||||
ac.setFan(kTecoFanMed);
|
||||
EXPECT_EQ(kTecoFanMed, ac.getFan());
|
||||
ac.setFan(kTecoFanHigh);
|
||||
EXPECT_EQ(kTecoFanHigh, ac.getFan());
|
||||
|
||||
ac.setFan(kTecoFanHigh);
|
||||
EXPECT_EQ(kTecoFanHigh, ac.getFan());
|
||||
}
|
||||
|
||||
TEST(TestTecoACClass, Swing) {
|
||||
IRTecoAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setSwing(true);
|
||||
EXPECT_TRUE(ac.getSwing());
|
||||
|
||||
ac.setSwing(false);
|
||||
EXPECT_EQ(false, ac.getSwing());
|
||||
|
||||
ac.setSwing(true);
|
||||
EXPECT_TRUE(ac.getSwing());
|
||||
}
|
||||
|
||||
TEST(TestTecoACClass, Sleep) {
|
||||
IRTecoAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setSleep(true);
|
||||
EXPECT_TRUE(ac.getSleep());
|
||||
|
||||
ac.setSleep(false);
|
||||
EXPECT_EQ(false, ac.getSleep());
|
||||
|
||||
ac.setSleep(true);
|
||||
EXPECT_TRUE(ac.getSleep());
|
||||
}
|
||||
|
||||
TEST(TestTecoACClass, MessageConstuction) {
|
||||
IRTecoAc ac(0);
|
||||
|
||||
EXPECT_EQ(
|
||||
"Power: Off, Mode: 0 (AUTO), Temp: 16C, Fan: 0 (Auto), Sleep: Off, "
|
||||
"Swing: Off",
|
||||
ac.toString());
|
||||
ac.setPower(true);
|
||||
ac.setMode(kTecoCool);
|
||||
ac.setTemp(21);
|
||||
ac.setFan(kTecoFanHigh);
|
||||
ac.setSwing(false);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 1 (COOL), Temp: 21C, Fan: 3 (High), Sleep: Off, "
|
||||
"Swing: Off",
|
||||
ac.toString());
|
||||
ac.setSwing(true);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 1 (COOL), Temp: 21C, Fan: 3 (High), Sleep: Off, "
|
||||
"Swing: On",
|
||||
ac.toString());
|
||||
ac.setSwing(false);
|
||||
ac.setFan(kTecoFanLow);
|
||||
ac.setSleep(true);
|
||||
ac.setMode(kTecoHeat);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 4 (HEAT), Temp: 21C, Fan: 1 (Low), Sleep: On, "
|
||||
"Swing: Off",
|
||||
ac.toString());
|
||||
ac.setSleep(false);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 4 (HEAT), Temp: 21C, Fan: 1 (Low), Sleep: Off, "
|
||||
"Swing: Off",
|
||||
ac.toString());
|
||||
ac.setTemp(25);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 4 (HEAT), Temp: 25C, Fan: 1 (Low), Sleep: Off, "
|
||||
"Swing: Off",
|
||||
ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestTecoACClass, ReconstructKnownMessage) {
|
||||
IRTecoAc ac(0);
|
||||
|
||||
const uint64_t expected = 0x250002BC9;
|
||||
ASSERT_FALSE(ac.getRaw() == expected);
|
||||
ac.setPower(true);
|
||||
ac.setMode(kTecoCool);
|
||||
ac.setTemp(27);
|
||||
ac.setFan(kTecoFanAuto);
|
||||
ac.setSleep(true);
|
||||
ac.setSwing(true);
|
||||
EXPECT_EQ(expected, ac.getRaw());
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 1 (COOL), Temp: 27C, Fan: 0 (Auto), Sleep: On, "
|
||||
"Swing: On",
|
||||
ac.toString());
|
||||
}
|
||||
|
||||
// Tests for decodeTeco().
|
||||
|
||||
// Decode normal "synthetic" messages.
|
||||
TEST(TestDecodeTeco, NormalDecodeWithStrict) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
|
||||
// With the specific decoder.
|
||||
uint64_t expectedState = kTecoReset;
|
||||
irsend.reset();
|
||||
irsend.sendTeco(expectedState);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decodeTeco(&irsend.capture, kTecoBits, true));
|
||||
EXPECT_EQ(TECO, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kTecoBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(expectedState, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
EXPECT_EQ(0, irsend.capture.command);
|
||||
|
||||
// With the all the decoders.
|
||||
irsend.reset();
|
||||
irsend.sendTeco(expectedState);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(TECO, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kTecoBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(expectedState, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
EXPECT_EQ(0, irsend.capture.command);
|
||||
|
||||
IRTecoAc ac(0);
|
||||
ac.begin();
|
||||
ac.setRaw(irsend.capture.value);
|
||||
EXPECT_EQ(
|
||||
"Power: Off, Mode: 0 (AUTO), Temp: 16C, Fan: 0 (Auto), Sleep: Off, "
|
||||
"Swing: Off",
|
||||
ac.toString());
|
||||
}
|
||||
|
||||
// Decode a real message from Raw Data.
|
||||
TEST(TestDecodeTeco, RealNormalExample) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
IRTecoAc ac(0);
|
||||
irsend.begin();
|
||||
|
||||
uint16_t rawData1[73] = {
|
||||
9076, 4442, 670, 1620, 670, 516, 670, 516, 666, 1626, 670, 516,
|
||||
664, 520, 666, 1626, 666, 1626, 664, 1626, 666, 1626, 666, 520,
|
||||
666, 1626, 666, 520, 666, 1626, 666, 520, 666, 516, 670, 514,
|
||||
670, 516, 666, 520, 670, 516, 666, 520, 666, 516, 672, 514, 670,
|
||||
516, 666, 520, 666, 516, 672, 514, 670, 516, 666, 1624, 666, 520,
|
||||
666, 1626, 666, 520, 666, 516, 672, 1620, 670, 516, 670};
|
||||
uint64_t expected1 = 0b01001010000000000000010101111001001; // 0x250002BC9
|
||||
irsend.reset();
|
||||
irsend.sendRaw(rawData1, 73, 38);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(TECO, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kTecoBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(expected1, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
EXPECT_EQ(0, irsend.capture.command);
|
||||
ac.begin();
|
||||
ac.setRaw(irsend.capture.value);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 1 (COOL), Temp: 27C, Fan: 0 (Auto), Sleep: On, "
|
||||
"Swing: On",
|
||||
ac.toString());
|
||||
|
||||
uint16_t rawData2[73] = {
|
||||
9048, 4472, 636, 548, 636, 1654, 638, 546, 642, 1650, 642, 546, 638,
|
||||
1654, 638, 1654, 638, 546, 638, 1654, 636, 546, 642, 1650, 640, 548,
|
||||
636, 548, 638, 546, 636, 546, 642, 542, 642, 546, 638, 546, 638, 546,
|
||||
636, 548, 642, 542, 642, 546, 636, 548, 636, 546, 642, 542, 642, 546,
|
||||
638, 546, 638, 546, 636, 1654, 642, 542, 642, 1650, 642, 546, 638, 546,
|
||||
638, 1654, 638, 546, 642}; // TECO 25000056A
|
||||
uint64_t expected2 = 0b01001010000000000000000010101101010; // 0x25000056A
|
||||
irsend.reset();
|
||||
irsend.sendRaw(rawData2, 73, 38);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(TECO, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kTecoBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(expected2, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
EXPECT_EQ(0, irsend.capture.command);
|
||||
ac.begin();
|
||||
ac.setRaw(irsend.capture.value);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 2 (DRY), Temp: 21C, Fan: 2 (Med), Sleep: Off, "
|
||||
"Swing: On",
|
||||
ac.toString());
|
||||
}
|
||||
@@ -7,15 +7,15 @@
|
||||
#include "IRsend_test.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// Tests for sendVestelAC()
|
||||
// Tests for sendVestelAc()
|
||||
|
||||
// Test sending typical data only.
|
||||
TEST(TestSendVestelAC, SendDataOnly) {
|
||||
TEST(TestSendVestelAc, SendDataOnly) {
|
||||
IRsendTest irsend(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
irsend.sendVestelAC(0x0F00D9001FEF201ULL);
|
||||
irsend.sendVestelAc(0x0F00D9001FEF201ULL);
|
||||
EXPECT_EQ(
|
||||
"m3110s9066"
|
||||
"m520s1535m520s480m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
@@ -30,12 +30,12 @@ TEST(TestSendVestelAC, SendDataOnly) {
|
||||
}
|
||||
|
||||
// Test sending typical data with repeats.
|
||||
TEST(TestSendVestelAC, SendWithRepeats) {
|
||||
TEST(TestSendVestelAc, SendWithRepeats) {
|
||||
IRsendTest irsend(0);
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
irsend.sendVestelAC(0x0F00D9001FEF201ULL, kVestelACBits, 2); // two repeats.
|
||||
irsend.sendVestelAc(0x0F00D9001FEF201ULL, kVestelAcBits, 2); // two repeats.
|
||||
EXPECT_EQ(
|
||||
"m3110s9066"
|
||||
"m520s1535m520s480m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
@@ -67,10 +67,10 @@ TEST(TestSendVestelAC, SendWithRepeats) {
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
// Tests for IRVestelAC class.
|
||||
// Tests for IRVestelAc class.
|
||||
|
||||
TEST(TestVestelACClass, Power) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Power) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setPower(true);
|
||||
@@ -90,91 +90,91 @@ TEST(TestVestelACClass, Power) {
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, OperatingMode) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, OperatingMode) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setMode(kVestelACAuto);
|
||||
EXPECT_EQ(kVestelACAuto, ac.getMode());
|
||||
ac.setMode(kVestelAcAuto);
|
||||
EXPECT_EQ(kVestelAcAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kVestelACCool);
|
||||
EXPECT_EQ(kVestelACCool, ac.getMode());
|
||||
ac.setMode(kVestelAcCool);
|
||||
EXPECT_EQ(kVestelAcCool, ac.getMode());
|
||||
|
||||
ac.setMode(kVestelACHeat);
|
||||
EXPECT_EQ(kVestelACHeat, ac.getMode());
|
||||
ac.setMode(kVestelAcHeat);
|
||||
EXPECT_EQ(kVestelAcHeat, ac.getMode());
|
||||
|
||||
ac.setMode(kVestelACFan);
|
||||
EXPECT_EQ(kVestelACFan, ac.getMode());
|
||||
ac.setMode(kVestelAcFan);
|
||||
EXPECT_EQ(kVestelAcFan, ac.getMode());
|
||||
|
||||
ac.setMode(kVestelACDry);
|
||||
EXPECT_EQ(kVestelACDry, ac.getMode());
|
||||
ac.setMode(kVestelAcDry);
|
||||
EXPECT_EQ(kVestelAcDry, ac.getMode());
|
||||
|
||||
ac.setMode(kVestelACAuto - 1);
|
||||
EXPECT_EQ(kVestelACAuto, ac.getMode());
|
||||
ac.setMode(kVestelAcAuto - 1);
|
||||
EXPECT_EQ(kVestelAcAuto, ac.getMode());
|
||||
|
||||
ac.setMode(kVestelACCool);
|
||||
EXPECT_EQ(kVestelACCool, ac.getMode());
|
||||
ac.setMode(kVestelAcCool);
|
||||
EXPECT_EQ(kVestelAcCool, ac.getMode());
|
||||
|
||||
ac.setMode(kVestelACHeat + 1);
|
||||
EXPECT_EQ(kVestelACAuto, ac.getMode());
|
||||
ac.setMode(kVestelAcHeat + 1);
|
||||
EXPECT_EQ(kVestelAcAuto, ac.getMode());
|
||||
|
||||
ac.setMode(255);
|
||||
EXPECT_EQ(kVestelACAuto, ac.getMode());
|
||||
EXPECT_EQ(kVestelAcAuto, ac.getMode());
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, Temperature) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Temperature) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setTemp(kVestelACMinTempC);
|
||||
EXPECT_EQ(kVestelACMinTempC, ac.getTemp());
|
||||
ac.setTemp(kVestelAcMinTempC);
|
||||
EXPECT_EQ(kVestelAcMinTempC, ac.getTemp());
|
||||
|
||||
ac.setTemp(kVestelACMinTempC + 1);
|
||||
EXPECT_EQ(kVestelACMinTempC + 1, ac.getTemp());
|
||||
ac.setTemp(kVestelAcMinTempC + 1);
|
||||
EXPECT_EQ(kVestelAcMinTempC + 1, ac.getTemp());
|
||||
|
||||
ac.setTemp(kVestelACMaxTemp);
|
||||
EXPECT_EQ(kVestelACMaxTemp, ac.getTemp());
|
||||
ac.setTemp(kVestelAcMaxTemp);
|
||||
EXPECT_EQ(kVestelAcMaxTemp, ac.getTemp());
|
||||
|
||||
ac.setTemp(kVestelACMinTempC - 1);
|
||||
EXPECT_EQ(kVestelACMinTempC, ac.getTemp());
|
||||
ac.setTemp(kVestelAcMinTempC - 1);
|
||||
EXPECT_EQ(kVestelAcMinTempC, ac.getTemp());
|
||||
|
||||
ac.setTemp(kVestelACMaxTemp + 1);
|
||||
EXPECT_EQ(kVestelACMaxTemp, ac.getTemp());
|
||||
ac.setTemp(kVestelAcMaxTemp + 1);
|
||||
EXPECT_EQ(kVestelAcMaxTemp, ac.getTemp());
|
||||
|
||||
ac.setTemp(23);
|
||||
EXPECT_EQ(23, ac.getTemp());
|
||||
|
||||
ac.setTemp(0);
|
||||
EXPECT_EQ(kVestelACMinTempC, ac.getTemp());
|
||||
EXPECT_EQ(kVestelAcMinTempC, ac.getTemp());
|
||||
|
||||
ac.setTemp(255);
|
||||
EXPECT_EQ(kVestelACMaxTemp, ac.getTemp());
|
||||
EXPECT_EQ(kVestelAcMaxTemp, ac.getTemp());
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, FanSpeed) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, FanSpeed) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
ac.setFan(kVestelACFanLow);
|
||||
ac.setFan(kVestelAcFanLow);
|
||||
|
||||
ac.setFan(kVestelACFanAuto);
|
||||
EXPECT_EQ(kVestelACFanAuto, ac.getFan());
|
||||
ac.setFan(kVestelAcFanAuto);
|
||||
EXPECT_EQ(kVestelAcFanAuto, ac.getFan());
|
||||
|
||||
ac.setFan(kVestelACFanLow);
|
||||
EXPECT_EQ(kVestelACFanLow, ac.getFan());
|
||||
ac.setFan(kVestelACFanMed);
|
||||
EXPECT_EQ(kVestelACFanMed, ac.getFan());
|
||||
ac.setFan(kVestelACFanHigh);
|
||||
EXPECT_EQ(kVestelACFanHigh, ac.getFan());
|
||||
ac.setFan(kVestelAcFanLow);
|
||||
EXPECT_EQ(kVestelAcFanLow, ac.getFan());
|
||||
ac.setFan(kVestelAcFanMed);
|
||||
EXPECT_EQ(kVestelAcFanMed, ac.getFan());
|
||||
ac.setFan(kVestelAcFanHigh);
|
||||
EXPECT_EQ(kVestelAcFanHigh, ac.getFan());
|
||||
|
||||
ac.setFan(kVestelACFanHigh);
|
||||
EXPECT_EQ(kVestelACFanHigh, ac.getFan());
|
||||
ac.setFan(kVestelAcFanHigh);
|
||||
EXPECT_EQ(kVestelAcFanHigh, ac.getFan());
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, Swing) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Swing) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setSwing(true);
|
||||
@@ -188,8 +188,8 @@ TEST(TestVestelACClass, Swing) {
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, Ion) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Ion) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setIon(true);
|
||||
@@ -203,8 +203,8 @@ TEST(TestVestelACClass, Ion) {
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, Turbo) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Turbo) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setTurbo(true);
|
||||
@@ -218,8 +218,8 @@ TEST(TestVestelACClass, Turbo) {
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, Sleep) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Sleep) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setSleep(true);
|
||||
@@ -233,8 +233,8 @@ TEST(TestVestelACClass, Sleep) {
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, Time) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Time) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setTime(0);
|
||||
@@ -251,8 +251,8 @@ TEST(TestVestelACClass, Time) {
|
||||
EXPECT_EQ(23 * 60 + 59, ac.getTime());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, OnTimer) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, OnTimer) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setOnTimer(0);
|
||||
@@ -272,8 +272,8 @@ TEST(TestVestelACClass, OnTimer) {
|
||||
EXPECT_EQ(23 * 60 + 50, ac.getOnTimer());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, OffTimer) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, OffTimer) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setOffTimer(0);
|
||||
@@ -293,8 +293,8 @@ TEST(TestVestelACClass, OffTimer) {
|
||||
EXPECT_EQ(23 * 60 + 50, ac.getOffTimer());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, Timer) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, Timer) {
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
|
||||
ac.setTimer(0);
|
||||
@@ -315,16 +315,16 @@ TEST(TestVestelACClass, Timer) {
|
||||
EXPECT_EQ(0, ac.getOnTimer());
|
||||
}
|
||||
|
||||
TEST(TestVestelACClass, MessageConstuction) {
|
||||
IRVestelAC ac(0);
|
||||
TEST(TestVestelAcClass, MessageConstuction) {
|
||||
IRVestelAc ac(0);
|
||||
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 0 (AUTO), Temp: 25C, Fan: 13 (AUTO HOT), Sleep: Off, "
|
||||
"Turbo: Off, Ion: Off, Swing: Off",
|
||||
ac.toString());
|
||||
ac.setMode(kVestelACCool);
|
||||
ac.setMode(kVestelAcCool);
|
||||
ac.setTemp(21);
|
||||
ac.setFan(kVestelACFanHigh);
|
||||
ac.setFan(kVestelAcFanHigh);
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 1 (COOL), Temp: 21C, Fan: 11 (HIGH), Sleep: Off, "
|
||||
@@ -341,7 +341,7 @@ TEST(TestVestelACClass, MessageConstuction) {
|
||||
|
||||
// Now change a few already set things.
|
||||
ac.setSleep(true);
|
||||
ac.setMode(kVestelACHeat);
|
||||
ac.setMode(kVestelAcHeat);
|
||||
EXPECT_EQ(
|
||||
"Power: On, Mode: 4 (HEAT), Temp: 21C, Fan: 11 (HIGH), Sleep: On, "
|
||||
"Turbo: Off, Ion: On, Swing: On",
|
||||
@@ -357,7 +357,7 @@ TEST(TestVestelACClass, MessageConstuction) {
|
||||
EXPECT_FALSE(ac.isTimeCommand());
|
||||
|
||||
// Check that the checksum is valid.
|
||||
EXPECT_TRUE(IRVestelAC::validChecksum(ac.getRaw()));
|
||||
EXPECT_TRUE(IRVestelAc::validChecksum(ac.getRaw()));
|
||||
ac.setTime(23 * 60 + 59);
|
||||
EXPECT_TRUE(ac.isTimeCommand());
|
||||
EXPECT_EQ(
|
||||
@@ -392,10 +392,10 @@ TEST(TestVestelACClass, MessageConstuction) {
|
||||
ac.toString());
|
||||
}
|
||||
|
||||
// Tests for decodeVestelAC().
|
||||
// Tests for decodeVestelAc().
|
||||
|
||||
// Decode normal "synthetic" messages.
|
||||
TEST(TestDecodeVestelAC, NormalDecodeWithStrict) {
|
||||
TEST(TestDecodeVestelAc, NormalDecodeWithStrict) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
irsend.begin();
|
||||
@@ -403,11 +403,11 @@ TEST(TestDecodeVestelAC, NormalDecodeWithStrict) {
|
||||
// With the specific decoder.
|
||||
uint64_t expectedState = 0x0F00D9001FEF201ULL;
|
||||
irsend.reset();
|
||||
irsend.sendVestelAC(expectedState);
|
||||
irsend.sendVestelAc(expectedState);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decodeVestelAC(&irsend.capture, kVestelACBits, true));
|
||||
ASSERT_TRUE(irrecv.decodeVestelAc(&irsend.capture, kVestelAcBits, true));
|
||||
EXPECT_EQ(VESTEL_AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kVestelACBits, irsend.capture.bits);
|
||||
EXPECT_EQ(kVestelAcBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(expectedState, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
@@ -415,17 +415,17 @@ TEST(TestDecodeVestelAC, NormalDecodeWithStrict) {
|
||||
|
||||
// With the all the decoders.
|
||||
irsend.reset();
|
||||
irsend.sendVestelAC(expectedState);
|
||||
irsend.sendVestelAc(expectedState);
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(VESTEL_AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kVestelACBits, irsend.capture.bits);
|
||||
EXPECT_EQ(kVestelAcBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(expectedState, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
EXPECT_EQ(0, irsend.capture.command);
|
||||
|
||||
IRVestelAC ac(0);
|
||||
IRVestelAc ac(0);
|
||||
ac.begin();
|
||||
ac.setRaw(irsend.capture.value);
|
||||
EXPECT_EQ(
|
||||
@@ -435,10 +435,10 @@ TEST(TestDecodeVestelAC, NormalDecodeWithStrict) {
|
||||
}
|
||||
|
||||
// Decode a real message from Raw Data.
|
||||
TEST(TestDecodeVestelAC, RealNormalExample) {
|
||||
TEST(TestDecodeVestelAc, RealNormalExample) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
IRVestelAC ac(0);
|
||||
IRVestelAc ac(0);
|
||||
irsend.begin();
|
||||
|
||||
uint16_t rawData[115] = {
|
||||
@@ -457,7 +457,7 @@ TEST(TestDecodeVestelAC, RealNormalExample) {
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(VESTEL_AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kVestelACBits, irsend.capture.bits);
|
||||
EXPECT_EQ(kVestelAcBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(0xF4410001FF1201ULL, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
@@ -470,10 +470,10 @@ TEST(TestDecodeVestelAC, RealNormalExample) {
|
||||
ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestDecodeVestelAC, RealTimerExample) {
|
||||
TEST(TestDecodeVestelAc, RealTimerExample) {
|
||||
IRsendTest irsend(0);
|
||||
IRrecv irrecv(0);
|
||||
IRVestelAC ac(0);
|
||||
IRVestelAc ac(0);
|
||||
irsend.begin();
|
||||
|
||||
uint16_t rawData[115] = {
|
||||
@@ -492,7 +492,7 @@ TEST(TestDecodeVestelAC, RealTimerExample) {
|
||||
irsend.makeDecodeResult();
|
||||
ASSERT_TRUE(irrecv.decode(&irsend.capture));
|
||||
EXPECT_EQ(VESTEL_AC, irsend.capture.decode_type);
|
||||
EXPECT_EQ(kVestelACBits, irsend.capture.bits);
|
||||
EXPECT_EQ(kVestelAcBits, irsend.capture.bits);
|
||||
EXPECT_FALSE(irsend.capture.repeat);
|
||||
EXPECT_EQ(0x2D6570B8EE201ULL, irsend.capture.value);
|
||||
EXPECT_EQ(0, irsend.capture.address);
|
||||
@@ -505,7 +505,7 @@ TEST(TestDecodeVestelAC, RealTimerExample) {
|
||||
}
|
||||
|
||||
// General housekeeping
|
||||
TEST(TestDecodeVestelAC, Housekeeping) {
|
||||
TEST(TestDecodeVestelAc, Housekeeping) {
|
||||
ASSERT_EQ("VESTEL_AC", typeToString(VESTEL_AC));
|
||||
ASSERT_FALSE(hasACState(VESTEL_AC)); // Uses uint64_t, not uint8_t*.
|
||||
}
|
||||
Reference in new issue
Block a user