From b99391c81051a7c950eab01b096ae45162510e8c Mon Sep 17 00:00:00 2001 From: Bob Kuhn <bob.kuhn@att.net> Date: Mon, 10 Jun 2024 14:20:03 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=F0=9F=90=9B=20Anycubic=20Vyper=20f?= =?UTF-8?q?ixes=20(1)=20(#26261)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/lcd/extui/anycubic_vyper/dgus_tft.cpp | 29 ++++++++++++------- .../src/lcd/extui/anycubic_vyper/dgus_tft.h | 1 - .../lcd/extui/anycubic_vyper/vyper_extui.cpp | 3 +- .../lcd/extui/dgus_e3s1pro/DGUSRxHandler.cpp | 2 +- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.cpp b/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.cpp index 9be00411cc1..74ac2b1c912 100644 --- a/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.cpp +++ b/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.cpp @@ -117,6 +117,8 @@ namespace Anycubic { void DEBUG_PRINT_TIMER_EVENT(const timer_event_t event, FSTR_P const msg=nullptr); void DEBUG_PRINT_MEDIA_EVENT(const media_event_t event, FSTR_P const msg=nullptr); + void set_brightness(); + DgusTFT dgus; DgusTFT::DgusTFT() { @@ -202,6 +204,14 @@ namespace Anycubic { } #endif + // Periodically update main page + if ((page_index_now == 121 || page_index_now == 1) && ((millis() % 500) == 0)) { + TERN_(HAS_HOTEND, send_temperature_hotend(TXT_MAIN_HOTEND)); + TERN_(HAS_HEATED_BED, send_temperature_bed(TXT_MAIN_BED)); + set_brightness(); + delay(1); // wait for millis() to advance so this clause isn't repeated + } + switch (page_index_now) { case 115: page115(); break; case 117: page117(); break; @@ -672,13 +682,6 @@ namespace Anycubic { #if ENABLED(POWER_LOSS_RECOVERY) - void DgusTFT::powerLoss() { - // On: 5A A5 05 82 00 82 00 00 - // Off: 5A A5 05 82 00 82 00 64 - uint8_t data[] = { 0x5A, 0xA5, 0x05, 0x82, 0x00, 0x82, 0x00, uint8_t(recovery.enabled ? 0x00 : 0x64) }; - for (uint8_t i = 0; i < COUNT(data); ++i) TFTSer.write(data[i]); - } - void DgusTFT::powerLossRecovery() { printer_state = AC_printer_resuming_from_power_outage; // Play tune to notify user we can recover. } @@ -907,9 +910,10 @@ namespace Anycubic { } void DgusTFT::checkHeaters() { - static uint32_t time_last = 0; - if (PENDING(millis(), time_last)) return; - time_last = millis() + 500; + static uint32_t time_next = 0; + const millis_t ms = millis(); + if (PENDING(ms, time_next)) return; + time_next = ms + 500; float temp = 0; @@ -1127,6 +1131,11 @@ namespace Anycubic { } #endif + void set_brightness() { + uint8_t data[] = { 0x5A, 0xA5, 0x07, 0x82, 0x00, 0x82, 0x64, 0x32, 0x03, 0xE8 }; + for (uint8_t i = 0; i < COUNT(data); ++i) TFTSer.write(data[i]); + } + void DgusTFT::set_language(language_t language) { lcd_info.language = ui_language = lcd_info_back.language = language; } diff --git a/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.h b/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.h index 514e8c7303d..961047b289b 100644 --- a/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.h +++ b/Marlin/src/lcd/extui/anycubic_vyper/dgus_tft.h @@ -364,7 +364,6 @@ namespace Anycubic { static void filamentRunout(); static void confirmationRequest(const char * const); static void statusChange(const char * const); - static void powerLoss(); static void powerLossRecovery(); static void homingStart(); static void homingComplete(); diff --git a/Marlin/src/lcd/extui/anycubic_vyper/vyper_extui.cpp b/Marlin/src/lcd/extui/anycubic_vyper/vyper_extui.cpp index 4b18b0a3800..5fbe8134469 100644 --- a/Marlin/src/lcd/extui/anycubic_vyper/vyper_extui.cpp +++ b/Marlin/src/lcd/extui/anycubic_vyper/vyper_extui.cpp @@ -121,7 +121,6 @@ namespace ExtUI { void onPostprocessSettings() { // Called after loading or resetting stored settings dgus.paramInit(); - dgus.powerLoss(); } void onSettingsStored(const bool success) { @@ -160,7 +159,7 @@ namespace ExtUI { #if ENABLED(POWER_LOSS_RECOVERY) // Called when power-loss is enabled/disabled - void onSetPowerLoss(const bool) { dgus.powerLoss(); } + void onSetPowerLoss(const bool) { /* nothing to do */ } // Called when power-loss state is detected void onPowerLoss() { /* handled internally */ } // Called on resume from power-loss diff --git a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSRxHandler.cpp b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSRxHandler.cpp index 118cfd35143..dc80a7aed02 100644 --- a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSRxHandler.cpp +++ b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSRxHandler.cpp @@ -101,7 +101,7 @@ void DGUSRxHandler::retractLength(DGUS_VP &vp, void *data) { void DGUSRxHandler::setLanguage(DGUS_VP &vp, void *data) { DGUS_Data::Language language = (DGUS_Data::Language)Endianness::fromBE_P<uint16_t>(data); - screen.config.language = language; + ui_language = screen.config.language = language; screen.triggerEEPROMSave(); screen.triggerFullUpdate(); }