diff --git a/Marlin/src/core/macros.h b/Marlin/src/core/macros.h index 344ab04e74..c75d684566 100644 --- a/Marlin/src/core/macros.h +++ b/Marlin/src/core/macros.h @@ -658,11 +658,8 @@ #define IF_ELSE(TF) _IF_ELSE(_BOOL(TF)) #define _IF_ELSE(TF) _CAT(_IF_, TF) -#define _IF_1(V...) V _IF_1_ELSE -#define _IF_0(...) _IF_0_ELSE - -#define _IF_1_ELSE(...) -#define _IF_0_ELSE(V...) V +#define _IF_1(V...) V OMIT +#define _IF_0(...) EMIT #define HAS_ARGS(V...) _BOOL(FIRST(_END_OF_ARGUMENTS_ V)()) #define _END_OF_ARGUMENTS_() 0 diff --git a/Marlin/src/gcode/control/M605.cpp b/Marlin/src/gcode/control/M605.cpp index 167cdae4a9..56d7594b08 100644 --- a/Marlin/src/gcode/control/M605.cpp +++ b/Marlin/src/gcode/control/M605.cpp @@ -115,7 +115,7 @@ else if (!parser.seen('W')) // if no S or W parameter, the DXC mode gets reset to the user's default dual_x_carriage_mode = DEFAULT_DUAL_X_CARRIAGE_MODE; - #ifdef DEBUG_DXC_MODE + #if ENABLED(DEBUG_DXC_MODE) if (parser.seen('W')) { DEBUG_ECHO_START(); diff --git a/Marlin/src/lcd/extui/dgus/DGUSDisplay.cpp b/Marlin/src/lcd/extui/dgus/DGUSDisplay.cpp index 074dad96c2..94ea71817e 100644 --- a/Marlin/src/lcd/extui/dgus/DGUSDisplay.cpp +++ b/Marlin/src/lcd/extui/dgus/DGUSDisplay.cpp @@ -46,7 +46,7 @@ DGUSDisplay dgus; -#ifdef DEBUG_DGUS_COMM +#if ENABLED(DEBUG_DGUS_COMM) #define DEBUGLCDCOMM_ECHOPGM DEBUG_ECHOPGM #else #define DEBUGLCDCOMM_ECHOPGM(...) NOOP @@ -76,7 +76,22 @@ void DGUSDisplay::initDisplay() { requestScreen(TERN(SHOW_BOOTSCREEN, DGUS_SCREEN_BOOT, DGUS_SCREEN_MAIN)); } -void DGUSDisplay::writeVariable(uint16_t adr, const void *values, uint8_t valueslen, bool isstr) { +void DGUSDisplay::writeVariable_P(uint16_t adr, const void *values, uint8_t valueslen, bool isstr/*=false*/) { + const char* myvalues = static_cast(values); + bool strend = !myvalues; + writeHeader(adr, DGUS_CMD_WRITEVAR, valueslen); + while (valueslen--) { + char x; + if (!strend) x = pgm_read_byte(myvalues++); + if ((isstr && !x) || strend) { + strend = true; + x = ' '; + } + LCD_SERIAL.write(x); + } +} + +void DGUSDisplay::writeVariable(uint16_t adr, const void *values, uint8_t valueslen, bool isstr/*=false*/) { const char* myvalues = static_cast(values); bool strend = !myvalues; writeHeader(adr, DGUS_CMD_WRITEVAR, valueslen); @@ -120,21 +135,6 @@ void DGUSDisplay::writeVariable(uint16_t adr, long value) { writeVariable(adr, static_cast(&tmp), sizeof(long)); } -void DGUSDisplay::writeVariablePGM(uint16_t adr, const void *values, uint8_t valueslen, bool isstr) { - const char* myvalues = static_cast(values); - bool strend = !myvalues; - writeHeader(adr, DGUS_CMD_WRITEVAR, valueslen); - while (valueslen--) { - char x; - if (!strend) x = pgm_read_byte(myvalues++); - if ((isstr && !x) || strend) { - strend = true; - x = ' '; - } - LCD_SERIAL.write(x); - } -} - void DGUSDisplay::processRx() { #if ENABLED(SERIAL_STATS_RX_BUFFER_OVERRUNS) diff --git a/Marlin/src/lcd/extui/dgus/DGUSDisplay.h b/Marlin/src/lcd/extui/dgus/DGUSDisplay.h index 816360d3f3..6329d8fb23 100644 --- a/Marlin/src/lcd/extui/dgus/DGUSDisplay.h +++ b/Marlin/src/lcd/extui/dgus/DGUSDisplay.h @@ -60,15 +60,28 @@ public: static void initDisplay(); // Variable access. + static void writeVariable_P(uint16_t adr, const void *values, uint8_t valueslen, bool isstr=false); static void writeVariable(uint16_t adr, const void *values, uint8_t valueslen, bool isstr=false); - static void writeVariablePGM(uint16_t adr, const void *values, uint8_t valueslen, bool isstr=false); static void writeVariable(uint16_t adr, int16_t value); static void writeVariable(uint16_t adr, uint16_t value); static void writeVariable(uint16_t adr, uint8_t value); static void writeVariable(uint16_t adr, int8_t value); static void writeVariable(uint16_t adr, long value); - // Utility functions for bridging ui_api and dbus + static void writeStringVar_P(uint16_t adr, PGM_P const pstr, uint8_t vallen=32) { + writeVariable_P(adr, (const void *)pstr, vallen, true); + } + static void writeStringVar(uint16_t adr, const char * const cstr, uint8_t vallen=32) { + writeVariable(adr, (const void *)cstr, vallen, true); + } + static void writeStringVar(uint16_t adr, const uint16_t * const zhstr, uint8_t vallen=16) { + writeVariable(adr, (const void *)zhstr, vallen, true); + } + static void writeVariable(uint16_t adr, FSTR_P const fstr, uint8_t vallen=32) { + writeStringVar_P(adr, FTOP(fstr), vallen); + } + + // Utility functions for bridging ui_api and dgus template static void setVariable(DGUS_VP_Variable &var) { writeVariable(var.VP, (WireType)Getter(selector)); diff --git a/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.cpp index 00876f10e1..f85fc9beac 100644 --- a/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.cpp @@ -101,7 +101,7 @@ void DGUSScreenHandler::setStatusMessage(const char *msg) { } } -void DGUSScreenHandler::setstatusmessagePGM(PGM_P const msg) { +void DGUSScreenHandler::setStatusMessage_P(PGM_P const msg) { DGUS_VP_Variable ramcopy; if (populate_VPVar(VP_M117, &ramcopy)) { ramcopy.memadr = (void*) msg; @@ -164,10 +164,11 @@ void DGUSScreenHandler::sendStringToDisplay(DGUS_VP_Variable &var) { // overwrite the remainings with spaces.// var.size has the display buffer size! void DGUSScreenHandler::sendStringToDisplayPGM(DGUS_VP_Variable &var) { char *tmp = (char*) var.memadr; - dgus.writeVariablePGM(var.VP, tmp, var.size, true); + dgus.writeVariable_P(var.VP, tmp, var.size, true); } #if HAS_PID_HEATING + void DGUSScreenHandler::sendTemperaturePID(DGUS_VP_Variable &var) { float value = *(float *)var.memadr; value /= 10; @@ -200,7 +201,8 @@ void DGUSScreenHandler::sendStringToDisplayPGM(DGUS_VP_Variable &var) { tmp[1] = endian.lb[0]; dgus.writeVariable(var.VP, tmp, 2); } -#endif + +#endif // HAS_PID_HEATING #if ENABLED(PRINTCOUNTER) @@ -221,7 +223,7 @@ void DGUSScreenHandler::sendStringToDisplayPGM(DGUS_VP_Variable &var) { dgus.writeVariable(VP_PrintsTotal, buf, var.size, true); } -#endif +#endif // PRINTCOUNTER // Send fan status value to the display. #if HAS_FAN @@ -249,8 +251,7 @@ void DGUSScreenHandler::sendHeaterStatusToDisplay(DGUS_VP_Variable &var) { void DGUSScreenHandler::sendWaitingStatusToDisplay(DGUS_VP_Variable &var) { // In FYSETC UI design there are 10 statuses to loop - static uint16_t period = 0; - static uint16_t index = 0; + static uint16_t period = 0, index = 0; if (period++ > DGUS_UI_WAITING_STATUS_PERIOD) { dgus.writeVariable(var.VP, index); if (++index >= DGUS_UI_WAITING_STATUS) index = 0; @@ -270,9 +271,9 @@ void DGUSScreenHandler::sendHeaterStatusToDisplay(DGUS_VP_Variable &var) { return; } - // if we are printing, we jump to two screens after the requested one. - // This should host e.g a print pause / print abort / print resume dialog. - // This concept allows to recycle this hook for other file + // If we are printing we jump to two screens after the requested one. + // This should host, e.g., a print pause / print abort / print resume dialog. + // This concept allows to recycle this hook for other files. if (ExtUI::isPrintingFromMedia() && !card.flag.abort_sd_printing) { gotoScreen(DGUS_SCREEN_SDPRINTMANIPULATION); return; @@ -324,7 +325,7 @@ void DGUSScreenHandler::sendHeaterStatusToDisplay(DGUS_VP_Variable &var) { void DGUSScreenHandler::sdCardError() { DGUSScreenHandler::sdCardRemoved(); - sendInfoScreen(F("NOTICE"), nullptr, F("SD card error"), nullptr, true, true, true, true); + sendInfoScreen(F("NOTICE"), nullptr, F("SD card error"), nullptr); setupConfirmAction(nullptr); gotoScreen(DGUS_SCREEN_POPUP); } @@ -432,9 +433,9 @@ void DGUSScreenHandler::handleManualExtrude(DGUS_VP_Variable &var, void *val_ptr switch (var.VP) { #if HAS_HOTEND case VP_MOVE_E0: target_extruder = ExtUI::extruder_t::E0; break; - #if HAS_MULTI_EXTRUDER - case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break; - #endif + #endif + #if HAS_MULTI_EXTRUDER + case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break; #endif default: return; } @@ -491,12 +492,12 @@ void DGUSScreenHandler::handleSettings(DGUS_VP_Variable &var, void *val_ptr) { ExtUI::extruder_t extruder; switch (var.VP) { default: return; - #if HAS_EXTRUDERS - case VP_E0_STEP_PER_MM: extruder = ExtUI::extruder_t::E0; break; - #if HAS_MULTI_EXTRUDER - case VP_E1_STEP_PER_MM: extruder = ExtUI::extruder_t::E1; break; - #endif - #endif + #if HAS_EXTRUDERS + case VP_E0_STEP_PER_MM: extruder = ExtUI::extruder_t::E0; break; + #endif + #if HAS_MULTI_EXTRUDER + case VP_E1_STEP_PER_MM: extruder = ExtUI::extruder_t::E1; break; + #endif } ExtUI::setAxisSteps_per_mm(value, extruder); skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel @@ -506,21 +507,17 @@ void DGUSScreenHandler::handleSettings(DGUS_VP_Variable &var, void *val_ptr) { #if HAS_PID_HEATING void DGUSScreenHandler::handlePIDAutotune(DGUS_VP_Variable &var, void *val_ptr) { - char buf[32] = {0}; - switch (var.VP) { default: break; #if ENABLED(PIDTEMP) #if HAS_HOTEND case VP_PID_AUTOTUNE_E0: // Autotune Extruder 0 - sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E0); - queue.enqueue_one_now(buf); + queue.enqueue_one_now(F("M303 E0 C5 S210 U1")); break; #endif #if HAS_MULTI_HOTEND case VP_PID_AUTOTUNE_E1: - sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E1); - queue.enqueue_one_now(buf); + queue.enqueue_one_now(F("M303 E1 C5 S210 U1")); break; #endif #endif @@ -536,6 +533,7 @@ void DGUSScreenHandler::handleSettings(DGUS_VP_Variable &var, void *val_ptr) { gotoScreen(DGUS_SCREEN_WAITING); #endif } + #endif // HAS_PID_HEATING #if HAS_BED_PROBE @@ -607,7 +605,7 @@ void DGUSScreenHandler::handleHeaterControl(DGUS_VP_Variable &var, void *val_ptr uint16_t value = BE16_P(val_ptr); if (value) { queue.inject(F("M1000")); - dgus.writeVariable(VP_SD_Print_Filename, filelist.filename(), 32, true); + dgus.writeStringVar(VP_SD_Print_Filename, filelist.filename()); gotoScreen(PLR_SCREEN_RECOVER); } else { diff --git a/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.h b/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.h index cb403dbdad..d8d66b764c 100644 --- a/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.h +++ b/Marlin/src/lcd/extui/dgus/DGUSScreenHandler.h @@ -32,10 +32,10 @@ #if ENABLED(DGUS_FILAMENT_LOADUNLOAD) typedef struct { - ExtUI::extruder_t extruder; // which extruder to operate - uint8_t action; // load or unload - bool heated; // heating done ? - float purge_length; // the length to extrude before unload, prevent filament jam + uint8_t extruder; // Which extruder index to operate + uint8_t action; // Load or unload + bool heated; // Heating done? + float purge_length; // The length to extrude before unload, prevent filament jam } filament_data_t; extern filament_data_t filament_data; diff --git a/Marlin/src/lcd/extui/dgus/DGUSScreenHandlerBase.h b/Marlin/src/lcd/extui/dgus/DGUSScreenHandlerBase.h index 8ee0fa68c8..ceaeb7cd7f 100644 --- a/Marlin/src/lcd/extui/dgus/DGUSScreenHandlerBase.h +++ b/Marlin/src/lcd/extui/dgus/DGUSScreenHandlerBase.h @@ -37,21 +37,21 @@ public: // Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen // The bools specifying whether the strings are in RAM or FLASH. - static void sendInfoScreen_P(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash); - static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash) { - sendInfoScreen_P(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, liinflash); + static void sendInfoScreen_P(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool l4inflash); + static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool l4inflash) { + sendInfoScreen_P(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, l4inflash); } - static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, FSTR_P const line3, FSTR_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash) { - sendInfoScreen_P(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), l1inflash, l2inflash, l3inflash, liinflash); + static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, FSTR_P const line3, FSTR_P const line4) { + sendInfoScreen_P(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), true, true, true, true); } - static void handleUserConfirmationPopUp(uint16_t confirmVP, PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash); + static void handleUserConfirmationPopUp(uint16_t confirmVP, PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool l4inflash); // "M117" Message -- msg is a RAM ptr. static void setStatusMessage(const char *msg); // The same for messages from Flash - static void setstatusmessagePGM(PGM_P const msg); - static void setStatusMessage(FSTR_P const fmsg) { setstatusmessagePGM(FTOP(fmsg)); } + static void setStatusMessage_P(PGM_P const msg); + static void setStatusMessage(FSTR_P const fmsg) { setStatusMessage_P(FTOP(fmsg)); } // Callback for VP "Display wants to change screen on idle printer" static void screenChangeHookIfIdle(DGUS_VP_Variable &var, void *val_ptr); // Callback for VP "Screen has been changed" diff --git a/Marlin/src/lcd/extui/dgus/dgus_extui.cpp b/Marlin/src/lcd/extui/dgus/dgus_extui.cpp index adc78caf07..e68eed16fd 100644 --- a/Marlin/src/lcd/extui/dgus/dgus_extui.cpp +++ b/Marlin/src/lcd/extui/dgus/dgus_extui.cpp @@ -43,7 +43,7 @@ namespace ExtUI { void onIdle() { screen.loop(); } void onPrinterKilled(FSTR_P const error, FSTR_P const) { - screen.sendInfoScreen(GET_TEXT_F(MSG_HALTED), error, FPSTR(NUL_STR), GET_TEXT_F(MSG_PLEASE_RESET), true, true, true, true); + screen.sendInfoScreen(GET_TEXT_F(MSG_HALTED), error, FPSTR(NUL_STR), GET_TEXT_F(MSG_PLEASE_RESET)); screen.gotoScreen(DGUS_SCREEN_KILL); while (!screen.loop()); // Wait while anything is left to be sent } @@ -75,13 +75,11 @@ namespace ExtUI { } // For fancy LCDs include an icon ID, message, and translated button title - void onUserConfirmRequired(const int icon, const char * const cstr, FSTR_P const fBtn) { + void onUserConfirmRequired(const int, const char * const cstr, FSTR_P const) { onUserConfirmRequired(cstr); - UNUSED(icon); UNUSED(fBtn); } - void onUserConfirmRequired(const int icon, FSTR_P const fstr, FSTR_P const fBtn) { + void onUserConfirmRequired(const int, FSTR_P const fstr, FSTR_P const) { onUserConfirmRequired(fstr); - UNUSED(icon); UNUSED(fBtn); } #if ENABLED(ADVANCED_PAUSE_FEATURE) diff --git a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp index 575e56103e..24e472be05 100644 --- a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp +++ b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp @@ -340,7 +340,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_MOVE_Z, nullptr, screen.handleManualMove, nullptr), VPHELPER(VP_HOME_ALL, nullptr, screen.handleManualMove, nullptr), #endif - VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleMotorLockUnlock, nullptr), + VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleMotorLockUnlock, nullptr), #if ENABLED(POWER_LOSS_RECOVERY) VPHELPER(VP_POWER_LOSS_RECOVERY, nullptr, screen.handlePowerLossRecovery, nullptr), #endif @@ -361,7 +361,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { #if HAS_HOTEND VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay), - VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[ExtUI::extruder_t::E0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), + VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), VPHELPER(VP_EPos, &destination.e, nullptr, screen.sendFloatAsLongValueToDisplay<2>), VPHELPER(VP_MOVE_E0, nullptr, screen.handleManualExtrude, nullptr), VPHELPER(VP_E0_CONTROL, &thermalManager.temp_hotend[0].target, screen.handleHeaterControl, nullptr), @@ -382,7 +382,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { #if HAS_MULTI_HOTEND VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay), - VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[ExtUI::extruder_t::E1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), // ERROR: Flow is per-extruder, not per-hotend + VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), // ERROR: Flow is per-extruder, not per-hotend VPHELPER(VP_MOVE_E1, nullptr, screen.handleManualExtrude, nullptr), VPHELPER(VP_E1_CONTROL, &thermalManager.temp_hotend[1].target, screen.handleHeaterControl, nullptr), VPHELPER(VP_E1_STATUS, &thermalManager.temp_hotend[1].target, nullptr, screen.sendHeaterStatusToDisplay), diff --git a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h index d8dc81b566..3bac9cf2c6 100644 --- a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h +++ b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h @@ -116,7 +116,7 @@ constexpr uint16_t VP_MOVE_E1 = 0x2112; //constexpr uint16_t VP_MOVE_E4 = 0x2118; //constexpr uint16_t VP_MOVE_E5 = 0x211A; constexpr uint16_t VP_HOME_ALL = 0x2120; -constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2130; +constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2130; // Power loss recovery constexpr uint16_t VP_POWER_LOSS_RECOVERY = 0x2180; diff --git a/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp index 8c26066b28..be0e60a8df 100644 --- a/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp @@ -141,7 +141,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) { updateNewScreen(target); - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) if (!findScreenVPMapList(target)) DEBUG_ECHOLNPGM("WARNING: No screen Mapping found for ", target); #endif } @@ -288,7 +288,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { #endif break; case 1: // Load ABS - TERN_(PREHEAT_2_TEMP_HOTEND, e_temp = PREHEAT_2_TEMP_HOTEND); + #ifdef PREHEAT_2_TEMP_HOTEND + e_temp = PREHEAT_2_TEMP_HOTEND; + #endif break; case 2: // Load PET #ifdef PREHEAT_3_TEMP_HOTEND @@ -308,9 +310,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { if (filament_data.action == 0) { // Go back to utility screen #if HAS_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0); + thermalManager.setTargetHotend(e_temp, 0); #if HAS_MULTI_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1); + thermalManager.setTargetHotend(e_temp, 1); #endif #endif gotoScreen(DGUS_SCREEN_UTILITY); @@ -320,13 +322,13 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { default: return; #if HAS_HOTEND case VP_E0_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E0; + filament_data.extruder = 0; thermalManager.setTargetHotend(e_temp, filament_data.extruder); break; #endif #if HAS_MULTI_HOTEND case VP_E1_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E1; + filament_data.extruder = 1; thermalManager.setTargetHotend(e_temp, filament_data.extruder); break; #endif @@ -348,7 +350,7 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { //gotoScreen(DGUS_SCREEN_FILAMENT_LOADING); filament_data.heated = true; } - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; } else { // unload filament if (!filament_data.heated) { @@ -357,14 +359,14 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { } // Before unloading extrude to prevent jamming if (filament_data.purge_length >= 0) { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; filament_data.purge_length -= movevalue; } else { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) - movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) - movevalue; } } - ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder); + ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0); } } #endif // DGUS_FILAMENT_LOADUNLOAD diff --git a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp index 338f6a319c..79e0ccf942 100644 --- a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp +++ b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp @@ -338,7 +338,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_MOVE_Z, nullptr, screen.handleManualMove, nullptr), VPHELPER(VP_HOME_ALL, nullptr, screen.handleManualMove, nullptr), #endif - VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleMotorLockUnlock, nullptr), + VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleMotorLockUnlock, nullptr), #if ENABLED(POWER_LOSS_RECOVERY) VPHELPER(VP_POWER_LOSS_RECOVERY, nullptr, screen.handlePowerLossRecovery, nullptr), #endif @@ -358,7 +358,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { #if HAS_HOTEND VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay), - VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[ExtUI::extruder_t::E0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), + VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), VPHELPER(VP_EPos, &destination.e, nullptr, screen.sendFloatAsLongValueToDisplay<2>), VPHELPER(VP_MOVE_E0, nullptr, screen.handleManualExtrude, nullptr), VPHELPER(VP_E0_CONTROL, &thermalManager.temp_hotend[0].target, screen.handleHeaterControl, nullptr), @@ -379,7 +379,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { #if HAS_MULTI_HOTEND VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay), - VPHELPER(VP_Flowrate_E1, nullptr, screen.handleFlowRateChanged, screen.sendWordValueToDisplay), + VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), VPHELPER(VP_MOVE_E1, nullptr, screen.handleManualExtrude, nullptr), VPHELPER(VP_E1_CONTROL, &thermalManager.temp_hotend[1].target, screen.handleHeaterControl, nullptr), VPHELPER(VP_E1_STATUS, &thermalManager.temp_hotend[1].target, nullptr, screen.sendHeaterStatusToDisplay), diff --git a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h index 3019b6651e..a5e0d327a4 100644 --- a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h +++ b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h @@ -116,7 +116,7 @@ constexpr uint16_t VP_MOVE_E1 = 0x2112; //constexpr uint16_t VP_MOVE_E4 = 0x2118; //constexpr uint16_t VP_MOVE_E5 = 0x211A; constexpr uint16_t VP_HOME_ALL = 0x2120; -constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2130; +constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2130; // Power loss recovery constexpr uint16_t VP_POWER_LOSS_RECOVERY = 0x2180; diff --git a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp index f817453f1b..297c71f8a9 100644 --- a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp @@ -143,7 +143,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) { updateNewScreen(target); - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) if (!findScreenVPMapList(target)) DEBUG_ECHOLNPGM("WARNING: No screen Mapping found for ", target); #endif } @@ -290,7 +290,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { #endif break; case 1: // Load ABS - TERN_(PREHEAT_2_TEMP_HOTEND, e_temp = PREHEAT_2_TEMP_HOTEND); + #ifdef PREHEAT_2_TEMP_HOTEND + e_temp = PREHEAT_2_TEMP_HOTEND; + #endif break; case 2: // Load PET #ifdef PREHEAT_3_TEMP_HOTEND @@ -310,9 +312,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { if (filament_data.action == 0) { // Go back to utility screen #if HAS_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0); + thermalManager.setTargetHotend(e_temp, 0); #if HAS_MULTI_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1); + thermalManager.setTargetHotend(e_temp, 1); #endif #endif gotoScreen(DGUS_SCREEN_UTILITY); @@ -322,13 +324,13 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { default: return; #if HAS_HOTEND case VP_E0_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E0; + filament_data.extruder = 0; thermalManager.setTargetHotend(e_temp, filament_data.extruder); break; #endif #if HAS_MULTI_HOTEND case VP_E1_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E1; + filament_data.extruder = 1; thermalManager.setTargetHotend(e_temp, filament_data.extruder); break; #endif @@ -350,7 +352,7 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { //gotoScreen(DGUS_SCREEN_FILAMENT_LOADING); filament_data.heated = true; } - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; } else { // unload filament if (!filament_data.heated) { @@ -359,11 +361,11 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { } // Before unloading extrude to prevent jamming if (filament_data.purge_length >= 0) { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; filament_data.purge_length -= movevalue; } else { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) - movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) - movevalue; } } ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder); diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp index 08eff9d41e..7288b03b18 100644 --- a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp +++ b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp @@ -180,7 +180,7 @@ const uint16_t MKSList_Tool[] PROGMEM = { 0x0000 }; -const uint16_t MKSList_EXTRUE[] PROGMEM = { +const uint16_t MKSList_EXTRUDE[] PROGMEM = { // E Temp REPEAT(EXTRUDERS, MKSLIST_E_ITEM) // HB Temp @@ -265,7 +265,7 @@ const uint16_t MKSList_TempOnly[] PROGMEM = { 0x0000 }; -const uint16_t MKSList_Pluse[] PROGMEM = { +const uint16_t MKSList_Pulse[] PROGMEM = { // E Temp REPEAT(EXTRUDERS, MKSLIST_E_ITEM) // HB Temp @@ -273,7 +273,7 @@ const uint16_t MKSList_Pluse[] PROGMEM = { // FAN VP_Fan0_Percentage, - // Pluse + // Steps/mm VP_X_STEP_PER_MM, VP_Y_STEP_PER_MM, VP_Z_STEP_PER_MM, @@ -291,7 +291,7 @@ const uint16_t MKSList_MaxSpeed[] PROGMEM = { // FAN VP_Fan0_Percentage, - // Pluse + // Max Speed VP_X_MAX_SPEED, VP_Y_MAX_SPEED, VP_Z_MAX_SPEED, @@ -463,16 +463,16 @@ const struct VPMapping VPMap[] PROGMEM = { { MKSLCD_SCREEN_HOME, MKSList_Home }, // Home, Page 1 { MKSLCD_SCREEN_SETTING, MKSList_Setting }, // Setting, Page 2 { MKSLCD_SCREEM_TOOL, MKSList_Tool }, // Page 3 - { MKSLCD_SCREEN_EXTRUDE_P1, MKSList_EXTRUE }, // Page 4 - { MKSLCD_SCREEN_EXTRUDE_P2, MKSList_EXTRUE }, // Page 11 - { MKSLCD_PAUSE_SETTING_EX, MKSList_EXTRUE }, // Page 57 - { MKSLCD_PAUSE_SETTING_EX2, MKSList_EXTRUE }, // Page 61 + { MKSLCD_SCREEN_EXTRUDE_P1, MKSList_EXTRUDE }, // Page 4 + { MKSLCD_SCREEN_EXTRUDE_P2, MKSList_EXTRUDE }, // Page 11 + { MKSLCD_PAUSE_SETTING_EX, MKSList_EXTRUDE }, // Page 57 + { MKSLCD_PAUSE_SETTING_EX2, MKSList_EXTRUDE }, // Page 61 { MKSLCD_SCREEN_LEVEL, MKSList_LEVEL }, // Page 5 { MKSLCD_SCREEN_MOVE, MKSList_MOVE }, // Page 6 { MKSLCD_SCREEN_PRINT, MKSList_Print }, // Page 7 { MKSLCD_SCREEN_PAUSE, MKSList_Print }, // Page 26 { MKSLCD_SCREEN_CHOOSE_FILE, MKSList_SD_File }, // Page 15 - { MKSLCD_SCREEN_MOTOR_PLUSE, MKSList_Pluse }, // Page 51 + { MKSLCD_SCREEN_MOTOR_PULSE, MKSList_Pulse }, // Page 51 { MKSLCD_SCREEN_MOTOR_SPEED, MKSList_MaxSpeed }, // Page 55 { MKSLCD_SCREEN_MOTOR_ACC_MAX, MKSList_MaxAcc }, // Page 53 { MKSLCD_SCREEN_LEVEL_DATA, MKSList_Level_Point }, // Page 48 @@ -522,7 +522,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_MOVE_DISTANCE, &manualMoveStep, screen.getManualMovestep, nullptr), - VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleManualMove, nullptr), + VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleManualMove, nullptr), VPHELPER(VP_LEVEL_POINT, nullptr, screen.manualAssistLeveling, nullptr), #if ENABLED(POWER_LOSS_RECOVERY) @@ -545,7 +545,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { #if HAS_HOTEND VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay), - VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[ExtUI::extruder_t::E0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), + VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), VPHELPER(VP_EPos, &destination.e, nullptr, screen.sendFloatAsLongValueToDisplay<2>), VPHELPER(VP_MOVE_E0, nullptr, screen.handleManualExtrude, nullptr), VPHELPER(VP_E0_CONTROL, &thermalManager.temp_hotend[0].target, screen.handleHeaterControl, nullptr), @@ -570,7 +570,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { #if HAS_MULTI_HOTEND VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay), - VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[ExtUI::extruder_t::E1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), + VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), VPHELPER(VP_MOVE_E1, nullptr, screen.handleManualExtrude, nullptr), VPHELPER(VP_E1_CONTROL, &thermalManager.temp_hotend[1].target, screen.handleHeaterControl, nullptr), VPHELPER(VP_E1_STATUS, &thermalManager.temp_hotend[1].target, nullptr, screen.sendHeaterStatusToDisplay), diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h index 95bee17229..a0b95aa14a 100644 --- a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h +++ b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h @@ -53,25 +53,9 @@ extern xyz_int_t tmc_step; extern uint16_t lcd_default_light; -#if X_HAS_STEALTHCHOP - extern uint16_t tmc_x_current; -#endif -#if Y_HAS_STEALTHCHOP - extern uint16_t tmc_y_current; -#endif -#if Z_HAS_STEALTHCHOP - extern uint16_t tmc_z_current; -#endif -#if E0_HAS_STEALTHCHOP - extern uint16_t tmc_e0_current; -#endif -#if E1_HAS_STEALTHCHOP - extern uint16_t tmc_e1_current; -#endif - typedef enum { EX_HEATING, - EX_HEAT_STARUS, + EX_HEAT_STATUS, EX_CHANGING, EX_CHANGE_STATUS, EX_NONE, @@ -80,7 +64,7 @@ typedef enum { typedef struct { //uint8_t ex_change_flag:1; //uint8_t ex_heat_flag:1; - uint8_t ex_load_unload_flag:1; //0:unload 1:load + uint8_t ex_load_unload_flag:1; // 0:unload 1:load EX_STATUS_DEF ex_status; uint32_t ex_tick_start; uint32_t ex_tick_end; @@ -121,118 +105,118 @@ extern NOZZLE_PARK_DEF nozzle_park_mks; enum DGUS_ScreenID : uint8_t { #if ENABLED(USE_MKS_GREEN_UI) - DGUS_SCREEN_BOOT = 33, - DGUS_SCREEN_MAIN = 60, - DGUS_SCREEN_STATUS = 60, - DGUS_SCREEN_STATUS2 = 60, - DGUS_SCREEN_PREHEAT = 18, - DGUS_SCREEN_POWER_LOSS = 100, - DGUS_SCREEN_MANUALMOVE = 192, - DGUS_SCREEN_UTILITY = 120, - DGUS_SCREEN_FILAMENT_UNLOADING = 158, - DGUS_SCREEN_SDFILELIST = 15, - DGUS_SCREEN_SDPRINTMANIPULATION = 15, - DGUS_SCREEN_SDPRINTTUNE = 17, + DGUS_SCREEN_BOOT = 33, + DGUS_SCREEN_MAIN = 60, + DGUS_SCREEN_STATUS = 60, + DGUS_SCREEN_STATUS2 = 60, + DGUS_SCREEN_PREHEAT = 18, + DGUS_SCREEN_POWER_LOSS = 100, + DGUS_SCREEN_MANUALMOVE = 192, + DGUS_SCREEN_UTILITY = 120, + DGUS_SCREEN_FILAMENT_UNLOADING = 158, + DGUS_SCREEN_SDFILELIST = 15, + DGUS_SCREEN_SDPRINTMANIPULATION = 15, + DGUS_SCREEN_SDPRINTTUNE = 17, - MKSLCD_SCREEN_BOOT = 33, - MKSLCD_SCREEN_HOME = 60, // MKS main page - MKSLCD_SCREEN_SETTING = 62, // MKS Setting page / no wifi whit - MKSLCD_SCREEM_TOOL = 64, // MKS Tool page - MKSLCD_SCREEN_EXTRUDE_P1 = 75, - MKSLCD_SCREEN_EXTRUDE_P2 = 77, - MKSLCD_SCREEN_LEVEL = 73, - MKSLCD_AUTO_LEVEL = 81, - MKSLCD_SCREEN_MOVE = 66, - MKSLCD_SCREEN_PRINT = 68, - MKSLCD_SCREEN_PAUSE = 70, - MKSLCD_SCREEN_CHOOSE_FILE = 87, - MKSLCD_SCREEN_NO_CHOOSE_FILE = 88, - MKSLCD_SCREEN_Config = 101, - MKSLCD_SCREEN_Config_MOTOR = 103, - MKSLCD_SCREEN_MOTOR_PLUSE = 104, - MKSLCD_SCREEN_MOTOR_SPEED = 102, - MKSLCD_SCREEN_MOTOR_ACC_MAX = 105, - MKSLCD_SCREEN_PRINT_CONFIG = 72, - MKSLCD_SCREEN_LEVEL_DATA = 106, - MKSLCD_PrintPause_SET = 107, - MKSLCD_FILAMENT_DATA = 50, - MKSLCD_ABOUT = 83, - MKSLCD_PID = 108, - MKSLCD_PAUSE_SETTING_MOVE = 98, - MKSLCD_PAUSE_SETTING_EX = 96, - MKSLCD_PAUSE_SETTING_EX2 = 97, - MKSLCD_SCREEN_PRINT_CONFIRM = 94, - MKSLCD_SCREEN_EX_CONFIG = 112, - MKSLCD_SCREEN_EEP_Config = 89, - MKSLCD_SCREEN_PrintDone = 92, - MKSLCD_SCREEN_TMC_Config = 111, - MKSLCD_Screen_Offset_Config = 109, - MKSLCD_Screen_PMove = 98, - MKSLCD_Screen_Baby = 79, + MKSLCD_SCREEN_BOOT = 33, + MKSLCD_SCREEN_HOME = 60, // MKS main page + MKSLCD_SCREEN_SETTING = 62, // MKS Setting page / no wifi whit + MKSLCD_SCREEM_TOOL = 64, // MKS Tool page + MKSLCD_SCREEN_EXTRUDE_P1 = 75, + MKSLCD_SCREEN_EXTRUDE_P2 = 77, + MKSLCD_SCREEN_LEVEL = 73, + MKSLCD_AUTO_LEVEL = 81, + MKSLCD_SCREEN_MOVE = 66, + MKSLCD_SCREEN_PRINT = 68, + MKSLCD_SCREEN_PAUSE = 70, + MKSLCD_SCREEN_CHOOSE_FILE = 87, + MKSLCD_SCREEN_NO_CHOOSE_FILE = 88, + MKSLCD_SCREEN_Config = 101, + MKSLCD_SCREEN_Config_MOTOR = 103, + MKSLCD_SCREEN_MOTOR_PULSE = 104, + MKSLCD_SCREEN_MOTOR_SPEED = 102, + MKSLCD_SCREEN_MOTOR_ACC_MAX = 105, + MKSLCD_SCREEN_PRINT_CONFIG = 72, + MKSLCD_SCREEN_LEVEL_DATA = 106, + MKSLCD_PrintPause_SET = 107, + MKSLCD_FILAMENT_DATA = 50, + MKSLCD_ABOUT = 83, + MKSLCD_PID = 108, + MKSLCD_PAUSE_SETTING_MOVE = 98, + MKSLCD_PAUSE_SETTING_EX = 96, + MKSLCD_PAUSE_SETTING_EX2 = 97, + MKSLCD_SCREEN_PRINT_CONFIRM = 94, + MKSLCD_SCREEN_EX_CONFIG = 112, + MKSLCD_SCREEN_EEP_Config = 89, + MKSLCD_SCREEN_PrintDone = 92, + MKSLCD_SCREEN_TMC_Config = 111, + MKSLCD_Screen_Offset_Config = 109, + MKSLCD_Screen_PMove = 98, + MKSLCD_Screen_Baby = 79, #else - DGUS_SCREEN_BOOT = 120, - DGUS_SCREEN_MAIN = 1, + DGUS_SCREEN_BOOT = 120, + DGUS_SCREEN_MAIN = 1, - DGUS_SCREEN_STATUS = 1, - DGUS_SCREEN_STATUS2 = 1, - DGUS_SCREEN_PREHEAT = 18, - DGUS_SCREEN_POWER_LOSS = 100, - DGUS_SCREEN_MANUALMOVE = 192, - DGUS_SCREEN_UTILITY = 120, - DGUS_SCREEN_FILAMENT_UNLOADING = 158, - DGUS_SCREEN_SDFILELIST = 15, - DGUS_SCREEN_SDPRINTMANIPULATION = 15, - DGUS_SCREEN_SDPRINTTUNE = 17, + DGUS_SCREEN_STATUS = 1, + DGUS_SCREEN_STATUS2 = 1, + DGUS_SCREEN_PREHEAT = 18, + DGUS_SCREEN_POWER_LOSS = 100, + DGUS_SCREEN_MANUALMOVE = 192, + DGUS_SCREEN_UTILITY = 120, + DGUS_SCREEN_FILAMENT_UNLOADING = 158, + DGUS_SCREEN_SDFILELIST = 15, + DGUS_SCREEN_SDPRINTMANIPULATION = 15, + DGUS_SCREEN_SDPRINTTUNE = 17, - MKSLCD_SCREEN_BOOT = 0, - MKSLCD_SCREEN_HOME = 1, // MKS main page - MKSLCD_SCREEN_SETTING = 2, // MKS Setting page / no wifi whit - MKSLCD_SCREEM_TOOL = 3, // MKS Tool page - MKSLCD_SCREEN_EXTRUDE_P1 = 4, - MKSLCD_SCREEN_EXTRUDE_P2 = 11, - MKSLCD_SCREEN_LEVEL = 5, - MKSLCD_AUTO_LEVEL = 73, - MKSLCD_SCREEN_LEVEL_PRESS = 9, - MKSLCD_SCREEN_MOVE = 6, - MKSLCD_SCREEN_PRINT = 7, - MKSLCD_SCREEN_PRINT_PRESS = 13, - MKSLCD_SCREEN_PAUSE = 26, - MKSLCD_SCREEN_PAUSE_PRESS = 26, - MKSLCD_SCREEN_CHOOSE_FILE = 15, - MKSLCD_SCREEN_NO_CHOOSE_FILE = 17, - MKSLCD_SCREEN_Config = 46, - MKSLCD_SCREEN_Config_MOTOR = 47, - MKSLCD_SCREEN_MOTOR_PLUSE = 51, - MKSLCD_SCREEN_MOTOR_SPEED = 55, - MKSLCD_SCREEN_MOTOR_ACC_MAX = 53, - MKSLCD_SCREEN_PRINT_CONFIG = 60, - MKSLCD_SCREEN_LEVEL_DATA = 48, - MKSLCD_PrintPause_SET = 49, - MKSLCD_FILAMENT_DATA = 50, - MKSLCD_ABOUT = 36, - MKSLCD_PID = 56, - MKSLCD_PAUSE_SETTING_MOVE = 58, - MKSLCD_PAUSE_SETTING_EX = 57, - MKSLCD_PAUSE_SETTING_EX2 = 61, - MKSLCD_SCREEN_NO_FILE = 42, - MKSLCD_SCREEN_PRINT_CONFIRM = 43, - MKSLCD_SCREEN_EX_CONFIG = 65, - MKSLCD_SCREEN_EEP_Config = 20, - MKSLCD_SCREEN_PrintDone = 25, - MKSLCD_SCREEN_TMC_Config = 70, - MKSLCD_Screen_Offset_Config = 30, - MKSLCD_Screen_PMove = 64, - MKSLCD_Screen_Baby = 71, + MKSLCD_SCREEN_BOOT = 0, + MKSLCD_SCREEN_HOME = 1, // MKS main page + MKSLCD_SCREEN_SETTING = 2, // MKS Setting page / no wifi whit + MKSLCD_SCREEM_TOOL = 3, // MKS Tool page + MKSLCD_SCREEN_EXTRUDE_P1 = 4, + MKSLCD_SCREEN_EXTRUDE_P2 = 11, + MKSLCD_SCREEN_LEVEL = 5, + MKSLCD_AUTO_LEVEL = 73, + MKSLCD_SCREEN_LEVEL_PRESS = 9, + MKSLCD_SCREEN_MOVE = 6, + MKSLCD_SCREEN_PRINT = 7, + MKSLCD_SCREEN_PRINT_PRESS = 13, + MKSLCD_SCREEN_PAUSE = 26, + MKSLCD_SCREEN_PAUSE_PRESS = 26, + MKSLCD_SCREEN_CHOOSE_FILE = 15, + MKSLCD_SCREEN_NO_CHOOSE_FILE = 17, + MKSLCD_SCREEN_Config = 46, + MKSLCD_SCREEN_Config_MOTOR = 47, + MKSLCD_SCREEN_MOTOR_PULSE = 51, + MKSLCD_SCREEN_MOTOR_SPEED = 55, + MKSLCD_SCREEN_MOTOR_ACC_MAX = 53, + MKSLCD_SCREEN_PRINT_CONFIG = 60, + MKSLCD_SCREEN_LEVEL_DATA = 48, + MKSLCD_PrintPause_SET = 49, + MKSLCD_FILAMENT_DATA = 50, + MKSLCD_ABOUT = 36, + MKSLCD_PID = 56, + MKSLCD_PAUSE_SETTING_MOVE = 58, + MKSLCD_PAUSE_SETTING_EX = 57, + MKSLCD_PAUSE_SETTING_EX2 = 61, + MKSLCD_SCREEN_NO_FILE = 42, + MKSLCD_SCREEN_PRINT_CONFIRM = 43, + MKSLCD_SCREEN_EX_CONFIG = 65, + MKSLCD_SCREEN_EEP_Config = 20, + MKSLCD_SCREEN_PrintDone = 25, + MKSLCD_SCREEN_TMC_Config = 70, + MKSLCD_Screen_Offset_Config = 30, + MKSLCD_Screen_PMove = 64, + MKSLCD_Screen_Baby = 71, #endif - DGUS_SCREEN_CONFIRM = 240, - DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version") - DGUS_SCREEN_WAITING = 251, - DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen" - DGUS_SCREEN_UNUSED = 255 + DGUS_SCREEN_CONFIRM = 240, + DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version") + DGUS_SCREEN_WAITING = 251, + DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen" + DGUS_SCREEN_UNUSED = 255 }; // Place for status messages. @@ -290,7 +274,7 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint8_t VP_MSGSTR4_LEN = 0x20; constexpr uint16_t VP_MARLIN_VERSION = 0x1A00; - constexpr uint8_t VP_MARLIN_VERSION_LEN = 16; // there is more space on the display, if needed. + constexpr uint8_t VP_MARLIN_VERSION_LEN = 16; // there is more space on the display, if needed. constexpr uint16_t VP_SCREENCHANGE_ASK = 0x1500; constexpr uint16_t VP_SCREENCHANGE = 0x1501; // Key-Return button to new menu pressed. Data contains target screen in low byte and info in high byte. @@ -347,8 +331,9 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_MOVE_E5 = 0x231A; constexpr uint16_t VP_MOVE_E6 = 0x231C; constexpr uint16_t VP_MOVE_E7 = 0x231E; + constexpr uint16_t VP_HOME_ALL = 0x2320; - constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2330; + constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2330; constexpr uint16_t VP_MOVE_DISTANCE = 0x2334; constexpr uint16_t VP_X_HOME = 0x2336; constexpr uint16_t VP_Y_HOME = 0x2338; @@ -383,7 +368,7 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_E0_FILAMENT_LOAD_UNLOAD = 0x2500; constexpr uint16_t VP_E1_FILAMENT_LOAD_UNLOAD = 0x2504; constexpr uint16_t VP_LOAD_Filament = 0x2508; - // constexpr uint16_t VP_LOAD_UNLOAD_Cancle = 0x250A; + //constexpr uint16_t VP_LOAD_UNLOAD_Cancel = 0x250A; constexpr uint16_t VP_UNLOAD_Filament = 0x250B; constexpr uint16_t VP_Filament_distance = 0x2600; constexpr uint16_t VP_Filament_speed = 0x2604; @@ -467,10 +452,10 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_SD_Print_Filename = 0x32C0; // X Y Z Point - constexpr uint16_t VP_XPos = 0x3300; // 4 Byte Fixed point number; format xxx.yy - constexpr uint16_t VP_YPos = 0x3302; // 4 Byte Fixed point number; format xxx.yy - constexpr uint16_t VP_ZPos = 0x3304; // 4 Byte Fixed point number; format xxx.yy - constexpr uint16_t VP_EPos = 0x3306; // 4 Byte Fixed point number; format xxx.yy + constexpr uint16_t VP_XPos = 0x3300; // 4 Byte Fixed point number; format xxx.yy + constexpr uint16_t VP_YPos = 0x3302; // 4 Byte Fixed point number; format xxx.yy + constexpr uint16_t VP_ZPos = 0x3304; // 4 Byte Fixed point number; format xxx.yy + constexpr uint16_t VP_EPos = 0x3306; // 4 Byte Fixed point number; format xxx.yy // Print constexpr uint16_t VP_PrintProgress_Percentage = 0x3330; // 2 Byte Integer (0..100) @@ -481,16 +466,16 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_PrintsTotal = 0x3380; constexpr uint16_t VP_PrintsTotal_LEN = 16; - constexpr uint16_t VP_File_Pictutr0 = 0x3400; - constexpr uint16_t VP_File_Pictutr1 = 0x3402; - constexpr uint16_t VP_File_Pictutr2 = 0x3404; - constexpr uint16_t VP_File_Pictutr3 = 0x3406; - constexpr uint16_t VP_File_Pictutr4 = 0x3408; - constexpr uint16_t VP_File_Pictutr5 = 0x340A; - constexpr uint16_t VP_File_Pictutr6 = 0x340C; - constexpr uint16_t VP_File_Pictutr7 = 0x340E; - constexpr uint16_t VP_File_Pictutr8 = 0x3410; - constexpr uint16_t VP_File_Pictutr9 = 0x3412; + constexpr uint16_t VP_File_Picture0 = 0x3400; + constexpr uint16_t VP_File_Picture1 = 0x3402; + constexpr uint16_t VP_File_Picture2 = 0x3404; + constexpr uint16_t VP_File_Picture3 = 0x3406; + constexpr uint16_t VP_File_Picture4 = 0x3408; + constexpr uint16_t VP_File_Picture5 = 0x340A; + constexpr uint16_t VP_File_Picture6 = 0x340C; + constexpr uint16_t VP_File_Picture7 = 0x340E; + constexpr uint16_t VP_File_Picture8 = 0x3410; + constexpr uint16_t VP_File_Picture9 = 0x3412; constexpr uint16_t VP_BED_STATUS = 0x341C; @@ -512,101 +497,103 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_PrintTime_S = 0x3504; // PIDs - constexpr uint16_t VP_E0_PID_P = 0x3700; // at the moment , uint16_t , 0~1638.4 - constexpr uint16_t VP_E0_PID_I = 0x3702; - constexpr uint16_t VP_E0_PID_D = 0x3704; - constexpr uint16_t VP_E1_PID_P = 0x3706; // at the moment , uint16_t , 0~1638.4 - constexpr uint16_t VP_E1_PID_I = 0x3708; - constexpr uint16_t VP_E1_PID_D = 0x370A; - constexpr uint16_t VP_BED_PID_P = 0x3710; - constexpr uint16_t VP_BED_PID_I = 0x3712; - constexpr uint16_t VP_BED_PID_D = 0x3714; + constexpr uint16_t VP_E0_PID_P = 0x3700; // at the moment , uint16_t , 0~1638.4 + constexpr uint16_t VP_E0_PID_I = 0x3702; + constexpr uint16_t VP_E0_PID_D = 0x3704; + constexpr uint16_t VP_E1_PID_P = 0x3706; // at the moment , uint16_t , 0~1638.4 + constexpr uint16_t VP_E1_PID_I = 0x3708; + constexpr uint16_t VP_E1_PID_D = 0x370A; + constexpr uint16_t VP_BED_PID_P = 0x3710; + constexpr uint16_t VP_BED_PID_I = 0x3712; + constexpr uint16_t VP_BED_PID_D = 0x3714; - constexpr uint16_t VP_EEPROM_CTRL = 0x3720; + constexpr uint16_t VP_EEPROM_CTRL = 0x3720; - constexpr uint16_t VP_OFFSET_X = 0x3724; - constexpr uint16_t VP_OFFSET_Y = 0x3728; - constexpr uint16_t VP_OFFSET_Z = 0x372B; + constexpr uint16_t VP_OFFSET_X = 0x3724; + constexpr uint16_t VP_OFFSET_Y = 0x3728; + constexpr uint16_t VP_OFFSET_Z = 0x372B; // PID autotune - constexpr uint16_t VP_PID_AUTOTUNE_E0 = 0x3800; - constexpr uint16_t VP_PID_AUTOTUNE_E1 = 0x3802; - constexpr uint16_t VP_PID_AUTOTUNE_E2 = 0x3804; - constexpr uint16_t VP_PID_AUTOTUNE_E3 = 0x3806; - constexpr uint16_t VP_PID_AUTOTUNE_E4 = 0x3808; - constexpr uint16_t VP_PID_AUTOTUNE_E5 = 0x380A; - constexpr uint16_t VP_PID_AUTOTUNE_BED = 0x380C; + constexpr uint16_t VP_PID_AUTOTUNE_E0 = 0x3800; + constexpr uint16_t VP_PID_AUTOTUNE_E1 = 0x3802; + constexpr uint16_t VP_PID_AUTOTUNE_E2 = 0x3804; + constexpr uint16_t VP_PID_AUTOTUNE_E3 = 0x3806; + constexpr uint16_t VP_PID_AUTOTUNE_E4 = 0x3808; + constexpr uint16_t VP_PID_AUTOTUNE_E5 = 0x380A; + constexpr uint16_t VP_PID_AUTOTUNE_BED = 0x380C; + // Calibrate Z - constexpr uint16_t VP_Z_CALIBRATE = 0x3810; + constexpr uint16_t VP_Z_CALIBRATE = 0x3810; - constexpr uint16_t VP_AutoTurnOffSw = 0x3812; - constexpr uint16_t VP_LCD_BLK = 0x3814; + constexpr uint16_t VP_AutoTurnOffSw = 0x3812; + constexpr uint16_t VP_LCD_BLK = 0x3814; - constexpr uint16_t VP_X_PARK_POS = 0x3900; - constexpr uint16_t VP_Y_PARK_POS = 0x3902; - constexpr uint16_t VP_Z_PARK_POS = 0x3904; + constexpr uint16_t VP_X_PARK_POS = 0x3900; + constexpr uint16_t VP_Y_PARK_POS = 0x3902; + constexpr uint16_t VP_Z_PARK_POS = 0x3904; /* -------------------------------0x4000-0x4FFF------------------------------- */ // Heater Control Buttons , triged between "cool down" and "heat PLA" state - constexpr uint16_t VP_E0_CONTROL = 0x4010; - constexpr uint16_t VP_E1_CONTROL = 0x4012; + constexpr uint16_t VP_E0_CONTROL = 0x4010; + constexpr uint16_t VP_E1_CONTROL = 0x4012; //constexpr uint16_t VP_E2_CONTROL = 0x2214; //constexpr uint16_t VP_E3_CONTROL = 0x2216; //constexpr uint16_t VP_E4_CONTROL = 0x2218; //constexpr uint16_t VP_E5_CONTROL = 0x221A; - constexpr uint16_t VP_BED_CONTROL = 0x401C; + constexpr uint16_t VP_BED_CONTROL = 0x401C; // Preheat - constexpr uint16_t VP_E0_BED_PREHEAT = 0x4020; - constexpr uint16_t VP_E1_BED_PREHEAT = 0x4022; + constexpr uint16_t VP_E0_BED_PREHEAT = 0x4020; + constexpr uint16_t VP_E1_BED_PREHEAT = 0x4022; //constexpr uint16_t VP_E2_BED_PREHEAT = 0x4024; //constexpr uint16_t VP_E3_BED_PREHEAT = 0x4026; //constexpr uint16_t VP_E4_BED_PREHEAT = 0x4028; //constexpr uint16_t VP_E5_BED_PREHEAT = 0x402A; // Filament load and unload - // constexpr uint16_t VP_E0_FILAMENT_LOAD_UNLOAD = 0x4030; - // constexpr uint16_t VP_E1_FILAMENT_LOAD_UNLOAD = 0x4032; + //constexpr uint16_t VP_E0_FILAMENT_LOAD_UNLOAD = 0x4030; + //constexpr uint16_t VP_E1_FILAMENT_LOAD_UNLOAD = 0x4032; // Settings store , reset // Level data - constexpr uint16_t VP_Level_Point_One_X = 0x4100; - constexpr uint16_t VP_Level_Point_One_Y = 0x4102; - constexpr uint16_t VP_Level_Point_Two_X = 0x4104; - constexpr uint16_t VP_Level_Point_Two_Y = 0x4106; - constexpr uint16_t VP_Level_Point_Three_X = 0x4108; - constexpr uint16_t VP_Level_Point_Three_Y = 0x410A; - constexpr uint16_t VP_Level_Point_Four_X = 0x410C; - constexpr uint16_t VP_Level_Point_Four_Y = 0x410E; - constexpr uint16_t VP_Level_Point_Five_X = 0x4110; - constexpr uint16_t VP_Level_Point_Five_Y = 0x4112; + constexpr uint16_t VP_Level_Point_One_X = 0x4100; + constexpr uint16_t VP_Level_Point_One_Y = 0x4102; + constexpr uint16_t VP_Level_Point_Two_X = 0x4104; + constexpr uint16_t VP_Level_Point_Two_Y = 0x4106; + constexpr uint16_t VP_Level_Point_Three_X = 0x4108; + constexpr uint16_t VP_Level_Point_Three_Y = 0x410A; + constexpr uint16_t VP_Level_Point_Four_X = 0x410C; + constexpr uint16_t VP_Level_Point_Four_Y = 0x410E; + constexpr uint16_t VP_Level_Point_Five_X = 0x4110; + constexpr uint16_t VP_Level_Point_Five_Y = 0x4112; /* H43 Version */ - constexpr uint16_t VP_MKS_H43_VERSION = 0x4A00; // MKS H43 V1.0.0 - constexpr uint16_t VP_MKS_H43_VERSION_LEN = 16; - constexpr uint16_t VP_MKS_H43_UpdataVERSION = 0x4A10; // MKS H43 V1.0.0 - constexpr uint16_t VP_MKS_H43_UpdataVERSION_LEN = 16; + constexpr uint16_t VP_MKS_H43_VERSION = 0x4A00; // MKS H43 V1.0.0 + constexpr uint16_t VP_MKS_H43_VERSION_LEN = 16; + constexpr uint16_t VP_MKS_H43_UpdataVERSION = 0x4A10; // MKS H43 V1.0.0 + constexpr uint16_t VP_MKS_H43_UpdataVERSION_LEN = 16; /* -------------------------------0x5000-0xFFFF------------------------------- */ constexpr uint16_t VP_HOME_Dis = 0x5000; constexpr uint16_t VP_Setting_Dis = 0x5010; constexpr uint16_t VP_Tool_Dis = 0x5020; constexpr uint16_t VP_Printing_Dis = 0x5030; + constexpr uint16_t VP_Print_Dis = 0x5250; constexpr uint16_t VP_Language_Dis = 0x5080; constexpr uint16_t VP_LossPoint_Dis = 0x5090; constexpr uint16_t VP_PrintPauseConfig_Dis = 0x5120; - constexpr uint16_t VP_MotorPluse_Dis = 0x5140; + constexpr uint16_t VP_MotorPulse_Dis = 0x5140; constexpr uint16_t VP_MotorMaxSpeed_Dis = 0x5150; constexpr uint16_t VP_MotorMaxAcc_Dis = 0x5160; - constexpr uint16_t VP_X_Pluse_Dis = 0x5170; - constexpr uint16_t VP_Y_Pluse_Dis = 0x5180; - constexpr uint16_t VP_Z_Pluse_Dis = 0x5190; - constexpr uint16_t VP_E0_Pluse_Dis = 0x51A0; - constexpr uint16_t VP_E1_Pluse_Dis = 0x51B0; + constexpr uint16_t VP_X_Pulse_Dis = 0x5170; + constexpr uint16_t VP_Y_Pulse_Dis = 0x5180; + constexpr uint16_t VP_Z_Pulse_Dis = 0x5190; + constexpr uint16_t VP_E0_Pulse_Dis = 0x51A0; + constexpr uint16_t VP_E1_Pulse_Dis = 0x51B0; constexpr uint16_t VP_X_Max_Speed_Dis = 0x5280; constexpr uint16_t VP_Y_Max_Speed_Dis = 0x5290; @@ -614,11 +601,11 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_E0_Max_Speed_Dis = 0x52B0; constexpr uint16_t VP_E1_Max_Speed_Dis = 0x52C0; - constexpr uint16_t VP_X_Max_Acc_Speed_Dis = 0x51E0; - constexpr uint16_t VP_Y_Max_Acc_Speed_Dis = 0x51F0; - constexpr uint16_t VP_Z_Max_Acc_Speed_Dis = 0x5200; - constexpr uint16_t VP_E0_Max_Acc_Speed_Dis = 0x5210; - constexpr uint16_t VP_E1_Max_Acc_Speed_Dis = 0x5220; + constexpr uint16_t VP_X_Max_Acc_Dis = 0x51E0; + constexpr uint16_t VP_Y_Max_Acc_Dis = 0x51F0; + constexpr uint16_t VP_Z_Max_Acc_Dis = 0x5200; + constexpr uint16_t VP_E0_Max_Acc_Dis = 0x5210; + constexpr uint16_t VP_E1_Max_Acc_Dis = 0x5220; constexpr uint16_t VP_PrintTime_Dis = 0x5470; constexpr uint16_t VP_E0_Temp_Dis = 0x5310; @@ -672,8 +659,8 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_Length_Dis = 0x5B00; - constexpr uint16_t VP_PrintConfrim_Info_Dis = 0x5B90; - constexpr uint16_t VP_StopPrintConfrim_Info_Dis = 0x5B80; + constexpr uint16_t VP_PrintConfirm_Info_Dis = 0x5B90; + constexpr uint16_t VP_StopPrintConfirm_Info_Dis = 0x5B80; constexpr uint16_t VP_Point_One_Dis = 0x5BA0; constexpr uint16_t VP_Point_Two_Dis = 0x5BB0; @@ -681,8 +668,6 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t VP_Point_Four_Dis = 0x5BD0; constexpr uint16_t VP_Point_Five_Dis = 0x5BE0; - constexpr uint16_t VP_Print_Dis = 0x5250; - constexpr uint16_t VP_About_Dis = 0x5A00; constexpr uint16_t VP_Config_Dis = 0x5A10; constexpr uint16_t VP_Filament_Dis = 0x5A20; diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp index 1761451da1..0ac704ed3d 100644 --- a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp @@ -60,17 +60,17 @@ MKS_Language mks_language_index; // Initialized by settings.load #if 0 void DGUSScreenHandlerMKS::sendinfoscreen_ch(const uint16_t *line1, const uint16_t *line2, const uint16_t *line3, const uint16_t *line4) { - dgus.writeVariable(VP_MSGSTR1, line1, 32, true); - dgus.writeVariable(VP_MSGSTR2, line2, 32, true); - dgus.writeVariable(VP_MSGSTR3, line3, 32, true); - dgus.writeVariable(VP_MSGSTR4, line4, 32, true); + dgus.writeStringVar(VP_MSGSTR1, line1, 32); + dgus.writeStringVar(VP_MSGSTR2, line2, 32); + dgus.writeStringVar(VP_MSGSTR3, line3, 32); + dgus.writeStringVar(VP_MSGSTR4, line4, 32); } void DGUSScreenHandlerMKS::sendinfoscreen_en(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4) { - dgus.writeVariable(VP_MSGSTR1, line1, 32, true); - dgus.writeVariable(VP_MSGSTR2, line2, 32, true); - dgus.writeVariable(VP_MSGSTR3, line3, 32, true); - dgus.writeVariable(VP_MSGSTR4, line4, 32, true); + dgus.writeStringVar(VP_MSGSTR1, line1); + dgus.writeStringVar(VP_MSGSTR2, line2); + dgus.writeStringVar(VP_MSGSTR3, line3); + dgus.writeStringVar(VP_MSGSTR4, line4); } void DGUSScreenHandlerMKS::sendInfoScreen(const void *line1, const void *line2, const void *line3, const void *line4, uint16_t language) { @@ -85,14 +85,14 @@ void DGUSScreenHandlerMKS::sendInfoScreen(const void *line1, const void *line2, void DGUSScreenHandlerMKS::sendFanToDisplay(DGUS_VP_Variable &var) { if (var.memadr) { uint16_t tmp = *(uint8_t *) var.memadr; // +1 -> avoid rounding issues for the display. - // tmp = map(tmp, 0, 255, 0, 100); + //tmp = map(constrain(tmp, 0, 255), 0, 255, 0, 100); dgus.writeVariable(var.VP, tmp); } } void DGUSScreenHandlerMKS::sendBabyStepToDisplay(DGUS_VP_Variable &var) { float value = current_position.z; - value *= cpow(10, 2); + value *= 100; //cpow(10, 2); dgus.writeVariable(VP_SD_Print_Baby, (uint16_t)value); } @@ -113,17 +113,20 @@ void DGUSScreenHandlerMKS::setUint8(DGUS_VP_Variable &var, void *val_ptr) { void DGUSScreenHandlerMKS::sendGbkToDisplay(DGUS_VP_Variable &var) { uint16_t *tmp = (uint16_t*) var.memadr; - dgus.writeVariable(var.VP, tmp, var.size, true); + dgus.writeStringVar(var.VP, tmp, var.size); } void DGUSScreenHandlerMKS::sendStringToDisplay_Language(DGUS_VP_Variable &var) { - if (mks_language_index == MKS_English) { - char *tmp = (char*) var.memadr; - dgus.writeVariable(var.VP, tmp, var.size, true); - } - else if (mks_language_index == MKS_SimpleChinese) { - uint16_t *tmp = (uint16_t *)var.memadr; - dgus.writeVariable(var.VP, tmp, var.size, true); + switch (mks_language_index) { + default: + case MKS_English: { + char *tmp = (char*) var.memadr; + dgus.writeStringVar(var.VP, tmp, var.size); + } break; + case MKS_SimpleChinese: { + uint16_t *tmp = (uint16_t *)var.memadr; + dgus.writeStringVar(var.VP, tmp, var.size); + } break; } } @@ -168,7 +171,7 @@ void DGUSScreenHandlerMKS::sendTMCStepValue(DGUS_VP_Variable &var) { #if ENABLED(DGUS_PRINT_FILENAME) // Send print filename - dgus.writeVariable(VP_SD_Print_Filename, filelist.filename(), VP_SD_FileName_LEN, true); + dgus.writeStringVar(VP_SD_Print_Filename, filelist.filename(), VP_SD_FileName_LEN); #endif // Setup Confirmation screen @@ -212,7 +215,6 @@ void DGUSScreenHandlerMKS::sendTMCStepValue(DGUS_VP_Variable &var) { nozzle_park_mks.print_pause_start_flag = 1; nozzle_park_mks.blstatus = true; ExtUI::pausePrint(); - //ExtUI::mks_pausePrint(); } break; @@ -235,7 +237,7 @@ void DGUSScreenHandlerMKS::sendTMCStepValue(DGUS_VP_Variable &var) { } sendStringToDisplay(var); - dgus.writeVariable(VP_File_Pictutr0 + target_line * 2, dir_icon_val); + dgus.writeVariable(VP_File_Picture0 + target_line * 2, dir_icon_val); } void DGUSScreenHandler::sdCardInserted() { @@ -248,8 +250,8 @@ void DGUSScreenHandlerMKS::sendTMCStepValue(DGUS_VP_Variable &var) { void DGUSScreenHandler::sdCardRemoved() { if (current_screenID == DGUS_SCREEN_SDFILELIST - || (current_screenID == DGUS_SCREEN_CONFIRM && (confirmVP == VP_SD_AbortPrintConfirmed || confirmVP == VP_SD_FileSelectConfirm)) - || current_screenID == DGUS_SCREEN_SDPRINTMANIPULATION + || (current_screenID == DGUS_SCREEN_CONFIRM && (confirmVP == VP_SD_AbortPrintConfirmed || confirmVP == VP_SD_FileSelectConfirm)) + || current_screenID == DGUS_SCREEN_SDPRINTMANIPULATION ) filelist.refresh(); } @@ -261,12 +263,13 @@ void DGUSScreenHandlerMKS::sendTMCStepValue(DGUS_VP_Variable &var) { gotoScreen(MKSLCD_SCREEN_PrintDone); } -#else +#else // !HAS_MEDIA + void DGUSScreenHandlerMKS::printReturn(DGUS_VP_Variable& var, void *val_ptr) { - const uint16_t value = BE16_P(val_ptr); - if (value == 0x0F) gotoScreen(DGUS_SCREEN_MAIN); + if (BE16_P(val_ptr) == 0x0F) gotoScreen(DGUS_SCREEN_MAIN); } -#endif // HAS_MEDIA + +#endif void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) { uint8_t *tmp = (uint8_t*)val_ptr; @@ -276,10 +279,9 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) { // meaning "return to previous screen" DGUS_ScreenID target = (DGUS_ScreenID)tmp[1]; - // when the dgus had reboot, it will enter the DGUS_SCREEN_MAIN page, - // so user can change any page to use this function, an it will check - // if robin nano is printing. when it is, dgus will enter the printing - // page to continue print; + // When the DGUS reboots it enters the DGUS_SCREEN_MAIN page so the user + // can change any page to use this function and it will check whether a print + // job is active. If so DGUS will go to the printing page to continue the job. // //if (printJobOngoing() || printingIsPaused()) { // if (target == MKSLCD_PAUSE_SETTING_MOVE || target == MKSLCD_PAUSE_SETTING_EX @@ -288,7 +290,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) { // } // else // gotoScreen(MKSLCD_SCREEN_PRINT); - // return; + // return; //} if (target == DGUS_SCREEN_POPUP) { @@ -302,7 +304,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) { updateNewScreen(target); - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) if (!findScreenVPMapList(target)) DEBUG_ECHOLNPGM("WARNING: No screen Mapping found for ", target); #endif } @@ -323,10 +325,7 @@ void DGUSScreenHandlerMKS::zOffsetConfirm(DGUS_VP_Variable &var, void *val_ptr) void DGUSScreenHandlerMKS::getTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr) { const uint16_t value = BE16_P(val_ptr); - switch (value) { - case 0 ... 1: DGUSAutoTurnOff = (bool)value; break; - default: break; - } + if (value < 2) DGUSAutoTurnOff = (bool)value; } void DGUSScreenHandlerMKS::getMinExtrudeTemp(DGUS_VP_Variable &var, void *val_ptr) { @@ -337,14 +336,13 @@ void DGUSScreenHandlerMKS::getMinExtrudeTemp(DGUS_VP_Variable &var, void *val_pt } void DGUSScreenHandlerMKS::getZoffsetDistance(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t value = BE16_P(val_ptr); float val_distance = 0; - switch (value) { - case 0: val_distance = 0.01; break; - case 1: val_distance = 0.1; break; - case 2: val_distance = 0.5; break; - case 3: val_distance = 1; break; - default: val_distance = 0.01; break; + switch (BE16_P(val_ptr)) { + default: + case 0: val_distance = 0.01f; break; + case 1: val_distance = 0.10f; break; + case 2: val_distance = 0.50f; break; + case 3: val_distance = 1.00f; break; } ZOffset_distance = val_distance; } @@ -354,11 +352,10 @@ void DGUSScreenHandlerMKS::getManualMovestep(DGUS_VP_Variable &var, void *val_pt } void DGUSScreenHandlerMKS::eepromControl(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t eep_flag = BE16_P(val_ptr); - switch (eep_flag) { + switch (BE16_P(val_ptr)) { case 0: settings.save(); - settings.load(); // load eeprom data to check the data is right + //settings.load(); // Load EEPROM to validate the data gotoScreen(MKSLCD_SCREEN_EEP_Config); break; @@ -366,56 +363,39 @@ void DGUSScreenHandlerMKS::eepromControl(DGUS_VP_Variable &var, void *val_ptr) { settings.reset(); gotoScreen(MKSLCD_SCREEN_EEP_Config); break; - - default: break; } } void DGUSScreenHandlerMKS::zOffsetSelect(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t z = BE16_P(val_ptr); - switch (z) { - case 0: Z_distance = 0.01; break; - case 1: Z_distance = 0.1; break; - case 2: Z_distance = 0.5; break; - default: Z_distance = 1; break; + switch (BE16_P(val_ptr)) { + case 0: Z_distance = 0.01f; break; + case 1: Z_distance = 0.10f; break; + case 2: Z_distance = 0.50f; break; + case 3: + default: Z_distance = 1.00f; break; } } void DGUSScreenHandlerMKS::getOffsetValue(DGUS_VP_Variable &var, void *val_ptr) { - #if HAS_BED_PROBE - const int32_t value = BE32_P(val_ptr); - const float Offset = value / 100.0f; - + const float offset = BE32_P(val_ptr) / 100.0f; switch (var.VP) { default: break; - case VP_OFFSET_X: probe.offset.x = Offset; break; - case VP_OFFSET_Y: probe.offset.y = Offset; break; - case VP_OFFSET_Z: probe.offset.z = Offset; break; + case VP_OFFSET_X: probe.offset.x = offset; break; + case VP_OFFSET_Y: probe.offset.y = offset; break; + case VP_OFFSET_Z: probe.offset.z = offset; break; } settings.save(); #endif } void DGUSScreenHandlerMKS::languageChange(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t lag_flag = BE16_P(val_ptr); - switch (lag_flag) { - case MKS_SimpleChinese: - languageDisplay(MKS_SimpleChinese); - mks_language_index = MKS_SimpleChinese; - dgus.writeVariable(VP_LANGUAGE_CHANGE1, (uint8_t)MKS_Language_Choose); - dgus.writeVariable(VP_LANGUAGE_CHANGE2, (uint8_t)MKS_Language_NoChoose); - settings.save(); - break; - case MKS_English: - languageDisplay(MKS_English); - mks_language_index = MKS_English; - dgus.writeVariable(VP_LANGUAGE_CHANGE1, (uint8_t)MKS_Language_NoChoose); - dgus.writeVariable(VP_LANGUAGE_CHANGE2, (uint8_t)MKS_Language_Choose); - settings.save(); - break; - default: break; - } + const MKS_Language lang = (MKS_Language)BE16_P(val_ptr); + if (lang != MKS_SimpleChinese && lang != MKS_English) return; + mks_language_index = lang; + updateDisplayLanguage(); + languagePInit(); + settings.save(); } #if ENABLED(MESH_BED_LEVELING) @@ -426,8 +406,8 @@ void DGUSScreenHandlerMKS::levelControl(DGUS_VP_Variable &var, void *val_ptr) { #if ENABLED(MESH_BED_LEVELING) auto cs = getCurrentScreen(); #endif - const uint16_t lev_but = BE16_P(val_ptr); - switch (lev_but) { + + switch (BE16_P(val_ptr)) { case 0: #if ENABLED(AUTO_BED_LEVELING_BILINEAR) @@ -442,22 +422,27 @@ void DGUSScreenHandlerMKS::levelControl(DGUS_VP_Variable &var, void *val_ptr) { mesh_point_count = GRID_MAX_POINTS; - if (mks_language_index == MKS_English) { - const char level_buf_en[] = "Start Level"; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_en, 32, true); - } - else if (mks_language_index == MKS_SimpleChinese) { - const uint16_t level_buf_ch[] = {0xAABF, 0xBCCA, 0xF7B5, 0xBDC6, 0x2000}; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_ch, 32, true); + switch (mks_language_index) { + default: + case MKS_English: { + const char level_buf_en[] = "Start Leveling"; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_en); + } break; + case MKS_SimpleChinese: { + const uint16_t level_buf_ch[] = { 0xAABF, 0xBCCA, 0xF7B5, 0xBDC6, 0x2000 }; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_ch); + } break; } cs = getCurrentScreen(); if (cs != MKSLCD_AUTO_LEVEL) gotoScreen(MKSLCD_AUTO_LEVEL); + #else gotoScreen(MKSLCD_SCREEN_LEVEL); #endif + break; case 1: @@ -470,26 +455,23 @@ void DGUSScreenHandlerMKS::levelControl(DGUS_VP_Variable &var, void *val_ptr) { } void DGUSScreenHandlerMKS::meshLevelDistanceConfig(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t mesh_dist = BE16_P(val_ptr); - switch (mesh_dist) { - case 0: mesh_adj_distance = 0.01; break; - case 1: mesh_adj_distance = 0.1; break; - case 2: mesh_adj_distance = 1; break; - default: mesh_adj_distance = 0.1; break; + switch (BE16_P(val_ptr)) { + case 0: mesh_adj_distance = 0.01f; break; + case 1: mesh_adj_distance = 0.10f; break; + case 2: mesh_adj_distance = 1.00f; break; + default: mesh_adj_distance = 0.10f; break; } } void DGUSScreenHandlerMKS::meshLevel(DGUS_VP_Variable &var, void *val_ptr) { #if ENABLED(MESH_BED_LEVELING) - const uint16_t mesh_val = BE16_P(val_ptr); - // static uint8_t a_first_level = 1; char cmd_buf[30]; float offset = mesh_adj_distance; int16_t integer, Deci, Deci2; if (!queue.ring_buffer.empty()) return; - switch (mesh_val) { + switch (BE16_P(val_ptr)) { case 0: offset = mesh_adj_distance; integer = offset; // get int @@ -502,7 +484,6 @@ void DGUSScreenHandlerMKS::meshLevel(DGUS_VP_Variable &var, void *val_ptr) { snprintf_P(cmd_buf, 30, PSTR("G1 Z%d.%d%d"), integer, Deci, Deci2); queue.enqueue_one_now(cmd_buf); queue.enqueue_now(F("G90")); - //soft_endstop._enabled = true; break; case 1: @@ -521,42 +502,49 @@ void DGUSScreenHandlerMKS::meshLevel(DGUS_VP_Variable &var, void *val_ptr) { case 2: if (mesh_point_count == GRID_MAX_POINTS) { // The first point - - queue.enqueue_now(F("G28")); - queue.enqueue_now(F("G29S1")); + queue.enqueue_now(F("G28\nG29S1")); mesh_point_count--; - if (mks_language_index == MKS_English) { - const char level_buf_en1[] = "Next Point"; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_en1, 32, true); - } - else if (mks_language_index == MKS_SimpleChinese) { - const uint16_t level_buf_ch1[] = {0xC2CF, 0xBBD2, 0xE3B5, 0x2000}; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_ch1, 32, true); + switch (mks_language_index) { + default: + case MKS_English: { + const char level_buf_en1[] = "Next Point"; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_en1); + } break; + case MKS_SimpleChinese: { + const uint16_t level_buf_ch1[] = { 0xC2CF, 0xBBD2, 0xE3B5, 0x2000 }; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_ch1); + } break; } } - else if (mesh_point_count > 1) { // 倒数第二个点 + else if (mesh_point_count > 1) { queue.enqueue_now(F("G29S2")); mesh_point_count--; - if (mks_language_index == MKS_English) { - const char level_buf_en2[] = "Next Point"; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_en2, 32, true); - } - else if (mks_language_index == MKS_SimpleChinese) { - const uint16_t level_buf_ch2[] = {0xC2CF, 0xBBD2, 0xE3B5, 0x2000}; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_ch2, 32, true); + switch (mks_language_index) { + default: + case MKS_English: { + const char level_buf_en2[] = "Next Point"; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_en2); + } break; + case MKS_SimpleChinese: { + const uint16_t level_buf_ch2[] = { 0xC2CF, 0xBBD2, 0xE3B5, 0x2000 }; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_ch2); + } break; } } else if (mesh_point_count == 1) { queue.enqueue_now(F("G29S2")); mesh_point_count--; - if (mks_language_index == MKS_English) { - const char level_buf_en2[] = "Leveling Done"; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_en2, 32, true); - } - else if (mks_language_index == MKS_SimpleChinese) { - const uint16_t level_buf_ch2[] = {0xF7B5, 0xBDC6, 0xEACD, 0xC9B3, 0x2000}; - dgus.writeVariable(VP_AutoLevel_1_Dis, level_buf_ch2, 32, true); + switch (mks_language_index) { + default: + case MKS_English: { + const char level_buf_en2[] = "Leveling Done"; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_en2); + } break; + case MKS_SimpleChinese: { + const uint16_t level_buf_ch2[] = { 0xF7B5, 0xBDC6, 0xEACD, 0xC9B3, 0x2000 }; + dgus.writeStringVar(VP_AutoLevel_1_Dis, level_buf_ch2); + } break; } settings.save(); } @@ -568,8 +556,7 @@ void DGUSScreenHandlerMKS::meshLevel(DGUS_VP_Variable &var, void *val_ptr) { } break; - default: - break; + default: break; } #endif // MESH_BED_LEVELING } @@ -579,8 +566,7 @@ void DGUSScreenHandlerMKS::sdFileBack(DGUS_VP_Variable&, void*) { } void DGUSScreenHandlerMKS::lcdBLKAdjust(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t lcd_val = BE16_P(val_ptr); - lcd_default_light = constrain(lcd_val, 10, 100); + lcd_default_light = constrain(BE16_P(val_ptr), 10, 100); const uint16_t lcd_data[2] = { lcd_default_light, lcd_default_light }; dgus.writeVariable(0x0082, &lcd_data, 5, true); @@ -646,30 +632,24 @@ void DGUSScreenHandlerMKS::tmcChangeConfig(DGUS_VP_Variable &var, void *val_ptr) switch (var.VP) { case VP_TMC_X_STEP: - #if USE_SENSORLESS - #if X_HAS_STEALTHCHOP - stepperX.homing_threshold(mks_min(tmc_val, 255)); - settings.save(); - //tmc_step.x = stepperX.homing_threshold(); - #endif + #if USE_SENSORLESS && X_HAS_STEALTHCHOP + stepperX.homing_threshold(mks_min(tmc_val, 255)); + settings.save(); + //tmc_step.x = stepperX.homing_threshold(); #endif break; case VP_TMC_Y_STEP: - #if USE_SENSORLESS - #if Y_HAS_STEALTHCHOP - stepperY.homing_threshold(mks_min(tmc_val, 255)); - settings.save(); - //tmc_step.y = stepperY.homing_threshold(); - #endif + #if USE_SENSORLESS && Y_HAS_STEALTHCHOP + stepperY.homing_threshold(mks_min(tmc_val, 255)); + settings.save(); + //tmc_step.y = stepperY.homing_threshold(); #endif break; case VP_TMC_Z_STEP: - #if USE_SENSORLESS - #if Z_HAS_STEALTHCHOP - stepperZ.homing_threshold(mks_min(tmc_val, 255)); - settings.save(); - //tmc_step.z = stepperZ.homing_threshold(); - #endif + #if USE_SENSORLESS && Z_HAS_STEALTHCHOP + stepperZ.homing_threshold(mks_min(tmc_val, 255)); + settings.save(); + //tmc_step.z = stepperZ.homing_threshold(); #endif break; case VP_TMC_X_Current: @@ -691,7 +671,7 @@ void DGUSScreenHandlerMKS::tmcChangeConfig(DGUS_VP_Variable &var, void *val_ptr) #endif break; case VP_TMC_Y1_Current: - #if X2_IS_TRINAMIC + #if Y2_IS_TRINAMIC stepperY2.rms_current(tmc_val); settings.save(); #endif @@ -721,8 +701,7 @@ void DGUSScreenHandlerMKS::tmcChangeConfig(DGUS_VP_Variable &var, void *val_ptr) #endif break; - default: - break; + default: break; } #if USE_SENSORLESS TERN_(X_HAS_STEALTHCHOP, tmc_step.x = stepperX.homing_threshold()); @@ -749,55 +728,38 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { default: return; #if HAS_X_AXIS case VP_MOVE_X: - axiscode = 'X'; - if (!ExtUI::canMove(ExtUI::axis_t::X)) goto cannotmove; + if (!ExtUI::canMove(ExtUI::axis_t::X)) return; + axiscode = 'X'; speed = manual_feedrate_mm_m.x; break; #endif #if HAS_Y_AXIS case VP_MOVE_Y: - axiscode = 'Y'; - speed = manual_feedrate_mm_m.y; - if (!ExtUI::canMove(ExtUI::axis_t::Y)) goto cannotmove; + if (!ExtUI::canMove(ExtUI::axis_t::Y)) return; + axiscode = 'Y'; speed = manual_feedrate_mm_m.y; break; #endif #if HAS_Z_AXIS case VP_MOVE_Z: - axiscode = 'Z'; - speed = manual_feedrate_mm_m.z; - if (!ExtUI::canMove(ExtUI::axis_t::Z)) goto cannotmove; + if (!ExtUI::canMove(ExtUI::axis_t::Z)) return; + axiscode = 'Z'; speed = manual_feedrate_mm_m.z; break; #endif - case VP_MOTOR_LOCK_UNLOK: - movevalue = 5; - break; + case VP_MOTOR_LOCK_UNLOCK: movevalue = 5; break; - case VP_HOME_ALL: // only used for homing - axiscode = '\0'; - movevalue = 0; // ignore value sent from display, this VP is _ONLY_ for homing. - break; + // Ignore value sent from display, this VP is _ONLY_ for homing. + case VP_HOME_ALL: axiscode = '\0'; movevalue = 0; break; #if HAS_X_AXIS - case VP_X_HOME: - axiscode = 'X'; - movevalue = 0; - break; + case VP_X_HOME: axiscode = 'X'; movevalue = 0; break; #endif - #if HAS_Y_AXIS - case VP_Y_HOME: - axiscode = 'Y'; - movevalue = 0; - break; + case VP_Y_HOME: axiscode = 'Y'; movevalue = 0; break; #endif - #if HAS_Z_AXIS - case VP_Z_HOME: - axiscode = 'Z'; - movevalue = 0; - break; + case VP_Z_HOME: axiscode = 'Z'; movevalue = 0; break; #endif } @@ -810,70 +772,55 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { } if (!movevalue) { - // char buf[6] = "G28 X"; - // buf[4] = axiscode; - - char buf[6]; - sprintf(buf, "G28 %c", axiscode); - queue.enqueue_one_now(buf); + queue.enqueue_one_now(TS(F("G28"), axiscode)); forceCompleteUpdate(); return; } - else if (movevalue == 5) { - char buf[6]; - snprintf_P(buf,6,PSTR("M84 %c"), axiscode); - queue.enqueue_one_now(buf); + + if (movevalue == 5) { + queue.enqueue_one_now(TS(F("M84"), axiscode)); forceCompleteUpdate(); return; } - else { - // movement - const bool old_relative_mode = relative_mode; - if (!relative_mode) queue.enqueue_now(F("G91")); - char buf[32]; // G1 X9999.99 F12345 - //const uint16_t backup_speed = MMS_TO_MMM(feedrate_mm_s); - char sign[] = "\0"; - int16_t value = movevalue / 100; - if (movevalue < 0) { value = -value; sign[0] = '-'; } - const int16_t fraction = ABS(movevalue) % 100; - snprintf_P(buf, 32, PSTR("G0 %c%s%d.%02d F%d"), axiscode, sign, value, fraction, speed); - queue.enqueue_one_now(buf); - //if (backup_speed != speed) { - // snprintf_P(buf, 32, PSTR("G0 F%d"), backup_speed); - // queue.enqueue_one_now(buf); - //} + // Movement + const bool old_relative_mode = relative_mode; + if (!relative_mode) queue.enqueue_now(F("G91")); + char buf[32]; // G1 X9999.99 F12345 + //const uint16_t backup_speed = MMS_TO_MMM(feedrate_mm_s); + char sign[] = "\0"; + int16_t value = movevalue / 100; + if (movevalue < 0) { value = -value; sign[0] = '-'; } + const int16_t fraction = ABS(movevalue) % 100; + snprintf_P(buf, 32, PSTR("G0 %c%s%d.%02d F%d"), axiscode, sign, value, fraction, speed); + queue.enqueue_one_now(buf); - //while (!enqueue_and_echo_command(buf)) idle(); + //if (backup_speed != speed) { + // snprintf_P(buf, 32, PSTR("G0 F%d"), backup_speed); + // queue.enqueue_one_now(buf); + //} - if (!old_relative_mode) queue.enqueue_now(F("G90")); - } + //while (!enqueue_and_echo_command(buf)) idle(); + + if (!old_relative_mode) queue.enqueue_now(F("G90")); forceCompleteUpdate(); - - cannotmove: - return; } void DGUSScreenHandlerMKS::getParkPos(DGUS_VP_Variable &var, void *val_ptr) { const int16_t pos = BE16_P(val_ptr); - switch (var.VP) { case VP_X_PARK_POS: mks_park_pos.x = pos; break; case VP_Y_PARK_POS: mks_park_pos.y = pos; break; case VP_Z_PARK_POS: mks_park_pos.z = pos; break; - default: break; } - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::handleChangeLevelPoint(DGUS_VP_Variable &var, void *val_ptr) { - const int16_t raw = BE16_P(val_ptr); - - *(int16_t*)var.memadr = raw; - + *(int16_t*)var.memadr = BE16_P(val_ptr); settings.save(); - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } #if ENABLED(EDITABLE_STEPS_PER_UNIT) @@ -910,7 +857,7 @@ void DGUSScreenHandlerMKS::handleChangeLevelPoint(DGUS_VP_Variable &var, void *v } ExtUI::setAxisSteps_per_mm(value, extruder); settings.save(); - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } #endif // EDITABLE_STEPS_PER_UNIT @@ -938,16 +885,16 @@ void DGUSScreenHandlerMKS::handleExtruderMaxSpeedChange(DGUS_VP_Variable &var, v ExtUI::extruder_t extruder; switch (var.VP) { default: return; - #if HAS_HOTEND - case VP_E0_MAX_SPEED: extruder = ExtUI::extruder_t::E0; break; - #endif - #if HAS_MULTI_HOTEND - #endif - case VP_E1_MAX_SPEED: extruder = ExtUI::extruder_t::E1; break; + #if HAS_HOTEND + case VP_E0_MAX_SPEED: extruder = ExtUI::extruder_t::E0; break; + #endif + #if HAS_MULTI_HOTEND + case VP_E1_MAX_SPEED: extruder = ExtUI::extruder_t::E1; break; + #endif } ExtUI::setAxisMaxFeedrate_mm_s(value, extruder); settings.save(); - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::handleMaxAccChange(DGUS_VP_Variable &var, void *val_ptr) { @@ -981,74 +928,71 @@ void DGUSScreenHandlerMKS::handleExtruderAccChange(DGUS_VP_Variable &var, void * } ExtUI::setAxisMaxAcceleration_mm_s2(value, extruder); settings.save(); - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::handleTravelAccChange(DGUS_VP_Variable &var, void *val_ptr) { - uint16_t travel = BE16_P(val_ptr); - planner.settings.travel_acceleration = (float)travel; - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + planner.settings.travel_acceleration = (float)BE16_P(val_ptr); + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::handleFeedRateMinChange(DGUS_VP_Variable &var, void *val_ptr) { - uint16_t t = BE16_P(val_ptr); - planner.settings.min_feedrate_mm_s = (float)t; - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + planner.settings.min_feedrate_mm_s = (float)BE16_P(val_ptr); + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::handleMin_T_F(DGUS_VP_Variable &var, void *val_ptr) { - uint16_t t_f = BE16_P(val_ptr); - planner.settings.min_travel_feedrate_mm_s = (float)t_f; - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + planner.settings.min_travel_feedrate_mm_s = (float)BE16_P(val_ptr); + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::handleAccChange(DGUS_VP_Variable &var, void *val_ptr) { - uint16_t acc = BE16_P(val_ptr); - planner.settings.acceleration = (float)acc; - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + planner.settings.acceleration = (float)BE16_P(val_ptr); + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } #if ENABLED(PREVENT_COLD_EXTRUSION) void DGUSScreenHandlerMKS::handleGetExMinTemp(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t ex_min_temp = BE16_P(val_ptr); - thermalManager.extrude_min_temp = ex_min_temp; - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + thermalManager.extrude_min_temp = BE16_P(val_ptr); + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } #endif #if HAS_PID_HEATING + void DGUSScreenHandler::handleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t rawvalue = BE16_P(val_ptr); - const float value = float(rawvalue); + const float value = (float)BE16_P(val_ptr); float newvalue = 0; switch (var.VP) { default: return; - #if HAS_HOTEND - case VP_E0_PID_P: newvalue = value; break; - case VP_E0_PID_I: newvalue = scalePID_i(value); break; - case VP_E0_PID_D: newvalue = scalePID_d(value); break; - #endif - #if HAS_MULTI_HOTEND - case VP_E1_PID_P: newvalue = value; break; - case VP_E1_PID_I: newvalue = scalePID_i(value); break; - case VP_E1_PID_D: newvalue = scalePID_d(value); break; - #endif - #if HAS_HEATED_BED - case VP_BED_PID_P: newvalue = value; break; - case VP_BED_PID_I: newvalue = scalePID_i(value); break; - case VP_BED_PID_D: newvalue = scalePID_d(value); break; - #endif + #if HAS_HOTEND + case VP_E0_PID_P: newvalue = value; break; + case VP_E0_PID_I: newvalue = scalePID_i(value); break; + case VP_E0_PID_D: newvalue = scalePID_d(value); break; + #endif + #if HAS_MULTI_HOTEND + case VP_E1_PID_P: newvalue = value; break; + case VP_E1_PID_I: newvalue = scalePID_i(value); break; + case VP_E1_PID_D: newvalue = scalePID_d(value); break; + #endif + #if HAS_HEATED_BED + case VP_BED_PID_P: newvalue = value; break; + case VP_BED_PID_I: newvalue = scalePID_i(value); break; + case VP_BED_PID_D: newvalue = scalePID_d(value); break; + #endif } *(float *)var.memadr = newvalue; settings.save(); - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } + #endif // HAS_PID_HEATING #if ENABLED(BABYSTEPPING) + void DGUSScreenHandler::handleLiveAdjustZ(DGUS_VP_Variable &var, void *val_ptr) { const float step = ZOffset_distance; @@ -1088,22 +1032,17 @@ void DGUSScreenHandlerMKS::handleAccChange(DGUS_VP_Variable &var, void *val_ptr) } forceCompleteUpdate(); } + #endif // BABYSTEPPING void DGUSScreenHandlerMKS::getManualFilament(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t len = BE16_P(val_ptr); - const float value = (float)len; - - distanceFilament = value; - - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + distanceFilament = (float)BE16_P(val_ptr); + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::getManualFilamentSpeed(DGUS_VP_Variable &var, void *val_ptr) { - const uint16_t len = BE16_P(val_ptr); - filamentSpeed_mm_s = len; - - skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel + filamentSpeed_mm_s = BE16_P(val_ptr); + skipVP = var.VP; // Don't overwrite value the next update time as the display might autoincrement in parallel } void DGUSScreenHandlerMKS::filamentLoadUnload(DGUS_VP_Variable &var, void *val_ptr, const int filamentDir) { @@ -1146,7 +1085,7 @@ void DGUSScreenHandlerMKS::filamentLoadUnload(DGUS_VP_Variable &var, void *val_p #if ALL(HAS_HOTEND, PREVENT_COLD_EXTRUSION) if (hotend_too_cold) { if (thermalManager.targetTooColdToExtrude(hotend_too_cold - 1)) thermalManager.setTargetHotend(thermalManager.extrude_min_temp, hotend_too_cold - 1); - sendInfoScreen(F("NOTICE"), nullptr, F("Please wait."), F("Nozzle heating!"), true, true, true, true); + sendInfoScreen(F("NOTICE"), nullptr, F("Please wait."), F("Nozzle heating!")); setupConfirmAction(nullptr); gotoScreen(DGUS_SCREEN_POPUP); } @@ -1154,11 +1093,11 @@ void DGUSScreenHandlerMKS::filamentLoadUnload(DGUS_VP_Variable &var, void *val_p if (swap_tool) { char buf[30]; - snprintf_P(buf, 30 + snprintf_P(buf, 30, #if ANY(HAS_MULTI_HOTEND, SINGLENOZZLE) - , PSTR("M1002T%cE%dF%d"), char('0' + swap_tool - 1) + PSTR("M1002T%cE%dF%d"), char('0' + swap_tool - 1) #else - , PSTR("M1002E%dF%d") + PSTR("M1002E%dF%d") #endif , (int)distanceFilament * filamentDir, filamentSpeed_mm_s * 60 ); @@ -1181,11 +1120,13 @@ void GcodeSuite::M1002() { const uint8_t old_axis_relative = axis_relative; set_e_relative(); // M83 + { char buf[20]; snprintf_P(buf, 20, PSTR("G1E%dF%d"), parser.intval('E'), parser.intval('F')); process_subcommands_now(buf); } + axis_relative = old_axis_relative; } @@ -1200,7 +1141,6 @@ void DGUSScreenHandlerMKS::filamentUnload(DGUS_VP_Variable &var, void *val_ptr) #if ENABLED(DGUS_FILAMENT_LOADUNLOAD) void DGUSScreenHandler::handleFilamentOption(DGUS_VP_Variable &var, void *val_ptr) { - uint8_t e_temp = 0; filament_data.heated = false; uint16_t preheat_option = BE16_P(val_ptr); if (preheat_option >= 10) { // Unload filament type @@ -1213,6 +1153,7 @@ void DGUSScreenHandlerMKS::filamentUnload(DGUS_VP_Variable &var, void *val_ptr) else // Cancel filament operation filament_data.action = 0; + uint8_t e_temp = 0; switch (preheat_option) { case 0: // Load PLA #ifdef PREHEAT_1_TEMP_HOTEND @@ -1220,7 +1161,9 @@ void DGUSScreenHandlerMKS::filamentUnload(DGUS_VP_Variable &var, void *val_ptr) #endif break; case 1: // Load ABS - TERN_(PREHEAT_2_TEMP_HOTEND, e_temp = PREHEAT_2_TEMP_HOTEND); + #ifdef PREHEAT_2_TEMP_HOTEND + e_temp = PREHEAT_2_TEMP_HOTEND; + #endif break; case 2: // Load PET #ifdef PREHEAT_3_TEMP_HOTEND @@ -1234,35 +1177,31 @@ void DGUSScreenHandlerMKS::filamentUnload(DGUS_VP_Variable &var, void *val_ptr) break; case 9: // Cool down default: - e_temp = 0; - break; + e_temp = 0; break; } if (filament_data.action == 0) { // Go back to utility screen - #if HAS_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0); - #endif - #if HAS_MULTI_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1); - #endif + TERN_(HAS_EXTRUDERS, thermalManager.setTargetHotend(e_temp, 0)); + TERN_(HAS_MULTI_EXTRUDER, thermalManager.setTargetHotend(e_temp, 1)); gotoScreen(DGUS_SCREEN_UTILITY); + return; } - else { // Go to the preheat screen to show the heating progress - switch (var.VP) { - default: return; - #if HAS_HOTEND - case VP_E0_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E0; - thermalManager.setTargetHotend(e_temp, filament_data.extruder); - break; - #endif - #if HAS_MULTI_HOTEND - case VP_E1_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E1; - thermalManager.setTargetHotend(e_temp, filament_data.extruder); - break; - #endif - } + + // Go to the preheat screen to show the heating progress + switch (var.VP) { + default: return; + #if HAS_EXTRUDERS + case VP_E0_FILAMENT_LOAD_UNLOAD: + filament_data.extruder = 0; + thermalManager.setTargetHotend(e_temp, filament_data.extruder); + break; + #endif + #if HAS_MULTI_EXTRUDER + case VP_E1_FILAMENT_LOAD_UNLOAD: + filament_data.extruder = 1; + thermalManager.setTargetHotend(e_temp, filament_data.extruder); + break; + #endif } } @@ -1278,7 +1217,7 @@ void DGUSScreenHandlerMKS::filamentUnload(DGUS_VP_Variable &var, void *val_ptr) if (!filament_data.heated) { filament_data.heated = true; } - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; } else { // unload filament if (!filament_data.heated) { @@ -1287,14 +1226,14 @@ void DGUSScreenHandlerMKS::filamentUnload(DGUS_VP_Variable &var, void *val_ptr) } // Before unloading extrude to prevent jamming if (filament_data.purge_length >= 0) { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; filament_data.purge_length -= movevalue; } else { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) - movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) - movevalue; } } - ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder); + ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0); } } @@ -1315,11 +1254,12 @@ bool DGUSScreenHandlerMKS::loop() { if (language_times != 0) { languagePInit(); - languageDisplay(mks_language_index); + updateDisplayLanguage(); language_times--; } #if ENABLED(SHOW_BOOTSCREEN) + static bool booted = false; if (!booted && ELAPSED(ms, TERN(USE_MKS_GREEN_UI, 1000, BOOTSCREEN_TIMEOUT))) { booted = true; @@ -1347,24 +1287,15 @@ bool DGUSScreenHandlerMKS::loop() { #if ENABLED(DGUS_MKS_RUNOUT_SENSOR) if (booted && printingIsActive()) runoutIdle(); #endif + #endif // SHOW_BOOTSCREEN return isScreenComplete(); } void DGUSScreenHandlerMKS::languagePInit() { - switch (mks_language_index) { - case MKS_SimpleChinese: - dgus.writeVariable(VP_LANGUAGE_CHANGE1, (uint8_t)MKS_Language_Choose); - dgus.writeVariable(VP_LANGUAGE_CHANGE2, (uint8_t)MKS_Language_NoChoose); - break; - case MKS_English: - dgus.writeVariable(VP_LANGUAGE_CHANGE1, (uint8_t)MKS_Language_NoChoose); - dgus.writeVariable(VP_LANGUAGE_CHANGE2, (uint8_t)MKS_Language_Choose); - break; - default: - break; - } + dgus.writeVariable(VP_LANGUAGE_CHANGE1, (uint8_t)(mks_language_index == MKS_English ? MKS_Language_NoChoose : MKS_Language_Choose)); + dgus.writeVariable(VP_LANGUAGE_CHANGE2, (uint8_t)(mks_language_index == MKS_English ? MKS_Language_Choose : MKS_Language_NoChoose)); } void DGUSScreenHandlerMKS::extrudeLoadInit() { @@ -1397,542 +1328,544 @@ void DGUSScreenHandlerMKS::runoutIdle() { queue.inject(F("M25")); gotoScreen(MKSLCD_SCREEN_PAUSE); - sendInfoScreen(F("NOTICE"), nullptr, F("Please change filament!"), nullptr, true, true, true, true); + sendInfoScreen(F("NOTICE"), nullptr, F("Please change filament!"), nullptr); //setupConfirmAction(nullptr); gotoScreen(DGUS_SCREEN_POPUP); break; case UNRUNOUT_STATUS: - if (FILAMENT_IS_OUT()) - runout_mks.runout_status = RUNOUT_STATUS; + if (FILAMENT_IS_OUT()) runout_mks.runout_status = RUNOUT_STATUS; break; case RUNOUT_BEGIN_STATUS: - if (!FILAMENT_IS_OUT()) - runout_mks.runout_status = RUNOUT_WAITING_STATUS; + if (!FILAMENT_IS_OUT()) runout_mks.runout_status = RUNOUT_WAITING_STATUS; break; case RUNOUT_WAITING_STATUS: - if (FILAMENT_IS_OUT()) - runout_mks.runout_status = RUNOUT_BEGIN_STATUS; + if (FILAMENT_IS_OUT()) runout_mks.runout_status = RUNOUT_BEGIN_STATUS; break; default: break; } - #endif + #endif // DGUS_MKS_RUNOUT_SENSOR } -void DGUSScreenHandlerMKS::languageDisplay(uint8_t var) { - if (var == MKS_English) { - const char home_buf_en[] = "Home"; - dgus.writeVariable(VP_HOME_Dis, home_buf_en, 32, true); +void DGUSScreenHandlerMKS::updateDisplayLanguage() { + switch (mks_language_index) { + case MKS_English : { + const char home_buf_en[] = "Home"; + dgus.writeStringVar(VP_HOME_Dis, home_buf_en); - const char setting_buf_en[] = "Setting"; - dgus.writeVariable(VP_Setting_Dis, setting_buf_en, 32, true); + const char setting_buf_en[] = "Settings"; + dgus.writeStringVar(VP_Setting_Dis, setting_buf_en); - const char Tool_buf_en[] = "Tool"; - dgus.writeVariable(VP_Tool_Dis, Tool_buf_en, 32, true); + const char Tool_buf_en[] = "Tools"; + dgus.writeStringVar(VP_Tool_Dis, Tool_buf_en); - const char Print_buf_en[] = "Print"; - dgus.writeVariable(VP_Print_Dis, Print_buf_en, 32, true); + const char Print_buf_en[] = "Print"; + dgus.writeStringVar(VP_Print_Dis, Print_buf_en); - const char Language_buf_en[] = "Language"; - dgus.writeVariable(VP_Language_Dis, Language_buf_en, 32, true); + const char Language_buf_en[] = "Language"; + dgus.writeStringVar(VP_Language_Dis, Language_buf_en); - const char About_buf_en[] = "About"; - dgus.writeVariable(VP_About_Dis, About_buf_en, 32, true); + const char About_buf_en[] = "About"; + dgus.writeStringVar(VP_About_Dis, About_buf_en); - const char Config_buf_en[] = "Config"; - dgus.writeVariable(VP_Config_Dis, Config_buf_en, 32, true); + const char Config_buf_en[] = "Config"; + dgus.writeStringVar(VP_Config_Dis, Config_buf_en); - const char MotorConfig_buf_en[] = "MotorConfig"; - dgus.writeVariable(VP_MotorConfig_Dis, MotorConfig_buf_en, 32, true); + const char MotorConfig_buf_en[] = "Motion Config"; + dgus.writeStringVar(VP_MotorConfig_Dis, MotorConfig_buf_en); - const char LevelConfig_buf_en[] = "LevelConfig"; - dgus.writeVariable(VP_LevelConfig_Dis, LevelConfig_buf_en, 32, true); + const char LevelConfig_buf_en[] = "Level Config"; + dgus.writeStringVar(VP_LevelConfig_Dis, LevelConfig_buf_en); - const char TemperatureConfig_buf_en[] = "Temperature"; - dgus.writeVariable(VP_TemperatureConfig_Dis, TemperatureConfig_buf_en, 32, true); + const char TemperatureConfig_buf_en[] = "Temperature"; + dgus.writeStringVar(VP_TemperatureConfig_Dis, TemperatureConfig_buf_en); - const char Advance_buf_en[] = "Advance"; - dgus.writeVariable(VP_Advance_Dis, Advance_buf_en, 32, true); + const char Advance_buf_en[] = "Advanced"; + dgus.writeStringVar(VP_Advance_Dis, Advance_buf_en); - const char Filament_buf_en[] = "Extrude"; - dgus.writeVariable(VP_Filament_Dis, Filament_buf_en, 32, true); + const char Filament_buf_en[] = "Extrude"; + dgus.writeStringVar(VP_Filament_Dis, Filament_buf_en); - const char Move_buf_en[] = "Move"; - dgus.writeVariable(VP_Move_Dis, Move_buf_en, 32, true); + const char Move_buf_en[] = "Move"; + dgus.writeStringVar(VP_Move_Dis, Move_buf_en); - #if ENABLED(AUTO_BED_LEVELING_BILINEAR) - const char Level_buf_en[] = "AutoLevel"; - dgus.writeVariable(VP_Level_Dis, Level_buf_en, 32, true); - #elif ENABLED(MESH_BED_LEVELING) - const char Level_buf_en[] = "MeshLevel"; - dgus.writeVariable(VP_Level_Dis, Level_buf_en, 32, true); - #else - const char Level_buf_en[] = "Level"; - dgus.writeVariable(VP_Level_Dis, Level_buf_en, 32, true); - #endif + const char Level_buf_en[] = + #if ENABLED(AUTO_BED_LEVELING_BILINEAR) + "Auto" + #elif ENABLED(MESH_BED_LEVELING) + "Mesh" + #endif + "Level" + ; + dgus.writeStringVar(VP_Level_Dis, Level_buf_en); - const char MotorPluse_buf_en[] = "MotorPluse"; - dgus.writeVariable(VP_MotorPluse_Dis, MotorPluse_buf_en, 32, true); + const char MotorPulse_buf_en[] = "MotorPulse"; + dgus.writeStringVar(VP_MotorPulse_Dis, MotorPulse_buf_en); - const char MotorMaxSpeed_buf_en[] = "MotorMaxSpeed"; - dgus.writeVariable(VP_MotorMaxSpeed_Dis, MotorMaxSpeed_buf_en, 32, true); + const char MotorMaxSpeed_buf_en[] = "MotorMaxSpeed"; + dgus.writeStringVar(VP_MotorMaxSpeed_Dis, MotorMaxSpeed_buf_en); - const char MotorMaxAcc_buf_en[] = "MotorAcc"; - dgus.writeVariable(VP_MotorMaxAcc_Dis, MotorMaxAcc_buf_en, 32, true); + const char MotorMaxAcc_buf_en[] = "MotorAcc"; + dgus.writeStringVar(VP_MotorMaxAcc_Dis, MotorMaxAcc_buf_en); - const char TravelAcc_buf_en[] = "TravelAcc"; - dgus.writeVariable(VP_TravelAcc_Dis, TravelAcc_buf_en, 32, true); + const char TravelAcc_buf_en[] = "Travel Acc."; + dgus.writeStringVar(VP_TravelAcc_Dis, TravelAcc_buf_en); - const char FeedRateMin_buf_en[] = "FeedRateMin"; - dgus.writeVariable(VP_FeedRateMin_Dis, FeedRateMin_buf_en, 32, true); + const char FeedRateMin_buf_en[] = "Min FeedRate"; + dgus.writeStringVar(VP_FeedRateMin_Dis, FeedRateMin_buf_en); - const char TravelFeeRateMin_buf_en[] = "TravelFeedRateMin"; - dgus.writeVariable(VP_TravelFeeRateMin_Dis, TravelFeeRateMin_buf_en, 32, true); + const char TravelFeeRateMin_buf_en[] = "Travel Min FeedRate"; + dgus.writeStringVar(VP_TravelFeeRateMin_Dis, TravelFeeRateMin_buf_en); - const char Acc_buf_en[] = "Acc"; - dgus.writeVariable(VP_ACC_Dis, Acc_buf_en, 32, true); + const char Acc_buf_en[] = "Acceleration"; + dgus.writeStringVar(VP_ACC_Dis, Acc_buf_en); - const char Point_One_buf_en[] = "Point_First"; - dgus.writeVariable(VP_Point_One_Dis, Point_One_buf_en, 32, true); + const char Point_One_buf_en[] = "Point 1"; + dgus.writeStringVar(VP_Point_One_Dis, Point_One_buf_en); - const char Point_Two_buf_en[] = "Point_Second"; - dgus.writeVariable(VP_Point_Two_Dis, Point_Two_buf_en, 32, true); + const char Point_Two_buf_en[] = "Point 2"; + dgus.writeStringVar(VP_Point_Two_Dis, Point_Two_buf_en); - const char Point_Three_buf_en[] = "Point_Third"; - dgus.writeVariable(VP_Point_Three_Dis, Point_Three_buf_en, 32, true); + const char Point_Three_buf_en[] = "Point 3"; + dgus.writeStringVar(VP_Point_Three_Dis, Point_Three_buf_en); - const char Point_Four_buf_en[] = "Point_Fourth"; - dgus.writeVariable(VP_Point_Four_Dis, Point_Four_buf_en, 32, true); + const char Point_Four_buf_en[] = "Point 4"; + dgus.writeStringVar(VP_Point_Four_Dis, Point_Four_buf_en); - const char Point_Five_buf_en[] = "Point_Fifth"; - dgus.writeVariable(VP_Point_Five_Dis, Point_Five_buf_en, 32, true); + const char Point_Five_buf_en[] = "Point 5"; + dgus.writeStringVar(VP_Point_Five_Dis, Point_Five_buf_en); - const char Extrusion_buf_en[] = "Extrusion"; - dgus.writeVariable(VP_Extrusion_Dis, Extrusion_buf_en, 32, true); + const char Extrusion_buf_en[] = "Extrusion"; + dgus.writeStringVar(VP_Extrusion_Dis, Extrusion_buf_en); - const char HeatBed_buf_en[] = "HeatBed"; - dgus.writeVariable(VP_HeatBed_Dis, HeatBed_buf_en, 32, true); + const char HeatBed_buf_en[] = "HeatBed"; + dgus.writeStringVar(VP_HeatBed_Dis, HeatBed_buf_en); - const char FactoryDefaults_buf_en[] = "FactoryDefaults"; - dgus.writeVariable(VP_FactoryDefaults_Dis, FactoryDefaults_buf_en, 32, true); + const char FactoryDefaults_buf_en[] = "Factory Defaults"; + dgus.writeStringVar(VP_FactoryDefaults_Dis, FactoryDefaults_buf_en); - const char StoreSetting_buf_en[] = "StoreSetting"; - dgus.writeVariable(VP_StoreSetting_Dis, StoreSetting_buf_en, 32, true); + const char StoreSetting_buf_en[] = "Store Setting"; + dgus.writeStringVar(VP_StoreSetting_Dis, StoreSetting_buf_en); - const char PrintPauseConfig_buf_en[] = "PrintPauseConfig"; - dgus.writeVariable(VP_PrintPauseConfig_Dis, PrintPauseConfig_buf_en, 32, true); + const char PrintPauseConfig_buf_en[] = "PrintPause Config"; + dgus.writeStringVar(VP_PrintPauseConfig_Dis, PrintPauseConfig_buf_en); - const char X_Pluse_buf_en[] = "X_Pluse"; - dgus.writeVariable(VP_X_Pluse_Dis, X_Pluse_buf_en, 32, true); + const char X_Pulse_buf_en[] = "X_Pulse"; + dgus.writeStringVar(VP_X_Pulse_Dis, X_Pulse_buf_en); - const char Y_Pluse_buf_en[] = "Y_Pluse"; - dgus.writeVariable(VP_Y_Pluse_Dis, Y_Pluse_buf_en, 32, true); + const char Y_Pulse_buf_en[] = "Y_Pulse"; + dgus.writeStringVar(VP_Y_Pulse_Dis, Y_Pulse_buf_en); - const char Z_Pluse_buf_en[] = "Z_Pluse"; - dgus.writeVariable(VP_Z_Pluse_Dis, Z_Pluse_buf_en, 32, true); + const char Z_Pulse_buf_en[] = "Z_Pulse"; + dgus.writeStringVar(VP_Z_Pulse_Dis, Z_Pulse_buf_en); - const char E0_Pluse_buf_en[] = "E0_Pluse"; - dgus.writeVariable(VP_E0_Pluse_Dis, E0_Pluse_buf_en, 32, true); + const char E0_Pulse_buf_en[] = "E0_Pulse"; + dgus.writeStringVar(VP_E0_Pulse_Dis, E0_Pulse_buf_en); - const char E1_Pluse_buf_en[] = "E1_Pluse"; - dgus.writeVariable(VP_E1_Pluse_Dis, E1_Pluse_buf_en, 32, true); + const char E1_Pulse_buf_en[] = "E1_Pulse"; + dgus.writeStringVar(VP_E1_Pulse_Dis, E1_Pulse_buf_en); - const char X_Max_Speed_buf_en[] = "X_Max_Speed"; - dgus.writeVariable(VP_X_Max_Speed_Dis, X_Max_Speed_buf_en, 32, true); + const char X_Max_Speed_buf_en[] = "X Max Speed"; + dgus.writeStringVar(VP_X_Max_Speed_Dis, X_Max_Speed_buf_en); - const char Y_Max_Speed_buf_en[] = "Y_Max_Speed"; - dgus.writeVariable(VP_Y_Max_Speed_Dis, Y_Max_Speed_buf_en, 32, true); + const char Y_Max_Speed_buf_en[] = "Y Max Speed"; + dgus.writeStringVar(VP_Y_Max_Speed_Dis, Y_Max_Speed_buf_en); - const char Z_Max_Speed_buf_en[] = "Z_Max_Speed"; - dgus.writeVariable(VP_Z_Max_Speed_Dis, Z_Max_Speed_buf_en, 32, true); + const char Z_Max_Speed_buf_en[] = "Z Max Speed"; + dgus.writeStringVar(VP_Z_Max_Speed_Dis, Z_Max_Speed_buf_en); - const char E0_Max_Speed_buf_en[] = "E0_Max_Speed"; - dgus.writeVariable(VP_E0_Max_Speed_Dis, E0_Max_Speed_buf_en, 32, true); + const char E0_Max_Speed_buf_en[] = "E0 Max Speed"; + dgus.writeStringVar(VP_E0_Max_Speed_Dis, E0_Max_Speed_buf_en); - const char E1_Max_Speed_buf_en[] = "E1_Max_Speed"; - dgus.writeVariable(VP_E1_Max_Speed_Dis, E1_Max_Speed_buf_en, 32, true); + const char E1_Max_Speed_buf_en[] = "E1 Max Speed"; + dgus.writeStringVar(VP_E1_Max_Speed_Dis, E1_Max_Speed_buf_en); - const char X_Max_Acc_Speed_buf_en[] = "X_Max_Acc_Speed"; - dgus.writeVariable(VP_X_Max_Acc_Speed_Dis, X_Max_Acc_Speed_buf_en, 32, true); + const char X_Max_Acc_Speed_buf_en[] = "X Max Acc"; + dgus.writeStringVar(VP_X_Max_Acc_Dis, X_Max_Acc_Speed_buf_en); - const char Y_Max_Acc_Speed_buf_en[] = "Y_Max_Acc_Speed"; - dgus.writeVariable(VP_Y_Max_Acc_Speed_Dis, Y_Max_Acc_Speed_buf_en, 32, true); + const char Y_Max_Acc_Speed_buf_en[] = "Y Max Acc"; + dgus.writeStringVar(VP_Y_Max_Acc_Dis, Y_Max_Acc_Speed_buf_en); - const char Z_Max_Acc_Speed_buf_en[] = "Z_Max_Acc_Speed"; - dgus.writeVariable(VP_Z_Max_Acc_Speed_Dis, Z_Max_Acc_Speed_buf_en, 32, true); + const char Z_Max_Acc_Speed_buf_en[] = "Z Max Acc"; + dgus.writeStringVar(VP_Z_Max_Acc_Dis, Z_Max_Acc_Speed_buf_en); - const char E0_Max_Acc_Speed_buf_en[] = "E0_Max_Acc_Speed"; - dgus.writeVariable(VP_E0_Max_Acc_Speed_Dis, E0_Max_Acc_Speed_buf_en, 32, true); + const char E0_Max_Acc_Speed_buf_en[] = "E0 Max Acc"; + dgus.writeStringVar(VP_E0_Max_Acc_Dis, E0_Max_Acc_Speed_buf_en); - const char E1_Max_Acc_Speed_buf_en[] = "E1_Max_Acc_Speed"; - dgus.writeVariable(VP_E1_Max_Acc_Speed_Dis, E1_Max_Acc_Speed_buf_en, 32, true); + const char E1_Max_Acc_Speed_buf_en[] = "E1 Max Acc"; + dgus.writeStringVar(VP_E1_Max_Acc_Dis, E1_Max_Acc_Speed_buf_en); - const char X_PARK_POS_buf_en[] = "X_PARK_POS"; - dgus.writeVariable(VP_X_PARK_POS_Dis, X_PARK_POS_buf_en, 32, true); + const char X_PARK_POS_buf_en[] = "X Park Pos"; + dgus.writeStringVar(VP_X_PARK_POS_Dis, X_PARK_POS_buf_en); - const char Y_PARK_POS_buf_en[] = "Y_PARK_POS"; - dgus.writeVariable(VP_Y_PARK_POS_Dis, Y_PARK_POS_buf_en, 32, true); + const char Y_PARK_POS_buf_en[] = "Y Park Pos"; + dgus.writeStringVar(VP_Y_PARK_POS_Dis, Y_PARK_POS_buf_en); - const char Z_PARK_POS_buf_en[] = "Z_PARK_POS"; - dgus.writeVariable(VP_Z_PARK_POS_Dis, Z_PARK_POS_buf_en, 32, true); + const char Z_PARK_POS_buf_en[] = "Z Park Pos"; + dgus.writeStringVar(VP_Z_PARK_POS_Dis, Z_PARK_POS_buf_en); - const char Length_buf_en[] = "Length"; - dgus.writeVariable(VP_Length_Dis, Length_buf_en, 32, true); + const char Length_buf_en[] = "Length"; + dgus.writeStringVar(VP_Length_Dis, Length_buf_en); - const char Speed_buf_en[] = "Speed"; - dgus.writeVariable(VP_Speed_Dis, Speed_buf_en, 32, true); + const char Speed_buf_en[] = "Speed"; + dgus.writeStringVar(VP_Speed_Dis, Speed_buf_en); - const char InOut_buf_en[] = "InOut"; - dgus.writeVariable(VP_InOut_Dis, InOut_buf_en, 32, true); + const char InOut_buf_en[] = "In/Out"; + dgus.writeStringVar(VP_InOut_Dis, InOut_buf_en); - const char PrintTimet_buf_en[] = "PrintTime"; - dgus.writeVariable(VP_PrintTime_Dis, PrintTimet_buf_en, 32, true); + const char PrintTimet_buf_en[] = "Print Time"; + dgus.writeStringVar(VP_PrintTime_Dis, PrintTimet_buf_en); - const char E0_Temp_buf_en[] = "E0_Temp"; - dgus.writeVariable(VP_E0_Temp_Dis, E0_Temp_buf_en, 32, true); + const char E0_Temp_buf_en[] = "E0 Temp"; + dgus.writeStringVar(VP_E0_Temp_Dis, E0_Temp_buf_en); - const char E1_Temp_buf_en[] = "E1_Temp"; - dgus.writeVariable(VP_E1_Temp_Dis, E1_Temp_buf_en, 32, true); + const char E1_Temp_buf_en[] = "E1 Temp"; + dgus.writeStringVar(VP_E1_Temp_Dis, E1_Temp_buf_en); - const char HB_Temp_buf_en[] = "HB_Temp"; - dgus.writeVariable(VP_HB_Temp_Dis, HB_Temp_buf_en, 32, true); + const char HB_Temp_buf_en[] = "HB Temp"; + dgus.writeStringVar(VP_HB_Temp_Dis, HB_Temp_buf_en); - const char Feedrate_buf_en[] = "Feedrate"; - dgus.writeVariable(VP_Feedrate_Dis, Feedrate_buf_en, 32, true); + const char Feedrate_buf_en[] = "Feedrate"; + dgus.writeStringVar(VP_Feedrate_Dis, Feedrate_buf_en); - const char PrintAcc_buf_en[] = "PrintSpeed"; - dgus.writeVariable(VP_PrintAcc_Dis, PrintAcc_buf_en, 32, true); + const char PrintAcc_buf_en[] = "Print Speed"; + dgus.writeStringVar(VP_PrintAcc_Dis, PrintAcc_buf_en); - const char FAN_Speed_buf_en[] = "FAN_Speed"; - dgus.writeVariable(VP_Fan_Speed_Dis, FAN_Speed_buf_en, 32, true); + const char FAN_Speed_buf_en[] = "FAN Speed"; + dgus.writeStringVar(VP_Fan_Speed_Dis, FAN_Speed_buf_en); - const char Printing_buf_en[] = "Printing"; - dgus.writeVariable(VP_Printing_Dis, Printing_buf_en, 32, true); + const char Printing_buf_en[] = "Printing"; + dgus.writeStringVar(VP_Printing_Dis, Printing_buf_en); - const char Info_EEPROM_1_buf_en[] = "Store setting?"; - dgus.writeVariable(VP_Info_EEPROM_1_Dis, Info_EEPROM_1_buf_en, 32, true); + const char Info_EEPROM_1_buf_en[] = "Store Settings?"; + dgus.writeStringVar(VP_Info_EEPROM_1_Dis, Info_EEPROM_1_buf_en); - const char Info_EEPROM_2_buf_en[] = "Revert setting?"; - dgus.writeVariable(VP_Info_EEPROM_2_Dis, Info_EEPROM_2_buf_en, 32, true); + const char Info_EEPROM_2_buf_en[] = "Revert Settings?"; + dgus.writeStringVar(VP_Info_EEPROM_2_Dis, Info_EEPROM_2_buf_en); - const char Info_PrintFinish_1_buf_en[] = "Print Done"; - dgus.writeVariable(VP_Info_PrintFinish_1_Dis, Info_PrintFinish_1_buf_en, 32, true); + const char Info_PrintFinish_1_buf_en[] = "Print Done"; + dgus.writeStringVar(VP_Info_PrintFinish_1_Dis, Info_PrintFinish_1_buf_en); - const char TMC_X_Step_buf_en[] = "X_SenSitivity"; - dgus.writeVariable(VP_TMC_X_Step_Dis, TMC_X_Step_buf_en, 32, true); + const char TMC_X_Step_buf_en[] = "X Sensitivity"; + dgus.writeStringVar(VP_TMC_X_Step_Dis, TMC_X_Step_buf_en); - const char TMC_Y_Step_buf_en[] = "Y_SenSitivity"; - dgus.writeVariable(VP_TMC_Y_Step_Dis, TMC_Y_Step_buf_en, 32, true); + const char TMC_Y_Step_buf_en[] = "Y Sensitivity"; + dgus.writeStringVar(VP_TMC_Y_Step_Dis, TMC_Y_Step_buf_en); - const char TMC_Z_Step_buf_en[] = "Z_SenSitivity"; - dgus.writeVariable(VP_TMC_Z_Step_Dis, TMC_Z_Step_buf_en, 32, true); + const char TMC_Z_Step_buf_en[] = "Z Sensitivity"; + dgus.writeStringVar(VP_TMC_Z_Step_Dis, TMC_Z_Step_buf_en); - const char TMC_X_Current_buf_en[] = "X_Current"; - dgus.writeVariable(VP_TMC_X_Current_Dis, TMC_X_Current_buf_en, 32, true); + const char TMC_X_Current_buf_en[] = "X Current"; + dgus.writeStringVar(VP_TMC_X_Current_Dis, TMC_X_Current_buf_en); - const char TMC_Y_Current_buf_en[] = "Y_Current"; - dgus.writeVariable(VP_TMC_Y_Current_Dis, TMC_Y_Current_buf_en, 32, true); + const char TMC_Y_Current_buf_en[] = "Y Current"; + dgus.writeStringVar(VP_TMC_Y_Current_Dis, TMC_Y_Current_buf_en); - const char TMC_Z_Current_buf_en[] = "Z_Current"; - dgus.writeVariable(VP_TMC_Z_Current_Dis, TMC_Z_Current_buf_en, 32, true); + const char TMC_Z_Current_buf_en[] = "Z Current"; + dgus.writeStringVar(VP_TMC_Z_Current_Dis, TMC_Z_Current_buf_en); - const char TMC_E0_Current_buf_en[] = "E0_Current"; - dgus.writeVariable(VP_TMC_E0_Current_Dis, TMC_E0_Current_buf_en, 32, true); + const char TMC_E0_Current_buf_en[] = "E0 Current"; + dgus.writeStringVar(VP_TMC_E0_Current_Dis, TMC_E0_Current_buf_en); - const char TMC_X1_Current_buf_en[] = "X1_Current"; - dgus.writeVariable(VP_TMC_X1_Current_Dis, TMC_X1_Current_buf_en, 32, true); + const char TMC_X1_Current_buf_en[] = "X2 Current"; + dgus.writeStringVar(VP_TMC_X1_Current_Dis, TMC_X1_Current_buf_en); - const char TMC_Y1_Current_buf_en[] = "Y1_Current"; - dgus.writeVariable(VP_TMC_Y1_Current_Dis, TMC_Y1_Current_buf_en, 32, true); + const char TMC_Y1_Current_buf_en[] = "Y2 Current"; + dgus.writeStringVar(VP_TMC_Y1_Current_Dis, TMC_Y1_Current_buf_en); - const char TMC_Z1_Current_buf_en[] = "Z1_Current"; - dgus.writeVariable(VP_TMC_Z1_Current_Dis, TMC_Z1_Current_buf_en, 32, true); + const char TMC_Z1_Current_buf_en[] = "Z2 Current"; + dgus.writeStringVar(VP_TMC_Z1_Current_Dis, TMC_Z1_Current_buf_en); - const char TMC_E1_Current_buf_en[] = "E1_Current"; - dgus.writeVariable(VP_TMC_E1_Current_Dis, TMC_E1_Current_buf_en, 32, true); + const char TMC_E1_Current_buf_en[] = "E1 Current"; + dgus.writeStringVar(VP_TMC_E1_Current_Dis, TMC_E1_Current_buf_en); - const char Min_Ex_Temp_buf_en[] = "Min_Ex_Temp"; - dgus.writeVariable(VP_Min_Ex_Temp_Dis, Min_Ex_Temp_buf_en, 32, true); + const char Min_Ex_Temp_buf_en[] = "Min Extrude Temp"; + dgus.writeStringVar(VP_Min_Ex_Temp_Dis, Min_Ex_Temp_buf_en); - const char AutoLEVEL_INFO1_buf_en[] = "Please Press Button!"; - dgus.writeVariable(VP_AutoLEVEL_INFO1, AutoLEVEL_INFO1_buf_en, 32, true); + const char AutoLEVEL_INFO1_buf_en[] = "Please Press Button!"; + dgus.writeStringVar(VP_AutoLEVEL_INFO1, AutoLEVEL_INFO1_buf_en); - const char EX_TEMP_INFO2_buf_en[] = "Please wait a monent"; - dgus.writeVariable(VP_EX_TEMP_INFO2_Dis, EX_TEMP_INFO2_buf_en, 32, true); + const char EX_TEMP_INFO2_buf_en[] = "Please wait a moment"; + dgus.writeStringVar(VP_EX_TEMP_INFO2_Dis, EX_TEMP_INFO2_buf_en); - const char EX_TEMP_INFO3_buf_en[] = "Cancle"; - dgus.writeVariable(VP_EX_TEMP_INFO3_Dis, EX_TEMP_INFO3_buf_en, 32, true); + const char EX_TEMP_INFO3_buf_en[] = "Cancel"; + dgus.writeStringVar(VP_EX_TEMP_INFO3_Dis, EX_TEMP_INFO3_buf_en); - const char PrintConfrim_Info_buf_en[] = "Start Print?"; - dgus.writeVariable(VP_PrintConfrim_Info_Dis, PrintConfrim_Info_buf_en, 32, true); + const char PrintConfirm_Info_buf_en[] = "Start Print?"; + dgus.writeStringVar(VP_PrintConfirm_Info_Dis, PrintConfirm_Info_buf_en); - const char StopPrintConfrim_Info_buf_en[] = "Stop Print?"; - dgus.writeVariable(VP_StopPrintConfrim_Info_Dis, StopPrintConfrim_Info_buf_en, 32, true); + const char StopPrintConfirm_Info_buf_en[] = "Stop Print?"; + dgus.writeStringVar(VP_StopPrintConfirm_Info_Dis, StopPrintConfirm_Info_buf_en); - const char Printting_buf_en[] = "Printing"; - dgus.writeVariable(VP_Printting_Dis, Printting_buf_en, 32, true); + const char Printting_buf_en[] = "Printing"; + dgus.writeStringVar(VP_Printting_Dis, Printting_buf_en); - const char LCD_BLK_buf_en[] = "Backlight"; - dgus.writeVariable(VP_LCD_BLK_Dis, LCD_BLK_buf_en, 32, true); - } - else if (var == MKS_SimpleChinese) { - uint16_t home_buf_ch[] = { 0xF7D6, 0xB3D2 }; - dgus.writeVariable(VP_HOME_Dis, home_buf_ch, 4, true); + const char LCD_BLK_buf_en[] = "Backlight"; + dgus.writeStringVar(VP_LCD_BLK_Dis, LCD_BLK_buf_en); - const uint16_t Setting_Dis[] = { 0xE8C9, 0xC3D6, 0x2000, 0x2000, 0x2000 }; - dgus.writeVariable(VP_Setting_Dis, Setting_Dis, 7, true); + } break; // MKS_English - const uint16_t Tool_Dis[] = { 0xA4B9, 0xDFBE }; - dgus.writeVariable(VP_Tool_Dis, Tool_Dis, 4, true); + case MKS_SimpleChinese: { + uint16_t home_buf_ch[] = { 0xF7D6, 0xB3D2 }; + dgus.writeStringVar(VP_HOME_Dis, home_buf_ch, 4); - const uint16_t Print_buf_ch[] = { 0xF2B4, 0xA1D3, 0x2000 }; - dgus.writeVariable(VP_Print_Dis, Print_buf_ch, 6, true); + const uint16_t Setting_Dis[] = { 0xE8C9, 0xC3D6, 0x2000, 0x2000, 0x2000 }; + dgus.writeStringVar(VP_Setting_Dis, Setting_Dis, 7); - const uint16_t Language_buf_ch[] = { 0xEFD3, 0xD4D1, 0x2000, 0x2000 }; - dgus.writeVariable(VP_Language_Dis, Language_buf_ch, 8, true); + const uint16_t Tool_Dis[] = { 0xA4B9, 0xDFBE }; + dgus.writeStringVar(VP_Tool_Dis, Tool_Dis, 4); - const uint16_t About_buf_ch[] = { 0xD8B9, 0xDAD3, 0x2000 }; - dgus.writeVariable(VP_About_Dis, About_buf_ch, 6, true); + const uint16_t Print_buf_ch[] = { 0xF2B4, 0xA1D3, 0x2000 }; + dgus.writeStringVar(VP_Print_Dis, Print_buf_ch, 6); - const uint16_t Config_buf_ch[] = { 0xE4C5, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_Config_Dis, Config_buf_ch, 6, true); + const uint16_t Language_buf_ch[] = { 0xEFD3, 0xD4D1, 0x2000, 0x2000 }; + dgus.writeStringVar(VP_Language_Dis, Language_buf_ch, 8); - const uint16_t MotorConfig_buf_ch[] = { 0xE7B5, 0xFABB, 0xE4C5, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_MotorConfig_Dis, MotorConfig_buf_ch, 12, true); + const uint16_t About_buf_ch[] = { 0xD8B9, 0xDAD3, 0x2000 }; + dgus.writeStringVar(VP_About_Dis, About_buf_ch, 6); - const uint16_t LevelConfig_buf_ch[] = { 0xD6CA, 0xAFB6, 0xF7B5, 0xBDC6, 0xE8C9, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_LevelConfig_Dis, LevelConfig_buf_ch, 32, true); + const uint16_t Config_buf_ch[] = { 0xE4C5, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_Config_Dis, Config_buf_ch, 6); - const uint16_t TemperatureConfig_buf_ch[] = { 0xC2CE, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_TemperatureConfig_Dis, TemperatureConfig_buf_ch, 11, true); + const uint16_t MotorConfig_buf_ch[] = { 0xE7B5, 0xFABB, 0xE4C5, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_MotorConfig_Dis, MotorConfig_buf_ch, 12); - const uint16_t Advance_buf_ch[] = { 0xDFB8, 0xB6BC, 0xE8C9, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_Advance_Dis, Advance_buf_ch, 16, true); + const uint16_t LevelConfig_buf_ch[] = { 0xD6CA, 0xAFB6, 0xF7B5, 0xBDC6, 0xE8C9, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_LevelConfig_Dis, LevelConfig_buf_ch, 32); - const uint16_t Filament_buf_ch[] = { 0xB7BC, 0xF6B3, 0x2000 }; - dgus.writeVariable(VP_Filament_Dis, Filament_buf_ch, 8, true); + const uint16_t TemperatureConfig_buf_ch[] = { 0xC2CE, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_TemperatureConfig_Dis, TemperatureConfig_buf_ch, 11); - const uint16_t Move_buf_ch[] = { 0xC6D2, 0xAFB6, 0x2000 }; - dgus.writeVariable(VP_Move_Dis, Move_buf_ch, 4, true); + const uint16_t Advance_buf_ch[] = { 0xDFB8, 0xB6BC, 0xE8C9, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_Advance_Dis, Advance_buf_ch, 32); - #if ENABLED(AUTO_BED_LEVELING_BILINEAR) - const uint16_t Level_buf_ch[] = { 0xD4D7, 0xAFB6, 0xF7B5, 0xBDC6, 0x2000 }; - dgus.writeVariable(VP_Level_Dis, Level_buf_ch, 32, true); - #elif ENABLED(MESH_BED_LEVELING) - const uint16_t Level_buf_ch[] = { 0xF8CD, 0xF1B8, 0xF7B5, 0xBDC6, 0x2000 }; - dgus.writeVariable(VP_Level_Dis, Level_buf_ch, 32, true); - #else - const uint16_t Level_buf_ch[] = { 0xD6CA, 0xAFB6, 0xF7B5, 0xBDC6, 0x2000 }; - dgus.writeVariable(VP_Level_Dis, Level_buf_ch, 32, true); - #endif + const uint16_t Filament_buf_ch[] = { 0xB7BC, 0xF6B3, 0x2000 }; + dgus.writeStringVar(VP_Filament_Dis, Filament_buf_ch, 8); - const uint16_t MotorPluse_buf_ch[] = { 0xF6C2, 0xE5B3, 0x2000 }; - dgus.writeVariable(VP_MotorPluse_Dis, MotorPluse_buf_ch, 16, true); + const uint16_t Move_buf_ch[] = { 0xC6D2, 0xAFB6, 0x2000 }; + dgus.writeStringVar(VP_Move_Dis, Move_buf_ch, 4); - const uint16_t MotorMaxSpeed_buf_ch[] = { 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_MotorMaxSpeed_Dis, MotorMaxSpeed_buf_ch, 16, true); + const uint16_t Level_buf_ch[] = { + #if ENABLED(AUTO_BED_LEVELING_BILINEAR) + 0xD4D7, 0xAFB6 + #elif ENABLED(MESH_BED_LEVELING) + 0xF8CD, 0xF1B8 + #else + 0xD6CA, 0xAFB6 + #endif + , 0xF7B5, 0xBDC6, 0x2000 + }; + dgus.writeStringVar(VP_Level_Dis, Level_buf_ch, 32); - const uint16_t MotorMaxAcc_buf_ch[] = { 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_MotorMaxAcc_Dis, MotorMaxAcc_buf_ch, 16, true); + const uint16_t MotorPulse_buf_ch[] = { 0xF6C2, 0xE5B3, 0x2000 }; + dgus.writeStringVar(VP_MotorPulse_Dis, MotorPulse_buf_ch); - const uint16_t TravelAcc_buf_ch[] = { 0xD5BF, 0xD0D0, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_TravelAcc_Dis, TravelAcc_buf_ch, 16, true); + const uint16_t MotorMaxSpeed_buf_ch[] = { 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_MotorMaxSpeed_Dis, MotorMaxSpeed_buf_ch); - const uint16_t FeedRateMin_buf_ch[] = { 0xEED7, 0xA1D0, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_FeedRateMin_Dis, FeedRateMin_buf_ch, 12, true); + const uint16_t MotorMaxAcc_buf_ch[] = { 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_MotorMaxAcc_Dis, MotorMaxAcc_buf_ch); - const uint16_t TravelFeeRateMin_buf_ch[] = { 0xD5BF, 0xD0D0, 0xEED7, 0xA1D0, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_TravelFeeRateMin_Dis, TravelFeeRateMin_buf_ch, 24, true); + const uint16_t TravelAcc_buf_ch[] = { 0xD5BF, 0xD0D0, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_TravelAcc_Dis, TravelAcc_buf_ch); - const uint16_t Acc_buf_ch[] = { 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_ACC_Dis, Acc_buf_ch, 16, true); + const uint16_t FeedRateMin_buf_ch[] = { 0xEED7, 0xA1D0, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_FeedRateMin_Dis, FeedRateMin_buf_ch, 12); - const uint16_t Point_One_buf_ch[] = { 0xDAB5, 0xBBD2, 0xE3B5, 0x2000 }; - dgus.writeVariable(VP_Point_One_Dis, Point_One_buf_ch, 12, true); + const uint16_t TravelFeeRateMin_buf_ch[] = { 0xD5BF, 0xD0D0, 0xEED7, 0xA1D0, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_TravelFeeRateMin_Dis, TravelFeeRateMin_buf_ch, 24); - const uint16_t Point_Two_buf_ch[] = { 0xDAB5, 0xFEB6, 0xE3B5, 0x2000 }; - dgus.writeVariable(VP_Point_Two_Dis, Point_Two_buf_ch, 12, true); + const uint16_t Acc_buf_ch[] = { 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_ACC_Dis, Acc_buf_ch); - const uint16_t Point_Three_buf_ch[] = { 0xDAB5, 0xFDC8, 0xE3B5, 0x2000 }; - dgus.writeVariable(VP_Point_Three_Dis, Point_Three_buf_ch, 12, true); + const uint16_t Point_One_buf_ch[] = { 0xDAB5, 0xBBD2, 0xE3B5, 0x2000 }; + dgus.writeStringVar(VP_Point_One_Dis, Point_One_buf_ch, 12); - const uint16_t Point_Four_buf_ch[] = { 0xDAB5, 0xC4CB, 0xE3B5, 0x2000 }; - dgus.writeVariable(VP_Point_Four_Dis, Point_Four_buf_ch, 12, true); + const uint16_t Point_Two_buf_ch[] = { 0xDAB5, 0xFEB6, 0xE3B5, 0x2000 }; + dgus.writeStringVar(VP_Point_Two_Dis, Point_Two_buf_ch, 12); - const uint16_t Point_Five_buf_ch[] = { 0xDAB5, 0xE5CE, 0xE3B5, 0x2000 }; - dgus.writeVariable(VP_Point_Five_Dis, Point_Five_buf_ch, 12, true); + const uint16_t Point_Three_buf_ch[] = { 0xDAB5, 0xFDC8, 0xE3B5, 0x2000 }; + dgus.writeStringVar(VP_Point_Three_Dis, Point_Three_buf_ch, 12); - const uint16_t Extrusion_buf_ch[] = { 0xB7BC, 0xF6B3, 0xB7CD, 0x2000 }; - dgus.writeVariable(VP_Extrusion_Dis, Extrusion_buf_ch, 12, true); + const uint16_t Point_Four_buf_ch[] = { 0xDAB5, 0xC4CB, 0xE3B5, 0x2000 }; + dgus.writeStringVar(VP_Point_Four_Dis, Point_Four_buf_ch, 12); - const uint16_t HeatBed_buf_ch[] = { 0xC8C8, 0xB2B4, 0x2000 }; - dgus.writeVariable(VP_HeatBed_Dis, HeatBed_buf_ch, 12, true); + const uint16_t Point_Five_buf_ch[] = { 0xDAB5, 0xE5CE, 0xE3B5, 0x2000 }; + dgus.writeStringVar(VP_Point_Five_Dis, Point_Five_buf_ch, 12); - const uint16_t FactoryDefaults_buf_ch[] = { 0xD6BB, 0xB4B8, 0xF6B3, 0xA7B3, 0xE8C9, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_FactoryDefaults_Dis, FactoryDefaults_buf_ch, 16, true); + const uint16_t Extrusion_buf_ch[] = { 0xB7BC, 0xF6B3, 0xB7CD, 0x2000 }; + dgus.writeStringVar(VP_Extrusion_Dis, Extrusion_buf_ch, 12); - const uint16_t StoreSetting_buf_ch[] = { 0xA3B1, 0xE6B4, 0xE8C9, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_StoreSetting_Dis, StoreSetting_buf_ch, 16, true); + const uint16_t HeatBed_buf_ch[] = { 0xC8C8, 0xB2B4, 0x2000 }; + dgus.writeStringVar(VP_HeatBed_Dis, HeatBed_buf_ch, 12); - const uint16_t PrintPauseConfig_buf_ch[] = { 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_PrintPauseConfig_Dis, PrintPauseConfig_buf_ch, 32, true); + const uint16_t FactoryDefaults_buf_ch[] = { 0xD6BB, 0xB4B8, 0xF6B3, 0xA7B3, 0xE8C9, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_FactoryDefaults_Dis, FactoryDefaults_buf_ch); - const uint16_t X_Pluse_buf_ch[] = { 0x2058, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; - dgus.writeVariable(VP_X_Pluse_Dis, X_Pluse_buf_ch, 16, true); + const uint16_t StoreSetting_buf_ch[] = { 0xA3B1, 0xE6B4, 0xE8C9, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_StoreSetting_Dis, StoreSetting_buf_ch); - const uint16_t Y_Pluse_buf_ch[] = { 0x2059, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; - dgus.writeVariable(VP_Y_Pluse_Dis, Y_Pluse_buf_ch, 16, true); + const uint16_t PrintPauseConfig_buf_ch[] = { 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_PrintPauseConfig_Dis, PrintPauseConfig_buf_ch, 32); - const uint16_t Z_Pluse_buf_ch[] = { 0x205A, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; - dgus.writeVariable(VP_Z_Pluse_Dis, Z_Pluse_buf_ch, 16, true); + const uint16_t X_Pulse_buf_ch[] = { 0x2058, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; + dgus.writeStringVar(VP_X_Pulse_Dis, X_Pulse_buf_ch); - const uint16_t E0_Pluse_buf_ch[] = { 0x3045, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; - dgus.writeVariable(VP_E0_Pluse_Dis, E0_Pluse_buf_ch, 16, true); + const uint16_t Y_Pulse_buf_ch[] = { 0x2059, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; + dgus.writeStringVar(VP_Y_Pulse_Dis, Y_Pulse_buf_ch); - const uint16_t E1_Pluse_buf_ch[] = { 0x3145, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; - dgus.writeVariable(VP_E1_Pluse_Dis, E1_Pluse_buf_ch, 16, true); + const uint16_t Z_Pulse_buf_ch[] = { 0x205A, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; + dgus.writeStringVar(VP_Z_Pulse_Dis, Z_Pulse_buf_ch); - const uint16_t X_Max_Speed_buf_ch[] = { 0x2058, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_X_Max_Speed_Dis, X_Max_Speed_buf_ch, 16, true); + const uint16_t E0_Pulse_buf_ch[] = { 0x3045, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; + dgus.writeStringVar(VP_E0_Pulse_Dis, E0_Pulse_buf_ch); - const uint16_t Y_Max_Speed_buf_ch[] = { 0x2059, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Y_Max_Speed_Dis, Y_Max_Speed_buf_ch, 16, true); + const uint16_t E1_Pulse_buf_ch[] = { 0x3145, 0xE1D6, 0xF6C2, 0xE5B3, 0x2000 }; + dgus.writeStringVar(VP_E1_Pulse_Dis, E1_Pulse_buf_ch); - const uint16_t Z_Max_Speed_buf_ch[] = { 0x205A, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Z_Max_Speed_Dis, Z_Max_Speed_buf_ch, 16, true); + const uint16_t X_Max_Speed_buf_ch[] = { 0x2058, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_X_Max_Speed_Dis, X_Max_Speed_buf_ch); - const uint16_t E0_Max_Speed_buf_ch[] = { 0x3045, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_E0_Max_Speed_Dis, E0_Max_Speed_buf_ch, 16, true); + const uint16_t Y_Max_Speed_buf_ch[] = { 0x2059, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Y_Max_Speed_Dis, Y_Max_Speed_buf_ch); - const uint16_t E1_Max_Speed_buf_ch[] = { 0x3145, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_E1_Max_Speed_Dis, E1_Max_Speed_buf_ch, 16, true); + const uint16_t Z_Max_Speed_buf_ch[] = { 0x205A, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Z_Max_Speed_Dis, Z_Max_Speed_buf_ch); - const uint16_t X_Max_Acc_Speed_buf_ch[] = { 0x2058, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_X_Max_Acc_Speed_Dis, X_Max_Acc_Speed_buf_ch, 16, true); + const uint16_t E0_Max_Speed_buf_ch[] = { 0x3045, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_E0_Max_Speed_Dis, E0_Max_Speed_buf_ch); - const uint16_t Y_Max_Acc_Speed_buf_ch[] = { 0x2059, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Y_Max_Acc_Speed_Dis, Y_Max_Acc_Speed_buf_ch, 16, true); + const uint16_t E1_Max_Speed_buf_ch[] = { 0x3145, 0xEED7, 0xF3B4, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_E1_Max_Speed_Dis, E1_Max_Speed_buf_ch); - const uint16_t Z_Max_Acc_Speed_buf_ch[] = { 0x205A, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Z_Max_Acc_Speed_Dis, Z_Max_Acc_Speed_buf_ch, 16, true); + const uint16_t X_Max_Acc_Speed_buf_ch[] = { 0x2058, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_X_Max_Acc_Dis, X_Max_Acc_Speed_buf_ch); - const uint16_t E0_Max_Acc_Speed_buf_ch[] = { 0x3045, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_E0_Max_Acc_Speed_Dis, E0_Max_Acc_Speed_buf_ch, 16, true); + const uint16_t Y_Max_Acc_Speed_buf_ch[] = { 0x2059, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Y_Max_Acc_Dis, Y_Max_Acc_Speed_buf_ch); - const uint16_t E1_Max_Acc_Speed_buf_ch[] = { 0x3145, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_E1_Max_Acc_Speed_Dis, E1_Max_Acc_Speed_buf_ch, 16, true); + const uint16_t Z_Max_Acc_Speed_buf_ch[] = { 0x205A, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Z_Max_Acc_Dis, Z_Max_Acc_Speed_buf_ch); - const uint16_t X_PARK_POS_buf_ch[] = { 0x2058, 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_X_PARK_POS_Dis, X_PARK_POS_buf_ch, 16, true); + const uint16_t E0_Max_Acc_Speed_buf_ch[] = { 0x3045, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_E0_Max_Acc_Dis, E0_Max_Acc_Speed_buf_ch); - const uint16_t Y_PARK_POS_buf_ch[] = { 0x2059, 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_Y_PARK_POS_Dis, Y_PARK_POS_buf_ch, 16, true); + const uint16_t E1_Max_Acc_Speed_buf_ch[] = { 0x3145, 0xEED7, 0xF3B4, 0xD3BC, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_E1_Max_Acc_Dis, E1_Max_Acc_Speed_buf_ch); - const uint16_t Z_PARK_POS_buf_ch[] = { 0x205A, 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_Z_PARK_POS_Dis, Z_PARK_POS_buf_ch, 16, true); + const uint16_t X_PARK_POS_buf_ch[] = { 0x2058, 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_X_PARK_POS_Dis, X_PARK_POS_buf_ch); - const uint16_t Length_buf_ch[] = { 0xBDB2, 0xA4B3, 0x2000 }; - dgus.writeVariable(VP_Length_Dis, Length_buf_ch, 8, true); + const uint16_t Y_PARK_POS_buf_ch[] = { 0x2059, 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_Y_PARK_POS_Dis, Y_PARK_POS_buf_ch); - const uint16_t Speed_buf_ch[] = { 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Speed_Dis, Speed_buf_ch, 8, true); + const uint16_t Z_PARK_POS_buf_ch[] = { 0x205A, 0xDDD4, 0xA3CD, 0xBBCE, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_Z_PARK_POS_Dis, Z_PARK_POS_buf_ch); - const uint16_t InOut_buf_ch[] = { 0xF8BD, 0xF6B3, 0x2000 }; - dgus.writeVariable(VP_InOut_Dis, InOut_buf_ch, 8, true); + const uint16_t Length_buf_ch[] = { 0xBDB2, 0xA4B3, 0x2000 }; + dgus.writeStringVar(VP_Length_Dis, Length_buf_ch, 8); - const uint16_t PrintTimet_buf_en[] = { 0xF2B4, 0xA1D3, 0xB1CA, 0xE4BC, 0x2000 }; - dgus.writeVariable(VP_PrintTime_Dis, PrintTimet_buf_en, 16, true); + const uint16_t Speed_buf_ch[] = { 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Speed_Dis, Speed_buf_ch, 8); - const uint16_t E0_Temp_buf_ch[] = { 0x3045, 0xC2CE, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_E0_Temp_Dis, E0_Temp_buf_ch, 16, true); + const uint16_t InOut_buf_ch[] = { 0xF8BD, 0xF6B3, 0x2000 }; + dgus.writeStringVar(VP_InOut_Dis, InOut_buf_ch, 8); - const uint16_t E1_Temp_buf_ch[] = { 0x3145, 0xC2CE, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_E1_Temp_Dis, E1_Temp_buf_ch, 16, true); + const uint16_t PrintTimet_buf_ch[] = { 0xF2B4, 0xA1D3, 0xB1CA, 0xE4BC, 0x2000 }; + dgus.writeStringVar(VP_PrintTime_Dis, PrintTimet_buf_ch); - const uint16_t HB_Temp_buf_ch[] = { 0xC8C8, 0xB2B4, 0xC2CE, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_HB_Temp_Dis, HB_Temp_buf_ch, 16, true); + const uint16_t E0_Temp_buf_ch[] = { 0x3045, 0xC2CE, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_E0_Temp_Dis, E0_Temp_buf_ch); - const uint16_t Feedrate_buf_ch[] = { 0xB7BC, 0xF6B3, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Feedrate_Dis, Feedrate_buf_ch, 16, true); + const uint16_t E1_Temp_buf_ch[] = { 0x3145, 0xC2CE, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_E1_Temp_Dis, E1_Temp_buf_ch); - const uint16_t PrintAcc_buf_ch[] = { 0xF2B4, 0xA1D3, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_PrintAcc_Dis, PrintAcc_buf_ch, 16, true); + const uint16_t HB_Temp_buf_ch[] = { 0xC8C8, 0xB2B4, 0xC2CE, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_HB_Temp_Dis, HB_Temp_buf_ch); - const uint16_t FAN_Speed_buf_ch[] = { 0xE7B7, 0xC8C9, 0xD9CB, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Fan_Speed_Dis, FAN_Speed_buf_ch, 16, true); + const uint16_t Feedrate_buf_ch[] = { 0xB7BC, 0xF6B3, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Feedrate_Dis, Feedrate_buf_ch); - const uint16_t Printing_buf_ch[] = { 0xF2B4, 0xA1D3, 0xD0D6, 0x2000 }; - dgus.writeVariable(VP_Printing_Dis, Printing_buf_ch, 16, true); + const uint16_t PrintAcc_buf_ch[] = { 0xF2B4, 0xA1D3, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_PrintAcc_Dis, PrintAcc_buf_ch); - const uint16_t Info_EEPROM_1_buf_ch[] = { 0xC7CA, 0xF1B7, 0xA3B1, 0xE6B4, 0xE8C9, 0xC3D6, 0xBFA3, 0x2000 }; - dgus.writeVariable(VP_Info_EEPROM_1_Dis, Info_EEPROM_1_buf_ch, 32, true); + const uint16_t FAN_Speed_buf_ch[] = { 0xE7B7, 0xC8C9, 0xD9CB, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Fan_Speed_Dis, FAN_Speed_buf_ch); - const uint16_t Info_EEPROM_2_buf_ch[] = { 0xC7CA, 0xF1B7, 0xD6BB, 0xB4B8, 0xF6B3, 0xA7B3, 0xE8C9, 0xC3D6, 0xBFA3, 0x2000 }; - dgus.writeVariable(VP_Info_EEPROM_2_Dis, Info_EEPROM_2_buf_ch, 32, true); + const uint16_t Printing_buf_ch[] = { 0xF2B4, 0xA1D3, 0xD0D6, 0x2000 }; + dgus.writeStringVar(VP_Printing_Dis, Printing_buf_ch); - const uint16_t TMC_X_Step_buf_ch[] = { 0x2058, 0xE9C1, 0xF4C3, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_TMC_X_Step_Dis, TMC_X_Step_buf_ch, 16, true); + const uint16_t Info_EEPROM_1_buf_ch[] = { 0xC7CA, 0xF1B7, 0xA3B1, 0xE6B4, 0xE8C9, 0xC3D6, 0xBFA3, 0x2000 }; + dgus.writeStringVar(VP_Info_EEPROM_1_Dis, Info_EEPROM_1_buf_ch, 32); - const uint16_t TMC_Y_Step_buf_ch[] = { 0x2059, 0xE9C1, 0xF4C3, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_TMC_Y_Step_Dis, TMC_Y_Step_buf_ch, 16, true); + const uint16_t Info_EEPROM_2_buf_ch[] = { 0xC7CA, 0xF1B7, 0xD6BB, 0xB4B8, 0xF6B3, 0xA7B3, 0xE8C9, 0xC3D6, 0xBFA3, 0x2000 }; + dgus.writeStringVar(VP_Info_EEPROM_2_Dis, Info_EEPROM_2_buf_ch, 32); - const uint16_t TMC_Z_Step_buf_ch[] = { 0x205A, 0xE9C1, 0xF4C3, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_TMC_Z_Step_Dis, TMC_Z_Step_buf_ch, 16, true); + const uint16_t TMC_X_Step_buf_ch[] = { 0x2058, 0xE9C1, 0xF4C3, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_TMC_X_Step_Dis, TMC_X_Step_buf_ch); - const uint16_t Info_PrintFinish_1_buf_ch[] = { 0xF2B4, 0xA1D3, 0xEACD, 0xC9B3, 0x2000 }; - dgus.writeVariable(VP_Info_PrintFinish_1_Dis, Info_PrintFinish_1_buf_ch, 32, true); + const uint16_t TMC_Y_Step_buf_ch[] = { 0x2059, 0xE9C1, 0xF4C3, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_TMC_Y_Step_Dis, TMC_Y_Step_buf_ch); - const uint16_t TMC_X_Current_buf_ch[] = { 0x2058, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_X_Current_Dis, TMC_X_Current_buf_ch, 16, true); + const uint16_t TMC_Z_Step_buf_ch[] = { 0x205A, 0xE9C1, 0xF4C3, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_TMC_Z_Step_Dis, TMC_Z_Step_buf_ch); - const uint16_t TMC_Y_Current_buf_ch[] = { 0x2059, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_Y_Current_Dis, TMC_Y_Current_buf_ch, 16, true); + const uint16_t Info_PrintFinish_1_buf_ch[] = { 0xF2B4, 0xA1D3, 0xEACD, 0xC9B3, 0x2000 }; + dgus.writeStringVar(VP_Info_PrintFinish_1_Dis, Info_PrintFinish_1_buf_ch, 32); - const uint16_t TMC_Z_Current_buf_ch[] = { 0x205A, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_Z_Current_Dis, TMC_Z_Current_buf_ch, 16, true); + const uint16_t TMC_X_Current_buf_ch[] = { 0x2058, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_X_Current_Dis, TMC_X_Current_buf_ch); - const uint16_t TMC_E0_Current_buf_ch[] = { 0x3045, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_E0_Current_Dis, TMC_E0_Current_buf_ch, 16, true); + const uint16_t TMC_Y_Current_buf_ch[] = { 0x2059, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_Y_Current_Dis, TMC_Y_Current_buf_ch); - const uint16_t TMC_X1_Current_buf_ch[] = { 0x3158, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_X1_Current_Dis, TMC_X1_Current_buf_ch, 16, true); + const uint16_t TMC_Z_Current_buf_ch[] = { 0x205A, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_Z_Current_Dis, TMC_Z_Current_buf_ch); - const uint16_t TMC_Y1_Current_buf_ch[] = { 0x3159, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_Y1_Current_Dis, TMC_Y1_Current_buf_ch, 16, true); + const uint16_t TMC_E0_Current_buf_ch[] = { 0x3045, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_E0_Current_Dis, TMC_E0_Current_buf_ch); - const uint16_t TMC_Z1_Current_buf_ch[] = { 0x315A, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_Z1_Current_Dis, TMC_Z1_Current_buf_ch, 16, true); + const uint16_t TMC_X1_Current_buf_ch[] = { 0x3158, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_X1_Current_Dis, TMC_X1_Current_buf_ch); - const uint16_t TMC_E1_Current_buf_ch[] = { 0x3145, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; - dgus.writeVariable(VP_TMC_E1_Current_Dis, TMC_E1_Current_buf_ch, 16, true); + const uint16_t TMC_Y1_Current_buf_ch[] = { 0x3159, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_Y1_Current_Dis, TMC_Y1_Current_buf_ch); - const uint16_t Min_Ex_Temp_buf_ch[] = { 0xEED7, 0xA1D0, 0xB7BC, 0xF6B3, 0xC2CE, 0xC8B6, 0x2000 }; - dgus.writeVariable(VP_Min_Ex_Temp_Dis, Min_Ex_Temp_buf_ch, 32, true); + const uint16_t TMC_Z1_Current_buf_ch[] = { 0x315A, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_Z1_Current_Dis, TMC_Z1_Current_buf_ch); - const uint16_t AutoLEVEL_INFO1_buf_ch[] = { 0xEBC7, 0xB4B0, 0xC2CF, 0xB4B0, 0xA5C5, 0x2000 }; - dgus.writeVariable(VP_AutoLEVEL_INFO1, AutoLEVEL_INFO1_buf_ch, 32, true); + const uint16_t TMC_E1_Current_buf_ch[] = { 0x3145, 0xE1D6, 0xE7B5, 0xF7C1, 0x2000 }; + dgus.writeStringVar(VP_TMC_E1_Current_Dis, TMC_E1_Current_buf_ch); - const uint16_t EX_TEMP_INFO2_buf_ch[] = { 0xEBC7, 0xD4C9, 0xC8B5, 0x2000 }; - dgus.writeVariable(VP_EX_TEMP_INFO2_Dis, EX_TEMP_INFO2_buf_ch, 32, true); + const uint16_t Min_Ex_Temp_buf_ch[] = { 0xEED7, 0xA1D0, 0xB7BC, 0xF6B3, 0xC2CE, 0xC8B6, 0x2000 }; + dgus.writeStringVar(VP_Min_Ex_Temp_Dis, Min_Ex_Temp_buf_ch, 32); - const uint16_t EX_TEMP_INFO3_buf_ch[] = { 0xA1C8, 0xFBCF, 0xD3BC, 0xC8C8, 0x2000 }; - dgus.writeVariable(VP_EX_TEMP_INFO3_Dis, EX_TEMP_INFO3_buf_ch, 32, true); + const uint16_t AutoLEVEL_INFO1_buf_ch[] = { 0xEBC7, 0xB4B0, 0xC2CF, 0xB4B0, 0xA5C5, 0x2000 }; + dgus.writeStringVar(VP_AutoLEVEL_INFO1, AutoLEVEL_INFO1_buf_ch, 32); - const uint16_t PrintConfrim_Info_buf_ch[] = { 0xC7CA, 0xF1B7, 0xAABF, 0xBCCA, 0xF2B4, 0xA1D3, 0x2000 }; - dgus.writeVariable(VP_PrintConfrim_Info_Dis, PrintConfrim_Info_buf_ch, 32, true); + const uint16_t EX_TEMP_INFO2_buf_ch[] = { 0xEBC7, 0xD4C9, 0xC8B5, 0x2000 }; + dgus.writeStringVar(VP_EX_TEMP_INFO2_Dis, EX_TEMP_INFO2_buf_ch, 32); - const uint16_t StopPrintConfrim_Info_buf_ch[] = { 0xC7CA, 0xF1B7, 0xA3CD, 0xB9D6, 0xF2B4, 0xA1D3, 0x2000 }; - dgus.writeVariable(VP_StopPrintConfrim_Info_Dis, StopPrintConfrim_Info_buf_ch, 32, true); + const uint16_t EX_TEMP_INFO3_buf_ch[] = { 0xA1C8, 0xFBCF, 0xD3BC, 0xC8C8, 0x2000 }; + dgus.writeStringVar(VP_EX_TEMP_INFO3_Dis, EX_TEMP_INFO3_buf_ch, 32); - const uint16_t Printting_buf_ch[] = { 0xF2B4, 0xA1D3, 0xD0D6, 0x2000 }; - dgus.writeVariable(VP_Printting_Dis, Printting_buf_ch, 32, true); + const uint16_t PrintConfirm_Info_buf_ch[] = { 0xC7CA, 0xF1B7, 0xAABF, 0xBCCA, 0xF2B4, 0xA1D3, 0x2000 }; + dgus.writeStringVar(VP_PrintConfirm_Info_Dis, PrintConfirm_Info_buf_ch, 32); - const uint16_t LCD_BLK_buf_ch[] = { 0xB3B1, 0xE2B9, 0xE8C9, 0xC3D6, 0x2000 }; - dgus.writeVariable(VP_LCD_BLK_Dis, LCD_BLK_buf_ch, 32, true); - } + const uint16_t StopPrintConfirm_Info_buf_ch[] = { 0xC7CA, 0xF1B7, 0xA3CD, 0xB9D6, 0xF2B4, 0xA1D3, 0x2000 }; + dgus.writeStringVar(VP_StopPrintConfirm_Info_Dis, StopPrintConfirm_Info_buf_ch, 32); + + const uint16_t Printting_buf_ch[] = { 0xF2B4, 0xA1D3, 0xD0D6, 0x2000 }; + dgus.writeStringVar(VP_Printting_Dis, Printting_buf_ch, 32); + + const uint16_t LCD_BLK_buf_ch[] = { 0xB3B1, 0xE2B9, 0xE8C9, 0xC3D6, 0x2000 }; + dgus.writeStringVar(VP_LCD_BLK_Dis, LCD_BLK_buf_ch, 32); + + } break; // MKS_SimpleChinese + } // switch } #endif // DGUS_LCD_UI_MKS diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h index 2a026f751e..7bcb7c0a02 100644 --- a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h +++ b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h @@ -25,6 +25,9 @@ enum DGUS_ScreenID : uint8_t; +enum MKS_Choose : uint8_t { MKS_Language_Choose, MKS_Language_NoChoose }; +enum MKS_Language : uint8_t { MKS_SimpleChinese, MKS_English }; + class DGUSScreenHandlerMKS : public DGUSScreenHandler { public: DGUSScreenHandlerMKS() = default; @@ -53,7 +56,7 @@ public: #if ENABLED(PREVENT_COLD_EXTRUSION) static void handleGetExMinTemp(DGUS_VP_Variable &var, void *val_ptr); #endif - static void languageDisplay(uint8_t var); + static void updateDisplayLanguage(); static void tmcChangeConfig(DGUS_VP_Variable &var, void *val_ptr); static void getTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr); static void languagePInit(); @@ -105,9 +108,6 @@ public: static bool loop(); }; -enum MKS_Choose : uint8_t { MKS_Language_Choose, MKS_Language_NoChoose }; -enum MKS_Language : uint8_t { MKS_SimpleChinese, MKS_English }; - extern MKS_Language mks_language_index; extern bool DGUSAutoTurnOff; diff --git a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp index 4875020f55..ac408e8d9c 100644 --- a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp +++ b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp @@ -150,7 +150,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_HOME_ALL, nullptr, screen.handleManualMove, nullptr), #endif - VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleMotorLockUnlock, nullptr), + VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleMotorLockUnlock, nullptr), #if ENABLED(POWER_LOSS_RECOVERY) VPHELPER(VP_POWER_LOSS_RECOVERY, nullptr, screen.handlePowerLossRecovery, nullptr), #endif diff --git a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h index 136b90e641..d34b90b45f 100644 --- a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h +++ b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h @@ -111,7 +111,7 @@ constexpr uint16_t VP_MOVE_E1 = 0x2112; //constexpr uint16_t VP_MOVE_E4 = 0x2118; //constexpr uint16_t VP_MOVE_E5 = 0x211A; constexpr uint16_t VP_HOME_ALL = 0x2120; -constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2130; +constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2130; // Power loss recovery constexpr uint16_t VP_POWER_LOSS_RECOVERY = 0x2180; diff --git a/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp index 943d8c50a5..0afc8a25ad 100644 --- a/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp @@ -143,7 +143,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) { updateNewScreen(target); - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) if (!findScreenVPMapList(target)) DEBUG_ECHOLNPGM("WARNING: No screen Mapping found for ", target); #endif } @@ -290,7 +290,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { #endif break; case 1: // Load ABS - TERN_(PREHEAT_2_TEMP_HOTEND, e_temp = PREHEAT_2_TEMP_HOTEND); + #ifdef PREHEAT_2_TEMP_HOTEND + e_temp = PREHEAT_2_TEMP_HOTEND; + #endif break; case 2: // Load PET #ifdef PREHEAT_3_TEMP_HOTEND @@ -310,9 +312,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { if (filament_data.action == 0) { // Go back to utility screen #if HAS_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0); + thermalManager.setTargetHotend(e_temp, 0); #if HAS_MULTI_HOTEND - thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1); + thermalManager.setTargetHotend(e_temp, 1); #endif #endif gotoScreen(DGUS_SCREEN_UTILITY); @@ -322,13 +324,13 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { default: return; #if HAS_HOTEND case VP_E0_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E0; + filament_data.extruder = 0; thermalManager.setTargetHotend(e_temp, filament_data.extruder); break; #endif #if HAS_MULTI_HOTEND case VP_E1_FILAMENT_LOAD_UNLOAD: - filament_data.extruder = ExtUI::extruder_t::E1; + filament_data.extruder = 1; thermalManager.setTargetHotend(e_temp, filament_data.extruder); break; #endif @@ -350,7 +352,7 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { //gotoScreen(DGUS_SCREEN_FILAMENT_LOADING); filament_data.heated = true; } - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; } else { // unload filament if (!filament_data.heated) { @@ -359,14 +361,14 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) { } // Before unloading extrude to prevent jamming if (filament_data.purge_length >= 0) { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue; filament_data.purge_length -= movevalue; } else { - movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) - movevalue; + movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) - movevalue; } } - ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder); + ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0); } } #endif // DGUS_FILAMENT_LOADUNLOAD diff --git a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler_Basic.cpp b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler_Basic.cpp index 85c7b660a7..4cb0cdf89b 100644 --- a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler_Basic.cpp +++ b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler_Basic.cpp @@ -52,7 +52,7 @@ void DGUS_SDCardHandler::Reset() { currentSeekPos++; } - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) DEBUG_ECHOPGM("Reset() :", fileCount); DEBUG_CHAR('/'); DEBUG_ECHOLN(currentSeekPos); @@ -71,7 +71,7 @@ void DGUS_SDCardHandler::onPageLoad(DGUS_SDCardHandler::page_t page) { uint16_t currentSeekPos = 0; uint16_t entriesCount = fileList.count(); - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) DEBUG_ECHOLNPGM("onPageLoad(): seek page ", pageIndex); #endif while (currentFilePos < pageIndex * DGUS_E3S1PRO_BASIC_SDCARD_FILES_PER_PAGE @@ -83,7 +83,7 @@ void DGUS_SDCardHandler::onPageLoad(DGUS_SDCardHandler::page_t page) { currentFilePos++; } - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) DEBUG_ECHOPGM("onPageLoad() :", currentFilePos); DEBUG_CHAR('/'); DEBUG_ECHOLN(currentSeekPos - 1); diff --git a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSScreenHandler.cpp index c88412fe2c..938663f9b3 100644 --- a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSScreenHandler.cpp @@ -208,7 +208,7 @@ void DGUSScreenHandler::userConfirmation() { if (confirm_return_screen >= DGUS_ScreenID::FILE1 && confirm_return_screen <= DGUS_ScreenID::FILE4) dgus_sdcard_handler.onPageLoad(DGUS_SCREEN_TO_PAGE(confirm_return_screen)); - #ifdef DEBUG_DGUSLCD + #if ENABLED(DEBUG_DGUSLCD) DEBUG_ECHOLNPGM("trig confirmed, ret:", (uint16_t)confirm_return_screen); #endif diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index c581bab4e3..259a81fb0e 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -112,7 +112,7 @@ void menu_advanced_settings(); #else #define S1_SPACE(I) #endif - #define STOP_ITEM(A,I,M,L) TERN(HAS_##A##I##_##M##_STATE, _STOP_ITEM, _IF_1_ELSE)(STRINGIFY(A) STRINGIFY(I) S1_SPACE(I) " " L, A##I##_##M) + #define STOP_ITEM(A,I,M,L) TERN(HAS_##A##I##_##M##_STATE, _STOP_ITEM, OMIT)(STRINGIFY(A) STRINGIFY(I) S1_SPACE(I) " " L, A##I##_##M) #define STOP_MINMAX(A,I) STOP_ITEM(A,I,MIN,"Min") STOP_ITEM(A,I,MAX,"Max") #define FIL_ITEM(N) PSTRING_ITEM_N_P(N-1, MSG_FILAMENT_EN, FILAMENT_IS_OUT(N) ? PSTR("out") : PSTR("PRESENT"), SS_FULL); diff --git a/Marlin/src/module/endstops.h b/Marlin/src/module/endstops.h index 10ae915beb..1ef217b64a 100644 --- a/Marlin/src/module/endstops.h +++ b/Marlin/src/module/endstops.h @@ -32,7 +32,7 @@ #define ES_ENUM(A,M) _ES_ENUM(A,M) #define _ES_ITEM(N) , N -#define ES_ITEM(K,N) TERN(K,_ES_ITEM,_IF_1_ELSE)(N) +#define ES_ITEM(K,N) TERN(K,_ES_ITEM,OMIT)(N) #define _ESN_ITEM(K,A,M) ES_ITEM(K,ES_ENUM(A,M)) #define ES_MINMAX(A) ES_ITEM(HAS_##A##_MIN_STATE, ES_ENUM(A,MIN)) ES_ITEM(HAS_##A##_MAX_STATE, ES_ENUM(A,MAX)) diff --git a/Marlin/src/pins/samd/pins_MINITRONICS20.h b/Marlin/src/pins/samd/pins_MINITRONICS20.h index 83206e3bc6..0f61aea713 100644 --- a/Marlin/src/pins/samd/pins_MINITRONICS20.h +++ b/Marlin/src/pins/samd/pins_MINITRONICS20.h @@ -128,7 +128,7 @@ #endif // Verify that drivers match the hardware -#if (HAS_X_AXIS && !AXIS_DRIVER_TYPE_X(DRV8825)) || (HAS_Y_AXIS && !AXIS_DRIVER_TYPE_Y(DRV8825)) || (HAS_Z_AXIS && !AXIS_DRIVER_TYPE_Z(DRV8825)) || (HAS_EXTRUDER && !AXIS_DRIVER_TYPE_E0(DRV8825)) +#if (HAS_X_AXIS && !AXIS_DRIVER_TYPE_X(DRV8825)) || (HAS_Y_AXIS && !AXIS_DRIVER_TYPE_Y(DRV8825)) || (HAS_Z_AXIS && !AXIS_DRIVER_TYPE_Z(DRV8825)) || (HAS_EXTRUDERS && !AXIS_DRIVER_TYPE_E0(DRV8825)) #error "Minitronics v2.0 has hard-wired DRV8825 drivers. Comment out this line to continue." #endif diff --git a/buildroot/tests/FYSETC_F6 b/buildroot/tests/FYSETC_F6 index 6dd7bb60fa..4c647d57d4 100755 --- a/buildroot/tests/FYSETC_F6 +++ b/buildroot/tests/FYSETC_F6 @@ -13,6 +13,13 @@ restore_configs opt_set MOTHERBOARD BOARD_FYSETC_F6_13 LCD_SERIAL_PORT 1 DGUS_LCD_UI FYSETC exec_test $1 $2 "DGUS (FYSETC)" "$3" +# +# Test DGUS_LCD_UI MKS +# +restore_configs +opt_set MOTHERBOARD BOARD_FYSETC_F6_13 LCD_SERIAL_PORT 1 DGUS_LCD_UI MKS +exec_test $1 $2 "DGUS (MKS)" "$3" + # # Test DGUS_LCD_UI RELOADED #