From 553eae056618e6b7513595921a7766756178cb68 Mon Sep 17 00:00:00 2001 From: reaw55 <58457329+reaw55@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:26:40 +0700 Subject: [PATCH] change AC behavior; comfirmed work --- ise-display/ise-display-v2.tft | Bin 19856756 -> 19856700 bytes platformio.ini | 2 +- src/ise_display.cpp | 61 +++++++++++++++++++++++++++++---- src/ise_display.hpp | 3 +- src/main.cpp | 2 ++ 5 files changed, 59 insertions(+), 9 deletions(-) diff --git a/ise-display/ise-display-v2.tft b/ise-display/ise-display-v2.tft index e2ea4a2e2fc792420e2e60193f80fe2e0b2b9de7..f64401e9d54aa6fe775020bc38cee95b351ff40b 100644 GIT binary patch delta 6662 zcmchad3+Q_7RS4)x=A1>G2Esv2PzywWNDu|0K@5lmwLu(+2X#PQ zP!A-4`XCV`0T*zC1|S)DKniFG8iB?j6*K`}kOtC02Dk$>1F)83cLaez-TZAj0NMscROV%&#e49r9AHjK4a=%7izB?O6}#h|gI?y5Ns;)GoE|}zl_NW2+}W9k z@!RtLL+UHvf|*oj9cH%4Q#2D7g&B5APCTrthmaR0=RvzV&4Mkfqug;sRYpg9*)Pr< z%zPsM#Mo0^s12e%#R)N97RH>c5X1AMh1me<-@)3SyZhyRA_ zKvcPoUA&tuefaf8RK1}2L|ca8M;uY*ns)IoY`FrHInuMw%bKxsvM+Q2uBcMz7?vhS z@At9Fz6(7}$S&A{`Bir#OOYj*Q|o-=sM0)n z=P{Mz-=D5$r(&YNcdPu_KQmGqhsJHtxJKh1JOb*qlJWyHE;a8n59 zHM#o2@b{~=+^a=i1jiTHp@tC&AupOol13S^Kpsba0M8EdZ`mrhse%mjOyx~@OUm;Y z)n4+_coxs3Q48K4+DhjnlQ!pflQ!gcLGR${ybW*5Gk81RTIb=voZm@f7tap&ufl(8 zbQNS{72SAu{uJdsQdz0ay$5+cd4K){jk5V5=+ioce`d8tH4 zual1Cv!UbpSU!Un@^O47pQiKh$j&Fxco@&F!F|NoCTyS`3BMt_?OU+`BJ`)f6kZjFZddrhbxw^qVYStX@uobN3Q(X z7;%|%1~mkxs{K9R4owc-st@%oZx(3<6!wdiQD?D*c}%E0@K7pq+q;n< z$Edl&0pS^YDmzykZkL|f$(u&~&kB%|BA25yAv9k9C90|;w15Nrs9He$eqFzh|IJ@z z!2_s0&oA&Y$~{e`Iciyoq@&cl5{bf$4jkz3op3e}-ZeuaB?kZk*x zy36guT5^O>*A1wwSBXQ&8!FUYuD=l(NZ#`zm-IO!_Oy7B{HFwuGdq_*3b_idpyx#K z8fDE9<49-fV@!g+DJE-At)l!h7c*~(vEq#?kymLvO-v!3sw4BnEHPV*)?R_gjW<_O zasIF1u`Je|g2%E?#d4j!L~D7^738f{=byRQh%6(oNUS1VZNwIdb>uG;xpnj(%IDPT zF0}eV{HT++7)3vkw~fB)Z;Z%R@_rWENp~2r&Ei+`H;L@J{*$coq*>4xJ&%hM;u7T@ zGOACKcS>9p=V??TZbC2XoP(qnL@DVJaSM7@oEF!_b#X@A5La{_-l@e!8t)grdj3_+ zLFY30_(eSLx~F0sZr4;dGkk)ymV33xi?Hz}x36JDLdc7@BT1u-SfKU-Y+r)E=LUHb z{XFiK=-1dz)j7#VWfSte)USaNNg*%8P9se>VlM3^*}nSzeuw2dC92uyhZ|2L68Y}}&`&tFQ@#^QjY@}Rt2yct zzhy)$id1(3NCS0s`7v(j%RQ;l3jYvFsZbzQS zK_X+Kbuh~DHT1VAe{=S@-FV$?;k48_&5Q%JBCj=_Qd1+6NnTqgi?odq%g|oB<7?#a z*G*o)o4Uu{5&a%>y6K$GMrC*MdZ>PK)D8b7_bAQxc6yTbGHN<$??K1c*x&6XIUDsJ z_Yn0m@8s&7K}O|s!pdoL7y? zDdbI6{W8ZJkqP9@aHf$?H)3P8H^#|rqW@@*qgAYXEn0o(EY#t5jiN>5eWY5ol1Ah` Y@|HS_NtYP0x1CSPpReqN0oB+47b0tko&W#< delta 6582 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 F{tb}cL1X{` diff --git a/platformio.ini b/platformio.ini index 6a3b840..78fe175 100644 --- a/platformio.ini +++ b/platformio.ini @@ -14,4 +14,4 @@ board = wt32-eth01 framework = arduino lib_deps = siwats/ESPMegaPROR3@^2.5.3 monitor_speed = 115200 -build_flags = -DCORE_DEBUG_LEVEL=5 +build_flags = -DCORE_DEBUG_LEVEL=0 diff --git a/src/ise_display.cpp b/src/ise_display.cpp index f6d7f90..70275b5 100644 --- a/src/ise_display.cpp +++ b/src/ise_display.cpp @@ -49,6 +49,7 @@ void ISEDisplay::begin(DigitalInputCard *inputCard, DigitalOutputCard *outputCar delay(100); this->updateAirPurifierState(); this->updateSystemtoggle(); + this->updateAllStandbyToggle(); this->updateACState(); this->updateLightGroupStatePageDashboard(); @@ -65,7 +66,7 @@ void ISEDisplay::loop() recieveSerialCommand(); // Check if the AC state has been changed - if (ac_press_pending && (millis() - time_since_last_ac_change) > 5000) + if (ac_press_pending && (millis() - time_since_last_ac_change) > 500) { ESP_LOGI("ISEDisplay", "Sending AC IR code"); sendACIRcode(); @@ -74,7 +75,7 @@ void ISEDisplay::loop() ESP_LOGI("ISEDisplay", "AC press pending set to false"); } // check for ac staggered start - if (ac_staggered_start_call_pending && (millis() - time_since_ac_staggered_start_call) > 1000) + if (ac_staggered_start_call_pending && (millis() - time_since_ac_staggered_start_call) > 3000) { ESP_LOGI("ISEDisplay", "Sending Staggered AC IR code (York)"); sendACIRcode(); @@ -148,10 +149,15 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type { switch (component) { + case COMPONENT_OBJ_STANDBY_LOGO: + if (touch_type != TOUCH_TYPE_RELEASE) + break; + //this->jumpToPage(2); + break; case COMPONENT_OBJ_STANDBY_BTN_OPEN_ALL_TOGGLE: if (touch_type != TOUCH_TYPE_RELEASE) break; - allOn(); + //allToggleStandby(); this->jumpToPage(2); // the function of the button is to open the dashboard from standby break; @@ -325,6 +331,7 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type case COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_MASTER_LIGHT: break; case COMPONENT_OBJ_DASHBOARD_LOGO: + jumpToPage(1); break; case COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_PM_LOCK: if (touch_type != TOUCH_TYPE_RELEASE) @@ -444,6 +451,7 @@ void ISEDisplay::handlePWMChange(uint8_t pin, bool state, uint16_t value) { // Light updateLightGroupStatePageStandby(); + updateAllStandbyToggle(); // time_since_last_screen_update = millis(); // update time since last activity } } @@ -567,6 +575,7 @@ void ISEDisplay::setACstate(uint8_t ac_fan_speed, uint8_t ac_mode, uint8_t ac_te this->ac_press_pending = true; updateACState(); updateSystemtoggle(); + updateAllStandbyToggle(); } void ISEDisplay::sendACIRcode() { @@ -1162,13 +1171,50 @@ void ISEDisplay::toggleSystem() togglePM(); } } -void ISEDisplay::allOn() +void ISEDisplay::allToggleStandby() { - setLightGroupState(3); - setPMstate(true, pm_fan_speed); - setACstate(2, ac_fan_speed, ac_temperature); + bool lightState = calculateLightGroupState(); + bool pmState = strcmp(pm_switch->getValue(), "on") == 0; + if (ac_mode != 0) + { + setACstate(0, ac_fan_speed, ac_temperature); + } + else{ + setACstate(2, ac_fan_speed, ac_temperature); + } + if (lightState) + { + setLightGroupState(0); + } + else + { + setLightGroupState(3); + } + if (pmState) + { + setPMstate(false, pm_fan_speed); + } + else + { + setPMstate(true, pm_fan_speed); + } + } +void ISEDisplay::updateAllStandbyToggle() +{ + bool state = calculateAllState(); + if (!this->takeSerialMutex()) + return; + this->displayAdapter->print("s_open_all.pic="); + this->displayAdapter->print(state ? COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON : COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_OFF); + this->sendStopBytes(); + this->displayAdapter->print("s_open_all.pic2="); + this->displayAdapter->print(state ? COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON_PRESSED : COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_OFF_PRESSED); + this->sendStopBytes(); + + this->giveSerialMutex(); +} void ISEDisplay::toggleLightIndividual(uint8_t row) { // Get the current state @@ -1350,6 +1396,7 @@ void ISEDisplay::handleACChange(uint8_t mode, uint8_t fan_speed, uint8_t tempera ESP_LOGI("ISEDisplay", "AC state changed: mode: %d, fan speed: %d, temperature: %d", mode, fan_speed, temperature); updateACState(); updateSystemtoggle(); + updateAllStandbyToggle(); } void ISEDisplay::updateuserACmode() { diff --git a/src/ise_display.hpp b/src/ise_display.hpp index 268e851..9be7e1b 100644 --- a/src/ise_display.hpp +++ b/src/ise_display.hpp @@ -31,6 +31,7 @@ class ISEDisplay : public ESPMegaDisplay { void updateAirPurifierState(); void updateAirPurifierStateStandby(); void updateSystemtoggle(); + void updateAllStandbyToggle(); void updateDateTimeText(rtctime_t time); void updateWeather(char *weather_string); void updateTempOutside(float temp_outside); @@ -97,7 +98,7 @@ class ISEDisplay : public ESPMegaDisplay { void setAClockstate(bool is_ac_lock_on); void toggleACLock(); void togglePMLock(); - void allOn(); + void allToggleStandby(); void toggleLightGroupState(); void toggleLightGroupStateStandby(); void toggleLightIndividual(uint8_t row); diff --git a/src/main.cpp b/src/main.cpp index c5c9eda..35f6bf8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -346,6 +346,7 @@ void pmswitchupdatedisplay(char *value) ESP_LOGI("PM switch", "getting PM switch state from MQTT: %d", pm_switch.getValue()); iseDisplay.updateAirPurifierState(); iseDisplay.updateSystemtoggle(); + iseDisplay.updateAllStandbyToggle(); ESP_LOGI("PM switch", "toggling PM switch state from: %d to %d", pm_switch.getValue(), !pm_switch.getValue()); } void pmlockupdatedisplay(char *value) @@ -533,6 +534,7 @@ void handlePageChange(uint8_t page) case PAGE_STANDBY: iseDisplay.updateLightGroupStatePageStandby(); iseDisplay.updateAirPurifierStateStandby(); + iseDisplay.updateAllStandbyToggle(); break; case PAGE_DASHBOARD: iseDisplay.updateLightGroupStatePageDashboard();