diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 78a5dad7e8..f1b8562d8c 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -128,7 +128,7 @@ // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_CREALITY_V453 + #define MOTHERBOARD BOARD_CREALITY_V452 #endif // Name displayed in the LCD "Ready" message and Info menu diff --git a/Marlin/Version.h b/Marlin/Version.h index aa0db85dca..f70f37fb93 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -28,7 +28,7 @@ /** * Marlin release version identifier */ -#define SHORT_BUILD_VERSION "TM3D2.0.7.2-CR6-B" +#define SHORT_BUILD_VERSION "TM3D2.0.7.2-CR6-C" /** * Verbose version identifier which should contain a reference to the location diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp index 850a69fb41..27d0ca5361 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp @@ -608,14 +608,14 @@ void DGUSScreenHandler::OnMeshLevelingUpdate(const int8_t xpos, const int8_t ypo } } - if (MeshLevelIndex == GRID_MAX_POINTS) { + if (MeshLevelIndex == GRID_MAX_POINTS-1) { // Done SERIAL_ECHOLN("Mesh Complete - Saving"); settings.save(); if(!ExtUI::isPrinting()) { - thermalManager.disable_all_heaters(); + //thermalManager.disable_all_heaters(); GotoScreen(DGUSLCD_SCREEN_ZOFFSET_LEVEL); } else @@ -1148,6 +1148,20 @@ void DGUSScreenHandler::HandleToggleTouchScreenMute(DGUS_VP_Variable &var, void ScreenHandler.skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel } +#if HAS_PROBE_SETTINGS +void DGUSScreenHandler::HandleToggleProbeHeaters(DGUS_VP_Variable &var, void *val_ptr) { + probe.settings.turn_heaters_off = !probe.settings.turn_heaters_off; + + RequestSaveSettings(); +} + +void DGUSScreenHandler::HandleToggleProbePreheatTemp(DGUS_VP_Variable &var, void *val_ptr) { + ScreenHandler.DGUSLCD_SetValueDirectly(var, val_ptr); + + RequestSaveSettings(); +} +#endif + void DGUSScreenHandler::HandleTouchScreenStandbyBrightnessSetting(DGUS_VP_Variable &var, void *val_ptr) { uint16_t newvalue = swap16(*(uint16_t*)val_ptr); @@ -1174,10 +1188,10 @@ void DGUSScreenHandler::HandleFanToggle() { } void DGUSScreenHandler::UpdateNewScreen(DGUSLCD_Screens newscreen, bool save_current_screen) { - DEBUG_ECHOLNPAIR("SetNewScreen: ", newscreen); + SERIAL_ECHOLNPAIR("SetNewScreen: ", newscreen); if (save_current_screen && current_screen != DGUSLCD_SCREEN_POPUP && current_screen != DGUSLCD_SCREEN_CONFIRM) { - DEBUG_ECHOLNPAIR("SetNewScreen (saving): ", newscreen); + SERIAL_ECHOLNPAIR("SetNewScreen (saving): ", newscreen); memmove(&past_screens[1], &past_screens[0], sizeof(past_screens) - 1); past_screens[0] = current_screen; } diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h index 1ae5a09f66..b959e4a647 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h +++ b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h @@ -98,6 +98,11 @@ public: static void HandleToggleTouchScreenStandbySetting(DGUS_VP_Variable &var, void *val_ptr); static void HandleTouchScreenStandbyBrightnessSetting(DGUS_VP_Variable &var, void *val_ptr); + #if HAS_PROBE_SETTINGS + static void HandleToggleProbeHeaters(DGUS_VP_Variable &var, void *val_ptr); + static void HandleToggleProbePreheatTemp(DGUS_VP_Variable &var, void *val_ptr); + #endif + #if HAS_PID_HEATING // Hook for "Change this temperature PID para" static void HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr); @@ -293,7 +298,6 @@ public: static void DGUSLCD_SendFloatAsIntValueToDisplay(DGUS_VP_Variable &var) { if (var.memadr) { float f = *(float *)var.memadr; - DEBUG_ECHOLNPAIR_F(" >> ", f, 6); f *= cpow(10, decimals); // Round - truncated values look like skipped numbers @@ -328,8 +332,6 @@ public: static inline DGUSLCD_Screens getCurrentScreen() { return current_screen; } - static void updateCurrentScreen(DGUSLCD_Screens current); - static bool HandlePendingUserConfirmation(); static float feed_amount; diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.cpp index 3387c33001..474fb27607 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.cpp +++ b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.cpp @@ -288,13 +288,13 @@ const uint16_t VPList_TuneScreen[] PROGMEM = { VP_T_Bed_Is, VP_T_Bed_Set,// VP_BED_STATUS, #endif VP_Z_OFFSET, - //VP_Fan0_Percentage, VP_Feedrate_Percentage, VP_LED_TOGGLE, VP_FAN_TOGGLE, VP_Fan0_Percentage, - VP_FWRETRACT_NAV_BUTTON_ICON, + + VP_LINEAR_ADVANCE_FACTOR, 0x0000 }; @@ -388,6 +388,24 @@ const uint16_t VPList_FWRetractTune[] PROGMEM = { 0x0000 }; +const uint16_t VPList_LevelingSettings[] PROGMEM = { +#if HOTENDS >= 1 + VP_T_E0_Is, VP_T_E0_Set,// VP_E0_STATUS, + #endif + #if HAS_HEATED_BED + VP_T_Bed_Is, VP_T_Bed_Set,// VP_BED_STATUS, + #endif + VP_Z_OFFSET, + //VP_Fan0_Percentage, + VP_Feedrate_Percentage, + + VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_ICON, + VP_TOGGLE_PROBE_PREHEAT_HOTEND_TEMP, + VP_TOGGLE_PROBE_PREHEAT_BED_TEMP, + + 0x0000 +}; + // Toggle button handler void DGUSCrealityDisplay_HandleToggleButton(DGUS_VP_Variable &var, void *val_ptr) { switch (*(uint16_t*)var.memadr) { @@ -457,6 +475,9 @@ const struct VPMapping VPMap[] PROGMEM = { { DGUSLCD_SCREEN_TUNEFWRETRACT, VPList_FWRetractTune }, + { DGUSLCD_SCREEN_ESTEPS_CALIBRATION_RESULTS, VPList_EstepsCalibration }, + { DGUSLCD_SCREEN_LEVELING_SETTINGS, VPList_LevelingSettings }, + { 0 , nullptr } // List is terminated with an nullptr as table entry. }; @@ -550,6 +571,17 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_SCREENCHANGE, nullptr, ScreenHandler.ScreenChangeHook, nullptr), VPHELPER(VP_CONFIRMED, nullptr, ScreenHandler.ScreenConfirmedOK, nullptr), + #if HAS_PROBE_SETTINGS + VPHELPER(VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_BUTTON, nullptr, ScreenHandler.HandleToggleProbeHeaters, nullptr), + VPHELPER(VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_ICON, &probe.settings.turn_heaters_off, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), + + VPHELPER(VP_TOGGLE_PROBE_PREHEAT_HOTEND_TEMP, &probe.settings.preheat_hotend_temp, ScreenHandler.HandleToggleProbePreheatTemp, ScreenHandler.DGUSLCD_SendWordValueToDisplay), + VPHELPER(VP_TOGGLE_PROBE_PREHEAT_BED_TEMP, &probe.settings.preheat_bed_temp, ScreenHandler.HandleToggleProbePreheatTemp, ScreenHandler.DGUSLCD_SendWordValueToDisplay), + + VPHELPER(VP_TOGGLE_PROBE_SETTINGS_NAV_BUTTON, nullptr, (ScreenHandler.DGUSLCD_NavigateToPage), nullptr), + + #endif + // Feed VPHELPER(VP_FEED_AMOUNT, &ScreenHandler.feed_amount, ScreenHandler.HandleFeedAmountChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>), @@ -580,7 +612,6 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER_STR(VP_SD_FileName5, nullptr, VP_SD_FileName_LEN, nullptr, ScreenHandler.DGUSLCD_SD_SendFilename), // Firmware retract -#if ENABLED(FWRETRACT) VPHELPER(VP_FWRETRACT_NAV_BUTTON, nullptr, ScreenHandler.DGUSLCD_NavigateToPage, nullptr), VPHELPER(VP_FWRETRACT_RETRACT_LENGTH, &fwretract.settings.retract_length, ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<1>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>), @@ -590,19 +621,14 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_FWRETRACT_RESTART_LENGTH, &fwretract.settings.retract_recover_extra, ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<1>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>), VPHELPER(VP_FWRETRACT_RESTART_FEEDRATE, &fwretract.settings.retract_recover_feedrate_mm_s, ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<1>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>), - #if ENABLED(FWRETRACT_AUTORETRACT) - VPHELPER(VP_FWRETRACT_INDICATOR_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), - VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), - VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON, &fwretract.autoretract_enabled, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr), - #else - VPHELPER(VP_FWRETRACT_INDICATOR_ICON, nullptr, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), - VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON_ICON, nullptr, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), - VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON, nullptr, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr), - #endif + VPHELPER(VP_FWRETRACT_INDICATOR_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), + VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), + VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON, &fwretract.autoretract_enabled, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr), + +#if ENABLED(LIN_ADVANCE) + VPHELPER(VP_LINEAR_ADVANCE_FACTOR, &planner.extruder_advance_K[0], ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<2>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<2>), #endif - // ... Sending after init does not always work - VPHELPER(VP_FWRETRACT_NAV_BUTTON_ICON, &ScreenHandler.fwretract_available, nullptr, (ScreenHandler.DGUSLCD_SendIconValue)), // Additional buttons VPHELPER(VP_MUTE_TOGGLE, nullptr, ScreenHandler.HandleToggleTouchScreenMute, nullptr), @@ -623,7 +649,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { { .VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM }, { .VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM }, { .VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM }, - { .VP = VP_MSGSTR4, .memadr = nullptr, .size = VP_MSGSTR4_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM }, + //{ .VP = VP_MSGSTR4, .memadr = nullptr, .size = VP_MSGSTR4_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM }, VPHELPER(0, 0, 0, 0) // must be last entry. }; diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h index 2d587d10bc..c378ef03a2 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h +++ b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h @@ -73,7 +73,10 @@ enum DGUSLCD_Screens : uint8_t { DGUSLCD_SCREEN_PIDTUNE_CALIBRATION = 68, DGUSLCD_SCREEN_ESTEPS_CALIBRATION = 69, - DGUSLCD_SCREEN_TUNEFWRETRACT = 70 + DGUSLCD_SCREEN_TUNEFWRETRACT = 70, + + DGUSLCD_SCREEN_ESTEPS_CALIBRATION_RESULTS = 71, + DGUSLCD_SCREEN_LEVELING_SETTINGS = 72 }; // Display Memory layout used (T5UID) @@ -191,7 +194,7 @@ constexpr uint16_t VP_MARLIN_VERSION = 0x2222; constexpr uint8_t VP_MARLIN_VERSION_LEN = 20; // there is more space on the display, if needed. constexpr uint16_t VP_MARLIN_WEBSITE = 0x2242; -constexpr uint8_t VP_MARLIN_WEBSITE_LEN = 32; +constexpr uint8_t VP_MARLIN_WEBSITE_LEN = 32; constexpr uint16_t VP_STANDBY_BACKLIGHT_ICON = 0x2280; constexpr uint16_t VP_STANDBY_BACKLIGHT_TOGGLE = 0x2282; @@ -353,7 +356,6 @@ constexpr uint16_t VP_FAN_TOGGLE = 0x101E; constexpr uint16_t VP_LED_TOGGLE = 0x101F; constexpr uint16_t VP_MESH_LEVEL_TEMP = 0x108A; constexpr uint16_t VP_MESH_LEVEL_STATUS = 0x108D; -constexpr uint16_t VP_MESH_VALUE_START = 0x1300; constexpr uint16_t VP_FEED_AMOUNT = 0x1054; constexpr uint16_t VP_FEED_PROGRESS = 0x108e; @@ -378,7 +380,6 @@ constexpr uint16_t VP_PIDTUNE_START_BUTTON = 0x229B; // FWRetract constexpr uint16_t VP_FWRETRACT_NAV_BUTTON = 0x22AD; -constexpr uint16_t VP_FWRETRACT_NAV_BUTTON_ICON = 0x22AF; constexpr uint16_t VP_FWRETRACT_RETRACT_LENGTH = 0x22B1; constexpr uint16_t VP_FWRETRACT_RETRACT_FEEDRATE = 0x22B3; @@ -391,6 +392,19 @@ constexpr uint16_t VP_FWRETRACT_TOGGLE_BUTTON = 0x22BB; constexpr uint16_t VP_FWRETRACT_TOGGLE_BUTTON_ICON = 0x22BD; constexpr uint16_t VP_FWRETRACT_INDICATOR_ICON = 0x22BF; +// Other tuning +constexpr uint16_t VP_LINEAR_ADVANCE_FACTOR = 0x22AF; + +// Leveling settings +constexpr uint16_t VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_BUTTON = 0x22C1; +constexpr uint16_t VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_ICON = 0x22C3; + +constexpr uint16_t VP_TOGGLE_PROBE_PREHEAT_HOTEND_TEMP = 0x22C5; +constexpr uint16_t VP_TOGGLE_PROBE_PREHEAT_BED_TEMP = 0x22C7; + +constexpr uint16_t VP_TOGGLE_PROBE_SETTINGS_NAV_BUTTON = 0x22C9; + +constexpr uint16_t VP_MESH_VALUE_START = 0x1300; // E-steps calibration constexpr uint16_t VP_ESTEPS_CURRENT = 0x229d; @@ -419,9 +433,5 @@ constexpr uint16_t ICON_STANDBY_TOGGLE_OFF = 8; constexpr uint16_t ICON_FWRETRACT_AUTO_TOGGLE_ON = 9; constexpr uint16_t ICON_FWRETRACT_AUTO_TOGGLE_OFF = 10; - -constexpr uint16_t ICON_FWRETRACT_NAV_UNAVAILABLE = 14; -constexpr uint16_t ICON_FWRETRACT_NAV_AVAILABLE = 15; - -constexpr uint16_t ICON_FWRETRACT_AUTO_DISENGAGED = 16; // This icon deliberately does not exist -constexpr uint16_t ICON_FWRETRACT_AUTO_ENGAGED = 17; +constexpr uint16_t ICON_FWRETRACT_AUTO_DISENGAGED = 4; // This icon deliberately does not exist +constexpr uint16_t ICON_FWRETRACT_AUTO_ENGAGED = 3; \ No newline at end of file diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/EstepsHandler.cpp b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/EstepsHandler.cpp index fb5efffe39..a32d23c92b 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/EstepsHandler.cpp +++ b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/EstepsHandler.cpp @@ -102,8 +102,9 @@ void EstepsHandler::HandleStartButton(DGUS_VP_Variable &var, void *val_ptr) { if (!eAxisWasRelative) GcodeSuite::set_e_absolute(); // Done + ScreenHandler.GotoScreen(DGUSLCD_SCREEN_ESTEPS_CALIBRATION_RESULTS, false); ScreenHandler.Buzzer(0, 250); - SetStatusMessage(PSTR("Please measure remaining filament")); + SetStatusMessage(PSTR("Measure remaining filament")); } void EstepsHandler::HandleApplyButton(DGUS_VP_Variable &var, void *val_ptr) { @@ -116,9 +117,12 @@ void EstepsHandler::HandleApplyButton(DGUS_VP_Variable &var, void *val_ptr) { // Save & reset settings.save(); - Init(); ScreenHandler.Buzzer(0, 250); + + ScreenHandler.PopToOldScreen(); + ScreenHandler.GotoScreen(DGUSLCD_SCREEN_MAIN, false); + SetStatusMessage(PSTR("New e-steps value saved")); } diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/PageHandlers.cpp b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/PageHandlers.cpp index 3e904ce396..8bf77e4d49 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/PageHandlers.cpp +++ b/Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/PageHandlers.cpp @@ -30,16 +30,9 @@ void MainMenuHandler(DGUS_VP_Variable &var, unsigned short buttonValue) { case VP_BUTTON_MAINENTERKEY: switch (buttonValue) { case 1: - // Try to mount an unmounted card - if (!card.isMounted()) { - card.mount(); - - if (card.isMounted()) { - ExtUI::onMediaInserted(); - } - } - - ScreenHandler.GotoScreen(DGUSLCD_SCREEN_SDFILELIST); + // Try to mount an unmounted card (BTT SKR board has especially some trouble sometimes) + card.mount(); + ScreenHandler.SDCardInserted(); break; case 2: @@ -125,8 +118,9 @@ void LevelingModeHandler(DGUS_VP_Variable &var, unsigned short buttonValue) { case VP_BUTTON_PREPAREENTERKEY: if (buttonValue == 9) { - // If we're in the workflow of calibration from the home screen, there is no need to keep the heaters on at this point - thermalManager.disable_all_heaters(); + #if DISABLED(HOTEND_IDLE_TIMEOUT) + thermalManager.disable_all_heaters(); + #endif ScreenHandler.GotoScreen(DGUSLCD_SCREEN_MAIN); } @@ -390,11 +384,15 @@ void InfoMenuHandler(DGUS_VP_Variable &var, unsigned short buttonValue) { void change_filament_with_temp(PGM_P command, const uint16_t celsius) { // Heat if necessary if (ExtUI::getActualTemp_celsius(ExtUI::E0) < celsius && abs(ExtUI::getActualTemp_celsius(ExtUI::E0) - celsius) > 2) { + ScreenHandler.setstatusmessagePGM(PSTR("Heating up...")); + thermalManager.setTargetHotend(celsius, ExtUI::H0); thermalManager.wait_for_hotend(ExtUI::H0, false); } // Inject load filament command + ScreenHandler.setstatusmessagePGM(PSTR("Filament load/unload...")); + char cmd[64]; sprintf_P(cmd, command, ScreenHandler.feed_amount); @@ -407,6 +405,8 @@ void InfoMenuHandler(DGUS_VP_Variable &var, unsigned short buttonValue) { planner.synchronize(); SERIAL_ECHOPGM_P("- done"); + + ScreenHandler.setstatusmessagePGM(PSTR("Filament load/unload complete")); } void FeedHandler(DGUS_VP_Variable &var, unsigned short buttonValue) { @@ -422,7 +422,7 @@ void FeedHandler(DGUS_VP_Variable &var, unsigned short buttonValue) { case 1: dgusdisplay.WriteVariable(VP_FEED_PROGRESS, static_cast(10)); - change_filament_with_temp(PSTR("M701 L%f"), celsius); + change_filament_with_temp(PSTR("M701 L%f P0"), celsius); dgusdisplay.WriteVariable(VP_FEED_PROGRESS, static_cast(0)); break;