Update IRRemote ESP8266 to 2.6.2 and add ESP32 support
This commit is contained in:
1 parent
2ee18320be
commit
24bcdbc97c
195 files changed
+22963
-4737
No files matched your search
@@ -0,0 +1,998 @@
|
||||
// Copyright 2019 David Conran
|
||||
|
||||
#include <string>
|
||||
#include "ir_Argo.h"
|
||||
#include "ir_Daikin.h"
|
||||
#include "ir_Fujitsu.h"
|
||||
#include "ir_Goodweather.h"
|
||||
#include "ir_Gree.h"
|
||||
#include "ir_Haier.h"
|
||||
#include "ir_Hitachi.h"
|
||||
#include "ir_Kelvinator.h"
|
||||
#include "ir_Midea.h"
|
||||
#include "ir_Mitsubishi.h"
|
||||
#include "ir_MitsubishiHeavy.h"
|
||||
#include "ir_Panasonic.h"
|
||||
#include "ir_Samsung.h"
|
||||
#include "ir_Sharp.h"
|
||||
#include "ir_Tcl.h"
|
||||
#include "ir_Teco.h"
|
||||
#include "ir_Toshiba.h"
|
||||
#include "ir_Trotec.h"
|
||||
#include "ir_Vestel.h"
|
||||
#include "ir_Whirlpool.h"
|
||||
#include "IRac.h"
|
||||
#include "IRrecv.h"
|
||||
#include "IRrecv_test.h"
|
||||
#include "IRremoteESP8266.h"
|
||||
#include "IRsend.h"
|
||||
#include "IRsend_test.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// Tests for IRac class.
|
||||
|
||||
TEST(TestIRac, Argo) {
|
||||
IRArgoAC ac(0);
|
||||
IRac irac(0);
|
||||
|
||||
ac.begin();
|
||||
irac.argo(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
21, // Celsius
|
||||
stdAc::fanspeed_t::kHigh, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
false, // Turbo
|
||||
-1); // Sleep
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
EXPECT_EQ(kArgoHeat, ac.getMode());
|
||||
EXPECT_EQ(21, ac.getTemp());
|
||||
EXPECT_EQ(kArgoFlapAuto, ac.getFlap());
|
||||
EXPECT_FALSE(ac.getMax()); // Turbo
|
||||
EXPECT_FALSE(ac.getNight()); // Sleep
|
||||
}
|
||||
|
||||
TEST(TestIRac, Coolix) {
|
||||
IRCoolixAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (HEAT), Fan: 1 (MAX), Temp: 21C, Zone Follow: Off, "
|
||||
"Sensor Temp: Ignored";
|
||||
|
||||
ac.begin();
|
||||
irac.coolix(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
21, // Celsius
|
||||
stdAc::fanspeed_t::kHigh, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kOff, // Horizontal swing
|
||||
false, // Turbo
|
||||
false, // Light
|
||||
false, // Clean
|
||||
-1); // Sleep
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(COOLIX, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kCoolixBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.value);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
// Confirm we are sending with a repeat of 1. i.e. two messages.
|
||||
EXPECT_EQ(
|
||||
"f38000d50" // 38kHz Frequency and 50% duty-cycle.
|
||||
// Start of message #1 (i.e. Repeat '0')
|
||||
// Header
|
||||
"m4480s4480"
|
||||
// Data
|
||||
"m560s1680m560s560m560s1680m560s1680m560s560m560s560m560s1680m560s560"
|
||||
"m560s560m560s1680m560s560m560s560m560s1680m560s1680m560s560m560s1680"
|
||||
"m560s560m560s560m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s1680m560s1680m560s560m560s1680m560s1680m560s560m560s560"
|
||||
"m560s1680m560s560m560s560m560s1680m560s560m560s560m560s1680m560s1680"
|
||||
// Footer
|
||||
"m560s5040"
|
||||
// End of message #1 (i.e. Repeat '0')
|
||||
// Start of message #2 (i.e. Repeat '1')
|
||||
// Header
|
||||
"m4480s4480"
|
||||
// Data
|
||||
"m560s1680m560s560m560s1680m560s1680m560s560m560s560m560s1680m560s560"
|
||||
"m560s560m560s1680m560s560m560s560m560s1680m560s1680m560s560m560s1680"
|
||||
"m560s560m560s560m560s1680m560s1680m560s1680m560s1680m560s1680m560s1680"
|
||||
"m560s1680m560s1680m560s560m560s560m560s560m560s560m560s560m560s560"
|
||||
"m560s560m560s1680m560s1680m560s560m560s1680m560s1680m560s560m560s560"
|
||||
"m560s1680m560s560m560s560m560s1680m560s560m560s560m560s1680m560s1680"
|
||||
// Footer
|
||||
"m560s5040",
|
||||
// End of message #2 (i.e. Repeat '1')
|
||||
// Note: the two messages (#1 & #2) are identical.
|
||||
ac._irsend.outputStr());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin) {
|
||||
IRDaikinESP ac(0);
|
||||
IRac irac(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (COOL), Temp: 19C, Fan: 2, Powerful: Off, "
|
||||
"Quiet: Off, Sensor: Off, Mold: On, Comfort: Off, "
|
||||
"Swing (Horizontal): Off, Swing (Vertical): Off, "
|
||||
"Current Time: 0:00, Current Day: (UNKNOWN), On Time: Off, "
|
||||
"Off Time: Off, Weekly Timer: On";
|
||||
|
||||
ac.begin();
|
||||
irac.daikin(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
19, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kOff, // Horizontal swing
|
||||
false, // Quiet
|
||||
false, // Turbo
|
||||
true, // Filter
|
||||
true); // Clean
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin2) {
|
||||
IRDaikin2 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (COOL), Temp: 19C, Fan: 2, Swing (V): 14 (Auto), "
|
||||
"Swing (H): 0, Clock: 0:00, On Time: Off, Off Time: Off, "
|
||||
"Sleep Time: Off, Beep: 1 (Quiet), Light: 1 (Bright), Mold: On, "
|
||||
"Clean: Off, Fresh Air: Off, Eye: Off, Eye Auto: Off, Quiet: Off, "
|
||||
"Powerful: Off, Purify: On, Econo: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.daikin2(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
19, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kOff, // Horizontal swing
|
||||
false, // Quiet
|
||||
false, // Turbo
|
||||
true, // Light
|
||||
false, // Econo
|
||||
true, // Filter
|
||||
true, // Clean (aka Mold)
|
||||
-1, // Sleep time
|
||||
-1); // Current time
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(DAIKIN2, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kDaikin2Bits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin216) {
|
||||
IRDaikin216 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 4 (HEAT), Temp: 31C, Fan: 11 (QUIET), "
|
||||
"Swing (Horizontal): On, Swing (Vertical): On, Quiet: On, Powerful: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.daikin216(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
31, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
stdAc::swingh_t::kLeft, // Horizontal swing
|
||||
true, // Quiet
|
||||
false); // Turbo (Powerful)
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(DAIKIN216, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kDaikin216Bits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Fujitsu) {
|
||||
IRFujitsuAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
std::string ardb1_expected =
|
||||
"Model: 2 (ARDB1), Power: On, Mode: 1 (COOL), Temp: 19C, Fan: 2 (MED), "
|
||||
"Command: N/A";
|
||||
std::string arrah2e_expected =
|
||||
"Model: 1 (ARRAH2E), Power: On, Mode: 1 (COOL), Temp: 19C, Fan: 2 (MED), "
|
||||
"Swing: Off, Command: N/A";
|
||||
|
||||
ac.begin();
|
||||
irac.fujitsu(&ac,
|
||||
ARDB1, // Model
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
19, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kOff, // Horizontal swing
|
||||
false, // Quiet
|
||||
false, // Turbo (Powerful)
|
||||
false); // Econo
|
||||
ASSERT_EQ(ardb1_expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(FUJITSU_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kFujitsuAcBits - 8, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state, ac._irsend.capture.bits / 8);
|
||||
ASSERT_EQ(ardb1_expected, ac.toString());
|
||||
|
||||
ac._irsend.reset();
|
||||
irac.fujitsu(&ac,
|
||||
ARRAH2E, // Model
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
19, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kOff, // Horizontal swing
|
||||
false, // Quiet
|
||||
false, // Turbo (Powerful)
|
||||
false); // Econo
|
||||
ASSERT_EQ(arrah2e_expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(FUJITSU_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kFujitsuAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state, ac._irsend.capture.bits / 8);
|
||||
ASSERT_EQ(arrah2e_expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Goodweather) {
|
||||
IRGoodweatherAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (COOL), Temp: 19C, Fan: 2 (MED), Turbo: Toggle, "
|
||||
"Light: Toggle, Sleep: Toggle, Swing: 1 (Slow), Command: 0 (Power)";
|
||||
|
||||
ac.begin();
|
||||
irac.goodweather(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
19, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
true, // Turbo
|
||||
true, // Light
|
||||
8 * 60 + 0); // Sleep time
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(GOODWEATHER, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kGoodweatherBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.value);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Gree) {
|
||||
IRGreeAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (COOL), Temp: 22C, Fan: 2, Turbo: Off, XFan: On, "
|
||||
"Light: On, Sleep: On, Swing Vertical Mode: Manual, "
|
||||
"Swing Vertical Pos: 3";
|
||||
|
||||
ac.begin();
|
||||
irac.gree(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
22, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
false, // Turbo
|
||||
true, // Light
|
||||
true, // Clean (aka Mold/XFan)
|
||||
8 * 60 + 0); // Sleep time
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(GREE, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kGreeBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Haier) {
|
||||
IRHaierAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Command: 1 (On), Mode: 1 (COOL), Temp: 24C, Fan: 2, Swing: 1 (Up), "
|
||||
"Sleep: On, Health: On, Current Time: 13:45, On Timer: Off, "
|
||||
"Off Timer: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.haier(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
24, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
true, // Filter
|
||||
8 * 60 + 0, // Sleep time
|
||||
13 * 60 + 45); // Clock
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(HAIER_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kHaierACBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
|
||||
TEST(TestIRac, HaierYrwo2) {
|
||||
IRHaierACYRW02 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Button: 5 (Power), Mode: 2 (Cool), Temp: 23C, Fan: 4 (Med), "
|
||||
"Turbo: 1 (High), Swing: 1 (Top), Sleep: On, Health: On";
|
||||
|
||||
ac.begin();
|
||||
irac.haierYrwo2(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
23, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
true, // Turbo
|
||||
true, // Filter
|
||||
8 * 60 + 0); // Sleep time
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(HAIER_AC_YRW02, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kHaierACYRW02Bits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Hitachi) {
|
||||
IRHitachiAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 2 (AUTO), Temp: 22C, Fan: 3 (UNKNOWN), "
|
||||
"Swing (Vertical): Off, Swing (Horizontal): On";
|
||||
|
||||
ac.begin();
|
||||
irac.hitachi(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
22, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kAuto); // Horizontal swing
|
||||
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(HITACHI_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kHitachiAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Kelvinator) {
|
||||
IRKelvinatorAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (COOL), Temp: 19C, Fan: 3, Turbo: Off, Quiet: Off, "
|
||||
"XFan: On, IonFilter: On, Light: On, Swing (Horizontal): Off, "
|
||||
"Swing (Vertical): Off";
|
||||
|
||||
ac.begin();
|
||||
irac.kelvinator(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
19, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kOff, // Horizontal swing
|
||||
false, // Quiet
|
||||
false, // Turbo
|
||||
true, // Light
|
||||
true, // Filter
|
||||
true); // Clean
|
||||
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(KELVINATOR, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kKelvinatorBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Midea) {
|
||||
IRMideaAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (DRY), Temp: 27C/81F, Fan: 2 (MED), Sleep: On";
|
||||
|
||||
ac.begin();
|
||||
irac.midea(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kDry, // Mode
|
||||
27, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
8 * 60 + 0); // Sleep time
|
||||
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(MIDEA, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kMideaBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.value);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Mitsubishi) {
|
||||
IRMitsubishiAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On (COOL), Temp: 20C, FAN: 2, VANE: AUTO, Time: 14:30, "
|
||||
"On timer: 00:00, Off timer: 00:00, Timer: -";
|
||||
|
||||
ac.begin();
|
||||
irac.mitsubishi(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
20, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
false, // Silent
|
||||
14 * 60 + 35); // Clock
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(MITSUBISHI_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kMitsubishiACBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, MitsubishiHeavy88) {
|
||||
IRMitsubishiHeavy88Ac ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 21C, Fan: 3 (Med), "
|
||||
"Swing (V): 16 (Auto), Swing (H): 0 (Off), Turbo: Off, Econo: Off, "
|
||||
"3D: Off, Clean: On";
|
||||
|
||||
ac.begin();
|
||||
irac.mitsubishiHeavy88(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
21, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
stdAc::swingh_t::kOff, // Horizontal swing
|
||||
false, // Turbo
|
||||
false, // Econo
|
||||
true); // Clean
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(MITSUBISHI_HEAVY_88, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kMitsubishiHeavy88Bits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, MitsubishiHeavy152) {
|
||||
IRMitsubishiHeavy152Ac ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 20C, Fan: 6 (Econo), "
|
||||
"Swing (V): 6 (Off), Swing (H): 0 (Auto), Silent: On, Turbo: Off, "
|
||||
"Econo: On, Night: On, Filter: On, 3D: Off, Clean: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.mitsubishiHeavy152(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
20, // Celsius
|
||||
stdAc::fanspeed_t::kLow, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kAuto, // Horizontal swing
|
||||
true, // Silent
|
||||
false, // Turbo
|
||||
true, // Econo
|
||||
true, // Filter
|
||||
false, // Clean
|
||||
8 * 60); // Sleep
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(MITSUBISHI_HEAVY_152, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kMitsubishiHeavy152Bits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Panasonic) {
|
||||
IRPanasonicAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected_nke[] =
|
||||
"Model: 2 (NKE), Power: On, Mode: 4 (HEAT), Temp: 28C, Fan: 2 (UNKNOWN), "
|
||||
"Swing (Vertical): 15 (AUTO), Swing (Horizontal): 6 (Middle), Quiet: On, "
|
||||
"Powerful: Off, Clock: 19:17, On Timer: Off, Off Timer: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.panasonic(&ac,
|
||||
kPanasonicNke, // Model
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
28, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
stdAc::swingh_t::kLeft, // Horizontal swing
|
||||
true, // Quiet
|
||||
false, // Turbo
|
||||
19 * 60 + 17); // Clock
|
||||
ASSERT_EQ(expected_nke, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(PANASONIC_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kPanasonicAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected_nke, ac.toString());
|
||||
|
||||
char expected_dke[] =
|
||||
"Model: 3 (DKE), Power: On, Mode: 3 (COOL), Temp: 18C, Fan: 4 (MAX), "
|
||||
"Swing (Vertical): 1 (Full Up), Swing (Horizontal): 6 (Middle), "
|
||||
"Quiet: Off, Powerful: On, Clock: 19:17, On Timer: Off, Off Timer: Off";
|
||||
ac._irsend.reset();
|
||||
irac.panasonic(&ac,
|
||||
kPanasonicDke, // Model
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
18, // Celsius
|
||||
stdAc::fanspeed_t::kMax, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
stdAc::swingh_t::kMiddle, // Horizontal swing
|
||||
false, // Quiet
|
||||
true, // Turbo
|
||||
19 * 60 + 17); // Clock
|
||||
ASSERT_EQ(expected_dke, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(PANASONIC_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kPanasonicAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected_dke, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Samsung) {
|
||||
IRSamsungAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 0 (AUTO), Temp: 28C, Fan: 6 (AUTO), Swing: On, "
|
||||
"Beep: On, Clean: On, Quiet: On, Powerful: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.samsung(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
28, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
true, // Quiet
|
||||
false, // Turbo
|
||||
true, // Clean
|
||||
true, // Beep
|
||||
false); // with dopower Off
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(SAMSUNG_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kSamsungAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
|
||||
ac._irsend.reset();
|
||||
irac.samsung(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
28, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
true, // Quiet
|
||||
false, // Turbo
|
||||
true, // Clean
|
||||
true, // Beep
|
||||
true); // with dopower On
|
||||
ASSERT_EQ(expected, ac.toString()); // Class should be in the desired mode.
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(SAMSUNG_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kSamsungAcExtendedBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
// However, we expect a plain "on" state as it should be sent before the
|
||||
// desired state.
|
||||
char expected_on[] =
|
||||
"Power: On, Mode: 0 (AUTO), Temp: 16C, Fan: 0 (AUTO), Swing: Off, "
|
||||
"Beep: Off, Clean: Off, Quiet: Off, Powerful: Off";
|
||||
ASSERT_EQ(expected_on, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Sharp) {
|
||||
IRSharpAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 2 (COOL), Temp: 28C, Fan: 3 (MED)";
|
||||
|
||||
ac.begin();
|
||||
irac.sharp(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
28, // Celsius
|
||||
stdAc::fanspeed_t::kMedium); // Fan speed
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(SHARP_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kSharpAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
TEST(TestIRac, Tcl112) {
|
||||
IRTcl112Ac ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (COOL), Temp: 20C, Fan: 3 (Med), Econo: On, "
|
||||
"Health: On, Light: On, Turbo: Off, Swing (H): On, Swing (V): Off";
|
||||
|
||||
ac.begin();
|
||||
irac.tcl112(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
20, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Veritcal swing
|
||||
stdAc::swingh_t::kAuto, // Horizontal swing
|
||||
false, // Turbo
|
||||
true, // Light
|
||||
true, // Econo
|
||||
true); // Filter (aka. Health)
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(TCL112AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kTcl112AcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Teco) {
|
||||
IRTecoAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 0 (AUTO), Temp: 21C, Fan: 2 (Med), Sleep: On, "
|
||||
"Swing: On";
|
||||
|
||||
ac.begin();
|
||||
irac.teco(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
21, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
8 * 60 + 30); // Sleep
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(TECO, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kTecoBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.value);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Toshiba) {
|
||||
IRToshibaAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] = "Power: On, Mode: 2 (DRY), Temp: 29C, Fan: 2";
|
||||
|
||||
ac.begin();
|
||||
irac.toshiba(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kDry, // Mode
|
||||
29, // Celsius
|
||||
stdAc::fanspeed_t::kLow); // Fan speed
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(TOSHIBA_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kToshibaACBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Trotec) {
|
||||
IRTrotecESP ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (COOL), Temp: 18C, Fan Speed: 3 (High), Sleep: On";
|
||||
|
||||
ac.begin();
|
||||
irac.trotec(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
18, // Celsius
|
||||
stdAc::fanspeed_t::kHigh, // Fan speed
|
||||
8 * 60 + 17); // Sleep
|
||||
EXPECT_TRUE(ac.getPower());
|
||||
EXPECT_EQ(kTrotecCool, ac.getMode());
|
||||
EXPECT_EQ(18, ac.getTemp());
|
||||
EXPECT_EQ(kTrotecFanHigh, ac.getSpeed());
|
||||
EXPECT_TRUE(ac.getSleep());
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(TROTEC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kTrotecBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Vestel) {
|
||||
IRVestelAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 0 (AUTO), Temp: 22C, Fan: 5 (LOW), Sleep: On, "
|
||||
"Turbo: Off, Ion: On, Swing: On";
|
||||
|
||||
ac.begin();
|
||||
irac.vestel(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
22, // Celsius
|
||||
stdAc::fanspeed_t::kLow, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
false, // Turbo
|
||||
true, // Filter
|
||||
8 * 60 + 0); // Sleep time
|
||||
// 13 * 60 + 45); // Clock
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(VESTEL_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kVestelAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
|
||||
ac._irsend.reset();
|
||||
char expected_clocks[] =
|
||||
"Time: 13:45, Timer: Off, On Timer: Off, Off Timer: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.vestel(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
22, // Celsius
|
||||
stdAc::fanspeed_t::kLow, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
false, // Turbo
|
||||
true, // Filter
|
||||
8 * 60 + 0, // Sleep time
|
||||
13 * 60 + 45, // Clock
|
||||
false); // Don't send the normal message.
|
||||
// Just for testing purposes.
|
||||
ASSERT_EQ(expected_clocks, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(VESTEL_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kVestelAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected_clocks, ac.toString());
|
||||
|
||||
// Now check it sends both messages during normal operation when the
|
||||
// clock is set.
|
||||
ac._irsend.reset();
|
||||
ac.begin();
|
||||
irac.vestel(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
22, // Celsius
|
||||
stdAc::fanspeed_t::kLow, // Fan speed
|
||||
stdAc::swingv_t::kHigh, // Veritcal swing
|
||||
false, // Turbo
|
||||
true, // Filter
|
||||
8 * 60 + 0, // Sleep time
|
||||
13 * 60 + 45); // Clock
|
||||
|
||||
EXPECT_EQ(
|
||||
"f38000d50"
|
||||
"m3110s9066"
|
||||
"m520s1535m520s480m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
"m520s480m520s1535m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
"m520s1535m520s1535m520s1535m520s1535m520s480m520s1535m520s480m520s1535"
|
||||
"m520s1535m520s1535m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
"m520s480m520s480m520s480m520s480m520s480m520s1535m520s1535m520s480"
|
||||
"m520s1535m520s480m520s1535m520s480m520s480m520s480m520s480m520s480"
|
||||
"m520s480m520s480m520s1535m520s480m520s1535m520s1535m520s1535m520s1535"
|
||||
"m520s100000"
|
||||
"m3110s9066"
|
||||
"m520s1535m520s480m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
"m520s480m520s1535m520s480m520s480m520s480m520s1535m520s1535m520s480"
|
||||
"m520s1535m520s1535m520s1535m520s1535m520s480m520s480m520s480m520s480"
|
||||
"m520s480m520s480m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
"m520s480m520s480m520s480m520s480m520s1535m520s480m520s1535m520s1535"
|
||||
"m520s480m520s480m520s480m520s480m520s1535m520s480m520s1535m520s1535"
|
||||
"m520s480m520s1535m520s480m520s480m520s480m520s480m520s480m520s480"
|
||||
"m520s100000", ac._irsend.outputStr());
|
||||
}
|
||||
|
||||
|
||||
TEST(TestIRac, Whirlpool) {
|
||||
IRWhirlpoolAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] =
|
||||
"Model: 1 (DG11J13A), Power toggle: On, Mode: 1 (AUTO), Temp: 21C, "
|
||||
"Fan: 3 (LOW), Swing: On, Light: On, Clock: 23:58, On Timer: Off, "
|
||||
"Off Timer: Off, Sleep: On, Super: Off, Command: 1 (POWER)";
|
||||
|
||||
ac.begin();
|
||||
irac.whirlpool(&ac,
|
||||
DG11J13A,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
21, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
false, // Turbo
|
||||
true, // Light
|
||||
8 * 60 + 30, // Sleep
|
||||
23 * 60 + 58); // Clock
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(WHIRLPOOL_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kWhirlpoolAcBits, ac._irsend.capture.bits);
|
||||
ac.setRaw(ac._irsend.capture.state);
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
}
|
||||
|
||||
TEST(TestIRac, strToBool) {
|
||||
EXPECT_TRUE(IRac::strToBool("ON"));
|
||||
EXPECT_TRUE(IRac::strToBool("1"));
|
||||
EXPECT_TRUE(IRac::strToBool("TRUE"));
|
||||
EXPECT_TRUE(IRac::strToBool("YES"));
|
||||
EXPECT_FALSE(IRac::strToBool("OFF"));
|
||||
EXPECT_FALSE(IRac::strToBool("0"));
|
||||
EXPECT_FALSE(IRac::strToBool("FALSE"));
|
||||
EXPECT_FALSE(IRac::strToBool("NO"));
|
||||
EXPECT_FALSE(IRac::strToBool("FOOBAR"));
|
||||
EXPECT_TRUE(IRac::strToBool("FOOBAR", true));
|
||||
}
|
||||
|
||||
TEST(TestIRac, strToOpmode) {
|
||||
EXPECT_EQ(stdAc::opmode_t::kAuto, IRac::strToOpmode("AUTO"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kCool, IRac::strToOpmode("COOL"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kHeat, IRac::strToOpmode("HEAT"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kDry, IRac::strToOpmode("DRY"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kFan, IRac::strToOpmode("FAN"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kFan, IRac::strToOpmode("FAN_ONLY"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kAuto, IRac::strToOpmode("FOOBAR"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kOff, IRac::strToOpmode("OFF"));
|
||||
EXPECT_EQ(stdAc::opmode_t::kOff, IRac::strToOpmode("FOOBAR",
|
||||
stdAc::opmode_t::kOff));
|
||||
}
|
||||
|
||||
TEST(TestIRac, strToFanspeed) {
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kAuto, IRac::strToFanspeed("AUTO"));
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kMin, IRac::strToFanspeed("MIN"));
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kLow, IRac::strToFanspeed("LOW"));
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kMedium, IRac::strToFanspeed("MEDIUM"));
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kHigh, IRac::strToFanspeed("HIGH"));
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kMax, IRac::strToFanspeed("MAX"));
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kAuto, IRac::strToFanspeed("FOOBAR"));
|
||||
EXPECT_EQ(stdAc::fanspeed_t::kMin,
|
||||
IRac::strToFanspeed("FOOBAR", stdAc::fanspeed_t::kMin));
|
||||
}
|
||||
|
||||
TEST(TestIRac, strToSwingV) {
|
||||
EXPECT_EQ(stdAc::swingv_t::kAuto, IRac::strToSwingV("AUTO"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kLowest, IRac::strToSwingV("LOWEST"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kLow, IRac::strToSwingV("LOW"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kMiddle, IRac::strToSwingV("MIDDLE"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kHigh, IRac::strToSwingV("HIGH"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kHighest, IRac::strToSwingV("HIGHEST"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kOff, IRac::strToSwingV("OFF"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kOff, IRac::strToSwingV("FOOBAR"));
|
||||
EXPECT_EQ(stdAc::swingv_t::kAuto,
|
||||
IRac::strToSwingV("FOOBAR", stdAc::swingv_t::kAuto));
|
||||
}
|
||||
|
||||
TEST(TestIRac, strToSwingH) {
|
||||
EXPECT_EQ(stdAc::swingh_t::kAuto, IRac::strToSwingH("AUTO"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kLeftMax, IRac::strToSwingH("MAX LEFT"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kLeft, IRac::strToSwingH("LEFT"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kMiddle, IRac::strToSwingH("CENTRE"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kRight, IRac::strToSwingH("RIGHT"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kRightMax, IRac::strToSwingH("RIGHTMAX"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kOff, IRac::strToSwingH("OFF"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kOff, IRac::strToSwingH("FOOBAR"));
|
||||
EXPECT_EQ(stdAc::swingh_t::kAuto,
|
||||
IRac::strToSwingH("FOOBAR", stdAc::swingh_t::kAuto));
|
||||
}
|
||||
|
||||
TEST(TestIRac, strToModel) {
|
||||
EXPECT_EQ(panasonic_ac_remote_model_t::kPanasonicLke,
|
||||
IRac::strToModel("LKE"));
|
||||
EXPECT_EQ(panasonic_ac_remote_model_t::kPanasonicLke,
|
||||
IRac::strToModel("PANASONICLKE"));
|
||||
EXPECT_EQ(fujitsu_ac_remote_model_t::ARRAH2E,
|
||||
IRac::strToModel("ARRAH2E"));
|
||||
EXPECT_EQ(whirlpool_ac_remote_model_t::DG11J13A,
|
||||
IRac::strToModel("DG11J13A"));
|
||||
EXPECT_EQ(1, IRac::strToModel("1"));
|
||||
EXPECT_EQ(10, IRac::strToModel("10"));
|
||||
EXPECT_EQ(-1, IRac::strToModel("0"));
|
||||
EXPECT_EQ(-1, IRac::strToModel("FOOBAR"));
|
||||
EXPECT_EQ(0, IRac::strToModel("FOOBAR", 0));
|
||||
}
|
||||
|
||||
TEST(TestIRac, boolToString) {
|
||||
EXPECT_EQ("on", IRac::boolToString(true));
|
||||
EXPECT_EQ("off", IRac::boolToString(false));
|
||||
}
|
||||
|
||||
TEST(TestIRac, opmodeToString) {
|
||||
EXPECT_EQ("off", IRac::opmodeToString(stdAc::opmode_t::kOff));
|
||||
EXPECT_EQ("auto", IRac::opmodeToString(stdAc::opmode_t::kAuto));
|
||||
EXPECT_EQ("cool", IRac::opmodeToString(stdAc::opmode_t::kCool));
|
||||
EXPECT_EQ("unknown", IRac::opmodeToString((stdAc::opmode_t)500));
|
||||
}
|
||||
|
||||
TEST(TestIRac, fanspeedToString) {
|
||||
EXPECT_EQ("low", IRac::fanspeedToString(stdAc::fanspeed_t::kLow));
|
||||
EXPECT_EQ("auto", IRac::fanspeedToString(stdAc::fanspeed_t::kAuto));
|
||||
EXPECT_EQ("unknown", IRac::fanspeedToString((stdAc::fanspeed_t)500));
|
||||
}
|
||||
|
||||
TEST(TestIRac, swingvToString) {
|
||||
EXPECT_EQ("off", IRac::swingvToString(stdAc::swingv_t::kOff));
|
||||
EXPECT_EQ("low", IRac::swingvToString(stdAc::swingv_t::kLow));
|
||||
EXPECT_EQ("auto", IRac::swingvToString(stdAc::swingv_t::kAuto));
|
||||
EXPECT_EQ("unknown", IRac::swingvToString((stdAc::swingv_t)500));
|
||||
}
|
||||
|
||||
TEST(TestIRac, swinghToString) {
|
||||
EXPECT_EQ("off", IRac::swinghToString(stdAc::swingh_t::kOff));
|
||||
EXPECT_EQ("left", IRac::swinghToString(stdAc::swingh_t::kLeft));
|
||||
EXPECT_EQ("auto", IRac::swinghToString(stdAc::swingh_t::kAuto));
|
||||
EXPECT_EQ("unknown", IRac::swinghToString((stdAc::swingh_t)500));
|
||||
}
|
||||
Reference in new issue
Block a user