Ir esp8266 lib update and code impacts (#235)

* integrate new IRremoteESP8266 lib 2.4.2 and add new protocols

IR_RC6
IR_MITSUBISHI
IR_GICABLE
IR_MITSUBISHI2
IR_LASERTAG
IR_CARRIER_AC
IR_MIDEA
IR_NIKAI
IR_SHERWOOD
IR_DENON
IR_AIWA_RC_T501
IR_JVC
This commit is contained in:
Florian authored and GitHub committed 2018-07-22 16:44:10 +02:00
1 parent 9b258723a8
commit b12ee19979
130 files changed
+16548 -1693

No files matched your search

+201 -120
View File
@@ -1,5 +1,8 @@
// Copyright 2017 David Conran
#include "IRremoteESP8266.h"
#include "IRrecv.h"
#include "IRrecv_test.h"
#include "IRsend.h"
#include "IRsend_test.h"
#include "ir_Kelvinator.h"
@@ -18,30 +21,30 @@ TEST(TestSendKelvinator, SendDataOnly) {
irsend.reset();
irsend.sendKelvinator(kelv_code);
EXPECT_EQ(
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560"
"m675s39900"
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s1560"
"m675s39900", irsend.outputStr());
"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.
@@ -57,54 +60,54 @@ TEST(TestSendKelvinator, SendWithRepeats) {
irsend.sendKelvinator(kelv_code, KELVINATOR_STATE_LENGTH, 1);
EXPECT_EQ(
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560"
"m675s39900"
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s1560"
"m675s39900"
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560"
"m675s39900"
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s1560"
"m675s39900", irsend.outputStr());
"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.
@@ -126,30 +129,30 @@ TEST(TestSendKelvinator, SendUnexpectedSizes) {
// extra data.
irsend.sendKelvinator(kelv_long_code, 17);
ASSERT_EQ(
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560"
"m675s39900"
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s520m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s1560"
"m675s39900", irsend.outputStr());
"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());
}
@@ -370,6 +373,66 @@ TEST(TestKelvinatorClass, FanSpeed) {
EXPECT_EQ(3, irkelv.getFan());
}
TEST(TestKelvinatorClass, Checksums) {
uint8_t kelv_code[KELVINATOR_STATE_LENGTH] = {
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[KELVINATOR_STATE_LENGTH] = {
0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA0,
0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xA0};
uint8_t expectedState[KELVINATOR_STATE_LENGTH] = {
0x08, 0x05, 0x20, 0x50, 0x00, 0x00, 0x00, 0x70,
0x08, 0x05, 0x20, 0x70, 0x00, 0x00, 0x00, 0x70};
EXPECT_STATE_EQ(initialState, irkelv.getRaw(), KELVINATOR_BITS);
// toggle the power state.
irkelv.setPower(!irkelv.getPower());
irkelv.setTemp(21);
irkelv.setLight(true);
EXPECT_STATE_EQ(expectedState, irkelv.getRaw(), KELVINATOR_BITS);
irkelv.setRaw(initialState);
EXPECT_STATE_EQ(initialState, irkelv.getRaw(), KELVINATOR_BITS);
}
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(KELVINATOR_COOL);
irkelv.setTemp(25);
irkelv.setFan(KELVINATOR_FAN_MAX);
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);
@@ -405,28 +468,46 @@ TEST(TestKelvinatorClass, MessageConstuction) {
irsend.reset();
irsend.sendKelvinator(irkelv.getRaw());
EXPECT_EQ(
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s1560m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s1560m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s1560"
"m675s39900"
"m8990s4490"
"m675s1560m675s520m675s520m675s1560m675s1560m675s520m675s1560m675s520"
"m675s1560m675s1560m675s520m675s1560m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s1560m675s1560"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s520"
"m675s520m675s1560m675s520"
"m675s19950"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s520m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s520m675s520m675s520"
"m675s520m675s520m675s520m675s520m675s1560m675s1560m675s1560m675s1560"
"m675s39900", irsend.outputStr());
"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[KELVINATOR_STATE_LENGTH] = {
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(KELVINATOR_BITS, irsend.capture.bits);
EXPECT_STATE_EQ(kelv_code, irsend.capture.state, KELVINATOR_BITS);
}