@@ -723,14 +723,32 @@ TEST(TestHaierACYRW02Class, SwingH) {
723723 EXPECT_EQ (kHaierAcYrw02ButtonTempUp , ac.getButton ());
724724}
725725
726+ TEST (TestHaierACYRW02Class, Lock) {
727+ IRHaierACYRW02 ac (kGpioUnused );
728+ ac.begin ();
729+
730+ ac.setLock (true );
731+ EXPECT_TRUE (ac.getLock ());
732+ EXPECT_EQ (kHaierAcYrw02ButtonLock , ac.getButton ());
733+
734+ ac.setButton (kHaierAcYrw02ButtonTempUp );
735+ ac.setLock (false );
736+ EXPECT_FALSE (ac.getLock ());
737+ EXPECT_EQ (kHaierAcYrw02ButtonLock , ac.getButton ());
738+
739+ ac.setLock (true );
740+ EXPECT_TRUE (ac.getLock ());
741+ EXPECT_EQ (kHaierAcYrw02ButtonLock , ac.getButton ());
742+ }
743+
726744TEST (TestHaierACYRW02Class, MessageConstuction) {
727745 IRHaierACYRW02 ac (kGpioUnused );
728746
729747 EXPECT_EQ (
730748 " Power: On, Button: 5 (Power), Mode: 0 (Auto), Temp: 25C, "
731749 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 0 (Off), "
732750 " Swing(H): 0 (Middle), Sleep: Off, Health: On, "
733- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
751+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
734752 ac.toString ());
735753 ac.setMode (kHaierAcYrw02Cool );
736754 ac.setTemp (21 );
@@ -739,7 +757,7 @@ TEST(TestHaierACYRW02Class, MessageConstuction) {
739757 " Power: On, Button: 4 (Fan), Mode: 1 (Cool), Temp: 21C, "
740758 " Fan: 1 (High), Turbo: Off, Quiet: Off, Swing(V): 0 (Off), "
741759 " Swing(H): 0 (Middle), Sleep: Off, Health: On, "
742- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
760+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
743761 ac.toString ());
744762
745763 ac.setSwingV (kHaierAcYrw02SwingVMiddle );
@@ -750,7 +768,7 @@ TEST(TestHaierACYRW02Class, MessageConstuction) {
750768 " Power: On, Button: 8 (Turbo), Mode: 1 (Cool), Temp: 21C, "
751769 " Fan: 1 (High), Turbo: On, Quiet: Off, Swing(V): 2 (Middle), "
752770 " Swing(H): 0 (Middle), Sleep: On, Health: Off, "
753- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
771+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
754772 ac.toString ());
755773}
756774
@@ -766,7 +784,7 @@ TEST(TestHaierACYRW02Class, RealStates) {
766784 " Power: On, Button: 7 (Health), Mode: 4 (Heat), Temp: 30C, "
767785 " Fan: 1 (High), Turbo: Off, Quiet: Off, Swing(V): 1 (Highest), "
768786 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
769- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
787+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
770788 ac.toString ());
771789
772790 uint8_t expectedState2[kHaierACYRW02StateLength ] = {
@@ -777,7 +795,7 @@ TEST(TestHaierACYRW02Class, RealStates) {
777795 " Power: Off, Button: 5 (Power), Mode: 4 (Heat), Temp: 30C, "
778796 " Fan: 1 (High), Turbo: Off, Quiet: Off, Swing(V): 0 (Off), "
779797 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
780- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
798+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
781799 ac.toString ());
782800
783801 uint8_t expectedState3[kHaierACYRW02StateLength ] = {
@@ -788,7 +806,7 @@ TEST(TestHaierACYRW02Class, RealStates) {
788806 " Power: On, Button: 1 (Temp Down), Mode: 1 (Cool), Temp: 16C, "
789807 " Fan: 1 (High), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
790808 " Swing(H): 0 (Middle), Sleep: Off, Health: On, "
791- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
809+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
792810 ac.toString ());
793811
794812 // cool 25, health, fan auto, vertical swing auto, sleep on
@@ -800,7 +818,7 @@ TEST(TestHaierACYRW02Class, RealStates) {
800818 " Power: On, Button: 11 (Sleep), Mode: 1 (Cool), Temp: 25C, "
801819 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 12 (Auto), "
802820 " Swing(H): 0 (Middle), Sleep: On, Health: On, "
803- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
821+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
804822 ac.toString ());
805823
806824 // cool 25, health, fan 3, vertical swing auto, sleep on
@@ -812,7 +830,7 @@ TEST(TestHaierACYRW02Class, RealStates) {
812830 " Power: On, Button: 4 (Fan), Mode: 1 (Cool), Temp: 25C, "
813831 " Fan: 1 (High), Turbo: Off, Quiet: Off, Swing(V): 12 (Auto), "
814832 " Swing(H): 0 (Middle), Sleep: On, Health: On, "
815- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
833+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
816834 ac.toString ());
817835}
818836
@@ -1044,7 +1062,7 @@ TEST(TestDecodeHaierAC_YRW02, RealExample) {
10441062 " Power: On, Button: 5 (Power), Mode: 1 (Cool), Temp: 17C, "
10451063 " Fan: 1 (High), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
10461064 " Swing(H): 0 (Middle), Sleep: Off, Health: On, "
1047- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
1065+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
10481066 ac.toString ());
10491067}
10501068
@@ -1270,7 +1288,7 @@ TEST(TestDecodeHaierAC176, SyntheticDecode) {
12701288 " Power: On, Button: 5 (Power), Mode: 1 (Cool), Temp: 24C, "
12711289 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 6 (UNKNOWN), "
12721290 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
1273- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
1291+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
12741292 IRAcUtils::resultAcToString (&irsend.capture ));
12751293 stdAc::state_t result, prev;
12761294 ASSERT_TRUE (IRAcUtils::decodeToState (&irsend.capture , &result, &prev));
@@ -1312,7 +1330,7 @@ TEST(TestHaierAC176Class, BuildKnownState) {
13121330 " Power: On, Button: 4 (Fan), Mode: 4 (Heat), Temp: 24C, "
13131331 " Fan: 1 (High), Turbo: Off, Quiet: Off, Swing(V): 0 (Off), "
13141332 " Swing(H): 0 (Middle), Sleep: Off, Health: On, "
1315- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
1333+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
13161334 ac.toString ());
13171335 /* Disabled pending:
13181336 https://github.com/crankyoldgit/IRremoteESP8266/issues/1480#issuecomment-885636790
@@ -1401,49 +1419,49 @@ TEST(TestHaierAC176Class, Timers) {
14011419 ac.setRaw (timer30m);
14021420 EXPECT_EQ (kHaierAcYrw02OnTimer , ac.getTimerMode ());
14031421 EXPECT_EQ (
1404- " Power: Off, Button: 0 (Temp Up ), Mode: 0 (Auto), Temp: 24C, "
1422+ " Power: Off, Button: 16 (Timer ), Mode: 0 (Auto), Temp: 24C, "
14051423 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
14061424 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
1407- " Timer Mode: 2 (On), On Timer: 00:30, Off Timer: Off" ,
1425+ " Timer Mode: 2 (On), On Timer: 00:30, Off Timer: Off, Lock: Off " ,
14081426 ac.toString ());
14091427 ac.setRaw (timeroff);
14101428 EXPECT_EQ (kHaierAcYrw02NoTimers , ac.getTimerMode ());
14111429 EXPECT_EQ (
1412- " Power: On, Button: 0 (Temp Up ), Mode: 0 (Auto), Temp: 24C, "
1430+ " Power: On, Button: 16 (Timer ), Mode: 0 (Auto), Temp: 24C, "
14131431 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
14141432 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
1415- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
1433+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
14161434 ac.toString ());
14171435 ac.setRaw (timeroffthenon);
14181436 EXPECT_EQ (
1419- " Power: On, Button: 0 (Temp Up ), Mode: 0 (Auto), Temp: 24C, "
1437+ " Power: On, Button: 16 (Timer ), Mode: 0 (Auto), Temp: 24C, "
14201438 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
14211439 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
1422- " Timer Mode: 5 (Off-On), On Timer: 08:00, Off Timer: 00:30" ,
1440+ " Timer Mode: 5 (Off-On), On Timer: 08:00, Off Timer: 00:30, Lock: Off " ,
14231441 ac.toString ());
14241442 ac.setTimerMode (kHaierAcYrw02OnThenOffTimer );
14251443 EXPECT_EQ (
1426- " Power: On, Button: 0 (Temp Up ), Mode: 0 (Auto), Temp: 24C, "
1444+ " Power: On, Button: 16 (Timer ), Mode: 0 (Auto), Temp: 24C, "
14271445 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
14281446 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
1429- " Timer Mode: 4 (On-Off), On Timer: 08:00, Off Timer: 00:30" ,
1447+ " Timer Mode: 4 (On-Off), On Timer: 08:00, Off Timer: 00:30, Lock: Off " ,
14301448 ac.toString ());
14311449 ac.setTimerMode (kHaierAcYrw02OffTimer );
14321450 EXPECT_EQ (0 , ac.getOnTimer ());
14331451 EXPECT_EQ (30 , ac.getOffTimer ());
14341452 EXPECT_EQ (
1435- " Power: On, Button: 0 (Temp Up ), Mode: 0 (Auto), Temp: 24C, "
1453+ " Power: On, Button: 16 (Timer ), Mode: 0 (Auto), Temp: 24C, "
14361454 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
14371455 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
1438- " Timer Mode: 1 (Off), On Timer: Off, Off Timer: 00:30" ,
1456+ " Timer Mode: 1 (Off), On Timer: Off, Off Timer: 00:30, Lock: Off " ,
14391457 ac.toString ());
14401458 ac.setTimerMode (kHaierAcYrw02NoTimers );
14411459 EXPECT_EQ (0 , ac.getOnTimer ());
14421460 EXPECT_EQ (0 , ac.getOffTimer ());
14431461 EXPECT_EQ (
1444- " Power: On, Button: 0 (Temp Up ), Mode: 0 (Auto), Temp: 24C, "
1462+ " Power: On, Button: 16 (Timer ), Mode: 0 (Auto), Temp: 24C, "
14451463 " Fan: 5 (Auto), Turbo: Off, Quiet: Off, Swing(V): 2 (Middle), "
14461464 " Swing(H): 0 (Middle), Sleep: Off, Health: Off, "
1447- " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off" ,
1465+ " Timer Mode: 0 (N/A), On Timer: Off, Off Timer: Off, Lock: Off " ,
14481466 ac.toString ());
14491467}
0 commit comments