From e5f1195e6f65845cb65a9ebec0a568e304b907ba Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 2 Jun 2025 06:01:07 -0400 Subject: [PATCH] update, revert --- Marlin/src/feature/fwretract.h | 4 +- Marlin/src/lcd/e3v2/creality/dwin.cpp | 309 +++++++++++++------------- 2 files changed, 153 insertions(+), 160 deletions(-) diff --git a/Marlin/src/feature/fwretract.h b/Marlin/src/feature/fwretract.h index db2a62c8d4..6bc9ff438e 100644 --- a/Marlin/src/feature/fwretract.h +++ b/Marlin/src/feature/fwretract.h @@ -56,8 +56,8 @@ public: #endif static Flags retracted; // Which extruders are currently retracted - static float current_retract[EXTRUDERS], // Retract value used by planner - current_hop; // Hop value used by planner + static float current_retract[EXTRUDERS]; // Retract value used by planner + static float current_hop; // Hop value used by planner FWRetract() { reset(); } diff --git a/Marlin/src/lcd/e3v2/creality/dwin.cpp b/Marlin/src/lcd/e3v2/creality/dwin.cpp index a1fdcbfead..8fcc149e79 100644 --- a/Marlin/src/lcd/e3v2/creality/dwin.cpp +++ b/Marlin/src/lcd/e3v2/creality/dwin.cpp @@ -101,7 +101,7 @@ #define UNITFDIGITS 1 #define MINUNITMULT pow(10, UNITFDIGITS) -#define DWIN_VAR_UPDATE_INTERVAL 1024 +#define DWIN_VAR_UPDATE_INTERVAL 1000 #define DWIN_SCROLL_UPDATE_INTERVAL SEC_TO_MS(2) #define DWIN_REMAIN_TIME_UPDATE_INTERVAL SEC_TO_MS(20) @@ -460,7 +460,7 @@ void drawBackFirst(const bool is_sel=true) { // #define CASE_BACK 0 -#define MOTION_CASE_RATE 1 +#define MOTION_CASE_SPEED 1 #define MOTION_CASE_ACCEL 2 #define MOTION_CASE_JERK (MOTION_CASE_ACCEL + ENABLED(CLASSIC_JERK)) #define MOTION_CASE_STEPS (MOTION_CASE_JERK + 1) @@ -723,7 +723,7 @@ void itemPrepareLang(const uint8_t row) { itemAreaCopy(239, 134, 266, 146, row); else { #ifdef USE_STRING_TITLES - dwinDrawLabel(row, F("UI Language")); + dwinDrawLabel(row, GET_TEXT_F(MSG_UI_LANGUAGE)); #else itemAreaCopy(1, 194, 96, 206, row); // "LCD Language" #endif @@ -1003,7 +1003,7 @@ void drawMotionMenu() { if (hmiIsChinese()) { dwinFrameTitleCopy(1, 16, 28, 13); // "Motion" - itemAreaCopy(173, 133, 228, 147, MOTION_CASE_RATE); // Max speed + itemAreaCopy(173, 133, 228, 147, MOTION_CASE_SPEED); // Max speed itemAreaCopy(173, 133, 200, 147, MOTION_CASE_ACCEL); // Max... itemAreaCopy(28, 149, 69, 161, MOTION_CASE_ACCEL, 30, 1); // ...Acceleration #if ENABLED(CLASSIC_JERK) @@ -1020,14 +1020,14 @@ void drawMotionMenu() { dwinFrameTitleCopy(144, 16, 46, 11); // "Motion" #endif #ifdef USE_STRING_TITLES - dwinDrawLabel(MOTION_CASE_RATE, F("Feedrate")); // "Feedrate" + dwinDrawLabel(MOTION_CASE_SPEED, GET_TEXT_F(MSG_SPEED)); // "Speed" dwinDrawLabel(MOTION_CASE_ACCEL, GET_TEXT_F(MSG_ACCELERATION)); // "Acceleration" #if ENABLED(CLASSIC_JERK) dwinDrawLabel(MOTION_CASE_JERK, GET_TEXT_F(MSG_JERK)); // "Jerk" #endif dwinDrawLabel(MOTION_CASE_STEPS, GET_TEXT_F(MSG_STEPS_PER_MM)); // "Steps/mm" #else - say_max_en(MOTION_CASE_RATE); say_speed_en(30, MOTION_CASE_RATE); // "Max Speed" + say_max_en(MOTION_CASE_SPEED); say_speed_en(30, MOTION_CASE_SPEED); // "Max Speed" say_max_accel_en(MOTION_CASE_ACCEL); // "Max Acceleration" #if ENABLED(CLASSIC_JERK) say_max_en(MOTION_CASE_JERK); say_jerk_en(MOTION_CASE_JERK); // "Max Jerk" @@ -1041,7 +1041,7 @@ void drawMotionMenu() { uint8_t i = 0; #define _MOTION_ICON(N) drawMenuLine(++i, ICON_MaxSpeed + (N) - 1) - _MOTION_ICON(MOTION_CASE_RATE); drawMoreIcon(i); + _MOTION_ICON(MOTION_CASE_SPEED); drawMoreIcon(i); _MOTION_ICON(MOTION_CASE_ACCEL); drawMoreIcon(i); #if ENABLED(CLASSIC_JERK) _MOTION_ICON(MOTION_CASE_JERK); drawMoreIcon(i); @@ -1058,28 +1058,23 @@ void drawMotionMenu() { void dwinPopupTemperature(const bool toohigh) { clearPopupArea(); drawPopupBkgd105(); - if (toohigh) { - dwinIconShow(ICON, ICON_TempTooHigh, 100, 165); - if (hmiIsChinese()) { + dwinIconShow(ICON, toohigh ? ICON_TempTooHigh : ICON_TempTooLow, 100, 105); + if (hmiIsChinese()) { + if (toohigh) { dwinFrameAreaCopy(1, 103, 371, 237, 386, 52, 285); // Temp Too High dwinFrameAreaCopy(1, 151, 389, 185, 402, 187, 285); dwinFrameAreaCopy(1, 189, 389, 271, 402, 95, 310); } else { - dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (DWIN_WIDTH - MENU_CHR_W * 13) / 2, 300, F("Nozzle or Bed")); - dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (DWIN_WIDTH - MENU_CHR_W * 20) / 2, 300, GET_TEXT_F(MSG_TEMP_TOO_HIGH)); - } - } - else { - dwinIconShow(ICON, ICON_TempTooLow, 100, 165); - if (hmiIsChinese()) { dwinFrameAreaCopy(1, 103, 371, 270, 386, 52, 285); // Tenp Too Low dwinFrameAreaCopy(1, 189, 389, 271, 402, 95, 310); } - else { - dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (DWIN_WIDTH - MENU_CHR_W * 13) / 2, 300, F("Nozzle or Bed")); - dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (DWIN_WIDTH - MENU_CHR_W * 19) / 2, 300, GET_TEXT_F(MSG_TEMP_TOO_LOW)); - } + dwinIconShow(ICON, ICON_Confirm_C, 86, 280); + } + else { + dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (DWIN_WIDTH - MENU_CHR_W * 13) / 2, 300, F("Nozzle or Bed")); + dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (DWIN_WIDTH - MENU_CHR_W * 19) / 2, 300, toohigh ? GET_TEXT_F(MSG_TEMP_TOO_HIGH) : GET_TEXT_F(MSG_TEMP_TOO_LOW)); + dwinIconShow(ICON, ICON_Confirm_E, 86, 280); } } @@ -1090,7 +1085,7 @@ void drawMotionMenu() { void popupWindowETempTooLow() { clearMainWindow(); drawPopupBkgd60(); - dwinIconShow(ICON, ICON_TempTooLow, 100, 105); + dwinIconShow(ICON, ICON_TempTooLow, 102, 105); if (hmiIsChinese()) { dwinFrameAreaCopy(1, 103, 371, 136, 386, 69, 240); // Nozzle Too Cold dwinFrameAreaCopy(1, 170, 371, 270, 386, 69 + 33, 240); @@ -1192,9 +1187,18 @@ void drawPrintingScreen() { dwinFrameAreaCopy(1, 65, 72, 128, 86, 178, y); // "Remain" } else { - dwinFrameTitleCopy(42, 0, 47, 14); // "Printing" - dwinFrameAreaCopy(1, 1, 43, 97, 59, 43, y); // "Printing Time" - dwinFrameAreaCopy(1, 100, 43, 152, 56, 178, y); // "Remain" + #ifdef USE_STRING_HEADINGS + drawTitle(GET_TEXT_F(MSG_PRINTING)); + #else + dwinFrameTitleCopy(42, 0, 47, 14); // "Printing" + #endif + #ifdef USE_STRING_TITLES + dwinDrawString(false, font8x16, COLOR_WHITE, COLOR_BG_BLACK, 43, y, GET_TEXT_F(MSG_INFO_PRINT_TIME)); + dwinDrawString(false, font8x16, COLOR_WHITE, COLOR_BG_BLACK, 178, y, GET_TEXT_F(MSG_REMAINING_TIME)); + #else + dwinFrameAreaCopy(1, 1, 43, 97, 59, 43, y); // "Printing Time" + dwinFrameAreaCopy(1, 100, 43, 152, 56, 178, y); // "Remain" + #endif } } @@ -2487,7 +2491,7 @@ void itemAdvHotendPID(const uint8_t row) { } else { #ifdef USE_STRING_TITLES - dwinDrawLabel(row, F("Hotend PID")); + dwinDrawLabel(row, F(STR_HOTEND_PID)); #else itemAreaCopy(96, 104, 167, 114, row); // "Hotend PID" #endif @@ -2501,7 +2505,7 @@ void itemAdvBedPID(const uint8_t row) { } else { #ifdef USE_STRING_TITLES - dwinDrawLabel(row, F("Bed PID")); + dwinDrawLabel(row, F(STR_BED_PID)); #else itemAreaCopy(241, 104, 263, 115, row); // "Bed" itemAreaCopy(145, 104, 167, 114, row, 27); // "PID" @@ -2832,7 +2836,7 @@ void drawTemperatureMenu() { dwinDrawLabel(TEMP_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED)); #endif #if HAS_PREHEAT - dwinDrawLabel(TEMP_CASE_PLA, F(PREHEAT_1_LABEL " Preheat Settings")); + dwinDrawLabel(TEMP_CASE_PLA, GET_TEXT_F(MSG_PREHEAT_1_SETTINGS)); #if PREHEAT_COUNT > 1 dwinDrawLabel(TEMP_CASE_ABS, F(PREHEAT_2_LABEL " Preheat Settings")); #endif @@ -3144,9 +3148,9 @@ void hmiTemperature() { dwinFrameTitleCopy(56, 15, 85, 14); // "Temperature" TODO: "PLA Settings" #endif #ifdef USE_STRING_TITLES - dwinDrawLabel(PREHEAT_CASE_TEMP, F("Nozzle Temp")); + dwinDrawLabel(PREHEAT_CASE_TEMP, GET_TEXT_F(MSG_TEMP_NOZZLE)); #if HAS_HEATED_BED - dwinDrawLabel(PREHEAT_CASE_BED, F("Bed Temp")); + dwinDrawLabel(PREHEAT_CASE_BED, GET_TEXT_F(MSG_TEMP_BED)); #endif #if HAS_FAN dwinDrawLabel(PREHEAT_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED)); @@ -3220,14 +3224,14 @@ void hmiTemperature() { } else { #ifdef USE_STRING_HEADINGS - drawTitle(F("ABS Settings")); // TODO: GET_TEXT_F + drawTitle(F(PREHEAT_1_LABEL " Settings")); // TODO: GET_TEXT_F #else dwinFrameTitleCopy(56, 15, 85, 14); // "Temperature" TODO: "ABS Settings" #endif #ifdef USE_STRING_TITLES - dwinDrawLabel(PREHEAT_CASE_TEMP, F("Nozzle Temp")); + dwinDrawLabel(PREHEAT_CASE_TEMP, GET_TEXT_F(MSG_TEMP_NOZZLE)); #if HAS_HEATED_BED - dwinDrawLabel(PREHEAT_CASE_BED, F("Bed Temp")); + dwinDrawLabel(PREHEAT_CASE_BED, GET_TEXT_F(MSG_TEMP_BED)); #endif #if HAS_FAN dwinDrawLabel(PREHEAT_CASE_FAN, GET_TEXT_F(MSG_FAN_SPEED)); @@ -3303,16 +3307,16 @@ void drawMaxSpeedMenu() { } else { #ifdef USE_STRING_HEADINGS - drawTitle(F("Max Speed (mm/s)")); // TODO: GET_TEXT_F + drawTitle(GET_TEXT_F(MSG_MAX_SPEED)); #else dwinFrameTitleCopy(144, 16, 46, 11); // "Max Speed (mm/s)" #endif #ifdef USE_STRING_TITLES - dwinDrawLabel(1, F("Max Feedrate X")); - dwinDrawLabel(2, F("Max Feedrate Y")); - dwinDrawLabel(3, F("Max Feedrate Z")); + dwinDrawLabel(1, GET_TEXT_F(MSG_VMAX_A)); + dwinDrawLabel(2, GET_TEXT_F(MSG_VMAX_B)); + dwinDrawLabel(3, GET_TEXT_F(MSG_VMAX_C)); #if HAS_HOTEND - dwinDrawLabel(4, F("Max Feedrate E")); + dwinDrawLabel(4, GET_TEXT_F(MSG_VMAX_E)); #endif #else say_max_en(1); say_speed_en(30, 1); say_x_en(73, 1); // "Max Speed X" @@ -3362,11 +3366,11 @@ void drawMaxAccelMenu() { dwinFrameTitleCopy(144, 16, 46, 11); // "Acceleration" #endif #ifdef USE_STRING_TITLES - dwinDrawLabel(1, F("Max Accel X")); - dwinDrawLabel(2, F("Max Accel Y")); - dwinDrawLabel(3, F("Max Accel Z")); + dwinDrawLabel(1, F(MSG_AMAX_A)); + dwinDrawLabel(2, F(MSG_AMAX_B)); + dwinDrawLabel(3, F(MSG_AMAX_C)); #if HAS_HOTEND - dwinDrawLabel(4, F("Max Accel E")); + dwinDrawLabel(4, F(MSG_AMAX_E)); #endif #else say_max_accel_en(1); say_x_en(112, 1); // "Max Acceleration X" @@ -3518,7 +3522,7 @@ void hmiMotion() { index_control = MROWS; drawControlMenu(); break; - case MOTION_CASE_RATE: + case MOTION_CASE_SPEED: checkkey = ID_MaxSpeed; select_speed.reset(); drawMaxSpeedMenu(); @@ -3999,7 +4003,7 @@ void hmiMaxSpeed() { } else { // Back checkkey = ID_Motion; - select_motion.now = MOTION_CASE_RATE; + select_motion.now = MOTION_CASE_SPEED; drawMotionMenu(); } } @@ -4123,130 +4127,119 @@ void eachMomentUpdate() { updateVariable(); } - if (PENDING(ms, next_rts_update_ms)) return; - next_rts_update_ms = ms + DWIN_SCROLL_UPDATE_INTERVAL; - - if (checkkey == ID_PrintProcess) { - // if print done - if (hmiFlag.print_finish && !hmiFlag.done_confirm_flag) { - hmiFlag.print_finish = false; - hmiFlag.done_confirm_flag = true; - - TERN_(POWER_LOSS_RECOVERY, recovery.cancel()); - - planner.finish_and_disable(); - - // show percent bar and value - _card_percent = 0; - drawPrintProgressBar(); - - // show print done confirm - dwinDrawRectangle(1, COLOR_BG_BLACK, 0, 250, DWIN_WIDTH - 1, STATUS_Y); - dwinIconShow(ICON, hmiIsChinese() ? ICON_Confirm_C : ICON_Confirm_E, 86, 283); - } - else if (hmiFlag.pause_flag != printingIsPaused()) { - // print status update - hmiFlag.pause_flag = printingIsPaused(); - iconResumeOrPause(); - } - } - - // pause after homing - if (hmiFlag.pause_action && printingIsPaused() && !planner.has_blocks_queued()) { - hmiFlag.pause_action = false; - #if ENABLED(PAUSE_HEAT) - TERN_(HAS_HOTEND, resume_hotend_temp = thermalManager.degTargetHotend(0)); - TERN_(HAS_HEATED_BED, resume_bed_temp = thermalManager.degTargetBed()); - thermalManager.disable_all_heaters(); - #endif - queue.inject(F("G1 F1200 X0 Y0")); - } - - if (card.isPrinting() && checkkey == ID_PrintProcess) { // Print process - const uint8_t card_pct = card.percentDone(); - static uint8_t last_cardpercentValue = 101; - if (last_cardpercentValue != card_pct) { // print percent - last_cardpercentValue = card_pct; - if (card_pct) { - _card_percent = card_pct; + if (!PENDING(ms, next_rts_update_ms)) { + next_rts_update_ms = ms + DWIN_SCROLL_UPDATE_INTERVAL; + if (checkkey == ID_PrintProcess) { + // If print done + if (hmiFlag.print_finish && !hmiFlag.done_confirm_flag) { + hmiFlag.print_finish = false; + hmiFlag.done_confirm_flag = true; + TERN_(POWER_LOSS_RECOVERY, recovery.cancel()); + planner.finish_and_disable(); + // show percent bar and value + _card_percent = 0; drawPrintProgressBar(); + // Show print done confirm + dwinDrawRectangle(1, COLOR_BG_BLACK, 0, 250, DWIN_WIDTH - 1, STATUS_Y); + dwinIconShow(ICON, hmiIsChinese() ? ICON_Confirm_C : ICON_Confirm_E, 86, 283); + } + else if (hmiFlag.pause_flag != printingIsPaused()) { + // Print status update + hmiFlag.pause_flag = printingIsPaused(); + iconResumeOrPause(); } } - duration_t elapsed = print_job_timer.duration(); // Print timer - - // Print time so far - static uint16_t last_Printtime = 0; - const uint16_t min = (elapsed.value % 3600) / 60; - if (last_Printtime != min) { // 1 minute update - last_Printtime = min; - drawPrintProgressElapsed(); + // Pause after homing + if (hmiFlag.pause_action && printingIsPaused() && !planner.has_blocks_queued()) { + hmiFlag.pause_action = false; + #if ENABLED(PAUSE_HEAT) + TERN_(HAS_HOTEND, resume_hotend_temp = thermalManager.degTargetHotend(0)); + TERN_(HAS_HEATED_BED, resume_bed_temp = thermalManager.degTargetBed()); + thermalManager.disable_all_heaters(); + #endif + queue.inject(F("G1 F1200 X0 Y0")); } - // Estimate remaining time every 20 seconds - static millis_t next_remain_time_update = 0; - if (_card_percent > 1 && ELAPSED(ms, next_remain_time_update) && !hmiFlag.heat_flag) { - _remain_time = (elapsed.value - dwin_heat_time) / (_card_percent * 0.01f) - (elapsed.value - dwin_heat_time); - next_remain_time_update += DWIN_REMAIN_TIME_UPDATE_INTERVAL; - drawPrintProgressRemain(); - } - } - else if (dwin_abort_flag && !hmiFlag.home_flag) { // Print Stop - dwin_abort_flag = false; - hmiValues.printSpeed = feedrate_percentage = 100; - dwin_zoffset = BABY_Z_VAR; - select_page.set(0); - gotoMainMenu(); - } - #if ENABLED(POWER_LOSS_RECOVERY) - else if (DWIN_lcd_sd_status && recovery.ui_flag_resume) { // Resume interrupted print - recovery.ui_flag_resume = false; - - auto update_selection = [&](const bool sel) { - hmiFlag.select_flag = sel; - const uint16_t c1 = sel ? COLOR_BG_WINDOW : COLOR_SELECT; - dwinDrawRectangle(0, c1, 25, 306, 126, 345); - dwinDrawRectangle(0, c1, 24, 305, 127, 346); - const uint16_t c2 = sel ? COLOR_SELECT : COLOR_BG_WINDOW; - dwinDrawRectangle(0, c2, 145, 306, 246, 345); - dwinDrawRectangle(0, c2, 144, 305, 247, 346); - }; - - popupWindowResume(); - update_selection(true); - - char * const name = card.longest_filename(); - const int8_t npos = _MAX(0U, DWIN_WIDTH - strlen(name) * (MENU_CHR_W)) / 2; - dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, npos, 252, name); - dwinUpdateLCD(); - - bool recovery_flag = true; - while (recovery_flag) { - EncoderState encoder_diffState = encoderReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (encoder_diffState == ENCODER_DIFF_ENTER) { - recovery_flag = false; - if (hmiFlag.select_flag) break; - queue.inject(F("M1000C")); - hmiStartFrame(true); - return; - } - else - update_selection(encoder_diffState == ENCODER_DIFF_CW); - - dwinUpdateLCD(); + if (card.isPrinting() && checkkey == ID_PrintProcess) { // Print process + const uint8_t card_pct = card.percentDone(); + static uint8_t last_cardpercentValue = 101; + if (last_cardpercentValue != card_pct) { // Print percent + last_cardpercentValue = card_pct; + if (card_pct) { + _card_percent = card_pct; + drawPrintProgressBar(); } } - select_print.set(0); - hmiValues.show_mode = 0; - queue.inject(F("M1000")); - gotoPrintProcess(); - drawStatusArea(true); - } - #endif // POWER_LOSS_RECOVERY + // Print time so far + duration_t elapsed = print_job_timer.duration(); + static uint16_t last_Printtime = 0; + const uint16_t min = (elapsed.value % 3600) / 60; + if (last_Printtime != min) { // 1 minute update + last_Printtime = min; + drawPrintProgressElapsed(); + } - dwinUpdateLCD(); + // Estimate remaining time every 20 seconds + static millis_t next_remain_time_update = 0; + if (_card_percent > 1 && ELAPSED(ms, next_remain_time_update) && !hmiFlag.heat_flag) { + _remain_time = (elapsed.value - dwin_heat_time) / (_card_percent * 0.01f) - (elapsed.value - dwin_heat_time); + next_remain_time_update += DWIN_REMAIN_TIME_UPDATE_INTERVAL; + drawPrintProgressRemain(); + } + } + else if (dwin_abort_flag && !hmiFlag.home_flag) { // Print Stop + dwin_abort_flag = false; + hmiValues.printSpeed = feedrate_percentage = 100; + dwin_zoffset = BABY_Z_VAR; + select_page.set(0); + gotoMainMenu(); + } + #if ENABLED(POWER_LOSS_RECOVERY) + else if (DWIN_lcd_sd_status && recovery.ui_flag_resume) { // Resume interrupted print + recovery.ui_flag_resume = false; + auto update_selection = [&](const bool sel) { + hmiFlag.select_flag = sel; + const uint16_t c1 = sel ? COLOR_BG_WINDOW : COLOR_SELECT; + dwinDrawRectangle(0, c1, 25, 306, 126, 345); + dwinDrawRectangle(0, c1, 24, 305, 127, 346); + const uint16_t c2 = sel ? COLOR_SELECT : COLOR_BG_WINDOW; + dwinDrawRectangle(0, c2, 145, 306, 246, 345); + dwinDrawRectangle(0, c2, 144, 305, 247, 346); + }; + popupWindowResume(); + update_selection(true); + char * const name = card.longest_filename(); + const int8_t npos = _MAX(0U, DWIN_WIDTH - strlen(name) * (MENU_CHR_W)) / 2; + dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, npos, 252, name); + dwinUpdateLCD(); + bool recovery_flag = true; + while (recovery_flag) { + EncoderState encoder_diffState = encoderReceiveAnalyze(); + if (encoder_diffState != ENCODER_DIFF_NO) { + if (encoder_diffState == ENCODER_DIFF_ENTER) { + recovery_flag = false; + if (hmiFlag.select_flag) break; + queue.inject(F("M1000C")); + hmiStartFrame(true); + return; + } + else + update_selection(encoder_diffState == ENCODER_DIFF_CW); + dwinUpdateLCD(); + } + } + select_print.set(0); + hmiValues.show_mode = 0; + queue.inject(F("M1000")); + gotoPrintProcess(); + drawStatusArea(true); + } + #endif // POWER_LOSS_RECOVERY + + dwinUpdateLCD(); + } } void dwinHandleScreen() {