| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- // Copyright 2018 David Conran
- #include "IRsend.h"
- #include "IRsend_test.h"
- #include "gtest/gtest.h"
- // Tests for sendLutron().
- // Test sending typical data only.
- TEST(TestSendLutron, SendDataOnly) {
- IRsendTest irsend(0);
- irsend.begin();
- irsend.sendLutron(0);
- EXPECT_EQ("m2288s230080", irsend.outputStr());
- irsend.sendLutron(0xAAAAAAAAA); // Longest possible sequence. (I think)
- EXPECT_EQ(
- "m2288s2288m2288s2288m2288s2288m2288s2288m2288s2288m2288s2288m2288s2288"
- "m2288s2288m2288s2288m2288s2288m2288s2288m2288s2288m2288s2288m2288s2288"
- "m2288s2288m2288s2288m2288s2288m2288s152288",
- irsend.outputStr());
- irsend.sendLutron(0x7FFFFFFFF);
- EXPECT_EQ("m82368s150000", irsend.outputStr());
- irsend.sendLutron(0x7F88BD120);
- EXPECT_EQ(
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440",
- irsend.outputStr());
- }
- // Test sending with repeats.
- TEST(TestSendLutron, SendWithRepeats) {
- IRsendTest irsend(0);
- irsend.begin();
- // Send a command with 0 repeats.
- irsend.sendLutron(0x7F88BD120, kLutronBits, 0);
- EXPECT_EQ(
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440",
- irsend.outputStr());
- // Send a command with 1 repeat.
- irsend.sendLutron(0x7F88BD120, kLutronBits, 1);
- EXPECT_EQ(
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440"
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440",
- irsend.outputStr());
- // Send a command with 3 repeats.
- irsend.sendLutron(0x7F88BD120, kLutronBits, 3);
- EXPECT_EQ(
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440"
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440"
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440"
- "m20592s6864m2288s6864m2288s2288m9152s2288m2288s6864m2288s4576m2288"
- "s161440",
- irsend.outputStr());
- }
- // Tests for decodeLutron().
- // Decode normal Lutron messages.
- TEST(TestDecodeLutron, SyntheticDecode) {
- IRsendTest irsend(0);
- IRrecv irrecv(0);
- irsend.begin();
- // Synthesised Normal Lutron messages.
- irsend.reset();
- irsend.sendLutron(0x7F88BD120);
- irsend.makeDecodeResult();
- EXPECT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(LUTRON, irsend.capture.decode_type);
- EXPECT_EQ(kLutronBits, irsend.capture.bits);
- EXPECT_EQ(0x7F88BD120, irsend.capture.value);
- EXPECT_EQ(0x0, irsend.capture.address);
- EXPECT_EQ(0x0, irsend.capture.command);
- irsend.reset();
- irsend.sendLutron(0x0DEADBEEF);
- irsend.makeDecodeResult();
- EXPECT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(LUTRON, irsend.capture.decode_type);
- EXPECT_EQ(kLutronBits, irsend.capture.bits);
- EXPECT_EQ(0x0DEADBEEF, irsend.capture.value);
- EXPECT_EQ(0x0, irsend.capture.address);
- EXPECT_EQ(0x0, irsend.capture.command);
- irsend.reset();
- irsend.sendLutron(0x0);
- irsend.makeDecodeResult();
- EXPECT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(LUTRON, irsend.capture.decode_type);
- EXPECT_EQ(kLutronBits, irsend.capture.bits);
- EXPECT_EQ(0x0, irsend.capture.value);
- EXPECT_EQ(0x0, irsend.capture.address);
- EXPECT_EQ(0x0, irsend.capture.command);
- irsend.reset();
- irsend.sendLutron(0x7FFFFFFFF);
- irsend.makeDecodeResult();
- EXPECT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(LUTRON, irsend.capture.decode_type);
- EXPECT_EQ(kLutronBits, irsend.capture.bits);
- EXPECT_EQ(0x7FFFFFFFF, irsend.capture.value);
- EXPECT_EQ(0x0, irsend.capture.address);
- EXPECT_EQ(0x0, irsend.capture.command);
- }
- // Decode a documented example
- TEST(TestDecodeLutron, DocumentedExampleFullOff) {
- IRsendTest irsend(0);
- IRrecv irrecv(0);
- irsend.begin();
- // Full Off code.
- // Ref: https://github.com/markszabo/IRremoteESP8266/issues/515
- uint16_t rawData[14] = {20518, 6839, 2280, 6839, 2280, 2280, 9119,
- 2280, 2280, 6839, 2280, 4560, 2280, 11399};
- irsend.reset();
- irsend.sendRaw(rawData, 14, 40);
- irsend.makeDecodeResult();
- EXPECT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(LUTRON, irsend.capture.decode_type);
- EXPECT_EQ(kLutronBits, irsend.capture.bits);
- EXPECT_EQ(0x7F88BD120, irsend.capture.value);
- EXPECT_EQ(0x0, irsend.capture.address);
- EXPECT_EQ(0x0, irsend.capture.command);
- uint16_t pronto[18] = {0x0000, 0x0069, 0x0007, 0x0000, 0x032a, 0x010e,
- 0x005a, 0x010e, 0x005a, 0x005a, 0x0168, 0x005a,
- 0x005a, 0x010e, 0x005a, 0x00b4, 0x005a, 0x01c2};
- irsend.reset();
- irsend.sendPronto(pronto, 18);
- irsend.makeDecodeResult();
- EXPECT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(LUTRON, irsend.capture.decode_type);
- EXPECT_EQ(kLutronBits, irsend.capture.bits);
- EXPECT_EQ(0x7F88BD120, irsend.capture.value);
- EXPECT_EQ(0x0, irsend.capture.address);
- EXPECT_EQ(0x0, irsend.capture.command);
- }
|