| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518 |
- // Copyright 2017 David Conran
- #include "ir_Kelvinator.h"
- #include "IRrecv.h"
- #include "IRrecv_test.h"
- #include "IRremoteESP8266.h"
- #include "IRsend.h"
- #include "IRsend_test.h"
- #include "gtest/gtest.h"
- // Tests for sendKelvinator().
- // Test sending typical data only.
- TEST(TestSendKelvinator, SendDataOnly) {
- IRsendTest irsend(4);
- irsend.begin();
- uint8_t kelv_code[kKelvinatorStateLength] = {
- 0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
- 0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10, 0xf0};
- irsend.reset();
- irsend.sendKelvinator(kelv_code);
- EXPECT_EQ(
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530"
- "m680s39950"
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
- "m680s39950",
- irsend.outputStr());
- }
- // Test sending with repeats.
- TEST(TestSendKelvinator, SendWithRepeats) {
- IRsendTest irsend(4);
- irsend.begin();
- irsend.reset();
- uint8_t kelv_code[kKelvinatorStateLength] = {
- 0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
- 0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10, 0xf0};
- irsend.reset();
- irsend.sendKelvinator(kelv_code, kKelvinatorStateLength, 1);
- EXPECT_EQ(
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530"
- "m680s39950"
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
- "m680s39950"
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530"
- "m680s39950"
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
- "m680s39950",
- irsend.outputStr());
- }
- // Test sending atypical sizes.
- TEST(TestSendKelvinator, SendUnexpectedSizes) {
- IRsendTest irsend(4);
- irsend.begin();
- uint8_t kelv_short_code[15] = {0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
- 0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10};
- uint8_t kelv_long_code[17] = {0x19, 0x0B, 0x80, 0x50, 0x00, 0x00,
- 0x00, 0xE0, 0x19, 0x0B, 0x80, 0x70,
- 0x00, 0x00, 0x10, 0xf0, 0x00};
- irsend.reset();
- irsend.sendKelvinator(kelv_short_code, 15);
- ASSERT_EQ("", irsend.outputStr());
- irsend.reset();
- // Shouldn't be different from the SendDataOnly. We just don't send the
- // extra data.
- irsend.sendKelvinator(kelv_long_code, 17);
- ASSERT_EQ(
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530"
- "m680s39950"
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
- "m680s39950",
- irsend.outputStr());
- }
- // Tests for IRKelvinatorAC class.
- TEST(TestKelvinatorClass, Power) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.on();
- EXPECT_TRUE(irkelv.getPower());
- irkelv.off();
- EXPECT_FALSE(irkelv.getPower());
- irkelv.setPower(true);
- EXPECT_TRUE(irkelv.getPower());
- irkelv.setPower(false);
- EXPECT_FALSE(irkelv.getPower());
- }
- TEST(TestKelvinatorClass, Temperature) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setTemp(0);
- EXPECT_EQ(kKelvinatorMinTemp, irkelv.getTemp());
- irkelv.setTemp(255);
- EXPECT_EQ(kKelvinatorMaxTemp, irkelv.getTemp());
- irkelv.setTemp(kKelvinatorMinTemp);
- EXPECT_EQ(kKelvinatorMinTemp, irkelv.getTemp());
- irkelv.setTemp(kKelvinatorMaxTemp);
- EXPECT_EQ(kKelvinatorMaxTemp, irkelv.getTemp());
- irkelv.setTemp(kKelvinatorMinTemp - 1);
- EXPECT_EQ(kKelvinatorMinTemp, irkelv.getTemp());
- irkelv.setTemp(kKelvinatorMaxTemp + 1);
- EXPECT_EQ(kKelvinatorMaxTemp, irkelv.getTemp());
- irkelv.setTemp(17);
- EXPECT_EQ(17, irkelv.getTemp());
- irkelv.setTemp(21);
- EXPECT_EQ(21, irkelv.getTemp());
- irkelv.setTemp(25);
- EXPECT_EQ(25, irkelv.getTemp());
- irkelv.setTemp(29);
- EXPECT_EQ(29, irkelv.getTemp());
- }
- TEST(TestKelvinatorClass, OperatingMode) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setTemp(24);
- irkelv.setMode(kKelvinatorAuto);
- EXPECT_EQ(kKelvinatorAuto, irkelv.getMode());
- EXPECT_EQ(kKelvinatorAutoTemp, irkelv.getTemp());
- irkelv.setMode(kKelvinatorCool);
- EXPECT_EQ(kKelvinatorCool, irkelv.getMode());
- irkelv.setMode(kKelvinatorHeat);
- EXPECT_EQ(kKelvinatorHeat, irkelv.getMode());
- irkelv.setTemp(24);
- irkelv.setMode(kKelvinatorDry);
- EXPECT_EQ(kKelvinatorDry, irkelv.getMode());
- EXPECT_EQ(kKelvinatorAutoTemp, irkelv.getTemp());
- irkelv.setMode(kKelvinatorFan);
- EXPECT_EQ(kKelvinatorFan, irkelv.getMode());
- irkelv.setMode(kKelvinatorHeat + 1);
- EXPECT_EQ(kKelvinatorAuto, irkelv.getMode());
- irkelv.setMode(255);
- EXPECT_EQ(kKelvinatorAuto, irkelv.getMode());
- }
- TEST(TestKelvinatorClass, VaneSwing) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setSwingHorizontal(true);
- irkelv.setSwingVertical(false);
- irkelv.setSwingHorizontal(true);
- EXPECT_TRUE(irkelv.getSwingHorizontal());
- EXPECT_FALSE(irkelv.getSwingVertical());
- irkelv.setSwingVertical(true);
- EXPECT_TRUE(irkelv.getSwingHorizontal());
- EXPECT_TRUE(irkelv.getSwingVertical());
- irkelv.setSwingHorizontal(false);
- EXPECT_FALSE(irkelv.getSwingHorizontal());
- EXPECT_TRUE(irkelv.getSwingVertical());
- irkelv.setSwingVertical(false);
- EXPECT_FALSE(irkelv.getSwingHorizontal());
- EXPECT_FALSE(irkelv.getSwingVertical());
- }
- TEST(TestKelvinatorClass, QuietMode) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setQuiet(true);
- EXPECT_TRUE(irkelv.getQuiet());
- irkelv.setQuiet(false);
- EXPECT_FALSE(irkelv.getQuiet());
- irkelv.setQuiet(true);
- EXPECT_TRUE(irkelv.getQuiet());
- }
- TEST(TestKelvinatorClass, IonFilter) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setIonFilter(true);
- EXPECT_TRUE(irkelv.getIonFilter());
- irkelv.setIonFilter(false);
- EXPECT_FALSE(irkelv.getIonFilter());
- irkelv.setIonFilter(true);
- EXPECT_TRUE(irkelv.getIonFilter());
- }
- TEST(TestKelvinatorClass, Light) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setLight(true);
- EXPECT_TRUE(irkelv.getLight());
- irkelv.setLight(false);
- EXPECT_FALSE(irkelv.getLight());
- irkelv.setLight(true);
- EXPECT_TRUE(irkelv.getLight());
- }
- TEST(TestKelvinatorClass, XFan) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setXFan(true);
- EXPECT_TRUE(irkelv.getXFan());
- irkelv.setXFan(false);
- EXPECT_FALSE(irkelv.getXFan());
- irkelv.setXFan(true);
- EXPECT_TRUE(irkelv.getXFan());
- }
- TEST(TestKelvinatorClass, TurboFan) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setTurbo(true);
- EXPECT_TRUE(irkelv.getTurbo());
- irkelv.setTurbo(false);
- EXPECT_FALSE(irkelv.getTurbo());
- irkelv.setFan(2);
- irkelv.setTurbo(true);
- EXPECT_TRUE(irkelv.getTurbo());
- // Turbo mode is turned off if the temperature is changed.
- irkelv.setFan(3);
- EXPECT_FALSE(irkelv.getTurbo());
- // But only when it is changed, not set to the same value again.
- irkelv.setTurbo(true);
- irkelv.setFan(3);
- EXPECT_TRUE(irkelv.getTurbo());
- }
- TEST(TestKelvinatorClass, FanSpeed) {
- IRKelvinatorAC irkelv(0);
- irkelv.begin();
- irkelv.setFan(0);
- EXPECT_EQ(0, irkelv.getFan());
- irkelv.setFan(255);
- EXPECT_EQ(kKelvinatorFanMax, irkelv.getFan());
- irkelv.setFan(kKelvinatorFanMax);
- EXPECT_EQ(kKelvinatorFanMax, irkelv.getFan());
- irkelv.setFan(kKelvinatorFanMax + 1);
- EXPECT_EQ(kKelvinatorFanMax, irkelv.getFan());
- irkelv.setFan(kKelvinatorFanMax - 1);
- EXPECT_EQ(kKelvinatorFanMax - 1, irkelv.getFan());
- irkelv.setFan(1);
- EXPECT_EQ(1, irkelv.getFan());
- irkelv.setFan(1);
- EXPECT_EQ(1, irkelv.getFan());
- irkelv.setFan(3);
- EXPECT_EQ(3, irkelv.getFan());
- }
- TEST(TestKelvinatorClass, Checksums) {
- uint8_t kelv_code[kKelvinatorStateLength] = {
- 0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
- 0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10, 0xf0};
- EXPECT_TRUE(IRKelvinatorAC::validChecksum(kelv_code));
- // Change the array so the checksum is invalid.
- kelv_code[0] ^= 0xFF;
- EXPECT_FALSE(IRKelvinatorAC::validChecksum(kelv_code));
- // Restore the previous change, and change another byte.
- kelv_code[0] ^= 0xFF;
- kelv_code[4] ^= 0xFF;
- EXPECT_FALSE(IRKelvinatorAC::validChecksum(kelv_code));
- kelv_code[4] ^= 0xFF;
- // Change something in the 2nd block.
- kelv_code[10] ^= 0xFF;
- EXPECT_FALSE(IRKelvinatorAC::validChecksum(kelv_code));
- kelv_code[10] ^= 0xFF;
- EXPECT_TRUE(IRKelvinatorAC::validChecksum(kelv_code));
- }
- TEST(TestKelvinatorClass, SetAndGetRaw) {
- IRKelvinatorAC irkelv(0);
- uint8_t initialState[kKelvinatorStateLength] = {
- 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA0,
- 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xA0};
- uint8_t expectedState[kKelvinatorStateLength] = {
- 0x08, 0x05, 0x20, 0x50, 0x00, 0x00, 0x00, 0x70,
- 0x08, 0x05, 0x20, 0x70, 0x00, 0x00, 0x00, 0x70};
- EXPECT_STATE_EQ(initialState, irkelv.getRaw(), kKelvinatorBits);
- // toggle the power state.
- irkelv.setPower(!irkelv.getPower());
- irkelv.setTemp(21);
- irkelv.setLight(true);
- EXPECT_STATE_EQ(expectedState, irkelv.getRaw(), kKelvinatorBits);
- irkelv.setRaw(initialState);
- EXPECT_STATE_EQ(initialState, irkelv.getRaw(), kKelvinatorBits);
- }
- TEST(TestKelvinatorClass, HumanReadable) {
- IRKelvinatorAC irkelv(0);
- EXPECT_EQ(
- "Power: Off, Mode: 0 (AUTO), Temp: 16C, Fan: 0 (AUTO), Turbo: Off, "
- "Quiet: Off, XFan: Off, IonFilter: Off, Light: Off, "
- "Swing (Horizontal): Off, Swing (Vertical): Off",
- irkelv.toString());
- irkelv.on();
- irkelv.setMode(kKelvinatorCool);
- irkelv.setTemp(25);
- irkelv.setFan(kKelvinatorFanMax);
- irkelv.setXFan(true);
- irkelv.setIonFilter(true);
- irkelv.setLight(true);
- irkelv.setSwingHorizontal(true);
- EXPECT_EQ(
- "Power: On, Mode: 1 (COOL), Temp: 25C, Fan: 5 (MAX), Turbo: Off, "
- "Quiet: Off, XFan: On, IonFilter: On, Light: On, "
- "Swing (Horizontal): On, Swing (Vertical): Off",
- irkelv.toString());
- }
- TEST(TestKelvinatorClass, MessageConstuction) {
- IRKelvinatorAC irkelv(0);
- IRsendTest irsend(4);
- irkelv.begin();
- irsend.begin();
- irkelv.setFan(1);
- irkelv.setMode(kKelvinatorCool);
- irkelv.setTemp(27);
- irkelv.setSwingVertical(false);
- irkelv.setSwingHorizontal(true);
- irkelv.setIonFilter(true);
- irkelv.setQuiet(false);
- irkelv.setLight(false);
- irkelv.setPower(true);
- irkelv.setTurbo(false);
- irkelv.setXFan(true);
- // Check everything for kicks.
- EXPECT_EQ(1, irkelv.getFan());
- EXPECT_EQ(kKelvinatorCool, irkelv.getMode());
- EXPECT_EQ(27, irkelv.getTemp());
- EXPECT_FALSE(irkelv.getSwingVertical());
- EXPECT_TRUE(irkelv.getSwingHorizontal());
- EXPECT_TRUE(irkelv.getIonFilter());
- EXPECT_FALSE(irkelv.getQuiet());
- EXPECT_FALSE(irkelv.getLight());
- EXPECT_TRUE(irkelv.getPower());
- EXPECT_FALSE(irkelv.getTurbo());
- EXPECT_TRUE(irkelv.getXFan());
- irsend.reset();
- irsend.sendKelvinator(irkelv.getRaw());
- EXPECT_EQ(
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s1530m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s1530m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
- "m680s39950"
- "m9010s4505"
- "m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s1530m680s510"
- "m680s1530m680s1530m680s510m680s1530m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s1530m680s1530"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s510"
- "m680s510m680s1530m680s510"
- "m680s19975"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
- "m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
- "m680s39950",
- irsend.outputStr());
- }
- // Decode a synthetic Kelvinator message.
- TEST(TestDecodeKelvinator, NormalSynthetic) {
- IRsendTest irsend(4);
- IRrecv irrecv(4);
- irsend.begin();
- uint8_t kelv_code[kKelvinatorStateLength] = {
- 0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
- 0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10, 0xf0};
- irsend.reset();
- irsend.sendKelvinator(kelv_code);
- irsend.makeDecodeResult();
- EXPECT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(KELVINATOR, irsend.capture.decode_type);
- ASSERT_EQ(kKelvinatorBits, irsend.capture.bits);
- EXPECT_STATE_EQ(kelv_code, irsend.capture.state, kKelvinatorBits);
- }
|