mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-15 02:54:26 +00:00
[IR] Update Library
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
// Copyright 2019 David Conran
|
||||
|
||||
#include <string>
|
||||
#include "ir_Airwell.h"
|
||||
#include "ir_Amcor.h"
|
||||
#include "ir_Argo.h"
|
||||
#include "ir_Carrier.h"
|
||||
#include "ir_Coolix.h"
|
||||
#include "ir_Corona.h"
|
||||
#include "ir_Daikin.h"
|
||||
#include "ir_Delonghi.h"
|
||||
#include "ir_Electra.h"
|
||||
@@ -36,10 +40,33 @@
|
||||
|
||||
// Tests for IRac class.
|
||||
|
||||
TEST(TestIRac, Airwell) {
|
||||
IRAirwellAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power Toggle: On, Mode: 3 (Auto), Fan: 1 (Medium), Temp: 18C";
|
||||
|
||||
ac.begin();
|
||||
irac.airwell(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kAuto, // Mode
|
||||
18, // Celsius
|
||||
stdAc::fanspeed_t::kMedium); // Fan speed
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(AIRWELL, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kAirwellBits, ac._irsend.capture.bits);
|
||||
ASSERT_EQ(expected, IRAcUtils::resultAcToString(&ac._irsend.capture));
|
||||
stdAc::state_t r, p;
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
}
|
||||
|
||||
TEST(TestIRac, Amcor) {
|
||||
IRAmcorAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRAmcorAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 5 (Auto), Fan: 3 (High), Temp: 19C, Max: Off";
|
||||
|
||||
@@ -60,8 +87,8 @@ TEST(TestIRac, Amcor) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Argo) {
|
||||
IRArgoAC ac(0);
|
||||
IRac irac(0);
|
||||
IRArgoAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
|
||||
ac.begin();
|
||||
irac.argo(&ac,
|
||||
@@ -80,10 +107,44 @@ TEST(TestIRac, Argo) {
|
||||
EXPECT_FALSE(ac.getNight()); // Sleep
|
||||
}
|
||||
|
||||
TEST(TestIRac, Carrier64) {
|
||||
IRCarrierAc64 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Heat), Temp: 21C, Fan: 3 (High), Swing(V): On, "
|
||||
"Sleep: On, On Timer: Off, Off Timer: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.carrier64(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
21, // Celsius
|
||||
stdAc::fanspeed_t::kHigh, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
1); // Sleep
|
||||
EXPECT_TRUE(ac.getPower()); // Power.
|
||||
EXPECT_EQ(kCarrierAc64Heat, ac.getMode()); // Operating mode.
|
||||
EXPECT_EQ(21, ac.getTemp()); // Temperature.
|
||||
EXPECT_EQ(kCarrierAc64FanHigh, ac.getFan()); // Fan Speed
|
||||
EXPECT_TRUE(ac.getSwingV()); // SwingV
|
||||
EXPECT_TRUE(ac.getSleep()); // Sleep
|
||||
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(CARRIER_AC64, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kCarrierAc64Bits, ac._irsend.capture.bits);
|
||||
ASSERT_EQ(expected, IRAcUtils::resultAcToString(&ac._irsend.capture));
|
||||
stdAc::state_t r, p;
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
}
|
||||
|
||||
TEST(TestIRac, Coolix) {
|
||||
IRCoolixAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRCoolixAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (Heat), Fan: 1 (Max), Temp: 21C, Zone Follow: Off, "
|
||||
"Sensor Temp: Off";
|
||||
@@ -141,10 +202,52 @@ TEST(TestIRac, Coolix) {
|
||||
ac._irsend.outputStr());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Corona) {
|
||||
IRCoronaAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
|
||||
char expectedAfterSent[] =
|
||||
"Power: On, Power Button: On, Mode: 0 (Heat), Temp: 21C, "
|
||||
"Fan: 3 (High), Swing(V) Toggle: On, Econo: On, "
|
||||
"On Timer: Off, Off Timer: Off";
|
||||
|
||||
char expectedCapture[] =
|
||||
"Power: On, Power Button: Off, Mode: 0 (Heat), Temp: 21C, "
|
||||
"Fan: 3 (High), Swing(V) Toggle: On, Econo: On, "
|
||||
"On Timer: Off, Off Timer: Off";
|
||||
|
||||
ac.begin();
|
||||
// this sends as well
|
||||
irac.corona(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
21, // Celsius
|
||||
stdAc::fanspeed_t::kHigh, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Veritcal swing
|
||||
true); // Econo (PowerSave)
|
||||
EXPECT_TRUE(ac.getPower()); // Power.
|
||||
EXPECT_TRUE(ac.getPowerButton()); // Power.button
|
||||
EXPECT_EQ(kCoronaAcModeHeat, ac.getMode()); // Operating mode.
|
||||
EXPECT_EQ(21, ac.getTemp()); // Temperature.
|
||||
EXPECT_EQ(kCoronaAcFanHigh, ac.getFan()); // Fan Speed
|
||||
EXPECT_TRUE(ac.getSwingVToggle()); // SwingV
|
||||
EXPECT_TRUE(ac.getEcono()); // Econo (PowerSave)
|
||||
|
||||
ASSERT_EQ(expectedAfterSent, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(CORONA_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kCoronaAcBits, ac._irsend.capture.bits);
|
||||
ASSERT_EQ(expectedCapture, IRAcUtils::resultAcToString(&ac._irsend.capture));
|
||||
stdAc::state_t r, p;
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin) {
|
||||
IRDaikinESP ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRDaikinESP ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (Cool), Temp: 19C, Fan: 5 (High), Powerful: Off, "
|
||||
"Quiet: Off, Sensor: Off, Mould: On, Comfort: Off, "
|
||||
@@ -175,9 +278,9 @@ TEST(TestIRac, Daikin) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin128) {
|
||||
IRDaikin128 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRDaikin128 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power Toggle: On, Mode: 8 (Heat), Temp: 27C, Fan: 9 (Quiet), "
|
||||
"Powerful: Off, Quiet: On, Swing(V): On, Sleep: On, "
|
||||
@@ -208,9 +311,9 @@ TEST(TestIRac, Daikin128) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin152) {
|
||||
IRDaikin152 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRDaikin152 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (Cool), Temp: 27C, Fan: 3 (Medium), Swing(V): On, "
|
||||
"Powerful: Off, Quiet: Off, Econo: On, Sensor: Off, Comfort: Off";
|
||||
@@ -236,9 +339,9 @@ TEST(TestIRac, Daikin152) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin160) {
|
||||
IRDaikin160 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRDaikin160 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 2 (Dry), Temp: 23C, Fan: 1 (Low), "
|
||||
"Swing(V): 3 (Middle)";
|
||||
@@ -261,9 +364,9 @@ TEST(TestIRac, Daikin160) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin176) {
|
||||
IRDaikin176 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRDaikin176 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 7 (Cool), Temp: 26C, Fan: 1 (Low), Swing(H): 5 (Auto)";
|
||||
|
||||
@@ -285,9 +388,9 @@ TEST(TestIRac, Daikin176) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin2) {
|
||||
IRDaikin2 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRDaikin2 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (Cool), Temp: 19C, Fan: 1 (Low), "
|
||||
"Swing(V): 14 (Auto), Swing(H): 170 (UNKNOWN), Clock: 00:00, "
|
||||
@@ -323,9 +426,9 @@ TEST(TestIRac, Daikin2) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Daikin216) {
|
||||
IRDaikin216 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRDaikin216 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 4 (Heat), Temp: 31C, Fan: 11 (Quiet), "
|
||||
"Swing(H): On, Swing(V): On, Quiet: On, Powerful: Off";
|
||||
@@ -432,9 +535,9 @@ TEST(TestIRac, Electra) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Fujitsu) {
|
||||
IRFujitsuAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRFujitsuAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
std::string ardb1_expected =
|
||||
"Model: 2 (ARDB1), Power: On, Mode: 1 (Cool), Temp: 19C, "
|
||||
"Fan: 2 (Medium), Command: N/A";
|
||||
@@ -512,9 +615,9 @@ TEST(TestIRac, Fujitsu) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Goodweather) {
|
||||
IRGoodweatherAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRGoodweatherAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 19C, Fan: 2 (Medium), Turbo: Toggle, "
|
||||
"Light: Toggle, Sleep: Toggle, Swing: 1 (Slow), Command: 0 (Power)";
|
||||
@@ -540,9 +643,9 @@ TEST(TestIRac, Goodweather) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Gree) {
|
||||
IRGreeAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRGreeAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Model: 1 (YAW1F), Power: On, Mode: 1 (Cool), Temp: 71F, "
|
||||
"Fan: 2 (Medium), Turbo: Off, IFeel: Off, WiFi: Off, XFan: On, "
|
||||
@@ -573,9 +676,9 @@ TEST(TestIRac, Gree) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Haier) {
|
||||
IRHaierAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRHaierAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Command: 1 (On), Mode: 1 (Cool), Temp: 24C, Fan: 2 (Medium), "
|
||||
"Swing: 1 (Up), Sleep: On, Health: On, Clock: 13:45, "
|
||||
@@ -603,9 +706,9 @@ TEST(TestIRac, Haier) {
|
||||
|
||||
|
||||
TEST(TestIRac, HaierYrwo2) {
|
||||
IRHaierACYRW02 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRHaierACYRW02 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Button: 5 (Power), Mode: 1 (Cool), Temp: 23C, "
|
||||
"Fan: 2 (Medium), Turbo: 1 (High), Swing: 1 (Highest), Sleep: On, "
|
||||
@@ -632,9 +735,9 @@ TEST(TestIRac, HaierYrwo2) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Hitachi) {
|
||||
IRHitachiAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRHitachiAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 2 (Auto), Temp: 22C, Fan: 3 (Medium), "
|
||||
"Swing(V): Off, Swing(H): On";
|
||||
@@ -690,16 +793,67 @@ TEST(TestIRac, Hitachi1) {
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
}
|
||||
|
||||
TEST(TestIRac, Hitachi344) {
|
||||
IRHitachiAc344 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected_swingon[] =
|
||||
"Power: On, Mode: 6 (Heat), Temp: 25C, Fan: 6 (Max), "
|
||||
"Button: 129 (Swing(V)), Swing(V): Off, Swing(H): 2 (Right)";
|
||||
|
||||
ac.begin();
|
||||
irac.hitachi344(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
25, // Celsius
|
||||
stdAc::fanspeed_t::kMax, // Fan speed
|
||||
stdAc::swingv_t::kAuto, // Swing(V)
|
||||
stdAc::swingh_t::kRight); // Swing(H)
|
||||
|
||||
ASSERT_EQ(expected_swingon, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(HITACHI_AC344, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kHitachiAc344Bits, ac._irsend.capture.bits);
|
||||
ASSERT_EQ(expected_swingon, IRAcUtils::resultAcToString(&ac._irsend.capture));
|
||||
stdAc::state_t r, p;
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
EXPECT_EQ(decode_type_t::HITACHI_AC344, r.protocol);
|
||||
EXPECT_TRUE(r.power);
|
||||
EXPECT_EQ(stdAc::opmode_t::kHeat, r.mode);
|
||||
EXPECT_EQ(25, r.degrees);
|
||||
|
||||
char expected_swingoff[] =
|
||||
"Power: On, Mode: 6 (Heat), Temp: 25C, Fan: 6 (Max), "
|
||||
"Button: 19 (Power/Mode), Swing(V): Off, Swing(H): 2 (Right)";
|
||||
|
||||
ac._irsend.reset();
|
||||
irac.hitachi344(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kHeat, // Mode
|
||||
25, // Celsius
|
||||
stdAc::fanspeed_t::kMax, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Swing(V)
|
||||
stdAc::swingh_t::kRight); // Swing(H)
|
||||
ASSERT_EQ(expected_swingoff, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(HITACHI_AC344, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kHitachiAc344Bits, ac._irsend.capture.bits);
|
||||
ASSERT_EQ(expected_swingoff,
|
||||
IRAcUtils::resultAcToString(&ac._irsend.capture));
|
||||
}
|
||||
|
||||
TEST(TestIRac, Hitachi424) {
|
||||
IRHitachiAc424 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRHitachiAc424 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 6 (Heat), Temp: 25C, Fan: 6 (Max), "
|
||||
"Swing(V) Toggle: Off, Button: 19 (Power/Mode)";
|
||||
"Button: 19 (Power/Mode), Swing(V) Toggle: Off";
|
||||
char expected_swingv[] =
|
||||
"Power: On, Mode: 3 (Cool), Temp: 26C, Fan: 1 (Min), "
|
||||
"Swing(V) Toggle: On, Button: 129 (Swing(V))";
|
||||
"Button: 129 (Swing(V)), Swing(V) Toggle: On";
|
||||
|
||||
ac.begin();
|
||||
irac.hitachi424(&ac,
|
||||
@@ -736,9 +890,9 @@ TEST(TestIRac, Hitachi424) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Kelvinator) {
|
||||
IRKelvinatorAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRKelvinatorAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 19C, Fan: 3 (Medium), Turbo: Off, "
|
||||
"Quiet: Off, XFan: On, Ion: On, Light: On, "
|
||||
@@ -769,9 +923,9 @@ TEST(TestIRac, Kelvinator) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, LG) {
|
||||
IRLgAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRLgAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Model: 1 (GE6711AR2853M), "
|
||||
"Power: On, Mode: 1 (Dry), Temp: 27C, Fan: 2 (Medium)";
|
||||
@@ -795,12 +949,12 @@ TEST(TestIRac, LG) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Midea) {
|
||||
IRMideaAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRMideaAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Dry), Celsius: On, Temp: 27C/80F, Fan: 2 (Medium), "
|
||||
"Sleep: On, Swing(V) Toggle: Off";
|
||||
"Sleep: On, Swing(V) Toggle: Off, Econo Toggle: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.midea(&ac,
|
||||
@@ -810,6 +964,7 @@ TEST(TestIRac, Midea) {
|
||||
27, // Degrees
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Swing(V)
|
||||
false, // Econo
|
||||
8 * 60 + 0); // Sleep time
|
||||
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
@@ -823,9 +978,9 @@ TEST(TestIRac, Midea) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Mitsubishi) {
|
||||
IRMitsubishiAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRMitsubishiAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (Cool), Temp: 20C, Fan: 2 (Medium), "
|
||||
"Swing(V): 0 (Auto), Swing(H): 3 (UNKNOWN), "
|
||||
@@ -852,9 +1007,9 @@ TEST(TestIRac, Mitsubishi) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Mitsubishi136) {
|
||||
IRMitsubishi136 ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRMitsubishi136 ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 5 (Dry), Temp: 22C, Fan: 3 (High), "
|
||||
"Swing(V): 3 (Highest), Quiet: Off";
|
||||
@@ -878,9 +1033,9 @@ TEST(TestIRac, Mitsubishi136) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, MitsubishiHeavy88) {
|
||||
IRMitsubishiHeavy88Ac ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRMitsubishiHeavy88Ac ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 21C, Fan: 3 (Med), "
|
||||
"Swing(V): 4 (Auto), Swing(H): 0 (Off), Turbo: Off, Econo: Off, "
|
||||
@@ -908,9 +1063,9 @@ TEST(TestIRac, MitsubishiHeavy88) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, MitsubishiHeavy152) {
|
||||
IRMitsubishiHeavy152Ac ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRMitsubishiHeavy152Ac ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 20C, Fan: 6 (Econo), "
|
||||
"Swing(V): 6 (Off), Swing(H): 0 (Auto), Silent: On, Turbo: Off, "
|
||||
@@ -941,9 +1096,9 @@ TEST(TestIRac, MitsubishiHeavy152) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Neoclima) {
|
||||
IRNeoclimaAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRNeoclimaAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 20C, Fan: 3 (Low), "
|
||||
"Swing(V): Off, Swing(H): On, Sleep: On, Turbo: Off, Hold: Off, Ion: On, "
|
||||
@@ -973,9 +1128,9 @@ TEST(TestIRac, Neoclima) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Panasonic) {
|
||||
IRPanasonicAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRPanasonicAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected_nke[] =
|
||||
"Model: 2 (NKE), Power: On, Mode: 4 (Heat), Temp: 28C, Fan: 2 (Medium), "
|
||||
"Swing(V): 15 (Auto), Swing(H): 6 (Middle), Quiet: On, "
|
||||
@@ -1031,9 +1186,9 @@ TEST(TestIRac, Panasonic) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Samsung) {
|
||||
IRSamsungAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRSamsungAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 0 (Auto), Temp: 28C, Fan: 6 (Auto), Swing: On, "
|
||||
"Beep: On, Clean: On, Quiet: On, Powerful: Off, Breeze: Off, "
|
||||
@@ -1093,10 +1248,38 @@ TEST(TestIRac, Samsung) {
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
}
|
||||
|
||||
TEST(TestIRac, Sanyo) {
|
||||
IRSanyoAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 2 (Cool), Temp: 28C, Fan: 3 (Medium), "
|
||||
"Swing(V): 7 (Highest), Sleep: On, Beep: On, "
|
||||
"Sensor: Wall, Sensor Temp: 28C, Off Timer: Off";
|
||||
|
||||
ac.begin();
|
||||
irac.sanyo(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kCool, // Mode
|
||||
28, // Celsius
|
||||
stdAc::fanspeed_t::kMedium, // Fan speed
|
||||
stdAc::swingv_t::kHighest, // Vertical Swing
|
||||
true, // Beep
|
||||
17); // Sleep
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ac._irsend.makeDecodeResult();
|
||||
EXPECT_TRUE(capture.decode(&ac._irsend.capture));
|
||||
ASSERT_EQ(SANYO_AC, ac._irsend.capture.decode_type);
|
||||
ASSERT_EQ(kSanyoAcBits, ac._irsend.capture.bits);
|
||||
ASSERT_EQ(expected, IRAcUtils::resultAcToString(&ac._irsend.capture));
|
||||
stdAc::state_t r, p;
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
}
|
||||
|
||||
TEST(TestIRac, Sharp) {
|
||||
IRSharpAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRSharpAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 2 (Cool), Temp: 28C, Fan: 3 (Medium), "
|
||||
"Turbo: Off, Swing(V) Toggle: On, Ion: On, Econo: -, Clean: Off";
|
||||
@@ -1123,9 +1306,9 @@ TEST(TestIRac, Sharp) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Tcl112) {
|
||||
IRTcl112Ac ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRTcl112Ac ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 3 (Cool), Temp: 20C, Fan: 3 (Medium), Econo: On, "
|
||||
"Health: On, Light: On, Turbo: Off, Swing(H): On, Swing(V): Off";
|
||||
@@ -1153,9 +1336,9 @@ TEST(TestIRac, Tcl112) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Teco) {
|
||||
IRTecoAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRTecoAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 0 (Auto), Temp: 21C, Fan: 2 (Medium), Sleep: On, "
|
||||
"Swing: On, Light: On, Humid: Off, Save: Off, Timer: Off";
|
||||
@@ -1180,31 +1363,82 @@ TEST(TestIRac, Teco) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Toshiba) {
|
||||
IRToshibaAC ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
char expected[] = "Power: On, Mode: 2 (Dry), Temp: 29C, Fan: 2 (UNKNOWN)";
|
||||
IRToshibaAC ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Temp: 29C, Power: On, Mode: 2 (Dry), Fan: 2 (UNKNOWN), "
|
||||
"Turbo: Off, Econo: On";
|
||||
|
||||
ac.begin();
|
||||
irac.toshiba(&ac,
|
||||
true, // Power
|
||||
stdAc::opmode_t::kDry, // Mode
|
||||
29, // Celsius
|
||||
stdAc::fanspeed_t::kLow); // Fan speed
|
||||
stdAc::fanspeed_t::kLow, // Fan speed
|
||||
stdAc::swingv_t::kOff, // Vertical Swing
|
||||
false, // Turbo
|
||||
true); // Econo
|
||||
ASSERT_EQ(expected, ac.toString());
|
||||
ASSERT_EQ(kToshibaACStateLengthLong, ac.getStateLength());
|
||||
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);
|
||||
ASSERT_EQ(kToshibaACBitsLong, ac._irsend.capture.bits);
|
||||
ASSERT_EQ(expected, IRAcUtils::resultAcToString(&ac._irsend.capture));
|
||||
stdAc::state_t r, p;
|
||||
ASSERT_TRUE(IRAcUtils::decodeToState(&ac._irsend.capture, &r, &p));
|
||||
EXPECT_EQ(
|
||||
"f38000d50"
|
||||
"m4400s4300"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s1600m580s1600m580s490m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s1600m580s490m580s490"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s1600m580s490m580s1600m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s1600m580s490m580s490m580s1600"
|
||||
"m580s1600m580s1600m580s490m580s490m580s490m580s490m580s490m580s490"
|
||||
"m580s490m580s1600m580s1600m580s490m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s490m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s1600m580s1600"
|
||||
"m580s1600m580s490m580s1600m580s490m580s1600m580s490m580s490m580s490"
|
||||
"m580s7400"
|
||||
"m4400s4300"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s1600m580s1600m580s490m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s1600m580s490m580s490"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s1600m580s490m580s1600m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s1600m580s490m580s490m580s1600"
|
||||
"m580s1600m580s1600m580s490m580s490m580s490m580s490m580s490m580s490"
|
||||
"m580s490m580s1600m580s1600m580s490m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s490m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s1600m580s1600"
|
||||
"m580s1600m580s490m580s1600m580s490m580s1600m580s490m580s490m580s490"
|
||||
"m580s7400"
|
||||
"m4400s4300"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s1600m580s1600m580s490m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s490m580s1600"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s1600m580s1600m580s1600m580s490"
|
||||
"m580s490m580s490m580s1600m580s490m580s490m580s490m580s490m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s1600m580s490m580s490m580s490m580s1600m580s1600"
|
||||
"m580s7400"
|
||||
"m4400s4300"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s490m580s490m580s1600m580s1600m580s490m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s490m580s1600"
|
||||
"m580s1600m580s1600m580s1600m580s1600m580s1600m580s1600m580s1600m580s490"
|
||||
"m580s490m580s490m580s1600m580s490m580s490m580s490m580s490m580s1600"
|
||||
"m580s490m580s490m580s490m580s490m580s490m580s490m580s1600m580s490"
|
||||
"m580s490m580s490m580s1600m580s490m580s490m580s490m580s1600m580s1600"
|
||||
"m580s7400",
|
||||
ac._irsend.outputStr());
|
||||
}
|
||||
|
||||
TEST(TestIRac, Trotec) {
|
||||
IRTrotecESP ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRTrotecESP ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 1 (Cool), Temp: 18C, Fan: 3 (High), Sleep: On";
|
||||
|
||||
@@ -1231,9 +1465,9 @@ TEST(TestIRac, Trotec) {
|
||||
}
|
||||
|
||||
TEST(TestIRac, Vestel) {
|
||||
IRVestelAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRVestelAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
char expected[] =
|
||||
"Power: On, Mode: 0 (Auto), Temp: 22C, Fan: 5 (Low), Sleep: On, "
|
||||
"Turbo: Off, Ion: On, Swing: On";
|
||||
@@ -1322,9 +1556,9 @@ TEST(TestIRac, Vestel) {
|
||||
|
||||
|
||||
TEST(TestIRac, Whirlpool) {
|
||||
IRWhirlpoolAc ac(0);
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRWhirlpoolAc ac(kGpioUnused);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
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, "
|
||||
@@ -1625,9 +1859,9 @@ TEST(TestIRac, Issue821) {
|
||||
next = prev;
|
||||
next.light = true;
|
||||
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRCoolixAC ac(0);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
IRCoolixAC ac(kGpioUnused);
|
||||
|
||||
ac.begin();
|
||||
result = irac.handleToggles(next, &prev);
|
||||
@@ -1714,9 +1948,9 @@ TEST(TestIRac, Issue1001) {
|
||||
desired = prev;
|
||||
desired.power = false;
|
||||
|
||||
IRac irac(0);
|
||||
IRrecv capture(0);
|
||||
IRWhirlpoolAc ac(0);
|
||||
IRac irac(kGpioUnused);
|
||||
IRrecv capture(kGpioUnused);
|
||||
IRWhirlpoolAc ac(kGpioUnused);
|
||||
|
||||
ac.begin();
|
||||
ASSERT_TRUE(prev.power);
|
||||
|
||||
Reference in New Issue
Block a user