Update IRRemoteESP8266 version to 2.5.5
factorize IR send signal function between the 2 types of receiving Add new IRRemoteESP8266 protocols replace pins on mega according schema remove unecessaries spaces
This commit is contained in:
1 parent
0180a0dbd5
commit
f0305236db
149 files changed
+20957
-7850
No files matched your search
@@ -1,11 +1,11 @@
|
||||
// Copyright 2017 David Conran
|
||||
|
||||
#include "IRremoteESP8266.h"
|
||||
#include "ir_Kelvinator.h"
|
||||
#include "IRrecv.h"
|
||||
#include "IRrecv_test.h"
|
||||
#include "IRremoteESP8266.h"
|
||||
#include "IRsend.h"
|
||||
#include "IRsend_test.h"
|
||||
#include "ir_Kelvinator.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// Tests for sendKelvinator().
|
||||
@@ -15,7 +15,7 @@ TEST(TestSendKelvinator, SendDataOnly) {
|
||||
IRsendTest irsend(4);
|
||||
irsend.begin();
|
||||
|
||||
uint8_t kelv_code[KELVINATOR_STATE_LENGTH] = {
|
||||
uint8_t kelv_code[kKelvinatorStateLength] = {
|
||||
0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
|
||||
0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10, 0xf0};
|
||||
irsend.reset();
|
||||
@@ -44,7 +44,8 @@ TEST(TestSendKelvinator, SendDataOnly) {
|
||||
"m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
|
||||
"m680s39950", irsend.outputStr());
|
||||
"m680s39950",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
// Test sending with repeats.
|
||||
@@ -53,12 +54,12 @@ TEST(TestSendKelvinator, SendWithRepeats) {
|
||||
irsend.begin();
|
||||
|
||||
irsend.reset();
|
||||
uint8_t kelv_code[KELVINATOR_STATE_LENGTH] = {
|
||||
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, KELVINATOR_STATE_LENGTH, 1);
|
||||
irsend.sendKelvinator(kelv_code, kKelvinatorStateLength, 1);
|
||||
EXPECT_EQ(
|
||||
"m9010s4505"
|
||||
"m680s1530m680s510m680s510m680s1530m680s1530m680s510m680s510m680s510"
|
||||
@@ -107,7 +108,8 @@ TEST(TestSendKelvinator, SendWithRepeats) {
|
||||
"m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
|
||||
"m680s39950", irsend.outputStr());
|
||||
"m680s39950",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
// Test sending atypical sizes.
|
||||
@@ -117,9 +119,9 @@ TEST(TestSendKelvinator, SendUnexpectedSizes) {
|
||||
|
||||
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};
|
||||
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());
|
||||
@@ -152,10 +154,10 @@ TEST(TestSendKelvinator, SendUnexpectedSizes) {
|
||||
"m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
|
||||
"m680s39950", irsend.outputStr());
|
||||
"m680s39950",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
|
||||
// Tests for IRKelvinatorAC class.
|
||||
|
||||
TEST(TestKelvinatorClass, Power) {
|
||||
@@ -180,22 +182,22 @@ TEST(TestKelvinatorClass, Temperature) {
|
||||
irkelv.begin();
|
||||
|
||||
irkelv.setTemp(0);
|
||||
EXPECT_EQ(KELVINATOR_MIN_TEMP, irkelv.getTemp());
|
||||
EXPECT_EQ(kKelvinatorMinTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setTemp(255);
|
||||
EXPECT_EQ(KELVINATOR_MAX_TEMP, irkelv.getTemp());
|
||||
EXPECT_EQ(kKelvinatorMaxTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setTemp(KELVINATOR_MIN_TEMP);
|
||||
EXPECT_EQ(KELVINATOR_MIN_TEMP, irkelv.getTemp());
|
||||
irkelv.setTemp(kKelvinatorMinTemp);
|
||||
EXPECT_EQ(kKelvinatorMinTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setTemp(KELVINATOR_MAX_TEMP);
|
||||
EXPECT_EQ(KELVINATOR_MAX_TEMP, irkelv.getTemp());
|
||||
irkelv.setTemp(kKelvinatorMaxTemp);
|
||||
EXPECT_EQ(kKelvinatorMaxTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setTemp(KELVINATOR_MIN_TEMP - 1);
|
||||
EXPECT_EQ(KELVINATOR_MIN_TEMP, irkelv.getTemp());
|
||||
irkelv.setTemp(kKelvinatorMinTemp - 1);
|
||||
EXPECT_EQ(kKelvinatorMinTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setTemp(KELVINATOR_MAX_TEMP + 1);
|
||||
EXPECT_EQ(KELVINATOR_MAX_TEMP, irkelv.getTemp());
|
||||
irkelv.setTemp(kKelvinatorMaxTemp + 1);
|
||||
EXPECT_EQ(kKelvinatorMaxTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setTemp(17);
|
||||
EXPECT_EQ(17, irkelv.getTemp());
|
||||
@@ -215,29 +217,29 @@ TEST(TestKelvinatorClass, OperatingMode) {
|
||||
irkelv.begin();
|
||||
|
||||
irkelv.setTemp(24);
|
||||
irkelv.setMode(KELVINATOR_AUTO);
|
||||
EXPECT_EQ(KELVINATOR_AUTO, irkelv.getMode());
|
||||
EXPECT_EQ(KELVINATOR_AUTO_TEMP, irkelv.getTemp());
|
||||
irkelv.setMode(kKelvinatorAuto);
|
||||
EXPECT_EQ(kKelvinatorAuto, irkelv.getMode());
|
||||
EXPECT_EQ(kKelvinatorAutoTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setMode(KELVINATOR_COOL);
|
||||
EXPECT_EQ(KELVINATOR_COOL, irkelv.getMode());
|
||||
irkelv.setMode(kKelvinatorCool);
|
||||
EXPECT_EQ(kKelvinatorCool, irkelv.getMode());
|
||||
|
||||
irkelv.setMode(KELVINATOR_HEAT);
|
||||
EXPECT_EQ(KELVINATOR_HEAT, irkelv.getMode());
|
||||
irkelv.setMode(kKelvinatorHeat);
|
||||
EXPECT_EQ(kKelvinatorHeat, irkelv.getMode());
|
||||
|
||||
irkelv.setTemp(24);
|
||||
irkelv.setMode(KELVINATOR_DRY);
|
||||
EXPECT_EQ(KELVINATOR_DRY, irkelv.getMode());
|
||||
EXPECT_EQ(KELVINATOR_AUTO_TEMP, irkelv.getTemp());
|
||||
irkelv.setMode(kKelvinatorDry);
|
||||
EXPECT_EQ(kKelvinatorDry, irkelv.getMode());
|
||||
EXPECT_EQ(kKelvinatorAutoTemp, irkelv.getTemp());
|
||||
|
||||
irkelv.setMode(KELVINATOR_FAN);
|
||||
EXPECT_EQ(KELVINATOR_FAN, irkelv.getMode());
|
||||
irkelv.setMode(kKelvinatorFan);
|
||||
EXPECT_EQ(kKelvinatorFan, irkelv.getMode());
|
||||
|
||||
irkelv.setMode(KELVINATOR_HEAT + 1);
|
||||
EXPECT_EQ(KELVINATOR_AUTO, irkelv.getMode());
|
||||
irkelv.setMode(kKelvinatorHeat + 1);
|
||||
EXPECT_EQ(kKelvinatorAuto, irkelv.getMode());
|
||||
|
||||
irkelv.setMode(255);
|
||||
EXPECT_EQ(KELVINATOR_AUTO, irkelv.getMode());
|
||||
EXPECT_EQ(kKelvinatorAuto, irkelv.getMode());
|
||||
}
|
||||
|
||||
TEST(TestKelvinatorClass, VaneSwing) {
|
||||
@@ -352,16 +354,16 @@ TEST(TestKelvinatorClass, FanSpeed) {
|
||||
EXPECT_EQ(0, irkelv.getFan());
|
||||
|
||||
irkelv.setFan(255);
|
||||
EXPECT_EQ(KELVINATOR_FAN_MAX, irkelv.getFan());
|
||||
EXPECT_EQ(kKelvinatorFanMax, irkelv.getFan());
|
||||
|
||||
irkelv.setFan(KELVINATOR_FAN_MAX);
|
||||
EXPECT_EQ(KELVINATOR_FAN_MAX, irkelv.getFan());
|
||||
irkelv.setFan(kKelvinatorFanMax);
|
||||
EXPECT_EQ(kKelvinatorFanMax, irkelv.getFan());
|
||||
|
||||
irkelv.setFan(KELVINATOR_FAN_MAX + 1);
|
||||
EXPECT_EQ(KELVINATOR_FAN_MAX, irkelv.getFan());
|
||||
irkelv.setFan(kKelvinatorFanMax + 1);
|
||||
EXPECT_EQ(kKelvinatorFanMax, irkelv.getFan());
|
||||
|
||||
irkelv.setFan(KELVINATOR_FAN_MAX - 1);
|
||||
EXPECT_EQ(KELVINATOR_FAN_MAX - 1, irkelv.getFan());
|
||||
irkelv.setFan(kKelvinatorFanMax - 1);
|
||||
EXPECT_EQ(kKelvinatorFanMax - 1, irkelv.getFan());
|
||||
|
||||
irkelv.setFan(1);
|
||||
EXPECT_EQ(1, irkelv.getFan());
|
||||
@@ -374,7 +376,7 @@ TEST(TestKelvinatorClass, FanSpeed) {
|
||||
}
|
||||
|
||||
TEST(TestKelvinatorClass, Checksums) {
|
||||
uint8_t kelv_code[KELVINATOR_STATE_LENGTH] = {
|
||||
uint8_t kelv_code[kKelvinatorStateLength] = {
|
||||
0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
|
||||
0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10, 0xf0};
|
||||
|
||||
@@ -396,42 +398,44 @@ TEST(TestKelvinatorClass, Checksums) {
|
||||
|
||||
TEST(TestKelvinatorClass, SetAndGetRaw) {
|
||||
IRKelvinatorAC irkelv(0);
|
||||
uint8_t initialState[KELVINATOR_STATE_LENGTH] = {
|
||||
uint8_t initialState[kKelvinatorStateLength] = {
|
||||
0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA0,
|
||||
0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xA0};
|
||||
uint8_t expectedState[KELVINATOR_STATE_LENGTH] = {
|
||||
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(), KELVINATOR_BITS);
|
||||
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(), KELVINATOR_BITS);
|
||||
EXPECT_STATE_EQ(expectedState, irkelv.getRaw(), kKelvinatorBits);
|
||||
irkelv.setRaw(initialState);
|
||||
EXPECT_STATE_EQ(initialState, irkelv.getRaw(), KELVINATOR_BITS);
|
||||
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());
|
||||
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.setMode(kKelvinatorCool);
|
||||
irkelv.setTemp(25);
|
||||
irkelv.setFan(KELVINATOR_FAN_MAX);
|
||||
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());
|
||||
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) {
|
||||
@@ -441,7 +445,7 @@ TEST(TestKelvinatorClass, MessageConstuction) {
|
||||
irsend.begin();
|
||||
|
||||
irkelv.setFan(1);
|
||||
irkelv.setMode(KELVINATOR_COOL);
|
||||
irkelv.setMode(kKelvinatorCool);
|
||||
irkelv.setTemp(27);
|
||||
irkelv.setSwingVertical(false);
|
||||
irkelv.setSwingHorizontal(true);
|
||||
@@ -454,7 +458,7 @@ TEST(TestKelvinatorClass, MessageConstuction) {
|
||||
|
||||
// Check everything for kicks.
|
||||
EXPECT_EQ(1, irkelv.getFan());
|
||||
EXPECT_EQ(KELVINATOR_COOL, irkelv.getMode());
|
||||
EXPECT_EQ(kKelvinatorCool, irkelv.getMode());
|
||||
EXPECT_EQ(27, irkelv.getTemp());
|
||||
EXPECT_FALSE(irkelv.getSwingVertical());
|
||||
EXPECT_TRUE(irkelv.getSwingHorizontal());
|
||||
@@ -491,7 +495,8 @@ TEST(TestKelvinatorClass, MessageConstuction) {
|
||||
"m680s510m680s510m680s510m680s510m680s510m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s510m680s510m680s510"
|
||||
"m680s510m680s510m680s510m680s510m680s1530m680s1530m680s1530m680s1530"
|
||||
"m680s39950", irsend.outputStr());
|
||||
"m680s39950",
|
||||
irsend.outputStr());
|
||||
}
|
||||
|
||||
// Decode a synthetic Kelvinator message.
|
||||
@@ -500,7 +505,7 @@ TEST(TestDecodeKelvinator, NormalSynthetic) {
|
||||
IRrecv irrecv(4);
|
||||
irsend.begin();
|
||||
|
||||
uint8_t kelv_code[KELVINATOR_STATE_LENGTH] = {
|
||||
uint8_t kelv_code[kKelvinatorStateLength] = {
|
||||
0x19, 0x0B, 0x80, 0x50, 0x00, 0x00, 0x00, 0xE0,
|
||||
0x19, 0x0B, 0x80, 0x70, 0x00, 0x00, 0x10, 0xf0};
|
||||
irsend.reset();
|
||||
@@ -508,6 +513,6 @@ TEST(TestDecodeKelvinator, NormalSynthetic) {
|
||||
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);
|
||||
ASSERT_EQ(kKelvinatorBits, irsend.capture.bits);
|
||||
EXPECT_STATE_EQ(kelv_code, irsend.capture.state, kKelvinatorBits);
|
||||
}
|
||||
Reference in new issue
Block a user