From 391a07b2bf5eab2710ff323acb0885031406383b Mon Sep 17 00:00:00 2001 From: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com> Date: Sat, 30 Apr 2022 16:33:19 -0400 Subject: [PATCH] Pause improvements --- Marlin/src/feature/pause.cpp | 2 +- .../src/lcd/extui/Creality/Creality_DWIN.cpp | 46 ++++++++++--------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 633cbd310e..813c2bd0a7 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -290,7 +290,7 @@ bool load_filament(const_float_t slow_load_length/*=0*/, const_float_t fast_load // Show "Purge More" / "Resume" menu and wait for reply KEEPALIVE_STATE(PAUSED_FOR_USER); wait_for_user = false; - #if ANY(HAS_MARLINUI_MENU, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI) + #if ANY(HAS_MARLINUI_MENU, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI, EXTENSIBLE_UI) ui.pause_show_message(PAUSE_MESSAGE_OPTION); // Also sets PAUSE_RESPONSE_WAIT_FOR #else pause_menu_response = PAUSE_RESPONSE_WAIT_FOR; diff --git a/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp b/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp index ce43475bd1..b626f0a4fa 100644 --- a/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp +++ b/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp @@ -1798,26 +1798,30 @@ void RTSSHOW::RTS_HandleData() if (recdat.data[0] == 1) //Filament is out, resume / resume selected on screen { SERIAL_ECHOLNPGM_P(PSTR("Resume Yes during print")); - if( - #if DISABLED(FILAMENT_RUNOUT_SENSOR) - true - #else - ( getActiveTool() == E0 && !getFilamentRunoutState() && getFilamentRunoutEnabled() ) - #endif - || (ExtUI::pauseModeStatus != PAUSE_MESSAGE_PURGE && ExtUI::pauseModeStatus != PAUSE_MESSAGE_OPTION) - ) + if (ExtUI::pauseModeStatus != PAUSE_MESSAGE_PURGE && ExtUI::pauseModeStatus != PAUSE_MESSAGE_OPTION) { - setPauseMenuResponse(PAUSE_RESPONSE_RESUME_PRINT); + //setPauseMenuResponse(PAUSE_RESPONSE_RESUME_PRINT); setUserConfirmed(); - PrinterStatusKey[1] = 3; - pause_resume_selected = true; + //PrinterStatusKey[1] = 3; + //pause_resume_selected = true; } - else { - ExtUI::setFilamentRunoutEnabled(false, getActiveTool()); - setPauseMenuResponse(PAUSE_RESPONSE_RESUME_PRINT); - setUserConfirmed(); - PrinterStatusKey[1] = 3; - pause_resume_selected = true; + else if (ExtUI::pauseModeStatus == PAUSE_MESSAGE_PURGE || ExtUI::pauseModeStatus == PAUSE_MESSAGE_OPTION) { + #if ENABLED(FILAMENT_RUNOUT_SENSOR) + if(getFilamentRunoutState() && getFilamentRunoutEnabled(getActiveTool())) + ExtUI::setFilamentRunoutEnabled(false, getActiveTool()); + else { + setPauseMenuResponse(PAUSE_RESPONSE_RESUME_PRINT); + setUserConfirmed(); + PrinterStatusKey[1] = 3; + pause_resume_selected = true; + } + + #else + setPauseMenuResponse(PAUSE_RESPONSE_RESUME_PRINT); + setUserConfirmed(); + PrinterStatusKey[1] = 3; + pause_resume_selected = true; + #endif } } else if (recdat.data[0] == 0) // Filamet is out, Cancel Selected @@ -2299,13 +2303,13 @@ void onUserConfirmRequired(const char *const msg) case PAUSE_MESSAGE_INSERT: { rtscheck.RTS_SndData(ExchangePageBase + 78, ExchangepageAddr); - onStatusChanged("Load Filament to Continue"); + onStatusChanged("Load Filament to Continue"); break; } case PAUSE_MESSAGE_HEAT: { rtscheck.RTS_SndData(ExchangePageBase + 78, ExchangepageAddr); - onStatusChanged("Press Yes to Reheat"); + onStatusChanged("Add Filament and Press Yes to Reheat"); break; } #if DISABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE) @@ -2313,7 +2317,7 @@ void onUserConfirmRequired(const char *const msg) { rtscheck.RTS_SndData(ExchangePageBase + 78, ExchangepageAddr); char newMsg[40] = "Yes to "; - if(TERN0(FILAMENT_RUNOUT_SENSOR, ExtUI::getFilamentRunoutState())) + if(TERN1(FILAMENT_RUNOUT_SENSOR, (!ExtUI::getFilamentRunoutState() && getFilamentRunoutEnabled()))) strcat(newMsg, "Continue"); else strcat(newMsg, "Disable "); @@ -2329,7 +2333,7 @@ void onUserConfirmRequired(const char *const msg) { rtscheck.RTS_SndData(ExchangePageBase + 78, ExchangepageAddr); char newMsg[40] = "Yes to "; - if(TERN0(FILAMENT_RUNOUT_SENSOR, ExtUI::getFilamentRunoutState())) + if(TERN1(FILAMENT_RUNOUT_SENSOR, (!ExtUI::getFilamentRunoutState() && getFilamentRunoutEnabled()))) strcat(newMsg, "Continue"); else strcat(newMsg, "Disable ");