| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- // Copyright 2017 David Conran
- // Copyright 2018 Brett T. Warden
- #include "IRrecv.h"
- #include "IRrecv_test.h"
- #include "IRsend.h"
- #include "IRsend_test.h"
- #include "gtest/gtest.h"
- // MM MM WW WW MM MM
- // MMM MMM WW WW MMM MMM
- // MM M MM WW W WW MM M MM
- // MM MM WWW WWW MM MM
- // MM MM WW WW MM MM
- // Tests for sendMWM().
- // Test sending simplest case data only.
- TEST(TestSendMWM, SendDataOnly) {
- IRsendTest irsend(4);
- irsend.begin();
- irsend.reset();
- unsigned char test1[] = {0x96, 0x19, 0x10, 0x24, 0x0A,
- 0x6B, 0x20, 0x03, 0x82};
- /*
- ++--+-++--
- +-++--+++-
- +++++-+++-
- +++-++-++-
- ++-+-++++-
- +--+-+--+-
- ++++++-++-
- +--++++++-
- ++-+++++--
- */
- irsend.sendMWM(test1, sizeof(test1), 0);
- EXPECT_EQ(
- "m834s834m417s417m834s834"
- "m417s417m834s834m1251s417"
- "m2085s417m1251s417"
- "m1251s417m834s417m834s417"
- "m834s417m417s417m1668s417"
- "m417s834m417s417m417s834m417s417"
- "m2502s417m834s417"
- "m417s834m2502s417"
- "m834s417m2085s30834", irsend.outputStr());
- irsend.reset();
- unsigned char test2[] = {
- 0x99, 0x26, 0x66, 0x6E, 0xD1, 0x42, 0x06,
- 0x20, 0xD0, 0x32, 0xF0, 0x0B
- // +-++--++--
- // ++--++-++-
- // ++--++--+-
- // ++---+--+-
- // +-+++-+---
- // ++-++++-+-
- // ++--+++++-
- // ++++++-++-
- // +++++-+---
- // ++-++--++-
- // +++++-----
- // +--+-++++-
- };
- irsend.sendMWM(test2, sizeof(test2), 0);
- EXPECT_EQ(
- "m417s417m834s834m834s834"
- "m834s834m834s417m834s417"
- "m834s834m834s834m417s417"
- "m834s1251m417s834m417s417"
- "m417s417m1251s417m417s1251"
- "m834s417m1668s417m417s417"
- "m834s834m2085s417"
- "m2502s417m834s417"
- "m2085s417m417s1251"
- "m834s417m834s834m834s417"
- "m2085s2085"
- "m417s834m417s417m1668s30417", irsend.outputStr());
- }
- // Tests for decodeMWM().
- // Example data
- TEST(TestDecodeMWM, RealExamples) {
- IRsendTest irsend(0);
- IRrecv irrecv(0);
- irsend.begin();
- irsend.reset();
- uint16_t short_code[] = {
- 915, 793, 488, 366, 915, 793, 427, 366, 915, 793, 1281, 427,
- 2136, 366, 1281, 366, 915, 793, 427, 854, 854, 366, 1281, 854,
- 1708, 366, 488, 793, 854, 427, 427, 427, 427, 366, 854, 427,
- 2563, 366, 488, 793, 2563, 366, 488, 2075, 427, 34057};
- unsigned char short_expected[] = {0x96, 0x19, 0x10, 0x36, 0x0C,
- 0x53, 0x02, 0x03, 0xDF};
- irsend.sendRaw(short_code, sizeof(short_code) / sizeof(short_code[0]), 38000);
- irsend.makeDecodeResult();
- ASSERT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(MWM, irsend.capture.decode_type);
- EXPECT_EQ(8 * sizeof(short_expected) / sizeof(short_expected[0]),
- irsend.capture.bits);
- EXPECT_STATE_EQ(short_expected, irsend.capture.state, irsend.capture.bits);
- irsend.reset();
- uint16_t long_code[] = {
- 427, 427, 854, 854, 854, 793, 915, 793, 854, 366, 915, 366, 854,
- 854, 854, 793, 488, 366, 915, 1220, 427, 793, 488, 366, 488, 366,
- 1281, 427, 427, 1220, 915, 366, 1708, 366, 488, 366, 854, 854, 2136,
- 366, 2563, 366, 854, 427, 2136, 366, 488, 1220, 854, 427, 854, 793,
- 915, 366, 2136, 2075, 427, 793, 488, 366, 1708, 30517};
- unsigned char long_expected[] = {0x99, 0x26, 0x66, 0x6E, 0xD1, 0x42,
- 0x06, 0x20, 0xD0, 0x32, 0xF0, 0x0B};
- irsend.sendRaw(long_code, sizeof(long_code) / sizeof(long_code[0]), 38000);
- irsend.makeDecodeResult();
- ASSERT_TRUE(irrecv.decode(&irsend.capture));
- EXPECT_EQ(MWM, irsend.capture.decode_type);
- EXPECT_EQ(8 * sizeof(long_expected) / sizeof(long_expected[0]),
- irsend.capture.bits);
- EXPECT_STATE_EQ(long_expected, irsend.capture.state, irsend.capture.bits);
- }
- // vim: et:ts=2:sw=2
|