Sfoglia il codice sorgente

♻️ Consolidate DGUSScreenHandler class (#24067)

Scott Lahteine 2 anni fa
parent
commit
ac4fefa49a
Nessun account collegato all'indirizzo email del committer

+ 0
- 6
Marlin/src/lcd/extui/dgus/DGUSDisplay.cpp Vedi File

@@ -109,12 +109,6 @@ void DGUSDisplay::WriteVariable(uint16_t adr, int8_t value) {
109 109
   WriteVariable(adr, static_cast<const void*>(&value), sizeof(int8_t));
110 110
 }
111 111
 
112
-#if ENABLED(DGUS_LCD_UI_MKS)
113
-  void DGUSDisplay::MKS_WriteVariable(uint16_t adr, uint8_t value) {
114
-    WriteVariable(adr, static_cast<const void *>(&value), sizeof(uint8_t));
115
-  }
116
-#endif
117
-
118 112
 void DGUSDisplay::WriteVariable(uint16_t adr, long value) {
119 113
   union { long l; char lb[4]; } endian;
120 114
   char tmp[4];

+ 2
- 3
Marlin/src/lcd/extui/dgus/DGUSDisplay.h Vedi File

@@ -50,6 +50,8 @@ typedef enum : uint8_t {
50 50
   DGUS_WAIT_TELEGRAM,  //< LEN received, Waiting for to receive all bytes.
51 51
 } rx_datagram_state_t;
52 52
 
53
+constexpr uint16_t swap16(const uint16_t value) { return (value & 0xFFU) << 8U | (value >> 8U); }
54
+
53 55
 // Low-Level access to the display.
54 56
 class DGUSDisplay {
55 57
 public:
@@ -66,8 +68,6 @@ public:
66 68
   static void WriteVariable(uint16_t adr, uint8_t value);
67 69
   static void WriteVariable(uint16_t adr, int8_t value);
68 70
   static void WriteVariable(uint16_t adr, long value);
69
-  static void MKS_WriteVariable(uint16_t adr, uint8_t value);
70
-
71 71
 
72 72
   // Utility functions for bridging ui_api and dbus
73 73
   template<typename T, float(*Getter)(const T), T selector, typename WireType=uint16_t>
@@ -105,7 +105,6 @@ private:
105 105
   static void WritePGM(const char str[], uint8_t len);
106 106
   static void ProcessRx();
107 107
 
108
-  static uint16_t swap16(const uint16_t value) { return (value & 0xFFU) << 8U | (value >> 8U); }
109 108
   static rx_datagram_state_t rx_datagram_state;
110 109
   static uint8_t rx_datagram_len;
111 110
   static bool Initialized, no_reentrance;

+ 1
- 1
Marlin/src/lcd/extui/dgus/DGUSScreenHandler.cpp Vedi File

@@ -40,7 +40,7 @@
40 40
   #include "../../../feature/powerloss.h"
41 41
 #endif
42 42
 
43
-DGUSScreenHandler ScreenHandler;
43
+DGUSScreenHandlerClass ScreenHandler;
44 44
 
45 45
 uint16_t DGUSScreenHandler::ConfirmVP;
46 46
 

+ 1
- 4
Marlin/src/lcd/extui/dgus/DGUSScreenHandler.h Vedi File

@@ -42,9 +42,6 @@
42 42
 
43 43
 #endif
44 44
 
45
-// endianness swap
46
-inline uint16_t swap16(const uint16_t value) { return (value & 0xFFU) << 8U | (value >> 8U); }
47
-
48 45
 #if ENABLED(DGUS_LCD_UI_ORIGIN)
49 46
   #include "origin/DGUSScreenHandler.h"
50 47
 #elif ENABLED(DGUS_LCD_UI_MKS)
@@ -55,7 +52,7 @@ inline uint16_t swap16(const uint16_t value) { return (value & 0xFFU) << 8U | (v
55 52
   #include "hiprecy/DGUSScreenHandler.h"
56 53
 #endif
57 54
 
58
-extern DGUSScreenHandler ScreenHandler;
55
+extern DGUSScreenHandlerClass ScreenHandler;
59 56
 
60 57
 // Helper to define a DGUS_VP_Variable for common use-cases.
61 58
 #define VPHELPER(VPADR, VPADRVAR, RXFPTR, TXFPTR) { \

+ 241
- 0
Marlin/src/lcd/extui/dgus/DGUSScreenHandlerBase.h Vedi File

@@ -0,0 +1,241 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (c) 2022 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+#pragma once
23
+
24
+#include "DGUSDisplay.h"
25
+#include "DGUSVPVariable.h"
26
+#include "DGUSDisplayDef.h"
27
+
28
+#include "../../../inc/MarlinConfig.h"
29
+
30
+enum DGUSLCD_Screens : uint8_t;
31
+
32
+class DGUSScreenHandler {
33
+public:
34
+  DGUSScreenHandler() = default;
35
+
36
+  static bool loop();
37
+
38
+  // Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
39
+  // The bools specifying whether the strings are in RAM or FLASH.
40
+  static void sendinfoscreen(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
41
+  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) {
42
+    sendinfoscreen(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, liinflash);
43
+  }
44
+  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) {
45
+    sendinfoscreen(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), l1inflash, l2inflash, l3inflash, liinflash);
46
+  }
47
+
48
+  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);
49
+
50
+  // "M117" Message -- msg is a RAM ptr.
51
+  static void setstatusmessage(const char *msg);
52
+  // The same for messages from Flash
53
+  static void setstatusmessagePGM(PGM_P const msg);
54
+  // Callback for VP "Display wants to change screen on idle printer"
55
+  static void ScreenChangeHookIfIdle(DGUS_VP_Variable &var, void *val_ptr);
56
+  // Callback for VP "Screen has been changed"
57
+  static void ScreenChangeHook(DGUS_VP_Variable &var, void *val_ptr);
58
+
59
+  // Callback for VP "All Heaters Off"
60
+  static void HandleAllHeatersOff(DGUS_VP_Variable &var, void *val_ptr);
61
+  // Hook for "Change this temperature"
62
+  static void HandleTemperatureChanged(DGUS_VP_Variable &var, void *val_ptr);
63
+  // Hook for "Change Flowrate"
64
+  static void HandleFlowRateChanged(DGUS_VP_Variable &var, void *val_ptr);
65
+  #if ENABLED(DGUS_UI_MOVE_DIS_OPTION)
66
+    // Hook for manual move option
67
+    static void HandleManualMoveOption(DGUS_VP_Variable &var, void *val_ptr);
68
+  #endif
69
+
70
+  // Hook for manual move.
71
+  static void HandleManualMove(DGUS_VP_Variable &var, void *val_ptr);
72
+  // Hook for manual extrude.
73
+  static void HandleManualExtrude(DGUS_VP_Variable &var, void *val_ptr);
74
+  // Hook for motor lock and unlook
75
+  static void HandleMotorLockUnlock(DGUS_VP_Variable &var, void *val_ptr);
76
+  #if ENABLED(POWER_LOSS_RECOVERY)
77
+    // Hook for power loss recovery.
78
+    static void HandlePowerLossRecovery(DGUS_VP_Variable &var, void *val_ptr);
79
+  #endif
80
+  // Hook for settings
81
+  static void HandleSettings(DGUS_VP_Variable &var, void *val_ptr);
82
+  static void HandleStepPerMMChanged(DGUS_VP_Variable &var, void *val_ptr);
83
+  static void HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, void *val_ptr);
84
+
85
+  #if HAS_PID_HEATING
86
+    // Hook for "Change this temperature PID para"
87
+    static void HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr);
88
+    // Hook for PID autotune
89
+    static void HandlePIDAutotune(DGUS_VP_Variable &var, void *val_ptr);
90
+  #endif
91
+  #if HAS_BED_PROBE
92
+    // Hook for "Change probe offset z"
93
+    static void HandleProbeOffsetZChanged(DGUS_VP_Variable &var, void *val_ptr);
94
+  #endif
95
+  #if ENABLED(BABYSTEPPING)
96
+    // Hook for live z adjust action
97
+    static void HandleLiveAdjustZ(DGUS_VP_Variable &var, void *val_ptr);
98
+  #endif
99
+  #if HAS_FAN
100
+    // Hook for fan control
101
+    static void HandleFanControl(DGUS_VP_Variable &var, void *val_ptr);
102
+  #endif
103
+  // Hook for heater control
104
+  static void HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr);
105
+  #if ENABLED(DGUS_PREHEAT_UI)
106
+    // Hook for preheat
107
+    static void HandlePreheat(DGUS_VP_Variable &var, void *val_ptr);
108
+  #endif
109
+  #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
110
+    // Hook for filament load and unload filament option
111
+    static void HandleFilamentOption(DGUS_VP_Variable &var, void *val_ptr);
112
+    // Hook for filament load and unload
113
+    static void HandleFilamentLoadUnload(DGUS_VP_Variable &var);
114
+  #endif
115
+
116
+  #if ENABLED(SDSUPPORT)
117
+    // Callback for VP "Display wants to change screen when there is a SD card"
118
+    static void ScreenChangeHookIfSD(DGUS_VP_Variable &var, void *val_ptr);
119
+    // Scroll buttons on the file listing screen.
120
+    static void DGUSLCD_SD_ScrollFilelist(DGUS_VP_Variable &var, void *val_ptr);
121
+    // File touched.
122
+    static void DGUSLCD_SD_FileSelected(DGUS_VP_Variable &var, void *val_ptr);
123
+    // start print after confirmation received.
124
+    static void DGUSLCD_SD_StartPrint(DGUS_VP_Variable &var, void *val_ptr);
125
+    // User hit the pause, resume or abort button.
126
+    static void DGUSLCD_SD_ResumePauseAbort(DGUS_VP_Variable &var, void *val_ptr);
127
+    // User confirmed the abort action
128
+    static void DGUSLCD_SD_ReallyAbort(DGUS_VP_Variable &var, void *val_ptr);
129
+    // User hit the tune button
130
+    static void DGUSLCD_SD_PrintTune(DGUS_VP_Variable &var, void *val_ptr);
131
+    // Send a single filename to the display.
132
+    static void DGUSLCD_SD_SendFilename(DGUS_VP_Variable &var);
133
+    // Marlin informed us that a new SD has been inserted.
134
+    static void SDCardInserted();
135
+    // Marlin informed us that the SD Card has been removed().
136
+    static void SDCardRemoved();
137
+    // Marlin informed us about a bad SD Card.
138
+    static void SDCardError();
139
+  #endif
140
+
141
+  // OK Button on the Confirm screen.
142
+  static void ScreenConfirmedOK(DGUS_VP_Variable &var, void *val_ptr);
143
+
144
+  // Update data after going to a new screen (by display or by GotoScreen)
145
+  // remember to store the last-displayed screen so it can be restored.
146
+  // (e.g., for popup messages)
147
+  static void UpdateNewScreen(DGUSLCD_Screens newscreen, bool popup=false);
148
+
149
+  // Recall the remembered screen.
150
+  static void PopToOldScreen();
151
+
152
+  // Make the display show the screen and update all VPs in it.
153
+  static void GotoScreen(DGUSLCD_Screens screen, bool ispopup = false);
154
+
155
+  static void UpdateScreenVPData();
156
+
157
+  // Helpers to convert and transfer data to the display.
158
+  static void DGUSLCD_SendWordValueToDisplay(DGUS_VP_Variable &var);
159
+  static void DGUSLCD_SendStringToDisplay(DGUS_VP_Variable &var);
160
+  static void DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var);
161
+  static void DGUSLCD_SendTemperaturePID(DGUS_VP_Variable &var);
162
+  static void DGUSLCD_SendPercentageToDisplay(DGUS_VP_Variable &var);
163
+  static void DGUSLCD_SendPrintProgressToDisplay(DGUS_VP_Variable &var);
164
+  static void DGUSLCD_SendPrintTimeToDisplay(DGUS_VP_Variable &var);
165
+
166
+  #if ENABLED(PRINTCOUNTER)
167
+    static void DGUSLCD_SendPrintAccTimeToDisplay(DGUS_VP_Variable &var);
168
+    static void DGUSLCD_SendPrintsTotalToDisplay(DGUS_VP_Variable &var);
169
+  #endif
170
+  #if HAS_FAN
171
+    static void DGUSLCD_SendFanStatusToDisplay(DGUS_VP_Variable &var);
172
+  #endif
173
+  static void DGUSLCD_SendHeaterStatusToDisplay(DGUS_VP_Variable &var);
174
+  #if ENABLED(DGUS_UI_WAITING)
175
+    static void DGUSLCD_SendWaitingStatusToDisplay(DGUS_VP_Variable &var);
176
+  #endif
177
+
178
+  // Send a value from 0..100 to a variable with a range from 0..255
179
+  static void DGUSLCD_PercentageToUint8(DGUS_VP_Variable &var, void *val_ptr);
180
+
181
+  template<typename T>
182
+  static void DGUSLCD_SetValueDirectly(DGUS_VP_Variable &var, void *val_ptr) {
183
+    if (!var.memadr) return;
184
+    union { unsigned char tmp[sizeof(T)]; T t; } x;
185
+    unsigned char *ptr = (unsigned char*)val_ptr;
186
+    LOOP_L_N(i, sizeof(T)) x.tmp[i] = ptr[sizeof(T) - i - 1];
187
+    *(T*)var.memadr = x.t;
188
+  }
189
+
190
+  // Send a float value to the display.
191
+  // Display will get a 4-byte integer scaled to the number of digits:
192
+  // Tell the display the number of digits and it cheats by displaying a dot between...
193
+  template<unsigned int decimals>
194
+  static void DGUSLCD_SendFloatAsLongValueToDisplay(DGUS_VP_Variable &var) {
195
+    if (var.memadr) {
196
+      float f = *(float *)var.memadr;
197
+      f *= cpow(10, decimals);
198
+      dgusdisplay.WriteVariable(var.VP, (long)f);
199
+    }
200
+  }
201
+
202
+  // Send a float value to the display.
203
+  // Display will get a 2-byte integer scaled to the number of digits:
204
+  // Tell the display the number of digits and it cheats by displaying a dot between...
205
+  template<unsigned int decimals>
206
+  static void DGUSLCD_SendFloatAsIntValueToDisplay(DGUS_VP_Variable &var) {
207
+    if (var.memadr) {
208
+      float f = *(float *)var.memadr;
209
+      DEBUG_ECHOLNPAIR_F(" >> ", f, 6);
210
+      f *= cpow(10, decimals);
211
+      dgusdisplay.WriteVariable(var.VP, (int16_t)f);
212
+    }
213
+  }
214
+
215
+  // Force an update of all VP on the current screen.
216
+  static void ForceCompleteUpdate() { update_ptr = 0; ScreenComplete = false; }
217
+  // Has all VPs sent to the screen
218
+  static bool IsScreenComplete() { return ScreenComplete; }
219
+
220
+  static DGUSLCD_Screens getCurrentScreen() { return current_screen; }
221
+
222
+  static void SetupConfirmAction( void (*f)()) { confirm_action_cb = f; }
223
+
224
+protected:
225
+  static DGUSLCD_Screens current_screen;  //< currently on screen
226
+  static constexpr uint8_t NUM_PAST_SCREENS = 4;
227
+  static DGUSLCD_Screens past_screens[NUM_PAST_SCREENS]; //< LIFO with past screens for the "back" button.
228
+
229
+  static uint8_t update_ptr;      //< Last sent entry in the VPList for the actual screen.
230
+  static uint16_t skipVP;         //< When updating the screen data, skip this one, because the user is interacting with it.
231
+  static bool ScreenComplete;     //< All VPs sent to screen?
232
+
233
+  static uint16_t ConfirmVP;      //< context for confirm screen (VP that will be emulated-sent on "OK").
234
+
235
+  #if ENABLED(SDSUPPORT)
236
+    static int16_t top_file;      //< file on top of file chooser
237
+    static int16_t file_to_print; //< touched file to be confirmed
238
+  #endif
239
+
240
+  static void (*confirm_action_cb)();
241
+};

+ 6
- 10
Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp Vedi File

@@ -333,9 +333,9 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
333 333
     if (filament_data.action == 0) { // Go back to utility screen
334 334
       #if HAS_HOTEND
335 335
         thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0);
336
-      #endif
337
-      #if HAS_MULTI_HOTEND
338
-        thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
336
+        #if HAS_MULTI_HOTEND
337
+          thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
338
+        #endif
339 339
       #endif
340 340
       GotoScreen(DGUSLCD_SCREEN_UTILITY);
341 341
     }
@@ -348,7 +348,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
348 348
               thermalManager.setTargetHotend(e_temp, filament_data.extruder);
349 349
               break;
350 350
           #endif
351
-          #if HAS_MULTI_EXTRUDER
351
+          #if HAS_MULTI_HOTEND
352 352
             case VP_E1_FILAMENT_LOAD_UNLOAD:
353 353
               filament_data.extruder = ExtUI::extruder_t::E1;
354 354
               thermalManager.setTargetHotend(e_temp, filament_data.extruder);
@@ -413,14 +413,10 @@ bool DGUSScreenHandler::loop() {
413 413
 
414 414
     if (!booted && ELAPSED(ms, BOOTSCREEN_TIMEOUT)) {
415 415
       booted = true;
416
-
417
-      if (TERN0(POWER_LOSS_RECOVERY, recovery.valid()))
418
-        GotoScreen(DGUSLCD_SCREEN_POWER_LOSS);
419
-      else
420
-        GotoScreen(DGUSLCD_SCREEN_MAIN);
416
+      GotoScreen(TERN0(POWER_LOSS_RECOVERY, recovery.valid()) ? DGUSLCD_SCREEN_POWER_LOSS : DGUSLCD_SCREEN_MAIN);
421 417
     }
422
-
423 418
   #endif
419
+
424 420
   return IsScreenComplete();
425 421
 }
426 422
 

+ 2
- 217
Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.h Vedi File

@@ -21,224 +21,9 @@
21 21
  */
22 22
 #pragma once
23 23
 
24
-#include "../DGUSDisplay.h"
25
-#include "../DGUSVPVariable.h"
26
-#include "../DGUSDisplayDef.h"
24
+#include "../DGUSScreenHandlerBase.h"
27 25
 
28
-#include "../../../../inc/MarlinConfig.h"
29
-
30
-enum DGUSLCD_Screens : uint8_t;
31
-
32
-class DGUSScreenHandler {
33
-public:
34
-  DGUSScreenHandler() = default;
35
-
36
-  static bool loop();
37
-
38
-  // Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
39
-  // The bools specifying whether the strings are in RAM or FLASH.
40
-  static void sendinfoscreen(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
41
-  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) {
42
-    sendinfoscreen(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, liinflash);
43
-  }
44
-  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) {
45
-    sendinfoscreen(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), l1inflash, l2inflash, l3inflash, liinflash);
46
-  }
47
-
48
-  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);
49
-
50
-  // "M117" Message -- msg is a RAM ptr.
51
-  static void setstatusmessage(const char *msg);
52
-  // The same for messages from Flash
53
-  static void setstatusmessagePGM(PGM_P const msg);
54
-  // Callback for VP "Display wants to change screen on idle printer"
55
-  static void ScreenChangeHookIfIdle(DGUS_VP_Variable &var, void *val_ptr);
56
-  // Callback for VP "Screen has been changed"
57
-  static void ScreenChangeHook(DGUS_VP_Variable &var, void *val_ptr);
58
-
59
-  // Callback for VP "All Heaters Off"
60
-  static void HandleAllHeatersOff(DGUS_VP_Variable &var, void *val_ptr);
61
-  // Hook for "Change this temperature"
62
-  static void HandleTemperatureChanged(DGUS_VP_Variable &var, void *val_ptr);
63
-  // Hook for "Change Flowrate"
64
-  static void HandleFlowRateChanged(DGUS_VP_Variable &var, void *val_ptr);
65
-  #if ENABLED(DGUS_UI_MOVE_DIS_OPTION)
66
-    // Hook for manual move option
67
-    static void HandleManualMoveOption(DGUS_VP_Variable &var, void *val_ptr);
68
-  #endif
69
-
70
-  // Hook for manual move.
71
-  static void HandleManualMove(DGUS_VP_Variable &var, void *val_ptr);
72
-  // Hook for manual extrude.
73
-  static void HandleManualExtrude(DGUS_VP_Variable &var, void *val_ptr);
74
-  // Hook for motor lock and unlook
75
-  static void HandleMotorLockUnlock(DGUS_VP_Variable &var, void *val_ptr);
76
-  #if ENABLED(POWER_LOSS_RECOVERY)
77
-    // Hook for power loss recovery.
78
-    static void HandlePowerLossRecovery(DGUS_VP_Variable &var, void *val_ptr);
79
-  #endif
80
-  // Hook for settings
81
-  static void HandleSettings(DGUS_VP_Variable &var, void *val_ptr);
82
-  static void HandleStepPerMMChanged(DGUS_VP_Variable &var, void *val_ptr);
83
-  static void HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, void *val_ptr);
84
-
85
-  #if HAS_PID_HEATING
86
-    // Hook for "Change this temperature PID para"
87
-    static void HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr);
88
-    // Hook for PID autotune
89
-    static void HandlePIDAutotune(DGUS_VP_Variable &var, void *val_ptr);
90
-  #endif
91
-  #if HAS_BED_PROBE
92
-    // Hook for "Change probe offset z"
93
-    static void HandleProbeOffsetZChanged(DGUS_VP_Variable &var, void *val_ptr);
94
-  #endif
95
-  #if ENABLED(BABYSTEPPING)
96
-    // Hook for live z adjust action
97
-    static void HandleLiveAdjustZ(DGUS_VP_Variable &var, void *val_ptr);
98
-  #endif
99
-  #if HAS_FAN
100
-    // Hook for fan control
101
-    static void HandleFanControl(DGUS_VP_Variable &var, void *val_ptr);
102
-  #endif
103
-  // Hook for heater control
104
-  static void HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr);
105
-  #if ENABLED(DGUS_PREHEAT_UI)
106
-    // Hook for preheat
107
-    static void HandlePreheat(DGUS_VP_Variable &var, void *val_ptr);
108
-  #endif
109
-  #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
110
-    // Hook for filament load and unload filament option
111
-    static void HandleFilamentOption(DGUS_VP_Variable &var, void *val_ptr);
112
-    // Hook for filament load and unload
113
-    static void HandleFilamentLoadUnload(DGUS_VP_Variable &var);
114
-  #endif
115
-
116
-  #if ENABLED(SDSUPPORT)
117
-    // Callback for VP "Display wants to change screen when there is a SD card"
118
-    static void ScreenChangeHookIfSD(DGUS_VP_Variable &var, void *val_ptr);
119
-    // Scroll buttons on the file listing screen.
120
-    static void DGUSLCD_SD_ScrollFilelist(DGUS_VP_Variable &var, void *val_ptr);
121
-    // File touched.
122
-    static void DGUSLCD_SD_FileSelected(DGUS_VP_Variable &var, void *val_ptr);
123
-    // start print after confirmation received.
124
-    static void DGUSLCD_SD_StartPrint(DGUS_VP_Variable &var, void *val_ptr);
125
-    // User hit the pause, resume or abort button.
126
-    static void DGUSLCD_SD_ResumePauseAbort(DGUS_VP_Variable &var, void *val_ptr);
127
-    // User confirmed the abort action
128
-    static void DGUSLCD_SD_ReallyAbort(DGUS_VP_Variable &var, void *val_ptr);
129
-    // User hit the tune button
130
-    static void DGUSLCD_SD_PrintTune(DGUS_VP_Variable &var, void *val_ptr);
131
-    // Send a single filename to the display.
132
-    static void DGUSLCD_SD_SendFilename(DGUS_VP_Variable &var);
133
-    // Marlin informed us that a new SD has been inserted.
134
-    static void SDCardInserted();
135
-    // Marlin informed us that the SD Card has been removed().
136
-    static void SDCardRemoved();
137
-    // Marlin informed us about a bad SD Card.
138
-    static void SDCardError();
139
-  #endif
140
-
141
-  // OK Button the Confirm screen.
142
-  static void ScreenConfirmedOK(DGUS_VP_Variable &var, void *val_ptr);
143
-
144
-  // Update data after went to new screen (by display or by GotoScreen)
145
-  // remember: store the last-displayed screen, so it can get returned to.
146
-  // (e.g for pop up messages)
147
-  static void UpdateNewScreen(DGUSLCD_Screens newscreen, bool popup=false);
148
-
149
-  // Recall the remembered screen.
150
-  static void PopToOldScreen();
151
-
152
-  // Make the display show the screen and update all VPs in it.
153
-  static void GotoScreen(DGUSLCD_Screens screen, bool ispopup = false);
154
-
155
-  static void UpdateScreenVPData();
156
-
157
-  // Helpers to convert and transfer data to the display.
158
-  static void DGUSLCD_SendWordValueToDisplay(DGUS_VP_Variable &var);
159
-  static void DGUSLCD_SendStringToDisplay(DGUS_VP_Variable &var);
160
-  static void DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var);
161
-  static void DGUSLCD_SendTemperaturePID(DGUS_VP_Variable &var);
162
-  static void DGUSLCD_SendPercentageToDisplay(DGUS_VP_Variable &var);
163
-  static void DGUSLCD_SendPrintProgressToDisplay(DGUS_VP_Variable &var);
164
-  static void DGUSLCD_SendPrintTimeToDisplay(DGUS_VP_Variable &var);
165
-
166
-  #if ENABLED(PRINTCOUNTER)
167
-    static void DGUSLCD_SendPrintAccTimeToDisplay(DGUS_VP_Variable &var);
168
-    static void DGUSLCD_SendPrintsTotalToDisplay(DGUS_VP_Variable &var);
169
-  #endif
170
-  #if HAS_FAN
171
-    static void DGUSLCD_SendFanStatusToDisplay(DGUS_VP_Variable &var);
172
-  #endif
173
-  static void DGUSLCD_SendHeaterStatusToDisplay(DGUS_VP_Variable &var);
174
-  #if ENABLED(DGUS_UI_WAITING)
175
-    static void DGUSLCD_SendWaitingStatusToDisplay(DGUS_VP_Variable &var);
176
-  #endif
177
-
178
-  // Send a value from 0..100 to a variable with a range from 0..255
179
-  static void DGUSLCD_PercentageToUint8(DGUS_VP_Variable &var, void *val_ptr);
180
-
181
-  template<typename T>
182
-  static void DGUSLCD_SetValueDirectly(DGUS_VP_Variable &var, void *val_ptr) {
183
-    if (!var.memadr) return;
184
-    union { unsigned char tmp[sizeof(T)]; T t; } x;
185
-    unsigned char *ptr = (unsigned char*)val_ptr;
186
-    LOOP_L_N(i, sizeof(T)) x.tmp[i] = ptr[sizeof(T) - i - 1];
187
-    *(T*)var.memadr = x.t;
188
-  }
189
-
190
-  // Send a float value to the display.
191
-  // Display will get a 4-byte integer scaled to the number of digits:
192
-  // Tell the display the number of digits and it cheats by displaying a dot between...
193
-  template<unsigned int decimals>
194
-  static void DGUSLCD_SendFloatAsLongValueToDisplay(DGUS_VP_Variable &var) {
195
-    if (var.memadr) {
196
-      float f = *(float *)var.memadr;
197
-      f *= cpow(10, decimals);
198
-      dgusdisplay.WriteVariable(var.VP, (long)f);
199
-    }
200
-  }
201
-
202
-  // Send a float value to the display.
203
-  // Display will get a 2-byte integer scaled to the number of digits:
204
-  // Tell the display the number of digits and it cheats by displaying a dot between...
205
-  template<unsigned int decimals>
206
-  static void DGUSLCD_SendFloatAsIntValueToDisplay(DGUS_VP_Variable &var) {
207
-    if (var.memadr) {
208
-      float f = *(float *)var.memadr;
209
-      DEBUG_ECHOLNPAIR_F(" >> ", f, 6);
210
-      f *= cpow(10, decimals);
211
-      dgusdisplay.WriteVariable(var.VP, (int16_t)f);
212
-    }
213
-  }
214
-
215
-  // Force an update of all VP on the current screen.
216
-  static void ForceCompleteUpdate() { update_ptr = 0; ScreenComplete = false; }
217
-  // Has all VPs sent to the screen
218
-  static bool IsScreenComplete() { return ScreenComplete; }
219
-
220
-  static DGUSLCD_Screens getCurrentScreen() { return current_screen; }
221
-
222
-  static void SetupConfirmAction( void (*f)()) { confirm_action_cb = f; }
223
-
224
-private:
225
-  static DGUSLCD_Screens current_screen;  //< currently on screen
226
-  static constexpr uint8_t NUM_PAST_SCREENS = 4;
227
-  static DGUSLCD_Screens past_screens[NUM_PAST_SCREENS]; //< LIFO with past screens for the "back" button.
228
-
229
-  static uint8_t update_ptr;      //< Last sent entry in the VPList for the actual screen.
230
-  static uint16_t skipVP;         //< When updating the screen data, skip this one, because the user is interacting with it.
231
-  static bool ScreenComplete;     //< All VPs sent to screen?
232
-
233
-  static uint16_t ConfirmVP;      //< context for confirm screen (VP that will be emulated-sent on "OK").
234
-
235
-  #if ENABLED(SDSUPPORT)
236
-    static int16_t top_file;      //< file on top of file chooser
237
-    static int16_t file_to_print; //< touched file to be confirmed
238
-  #endif
239
-
240
-  static void (*confirm_action_cb)();
241
-};
26
+typedef DGUSScreenHandler DGUSScreenHandlerClass;
242 27
 
243 28
 #if ENABLED(POWER_LOSS_RECOVERY)
244 29
   #define PLR_SCREEN_RECOVER DGUSLCD_SCREEN_SDPRINTMANIPULATION

+ 4
- 1
Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp Vedi File

@@ -411,9 +411,12 @@ bool DGUSScreenHandler::loop() {
411 411
     if (!booted && TERN0(POWER_LOSS_RECOVERY, recovery.valid()))
412 412
       booted = true;
413 413
 
414
-    if (!booted && ELAPSED(ms, TERN(USE_MKS_GREEN_UI, 1000, BOOTSCREEN_TIMEOUT)))
414
+    if (!booted && ELAPSED(ms, BOOTSCREEN_TIMEOUT)) {
415 415
       booted = true;
416
+      GotoScreen(TERN0(POWER_LOSS_RECOVERY, recovery.valid()) ? DGUSLCD_SCREEN_POWER_LOSS : DGUSLCD_SCREEN_MAIN);
417
+    }
416 418
   #endif
419
+
417 420
   return IsScreenComplete();
418 421
 }
419 422
 

+ 2
- 217
Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.h Vedi File

@@ -21,224 +21,9 @@
21 21
  */
22 22
 #pragma once
23 23
 
24
-#include "../DGUSDisplay.h"
25
-#include "../DGUSVPVariable.h"
26
-#include "../DGUSDisplayDef.h"
24
+#include "../DGUSScreenHandlerBase.h"
27 25
 
28
-#include "../../../../inc/MarlinConfig.h"
29
-
30
-enum DGUSLCD_Screens : uint8_t;
31
-
32
-class DGUSScreenHandler {
33
-public:
34
-  DGUSScreenHandler() = default;
35
-
36
-  static bool loop();
37
-
38
-  // Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
39
-  // The bools specifying whether the strings are in RAM or FLASH.
40
-  static void sendinfoscreen(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
41
-  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) {
42
-    sendinfoscreen(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, liinflash);
43
-  }
44
-  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) {
45
-    sendinfoscreen(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), l1inflash, l2inflash, l3inflash, liinflash);
46
-  }
47
-
48
-  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);
49
-
50
-  // "M117" Message -- msg is a RAM ptr.
51
-  static void setstatusmessage(const char *msg);
52
-  // The same for messages from Flash
53
-  static void setstatusmessagePGM(PGM_P const msg);
54
-  // Callback for VP "Display wants to change screen on idle printer"
55
-  static void ScreenChangeHookIfIdle(DGUS_VP_Variable &var, void *val_ptr);
56
-  // Callback for VP "Screen has been changed"
57
-  static void ScreenChangeHook(DGUS_VP_Variable &var, void *val_ptr);
58
-
59
-  // Callback for VP "All Heaters Off"
60
-  static void HandleAllHeatersOff(DGUS_VP_Variable &var, void *val_ptr);
61
-  // Hook for "Change this temperature"
62
-  static void HandleTemperatureChanged(DGUS_VP_Variable &var, void *val_ptr);
63
-  // Hook for "Change Flowrate"
64
-  static void HandleFlowRateChanged(DGUS_VP_Variable &var, void *val_ptr);
65
-  #if ENABLED(DGUS_UI_MOVE_DIS_OPTION)
66
-    // Hook for manual move option
67
-    static void HandleManualMoveOption(DGUS_VP_Variable &var, void *val_ptr);
68
-  #endif
69
-
70
-  // Hook for manual move.
71
-  static void HandleManualMove(DGUS_VP_Variable &var, void *val_ptr);
72
-  // Hook for manual extrude.
73
-  static void HandleManualExtrude(DGUS_VP_Variable &var, void *val_ptr);
74
-  // Hook for motor lock and unlook
75
-  static void HandleMotorLockUnlock(DGUS_VP_Variable &var, void *val_ptr);
76
-  #if ENABLED(POWER_LOSS_RECOVERY)
77
-    // Hook for power loss recovery.
78
-    static void HandlePowerLossRecovery(DGUS_VP_Variable &var, void *val_ptr);
79
-  #endif
80
-  // Hook for settings
81
-  static void HandleSettings(DGUS_VP_Variable &var, void *val_ptr);
82
-  static void HandleStepPerMMChanged(DGUS_VP_Variable &var, void *val_ptr);
83
-  static void HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, void *val_ptr);
84
-
85
-  #if HAS_PID_HEATING
86
-    // Hook for "Change this temperature PID para"
87
-    static void HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr);
88
-    // Hook for PID autotune
89
-    static void HandlePIDAutotune(DGUS_VP_Variable &var, void *val_ptr);
90
-  #endif
91
-  #if HAS_BED_PROBE
92
-    // Hook for "Change probe offset z"
93
-    static void HandleProbeOffsetZChanged(DGUS_VP_Variable &var, void *val_ptr);
94
-  #endif
95
-  #if ENABLED(BABYSTEPPING)
96
-    // Hook for live z adjust action
97
-    static void HandleLiveAdjustZ(DGUS_VP_Variable &var, void *val_ptr);
98
-  #endif
99
-  #if HAS_FAN
100
-    // Hook for fan control
101
-    static void HandleFanControl(DGUS_VP_Variable &var, void *val_ptr);
102
-  #endif
103
-  // Hook for heater control
104
-  static void HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr);
105
-  #if ENABLED(DGUS_PREHEAT_UI)
106
-    // Hook for preheat
107
-    static void HandlePreheat(DGUS_VP_Variable &var, void *val_ptr);
108
-  #endif
109
-  #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
110
-    // Hook for filament load and unload filament option
111
-    static void HandleFilamentOption(DGUS_VP_Variable &var, void *val_ptr);
112
-    // Hook for filament load and unload
113
-    static void HandleFilamentLoadUnload(DGUS_VP_Variable &var);
114
-  #endif
115
-
116
-  #if ENABLED(SDSUPPORT)
117
-    // Callback for VP "Display wants to change screen when there is a SD card"
118
-    static void ScreenChangeHookIfSD(DGUS_VP_Variable &var, void *val_ptr);
119
-    // Scroll buttons on the file listing screen.
120
-    static void DGUSLCD_SD_ScrollFilelist(DGUS_VP_Variable &var, void *val_ptr);
121
-    // File touched.
122
-    static void DGUSLCD_SD_FileSelected(DGUS_VP_Variable &var, void *val_ptr);
123
-    // start print after confirmation received.
124
-    static void DGUSLCD_SD_StartPrint(DGUS_VP_Variable &var, void *val_ptr);
125
-    // User hit the pause, resume or abort button.
126
-    static void DGUSLCD_SD_ResumePauseAbort(DGUS_VP_Variable &var, void *val_ptr);
127
-    // User confirmed the abort action
128
-    static void DGUSLCD_SD_ReallyAbort(DGUS_VP_Variable &var, void *val_ptr);
129
-    // User hit the tune button
130
-    static void DGUSLCD_SD_PrintTune(DGUS_VP_Variable &var, void *val_ptr);
131
-    // Send a single filename to the display.
132
-    static void DGUSLCD_SD_SendFilename(DGUS_VP_Variable &var);
133
-    // Marlin informed us that a new SD has been inserted.
134
-    static void SDCardInserted();
135
-    // Marlin informed us that the SD Card has been removed().
136
-    static void SDCardRemoved();
137
-    // Marlin informed us about a bad SD Card.
138
-    static void SDCardError();
139
-  #endif
140
-
141
-  // OK Button the Confirm screen.
142
-  static void ScreenConfirmedOK(DGUS_VP_Variable &var, void *val_ptr);
143
-
144
-  // Update data after went to new screen (by display or by GotoScreen)
145
-  // remember: store the last-displayed screen, so it can get returned to.
146
-  // (e.g for pop up messages)
147
-  static void UpdateNewScreen(DGUSLCD_Screens newscreen, bool popup=false);
148
-
149
-  // Recall the remembered screen.
150
-  static void PopToOldScreen();
151
-
152
-  // Make the display show the screen and update all VPs in it.
153
-  static void GotoScreen(DGUSLCD_Screens screen, bool ispopup = false);
154
-
155
-  static void UpdateScreenVPData();
156
-
157
-  // Helpers to convert and transfer data to the display.
158
-  static void DGUSLCD_SendWordValueToDisplay(DGUS_VP_Variable &var);
159
-  static void DGUSLCD_SendStringToDisplay(DGUS_VP_Variable &var);
160
-  static void DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var);
161
-  static void DGUSLCD_SendTemperaturePID(DGUS_VP_Variable &var);
162
-  static void DGUSLCD_SendPercentageToDisplay(DGUS_VP_Variable &var);
163
-  static void DGUSLCD_SendPrintProgressToDisplay(DGUS_VP_Variable &var);
164
-  static void DGUSLCD_SendPrintTimeToDisplay(DGUS_VP_Variable &var);
165
-
166
-  #if ENABLED(PRINTCOUNTER)
167
-    static void DGUSLCD_SendPrintAccTimeToDisplay(DGUS_VP_Variable &var);
168
-    static void DGUSLCD_SendPrintsTotalToDisplay(DGUS_VP_Variable &var);
169
-  #endif
170
-  #if HAS_FAN
171
-    static void DGUSLCD_SendFanStatusToDisplay(DGUS_VP_Variable &var);
172
-  #endif
173
-  static void DGUSLCD_SendHeaterStatusToDisplay(DGUS_VP_Variable &var);
174
-  #if ENABLED(DGUS_UI_WAITING)
175
-    static void DGUSLCD_SendWaitingStatusToDisplay(DGUS_VP_Variable &var);
176
-  #endif
177
-
178
-  // Send a value from 0..100 to a variable with a range from 0..255
179
-  static void DGUSLCD_PercentageToUint8(DGUS_VP_Variable &var, void *val_ptr);
180
-
181
-  template<typename T>
182
-  static void DGUSLCD_SetValueDirectly(DGUS_VP_Variable &var, void *val_ptr) {
183
-    if (!var.memadr) return;
184
-    union { unsigned char tmp[sizeof(T)]; T t; } x;
185
-    unsigned char *ptr = (unsigned char*)val_ptr;
186
-    LOOP_L_N(i, sizeof(T)) x.tmp[i] = ptr[sizeof(T) - i - 1];
187
-    *(T*)var.memadr = x.t;
188
-  }
189
-
190
-  // Send a float value to the display.
191
-  // Display will get a 4-byte integer scaled to the number of digits:
192
-  // Tell the display the number of digits and it cheats by displaying a dot between...
193
-  template<unsigned int decimals>
194
-  static void DGUSLCD_SendFloatAsLongValueToDisplay(DGUS_VP_Variable &var) {
195
-    if (var.memadr) {
196
-      float f = *(float *)var.memadr;
197
-      f *= cpow(10, decimals);
198
-      dgusdisplay.WriteVariable(var.VP, (long)f);
199
-    }
200
-  }
201
-
202
-  // Send a float value to the display.
203
-  // Display will get a 2-byte integer scaled to the number of digits:
204
-  // Tell the display the number of digits and it cheats by displaying a dot between...
205
-  template<unsigned int decimals>
206
-  static void DGUSLCD_SendFloatAsIntValueToDisplay(DGUS_VP_Variable &var) {
207
-    if (var.memadr) {
208
-      float f = *(float *)var.memadr;
209
-      DEBUG_ECHOLNPAIR_F(" >> ", f, 6);
210
-      f *= cpow(10, decimals);
211
-      dgusdisplay.WriteVariable(var.VP, (int16_t)f);
212
-    }
213
-  }
214
-
215
-  // Force an update of all VP on the current screen.
216
-  static void ForceCompleteUpdate() { update_ptr = 0; ScreenComplete = false; }
217
-  // Has all VPs sent to the screen
218
-  static bool IsScreenComplete() { return ScreenComplete; }
219
-
220
-  static DGUSLCD_Screens getCurrentScreen() { return current_screen; }
221
-
222
-  static void SetupConfirmAction( void (*f)()) { confirm_action_cb = f; }
223
-
224
-private:
225
-  static DGUSLCD_Screens current_screen;  //< currently on screen
226
-  static constexpr uint8_t NUM_PAST_SCREENS = 4;
227
-  static DGUSLCD_Screens past_screens[NUM_PAST_SCREENS]; //< LIFO with past screens for the "back" button.
228
-
229
-  static uint8_t update_ptr;      //< Last sent entry in the VPList for the actual screen.
230
-  static uint16_t skipVP;         //< When updating the screen data, skip this one, because the user is interacting with it.
231
-  static bool ScreenComplete;     //< All VPs sent to screen?
232
-
233
-  static uint16_t ConfirmVP;      //< context for confirm screen (VP that will be emulated-sent on "OK").
234
-
235
-  #if ENABLED(SDSUPPORT)
236
-    static int16_t top_file;      //< file on top of file chooser
237
-    static int16_t file_to_print; //< touched file to be confirmed
238
-  #endif
239
-
240
-  static void (*confirm_action_cb)();
241
-};
26
+typedef DGUSScreenHandler DGUSScreenHandlerClass;
242 27
 
243 28
 #if ENABLED(POWER_LOSS_RECOVERY)
244 29
   #define PLR_SCREEN_RECOVER DGUSLCD_SCREEN_SDPRINTMANIPULATION

+ 43
- 43
Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp Vedi File

@@ -69,7 +69,7 @@ void MKS_reset_settings() {
69 69
     { 20, 20 }, { 20, 20 },
70 70
     { X_CENTER, Y_CENTER }
71 71
   };
72
-  mks_language_index = 0;
72
+  mks_language_index = MKS_SimpleChinese;
73 73
   COPY(mks_corner_offsets, init_dgus_level_offsets);
74 74
   mks_park_pos.set(20, 20, 10);
75 75
   mks_min_extrusion_temp = 0;
@@ -560,8 +560,8 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
560 560
       VPHELPER(VP_PID_AUTOTUNE_E0, nullptr, ScreenHandler.HandlePIDAutotune, nullptr),
561 561
     #endif
562 562
     #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
563
-      VPHELPER(VP_LOAD_Filament, nullptr, ScreenHandler.MKS_FilamentLoad, nullptr),
564
-      VPHELPER(VP_UNLOAD_Filament, nullptr, ScreenHandler.MKS_FilamentUnLoad, nullptr),
563
+      VPHELPER(VP_LOAD_Filament, nullptr, ScreenHandler.FilamentLoad, nullptr),
564
+      VPHELPER(VP_UNLOAD_Filament, nullptr, ScreenHandler.FilamentUnLoad, nullptr),
565 565
       VPHELPER(VP_Filament_distance, &distanceFilament, ScreenHandler.GetManualFilament, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
566 566
       VPHELPER(VP_Filament_speed, &filamentSpeed_mm_s, ScreenHandler.GetManualFilamentSpeed, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
567 567
     #endif
@@ -618,16 +618,16 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
618 618
   VPHELPER(VP_ZPos, &current_position.z, nullptr, ScreenHandler.DGUSLCD_SendFloatAsLongValueToDisplay<2>),
619 619
 
620 620
   // Level Point Set
621
-  VPHELPER(VP_Level_Point_One_X, &mks_corner_offsets[0].x, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
622
-  VPHELPER(VP_Level_Point_One_Y, &mks_corner_offsets[0].y, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
623
-  VPHELPER(VP_Level_Point_Two_X, &mks_corner_offsets[1].x, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
624
-  VPHELPER(VP_Level_Point_Two_Y, &mks_corner_offsets[1].y, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
625
-  VPHELPER(VP_Level_Point_Three_X, &mks_corner_offsets[2].x, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
626
-  VPHELPER(VP_Level_Point_Three_Y, &mks_corner_offsets[2].y, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
627
-  VPHELPER(VP_Level_Point_Four_X, &mks_corner_offsets[3].x, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
628
-  VPHELPER(VP_Level_Point_Four_Y, &mks_corner_offsets[3].y, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
629
-  VPHELPER(VP_Level_Point_Five_X, &mks_corner_offsets[4].x, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
630
-  VPHELPER(VP_Level_Point_Five_Y, &mks_corner_offsets[4].y, ScreenHandler.HandleChangeLevelPoint_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
621
+  VPHELPER(VP_Level_Point_One_X, &mks_corner_offsets[0].x, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
622
+  VPHELPER(VP_Level_Point_One_Y, &mks_corner_offsets[0].y, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
623
+  VPHELPER(VP_Level_Point_Two_X, &mks_corner_offsets[1].x, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
624
+  VPHELPER(VP_Level_Point_Two_Y, &mks_corner_offsets[1].y, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
625
+  VPHELPER(VP_Level_Point_Three_X, &mks_corner_offsets[2].x, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
626
+  VPHELPER(VP_Level_Point_Three_Y, &mks_corner_offsets[2].y, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
627
+  VPHELPER(VP_Level_Point_Four_X, &mks_corner_offsets[3].x, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
628
+  VPHELPER(VP_Level_Point_Four_Y, &mks_corner_offsets[3].y, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
629
+  VPHELPER(VP_Level_Point_Five_X, &mks_corner_offsets[4].x, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
630
+  VPHELPER(VP_Level_Point_Five_Y, &mks_corner_offsets[4].y, ScreenHandler.HandleChangeLevelPoint, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
631 631
 
632 632
   // Print Progress
633 633
   VPHELPER(VP_PrintProgress_Percentage, nullptr, nullptr, ScreenHandler.DGUSLCD_SendPrintProgressToDisplay),
@@ -639,50 +639,50 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
639 639
   VPHELPER(VP_SD_FileSelect_Back, nullptr, ScreenHandler.SD_FileBack, nullptr),
640 640
 
641 641
   // Print Time
642
-  VPHELPER_STR(VP_PrintTime, nullptr, VP_PrintTime_LEN, nullptr, ScreenHandler.DGUSLCD_SendPrintTimeToDisplay_MKS),
642
+  VPHELPER_STR(VP_PrintTime, nullptr, VP_PrintTime_LEN, nullptr, ScreenHandler.DGUSLCD_SendPrintTimeToDisplay),
643 643
 
644 644
   #if ENABLED(PRINTCOUNTER)
645 645
     VPHELPER_STR(VP_PrintAccTime, nullptr, VP_PrintAccTime_LEN, nullptr, ScreenHandler.DGUSLCD_SendPrintAccTimeToDisplay),
646 646
     VPHELPER_STR(VP_PrintsTotal, nullptr, VP_PrintsTotal_LEN, nullptr, ScreenHandler.DGUSLCD_SendPrintsTotalToDisplay),
647 647
   #endif
648 648
 
649
-  VPHELPER(VP_X_STEP_PER_MM, &planner.settings.axis_steps_per_mm[X_AXIS], ScreenHandler.HandleStepPerMMChanged_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
650
-  VPHELPER(VP_Y_STEP_PER_MM, &planner.settings.axis_steps_per_mm[Y_AXIS], ScreenHandler.HandleStepPerMMChanged_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
651
-  VPHELPER(VP_Z_STEP_PER_MM, &planner.settings.axis_steps_per_mm[Z_AXIS], ScreenHandler.HandleStepPerMMChanged_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
649
+  VPHELPER(VP_X_STEP_PER_MM, &planner.settings.axis_steps_per_mm[X_AXIS], ScreenHandler.HandleStepPerMMChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
650
+  VPHELPER(VP_Y_STEP_PER_MM, &planner.settings.axis_steps_per_mm[Y_AXIS], ScreenHandler.HandleStepPerMMChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
651
+  VPHELPER(VP_Z_STEP_PER_MM, &planner.settings.axis_steps_per_mm[Z_AXIS], ScreenHandler.HandleStepPerMMChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
652 652
 
653
-  VPHELPER(VP_X_MAX_SPEED, &planner.settings.max_feedrate_mm_s[X_AXIS], ScreenHandler.HandleMaxSpeedChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
654
-  VPHELPER(VP_Y_MAX_SPEED, &planner.settings.max_feedrate_mm_s[Y_AXIS], ScreenHandler.HandleMaxSpeedChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
655
-  VPHELPER(VP_Z_MAX_SPEED, &planner.settings.max_feedrate_mm_s[Z_AXIS], ScreenHandler.HandleMaxSpeedChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
653
+  VPHELPER(VP_X_MAX_SPEED, &planner.settings.max_feedrate_mm_s[X_AXIS], ScreenHandler.HandleMaxSpeedChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
654
+  VPHELPER(VP_Y_MAX_SPEED, &planner.settings.max_feedrate_mm_s[Y_AXIS], ScreenHandler.HandleMaxSpeedChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
655
+  VPHELPER(VP_Z_MAX_SPEED, &planner.settings.max_feedrate_mm_s[Z_AXIS], ScreenHandler.HandleMaxSpeedChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
656 656
 
657 657
   #if HAS_HOTEND
658
-    VPHELPER(VP_E0_MAX_SPEED, &planner.settings.max_feedrate_mm_s[E_AXIS_N(0)], ScreenHandler.HandleExtruderMaxSpeedChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
658
+    VPHELPER(VP_E0_MAX_SPEED, &planner.settings.max_feedrate_mm_s[E_AXIS_N(0)], ScreenHandler.HandleExtruderMaxSpeedChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
659 659
     #if HAS_MULTI_HOTEND
660
-      VPHELPER(VP_E1_MAX_SPEED, &planner.settings.max_feedrate_mm_s[E_AXIS_N(1)], ScreenHandler.HandleExtruderMaxSpeedChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
660
+      VPHELPER(VP_E1_MAX_SPEED, &planner.settings.max_feedrate_mm_s[E_AXIS_N(1)], ScreenHandler.HandleExtruderMaxSpeedChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
661 661
     #endif
662 662
   #endif
663 663
 
664
-  VPHELPER(VP_X_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[X_AXIS], ScreenHandler.HandleMaxAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
665
-  VPHELPER(VP_Y_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[Y_AXIS], ScreenHandler.HandleMaxAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
666
-  VPHELPER(VP_Z_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[Z_AXIS], ScreenHandler.HandleMaxAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
664
+  VPHELPER(VP_X_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[X_AXIS], ScreenHandler.HandleMaxAccChange, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
665
+  VPHELPER(VP_Y_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[Y_AXIS], ScreenHandler.HandleMaxAccChange, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
666
+  VPHELPER(VP_Z_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[Z_AXIS], ScreenHandler.HandleMaxAccChange, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
667 667
 
668 668
   #if HAS_HOTEND
669
-    VPHELPER(VP_E0_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(0)], ScreenHandler.HandleExtruderAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
669
+    VPHELPER(VP_E0_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(0)], ScreenHandler.HandleExtruderAccChange, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
670 670
     #if HAS_MULTI_HOTEND
671
-      VPHELPER(VP_E1_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)], ScreenHandler.HandleExtruderAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
671
+      VPHELPER(VP_E1_ACC_MAX_SPEED, (uint16_t *)&planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)], ScreenHandler.HandleExtruderAccChange, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
672 672
     #endif
673 673
   #endif
674 674
 
675
-  VPHELPER(VP_TRAVEL_SPEED, (uint16_t *)&planner.settings.travel_acceleration, ScreenHandler.HandleTravelAccChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
676
-  VPHELPER(VP_FEEDRATE_MIN_SPEED, (uint16_t *)&planner.settings.min_feedrate_mm_s, ScreenHandler.HandleFeedRateMinChange_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
677
-  VPHELPER(VP_T_F_SPEED, (uint16_t *)&planner.settings.min_travel_feedrate_mm_s, ScreenHandler.HandleMin_T_F_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
678
-  VPHELPER(VP_ACC_SPEED, (uint16_t *)&planner.settings.acceleration, ScreenHandler.HandleAccChange_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
675
+  VPHELPER(VP_TRAVEL_SPEED, (uint16_t *)&planner.settings.travel_acceleration, ScreenHandler.HandleTravelAccChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
676
+  VPHELPER(VP_FEEDRATE_MIN_SPEED, (uint16_t *)&planner.settings.min_feedrate_mm_s, ScreenHandler.HandleFeedRateMinChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
677
+  VPHELPER(VP_T_F_SPEED, (uint16_t *)&planner.settings.min_travel_feedrate_mm_s, ScreenHandler.HandleMin_T_F, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
678
+  VPHELPER(VP_ACC_SPEED, (uint16_t *)&planner.settings.acceleration, ScreenHandler.HandleAccChange, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
679 679
 
680
-  VPHELPER(VP_X_PARK_POS, &mks_park_pos.x, ScreenHandler.GetParkPos_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
681
-  VPHELPER(VP_Y_PARK_POS, &mks_park_pos.y, ScreenHandler.GetParkPos_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
682
-  VPHELPER(VP_Z_PARK_POS, &mks_park_pos.z, ScreenHandler.GetParkPos_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
680
+  VPHELPER(VP_X_PARK_POS, &mks_park_pos.x, ScreenHandler.GetParkPos, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
681
+  VPHELPER(VP_Y_PARK_POS, &mks_park_pos.y, ScreenHandler.GetParkPos, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
682
+  VPHELPER(VP_Z_PARK_POS, &mks_park_pos.z, ScreenHandler.GetParkPos, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
683 683
 
684 684
   #if ENABLED(PREVENT_COLD_EXTRUSION)
685
-    VPHELPER(VP_MIN_EX_T, &thermalManager.extrude_min_temp, ScreenHandler.HandleGetExMinTemp_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
685
+    VPHELPER(VP_MIN_EX_T, &thermalManager.extrude_min_temp, ScreenHandler.HandleGetExMinTemp, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
686 686
   #endif
687 687
 
688 688
   #if ENABLED(SENSORLESS_HOMING)  // TMC SENSORLESS Setting
@@ -725,8 +725,8 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
725 725
   #endif
726 726
 
727 727
   VPHELPER(VP_EEPROM_CTRL, nullptr, ScreenHandler.EEPROM_CTRL, nullptr),
728
-  VPHELPER(VP_LEVEL_BUTTON, nullptr, ScreenHandler.Level_Ctrl_MKS, nullptr),
729
-  VPHELPER(VP_LANGUAGE_CHANGE, nullptr, ScreenHandler.LanguageChange_MKS, nullptr),
728
+  VPHELPER(VP_LEVEL_BUTTON, nullptr, ScreenHandler.Level_Ctrl, nullptr),
729
+  VPHELPER(VP_LANGUAGE_CHANGE, nullptr, ScreenHandler.LanguageChange, nullptr),
730 730
 
731 731
   //VPHELPER(VP_SD_Print_LiveAdjustZ, nullptr, ScreenHandler.HandleLiveAdjustZ, nullptr),
732 732
 
@@ -743,9 +743,9 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
743 743
   VPHELPER(VP_AutoTurnOffSw, nullptr, ScreenHandler.GetTurnOffCtrl, nullptr),
744 744
 
745 745
   #if HAS_HOTEND
746
-    VPHELPER(VP_E0_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(0)], ScreenHandler.HandleStepPerMMExtruderChanged_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
746
+    VPHELPER(VP_E0_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(0)], ScreenHandler.HandleStepPerMMExtruderChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
747 747
     #if HAS_MULTI_HOTEND
748
-      VPHELPER(VP_E1_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(1)], ScreenHandler.HandleStepPerMMExtruderChanged_MKS, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
748
+      VPHELPER(VP_E1_STEP_PER_MM, &planner.settings.axis_steps_per_mm[E_AXIS_N(1)], ScreenHandler.HandleStepPerMMExtruderChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<0>),
749 749
     #endif
750 750
   #endif
751 751
 
@@ -791,10 +791,10 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
791 791
   //{.VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM},
792 792
   //{.VP = VP_MSGSTR4, .memadr = nullptr, .size = VP_MSGSTR4_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM},
793 793
 
794
-  {.VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language_MKS},
795
-  {.VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language_MKS},
796
-  {.VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language_MKS},
797
-  {.VP = VP_MSGSTR4, .memadr = nullptr, .size = VP_MSGSTR4_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language_MKS},
794
+  {.VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language},
795
+  {.VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language},
796
+  {.VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language},
797
+  {.VP = VP_MSGSTR4, .memadr = nullptr, .size = VP_MSGSTR4_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplay_Language},
798 798
 
799 799
   VPHELPER(0, 0, 0, 0) // must be last entry.
800 800
 };

+ 75
- 75
Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp Vedi File

@@ -52,36 +52,36 @@
52 52
 #endif
53 53
 
54 54
 bool DGUSAutoTurnOff = false;
55
-uint8_t mks_language_index; // Initialized by settings.load()
55
+MKS_Language mks_language_index; // Initialized by settings.load()
56 56
 
57 57
 // endianness swap
58 58
 uint32_t swap32(const uint32_t value) { return (value & 0x000000FFU) << 24U | (value & 0x0000FF00U) << 8U | (value & 0x00FF0000U) >> 8U | (value & 0xFF000000U) >> 24U; }
59 59
 
60 60
 #if 0
61
-void DGUSScreenHandler::sendinfoscreen_ch_mks(const uint16_t *line1, const uint16_t *line2, const uint16_t *line3, const uint16_t *line4) {
61
+void DGUSScreenHandlerMKS::sendinfoscreen_ch(const uint16_t *line1, const uint16_t *line2, const uint16_t *line3, const uint16_t *line4) {
62 62
   dgusdisplay.WriteVariable(VP_MSGSTR1, line1, 32, true);
63 63
   dgusdisplay.WriteVariable(VP_MSGSTR2, line2, 32, true);
64 64
   dgusdisplay.WriteVariable(VP_MSGSTR3, line3, 32, true);
65 65
   dgusdisplay.WriteVariable(VP_MSGSTR4, line4, 32, true);
66 66
 }
67 67
 
68
-void DGUSScreenHandler::sendinfoscreen_en_mks(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4) {
68
+void DGUSScreenHandlerMKS::sendinfoscreen_en(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4) {
69 69
   dgusdisplay.WriteVariable(VP_MSGSTR1, line1, 32, true);
70 70
   dgusdisplay.WriteVariable(VP_MSGSTR2, line2, 32, true);
71 71
   dgusdisplay.WriteVariable(VP_MSGSTR3, line3, 32, true);
72 72
   dgusdisplay.WriteVariable(VP_MSGSTR4, line4, 32, true);
73 73
 }
74 74
 
75
-void DGUSScreenHandler::sendinfoscreen_mks(const void *line1, const void *line2, const void *line3, const void *line4, uint16_t language) {
75
+void DGUSScreenHandlerMKS::sendinfoscreen(const void *line1, const void *line2, const void *line3, const void *line4, uint16_t language) {
76 76
   if (language == MKS_English)
77
-    DGUSScreenHandler::sendinfoscreen_en_mks((char *)line1, (char *)line2, (char *)line3, (char *)line4);
77
+    DGUSScreenHandlerMKS::sendinfoscreen_en((char *)line1, (char *)line2, (char *)line3, (char *)line4);
78 78
   else if (language == MKS_SimpleChinese)
79
-    DGUSScreenHandler::sendinfoscreen_ch_mks((uint16_t *)line1, (uint16_t *)line2, (uint16_t *)line3, (uint16_t *)line4);
79
+    DGUSScreenHandlerMKS::sendinfoscreen_ch((uint16_t *)line1, (uint16_t *)line2, (uint16_t *)line3, (uint16_t *)line4);
80 80
 }
81 81
 
82 82
 #endif
83 83
 
84
-void DGUSScreenHandler::DGUSLCD_SendFanToDisplay(DGUS_VP_Variable &var) {
84
+void DGUSScreenHandlerMKS::DGUSLCD_SendFanToDisplay(DGUS_VP_Variable &var) {
85 85
   if (var.memadr) {
86 86
     //DEBUG_ECHOPGM(" DGUS_LCD_SendWordValueToDisplay ", var.VP);
87 87
     //DEBUG_ECHOLNPGM(" data ", *(uint16_t *)var.memadr);
@@ -91,14 +91,14 @@ void DGUSScreenHandler::DGUSLCD_SendFanToDisplay(DGUS_VP_Variable &var) {
91 91
   }
92 92
 }
93 93
 
94
-void DGUSScreenHandler::DGUSLCD_SendBabyStepToDisplay_MKS(DGUS_VP_Variable &var) {
94
+void DGUSScreenHandlerMKS::DGUSLCD_SendBabyStepToDisplay(DGUS_VP_Variable &var) {
95 95
   float value = current_position.z;
96 96
   DEBUG_ECHOLNPAIR_F(" >> ", value, 6);
97 97
   value *= cpow(10, 2);
98 98
   dgusdisplay.WriteVariable(VP_SD_Print_Baby, (uint16_t)value);
99 99
 }
100 100
 
101
-void DGUSScreenHandler::DGUSLCD_SendPrintTimeToDisplay_MKS(DGUS_VP_Variable &var) {
101
+void DGUSScreenHandlerMKS::DGUSLCD_SendPrintTimeToDisplay(DGUS_VP_Variable &var) {
102 102
   duration_t elapsed = print_job_timer.duration();
103 103
   uint32_t time = elapsed.value;
104 104
   dgusdisplay.WriteVariable(VP_PrintTime_H, uint16_t(time / 3600));
@@ -106,7 +106,7 @@ void DGUSScreenHandler::DGUSLCD_SendPrintTimeToDisplay_MKS(DGUS_VP_Variable &var
106 106
   dgusdisplay.WriteVariable(VP_PrintTime_S, uint16_t((time % 3600) % 60));
107 107
 }
108 108
 
109
-void DGUSScreenHandler::DGUSLCD_SetUint8(DGUS_VP_Variable &var, void *val_ptr) {
109
+void DGUSScreenHandlerMKS::DGUSLCD_SetUint8(DGUS_VP_Variable &var, void *val_ptr) {
110 110
   if (var.memadr) {
111 111
     const uint16_t value = swap16(*(uint16_t*)val_ptr);
112 112
     DEBUG_ECHOLNPGM("FAN value get:", value);
@@ -115,13 +115,13 @@ void DGUSScreenHandler::DGUSLCD_SetUint8(DGUS_VP_Variable &var, void *val_ptr) {
115 115
   }
116 116
 }
117 117
 
118
-void DGUSScreenHandler::DGUSLCD_SendGbkToDisplay(DGUS_VP_Variable &var) {
118
+void DGUSScreenHandlerMKS::DGUSLCD_SendGbkToDisplay(DGUS_VP_Variable &var) {
119 119
   DEBUG_ECHOLNPGM(" data ", *(uint16_t *)var.memadr);
120 120
   uint16_t *tmp = (uint16_t*) var.memadr;
121 121
   dgusdisplay.WriteVariable(var.VP, tmp, var.size, true);
122 122
 }
123 123
 
124
-void DGUSScreenHandler::DGUSLCD_SendStringToDisplay_Language_MKS(DGUS_VP_Variable &var) {
124
+void DGUSScreenHandlerMKS::DGUSLCD_SendStringToDisplay_Language(DGUS_VP_Variable &var) {
125 125
   if (mks_language_index == MKS_English) {
126 126
     char *tmp = (char*) var.memadr;
127 127
     dgusdisplay.WriteVariable(var.VP, tmp, var.size, true);
@@ -132,7 +132,7 @@ void DGUSScreenHandler::DGUSLCD_SendStringToDisplay_Language_MKS(DGUS_VP_Variabl
132 132
   }
133 133
 }
134 134
 
135
-void DGUSScreenHandler::DGUSLCD_SendTMCStepValue(DGUS_VP_Variable &var) {
135
+void DGUSScreenHandlerMKS::DGUSLCD_SendTMCStepValue(DGUS_VP_Variable &var) {
136 136
   #if ENABLED(SENSORLESS_HOMING)
137 137
     #if X_HAS_STEALTHCHOP
138 138
       tmc_step.x = stepperX.homing_threshold();
@@ -268,7 +268,7 @@ void DGUSScreenHandler::DGUSLCD_SendTMCStepValue(DGUS_VP_Variable &var) {
268 268
   }
269 269
 
270 270
 #else
271
-  void DGUSScreenHandler::PrintReturn(DGUS_VP_Variable& var, void *val_ptr) {
271
+  void DGUSScreenHandlerMKS::PrintReturn(DGUS_VP_Variable& var, void *val_ptr) {
272 272
     uint16_t value = swap16(*(uint16_t*)val_ptr);
273 273
     if (value == 0x0F) GotoScreen(DGUSLCD_SCREEN_MAIN);
274 274
   }
@@ -315,14 +315,14 @@ void DGUSScreenHandler::ScreenChangeHook(DGUS_VP_Variable &var, void *val_ptr) {
315 315
   #endif
316 316
 }
317 317
 
318
-void DGUSScreenHandler::ScreenBackChange(DGUS_VP_Variable &var, void *val_ptr) {
318
+void DGUSScreenHandlerMKS::ScreenBackChange(DGUS_VP_Variable &var, void *val_ptr) {
319 319
   const uint16_t target = swap16(*(uint16_t *)val_ptr);
320 320
   DEBUG_ECHOLNPGM(" back = 0x%x", target);
321 321
   switch (target) {
322 322
   }
323 323
 }
324 324
 
325
-void DGUSScreenHandler::ZoffsetConfirm(DGUS_VP_Variable &var, void *val_ptr) {
325
+void DGUSScreenHandlerMKS::ZoffsetConfirm(DGUS_VP_Variable &var, void *val_ptr) {
326 326
   settings.save();
327 327
   if (printJobOngoing())
328 328
     GotoScreen(MKSLCD_SCREEN_PRINT);
@@ -330,7 +330,7 @@ void DGUSScreenHandler::ZoffsetConfirm(DGUS_VP_Variable &var, void *val_ptr) {
330 330
     GotoScreen(MKSLCD_SCREEN_PAUSE);
331 331
 }
332 332
 
333
-void DGUSScreenHandler::GetTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr) {
333
+void DGUSScreenHandlerMKS::GetTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr) {
334 334
   DEBUG_ECHOLNPGM("GetTurnOffCtrl\n");
335 335
   const uint16_t value = swap16(*(uint16_t *)val_ptr);
336 336
   switch (value) {
@@ -339,7 +339,7 @@ void DGUSScreenHandler::GetTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr) {
339 339
   }
340 340
 }
341 341
 
342
-void DGUSScreenHandler::GetMinExtrudeTemp(DGUS_VP_Variable &var, void *val_ptr) {
342
+void DGUSScreenHandlerMKS::GetMinExtrudeTemp(DGUS_VP_Variable &var, void *val_ptr) {
343 343
   DEBUG_ECHOLNPGM("GetMinExtrudeTemp");
344 344
   const uint16_t value = swap16(*(uint16_t *)val_ptr);
345 345
   TERN_(PREVENT_COLD_EXTRUSION, thermalManager.extrude_min_temp = value);
@@ -347,7 +347,7 @@ void DGUSScreenHandler::GetMinExtrudeTemp(DGUS_VP_Variable &var, void *val_ptr)
347 347
   settings.save();
348 348
 }
349 349
 
350
-void DGUSScreenHandler::GetZoffsetDistance(DGUS_VP_Variable &var, void *val_ptr) {
350
+void DGUSScreenHandlerMKS::GetZoffsetDistance(DGUS_VP_Variable &var, void *val_ptr) {
351 351
   DEBUG_ECHOLNPGM("GetZoffsetDistance");
352 352
   const uint16_t value = swap16(*(uint16_t *)val_ptr);
353 353
   float val_distance = 0;
@@ -361,12 +361,12 @@ void DGUSScreenHandler::GetZoffsetDistance(DGUS_VP_Variable &var, void *val_ptr)
361 361
   ZOffset_distance = val_distance;
362 362
 }
363 363
 
364
-void DGUSScreenHandler::GetManualMovestep(DGUS_VP_Variable &var, void *val_ptr) {
364
+void DGUSScreenHandlerMKS::GetManualMovestep(DGUS_VP_Variable &var, void *val_ptr) {
365 365
   DEBUG_ECHOLNPGM("\nGetManualMovestep");
366 366
   *(uint16_t *)var.memadr = swap16(*(uint16_t *)val_ptr);
367 367
 }
368 368
 
369
-void DGUSScreenHandler::EEPROM_CTRL(DGUS_VP_Variable &var, void *val_ptr) {
369
+void DGUSScreenHandlerMKS::EEPROM_CTRL(DGUS_VP_Variable &var, void *val_ptr) {
370 370
   const uint16_t eep_flag = swap16(*(uint16_t *)val_ptr);
371 371
   switch (eep_flag) {
372 372
     case 0:
@@ -384,7 +384,7 @@ void DGUSScreenHandler::EEPROM_CTRL(DGUS_VP_Variable &var, void *val_ptr) {
384 384
   }
385 385
 }
386 386
 
387
-void DGUSScreenHandler::Z_offset_select(DGUS_VP_Variable &var, void *val_ptr) {
387
+void DGUSScreenHandlerMKS::Z_offset_select(DGUS_VP_Variable &var, void *val_ptr) {
388 388
   const uint16_t z_value = swap16(*(uint16_t *)val_ptr);
389 389
   switch (z_value) {
390 390
     case 0: Z_distance = 0.01; break;
@@ -394,7 +394,7 @@ void DGUSScreenHandler::Z_offset_select(DGUS_VP_Variable &var, void *val_ptr) {
394 394
   }
395 395
 }
396 396
 
397
-void DGUSScreenHandler::GetOffsetValue(DGUS_VP_Variable &var, void *val_ptr) {
397
+void DGUSScreenHandlerMKS::GetOffsetValue(DGUS_VP_Variable &var, void *val_ptr) {
398 398
 
399 399
   #if HAS_BED_PROBE
400 400
     int32_t value = swap32(*(int32_t *)val_ptr);
@@ -411,21 +411,21 @@ void DGUSScreenHandler::GetOffsetValue(DGUS_VP_Variable &var, void *val_ptr) {
411 411
   settings.save();
412 412
 }
413 413
 
414
-void DGUSScreenHandler::LanguageChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
414
+void DGUSScreenHandlerMKS::LanguageChange(DGUS_VP_Variable &var, void *val_ptr) {
415 415
   const uint16_t lag_flag = swap16(*(uint16_t *)val_ptr);
416 416
   switch (lag_flag) {
417 417
     case MKS_SimpleChinese:
418 418
       DGUS_LanguageDisplay(MKS_SimpleChinese);
419 419
       mks_language_index = MKS_SimpleChinese;
420
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_Choose);
421
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_NoChoose);
420
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_Choose);
421
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_NoChoose);
422 422
       settings.save();
423 423
       break;
424 424
     case MKS_English:
425 425
       DGUS_LanguageDisplay(MKS_English);
426 426
       mks_language_index = MKS_English;
427
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_NoChoose);
428
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_Choose);
427
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_NoChoose);
428
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_Choose);
429 429
       settings.save();
430 430
       break;
431 431
     default: break;
@@ -436,7 +436,7 @@ void DGUSScreenHandler::LanguageChange_MKS(DGUS_VP_Variable &var, void *val_ptr)
436 436
   uint8_t mesh_point_count = GRID_MAX_POINTS;
437 437
 #endif
438 438
 
439
-void DGUSScreenHandler::Level_Ctrl_MKS(DGUS_VP_Variable &var, void *val_ptr) {
439
+void DGUSScreenHandlerMKS::Level_Ctrl(DGUS_VP_Variable &var, void *val_ptr) {
440 440
   const uint16_t lev_but = swap16(*(uint16_t *)val_ptr);
441 441
   #if ENABLED(MESH_BED_LEVELING)
442 442
     auto cs = getCurrentScreen();
@@ -483,7 +483,7 @@ void DGUSScreenHandler::Level_Ctrl_MKS(DGUS_VP_Variable &var, void *val_ptr) {
483 483
   }
484 484
 }
485 485
 
486
-void DGUSScreenHandler::MeshLevelDistanceConfig(DGUS_VP_Variable &var, void *val_ptr) {
486
+void DGUSScreenHandlerMKS::MeshLevelDistanceConfig(DGUS_VP_Variable &var, void *val_ptr) {
487 487
   const uint16_t mesh_dist = swap16(*(uint16_t *)val_ptr);
488 488
   switch (mesh_dist) {
489 489
     case 0: mesh_adj_distance = 0.01; break;
@@ -493,7 +493,7 @@ void DGUSScreenHandler::MeshLevelDistanceConfig(DGUS_VP_Variable &var, void *val
493 493
   }
494 494
 }
495 495
 
496
-void DGUSScreenHandler::MeshLevel(DGUS_VP_Variable &var, void *val_ptr) {
496
+void DGUSScreenHandlerMKS::MeshLevel(DGUS_VP_Variable &var, void *val_ptr) {
497 497
   #if ENABLED(MESH_BED_LEVELING)
498 498
     const uint16_t mesh_value = swap16(*(uint16_t *)val_ptr);
499 499
     // static uint8_t a_first_level = 1;
@@ -588,11 +588,11 @@ void DGUSScreenHandler::MeshLevel(DGUS_VP_Variable &var, void *val_ptr) {
588 588
   #endif // MESH_BED_LEVELING
589 589
 }
590 590
 
591
-void DGUSScreenHandler::SD_FileBack(DGUS_VP_Variable&, void*) {
591
+void DGUSScreenHandlerMKS::SD_FileBack(DGUS_VP_Variable&, void*) {
592 592
   GotoScreen(MKSLCD_SCREEN_HOME);
593 593
 }
594 594
 
595
-void DGUSScreenHandler::LCD_BLK_Adjust(DGUS_VP_Variable &var, void *val_ptr) {
595
+void DGUSScreenHandlerMKS::LCD_BLK_Adjust(DGUS_VP_Variable &var, void *val_ptr) {
596 596
   const uint16_t lcd_value = swap16(*(uint16_t *)val_ptr);
597 597
 
598 598
   lcd_default_light = constrain(lcd_value, 10, 100);
@@ -601,7 +601,7 @@ void DGUSScreenHandler::LCD_BLK_Adjust(DGUS_VP_Variable &var, void *val_ptr) {
601 601
   dgusdisplay.WriteVariable(0x0082, &lcd_data, 5, true);
602 602
 }
603 603
 
604
-void DGUSScreenHandler::ManualAssistLeveling(DGUS_VP_Variable &var, void *val_ptr) {
604
+void DGUSScreenHandlerMKS::ManualAssistLeveling(DGUS_VP_Variable &var, void *val_ptr) {
605 605
   const int16_t point_value = swap16(*(uint16_t *)val_ptr);
606 606
 
607 607
   // Insist on leveling first time at this screen
@@ -654,7 +654,7 @@ void DGUSScreenHandler::ManualAssistLeveling(DGUS_VP_Variable &var, void *val_pt
654 654
 
655 655
 #define mks_min(a, b) ((a) < (b)) ? (a) : (b)
656 656
 #define mks_max(a, b) ((a) > (b)) ? (a) : (b)
657
-void DGUSScreenHandler::TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr) {
657
+void DGUSScreenHandlerMKS::TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr) {
658 658
   #if EITHER(HAS_TRINAMIC_CONFIG, HAS_STEALTHCHOP)
659 659
     const uint16_t tmc_value = swap16(*(uint16_t*)val_ptr);
660 660
   #endif
@@ -893,7 +893,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
893 893
     return;
894 894
 }
895 895
 
896
-void DGUSScreenHandler::GetParkPos_MKS(DGUS_VP_Variable &var, void *val_ptr) {
896
+void DGUSScreenHandlerMKS::GetParkPos(DGUS_VP_Variable &var, void *val_ptr) {
897 897
   const int16_t value_pos = swap16(*(int16_t*)val_ptr);
898 898
 
899 899
   switch (var.VP) {
@@ -905,8 +905,8 @@ void DGUSScreenHandler::GetParkPos_MKS(DGUS_VP_Variable &var, void *val_ptr) {
905 905
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
906 906
 }
907 907
 
908
-void DGUSScreenHandler::HandleChangeLevelPoint_MKS(DGUS_VP_Variable &var, void *val_ptr) {
909
-  DEBUG_ECHOLNPGM("HandleChangeLevelPoint_MKS");
908
+void DGUSScreenHandlerMKS::HandleChangeLevelPoint(DGUS_VP_Variable &var, void *val_ptr) {
909
+  DEBUG_ECHOLNPGM("HandleChangeLevelPoint");
910 910
 
911 911
   const int16_t value_raw = swap16(*(int16_t*)val_ptr);
912 912
   DEBUG_ECHOLNPGM("value_raw:", value_raw);
@@ -917,8 +917,8 @@ void DGUSScreenHandler::HandleChangeLevelPoint_MKS(DGUS_VP_Variable &var, void *
917 917
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
918 918
 }
919 919
 
920
-void DGUSScreenHandler::HandleStepPerMMChanged_MKS(DGUS_VP_Variable &var, void *val_ptr) {
921
-  DEBUG_ECHOLNPGM("HandleStepPerMMChanged_MKS");
920
+void DGUSScreenHandlerMKS::HandleStepPerMMChanged(DGUS_VP_Variable &var, void *val_ptr) {
921
+  DEBUG_ECHOLNPGM("HandleStepPerMMChanged");
922 922
 
923 923
   const uint16_t value_raw = swap16(*(uint16_t*)val_ptr);
924 924
   const float value = (float)value_raw;
@@ -939,8 +939,8 @@ void DGUSScreenHandler::HandleStepPerMMChanged_MKS(DGUS_VP_Variable &var, void *
939 939
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
940 940
 }
941 941
 
942
-void DGUSScreenHandler::HandleStepPerMMExtruderChanged_MKS(DGUS_VP_Variable &var, void *val_ptr) {
943
-  DEBUG_ECHOLNPGM("HandleStepPerMMExtruderChanged_MKS");
942
+void DGUSScreenHandlerMKS::HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, void *val_ptr) {
943
+  DEBUG_ECHOLNPGM("HandleStepPerMMExtruderChanged");
944 944
 
945 945
   const uint16_t value_raw = swap16(*(uint16_t*)val_ptr);
946 946
   const float value = (float)value_raw;
@@ -964,8 +964,8 @@ void DGUSScreenHandler::HandleStepPerMMExtruderChanged_MKS(DGUS_VP_Variable &var
964 964
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
965 965
 }
966 966
 
967
-void DGUSScreenHandler::HandleMaxSpeedChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
968
-  DEBUG_ECHOLNPGM("HandleMaxSpeedChange_MKS");
967
+void DGUSScreenHandlerMKS::HandleMaxSpeedChange(DGUS_VP_Variable &var, void *val_ptr) {
968
+  DEBUG_ECHOLNPGM("HandleMaxSpeedChange");
969 969
 
970 970
   const uint16_t value_raw = swap16(*(uint16_t*)val_ptr);
971 971
   const float value = (float)value_raw;
@@ -986,8 +986,8 @@ void DGUSScreenHandler::HandleMaxSpeedChange_MKS(DGUS_VP_Variable &var, void *va
986 986
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
987 987
 }
988 988
 
989
-void DGUSScreenHandler::HandleExtruderMaxSpeedChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
990
-  DEBUG_ECHOLNPGM("HandleExtruderMaxSpeedChange_MKS");
989
+void DGUSScreenHandlerMKS::HandleExtruderMaxSpeedChange(DGUS_VP_Variable &var, void *val_ptr) {
990
+  DEBUG_ECHOLNPGM("HandleExtruderMaxSpeedChange");
991 991
 
992 992
   const uint16_t value_raw = swap16(*(uint16_t*)val_ptr);
993 993
   const float value = (float)value_raw;
@@ -1011,8 +1011,8 @@ void DGUSScreenHandler::HandleExtruderMaxSpeedChange_MKS(DGUS_VP_Variable &var,
1011 1011
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1012 1012
 }
1013 1013
 
1014
-void DGUSScreenHandler::HandleMaxAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
1015
-  DEBUG_ECHOLNPGM("HandleMaxAccChange_MKS");
1014
+void DGUSScreenHandlerMKS::HandleMaxAccChange(DGUS_VP_Variable &var, void *val_ptr) {
1015
+  DEBUG_ECHOLNPGM("HandleMaxAccChange");
1016 1016
 
1017 1017
   const uint16_t value_raw = swap16(*(uint16_t*)val_ptr);
1018 1018
   const float value = (float)value_raw;
@@ -1033,8 +1033,8 @@ void DGUSScreenHandler::HandleMaxAccChange_MKS(DGUS_VP_Variable &var, void *val_
1033 1033
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1034 1034
 }
1035 1035
 
1036
-void DGUSScreenHandler::HandleExtruderAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
1037
-  DEBUG_ECHOLNPGM("HandleExtruderAccChange_MKS");
1036
+void DGUSScreenHandlerMKS::HandleExtruderAccChange(DGUS_VP_Variable &var, void *val_ptr) {
1037
+  DEBUG_ECHOLNPGM("HandleExtruderAccChange");
1038 1038
 
1039 1039
   uint16_t value_raw = swap16(*(uint16_t*)val_ptr);
1040 1040
   DEBUG_ECHOLNPGM("value_raw:", value_raw);
@@ -1056,32 +1056,32 @@ void DGUSScreenHandler::HandleExtruderAccChange_MKS(DGUS_VP_Variable &var, void
1056 1056
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1057 1057
 }
1058 1058
 
1059
-void DGUSScreenHandler::HandleTravelAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
1059
+void DGUSScreenHandlerMKS::HandleTravelAccChange(DGUS_VP_Variable &var, void *val_ptr) {
1060 1060
   uint16_t value_travel = swap16(*(uint16_t*)val_ptr);
1061 1061
   planner.settings.travel_acceleration = (float)value_travel;
1062 1062
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1063 1063
 }
1064 1064
 
1065
-void DGUSScreenHandler::HandleFeedRateMinChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
1065
+void DGUSScreenHandlerMKS::HandleFeedRateMinChange(DGUS_VP_Variable &var, void *val_ptr) {
1066 1066
   uint16_t value_t = swap16(*(uint16_t*)val_ptr);
1067 1067
   planner.settings.min_feedrate_mm_s = (float)value_t;
1068 1068
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1069 1069
 }
1070 1070
 
1071
-void DGUSScreenHandler::HandleMin_T_F_MKS(DGUS_VP_Variable &var, void *val_ptr) {
1071
+void DGUSScreenHandlerMKS::HandleMin_T_F(DGUS_VP_Variable &var, void *val_ptr) {
1072 1072
   uint16_t value_t_f = swap16(*(uint16_t*)val_ptr);
1073 1073
   planner.settings.min_travel_feedrate_mm_s = (float)value_t_f;
1074 1074
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1075 1075
 }
1076 1076
 
1077
-void DGUSScreenHandler::HandleAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr) {
1077
+void DGUSScreenHandlerMKS::HandleAccChange(DGUS_VP_Variable &var, void *val_ptr) {
1078 1078
   uint16_t value_acc = swap16(*(uint16_t*)val_ptr);
1079 1079
   planner.settings.acceleration = (float)value_acc;
1080 1080
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1081 1081
 }
1082 1082
 
1083 1083
 #if ENABLED(PREVENT_COLD_EXTRUSION)
1084
-  void DGUSScreenHandler::HandleGetExMinTemp_MKS(DGUS_VP_Variable &var, void *val_ptr) {
1084
+  void DGUSScreenHandlerMKS::HandleGetExMinTemp(DGUS_VP_Variable &var, void *val_ptr) {
1085 1085
     const uint16_t value_ex_min_temp = swap16(*(uint16_t*)val_ptr);
1086 1086
     thermalManager.extrude_min_temp = value_ex_min_temp;
1087 1087
     skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
@@ -1168,7 +1168,7 @@ void DGUSScreenHandler::HandleAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr
1168 1168
   }
1169 1169
 #endif // BABYSTEPPING
1170 1170
 
1171
-void DGUSScreenHandler::GetManualFilament(DGUS_VP_Variable &var, void *val_ptr) {
1171
+void DGUSScreenHandlerMKS::GetManualFilament(DGUS_VP_Variable &var, void *val_ptr) {
1172 1172
   DEBUG_ECHOLNPGM("GetManualFilament");
1173 1173
 
1174 1174
   uint16_t value_len = swap16(*(uint16_t*)val_ptr);
@@ -1181,7 +1181,7 @@ void DGUSScreenHandler::GetManualFilament(DGUS_VP_Variable &var, void *val_ptr)
1181 1181
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1182 1182
 }
1183 1183
 
1184
-void DGUSScreenHandler::GetManualFilamentSpeed(DGUS_VP_Variable &var, void *val_ptr) {
1184
+void DGUSScreenHandlerMKS::GetManualFilamentSpeed(DGUS_VP_Variable &var, void *val_ptr) {
1185 1185
   DEBUG_ECHOLNPGM("GetManualFilamentSpeed");
1186 1186
 
1187 1187
   uint16_t value_len = swap16(*(uint16_t*)val_ptr);
@@ -1193,7 +1193,7 @@ void DGUSScreenHandler::GetManualFilamentSpeed(DGUS_VP_Variable &var, void *val_
1193 1193
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
1194 1194
 }
1195 1195
 
1196
-void DGUSScreenHandler::MKS_FilamentLoadUnload(DGUS_VP_Variable &var, void *val_ptr, const int filamentDir) {
1196
+void DGUSScreenHandlerMKS::FilamentLoadUnload(DGUS_VP_Variable &var, void *val_ptr, const int filamentDir) {
1197 1197
   #if EITHER(HAS_MULTI_HOTEND, SINGLENOZZLE)
1198 1198
     uint8_t swap_tool = 0;
1199 1199
   #else
@@ -1254,7 +1254,7 @@ void DGUSScreenHandler::MKS_FilamentLoadUnload(DGUS_VP_Variable &var, void *val_
1254 1254
 }
1255 1255
 
1256 1256
 /**
1257
- * M1002: Do a tool-change and relative move for MKS_FilamentLoadUnload
1257
+ * M1002: Do a tool-change and relative move for FilamentLoadUnload
1258 1258
  *        within the G-code execution window for best concurrency.
1259 1259
  */
1260 1260
 void GcodeSuite::M1002() {
@@ -1276,14 +1276,14 @@ void GcodeSuite::M1002() {
1276 1276
   axis_relative = old_axis_relative;
1277 1277
 }
1278 1278
 
1279
-void DGUSScreenHandler::MKS_FilamentLoad(DGUS_VP_Variable &var, void *val_ptr) {
1280
-  DEBUG_ECHOLNPGM("MKS_FilamentLoad");
1281
-   MKS_FilamentLoadUnload(var, val_ptr, 1);
1279
+void DGUSScreenHandlerMKS::FilamentLoad(DGUS_VP_Variable &var, void *val_ptr) {
1280
+  DEBUG_ECHOLNPGM("FilamentLoad");
1281
+  FilamentLoadUnload(var, val_ptr, 1);
1282 1282
 }
1283 1283
 
1284
-void DGUSScreenHandler::MKS_FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr) {
1285
-  DEBUG_ECHOLNPGM("MKS_FilamentUnLoad");
1286
-  MKS_FilamentLoadUnload(var, val_ptr, -1);
1284
+void DGUSScreenHandlerMKS::FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr) {
1285
+  DEBUG_ECHOLNPGM("FilamentUnLoad");
1286
+  FilamentLoadUnload(var, val_ptr, -1);
1287 1287
 }
1288 1288
 
1289 1289
 #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
@@ -1392,7 +1392,7 @@ void DGUSScreenHandler::MKS_FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr)
1392 1392
 
1393 1393
 #endif // DGUS_FILAMENT_LOADUNLOAD
1394 1394
 
1395
-bool DGUSScreenHandler::loop() {
1395
+bool DGUSScreenHandlerMKS::loop() {
1396 1396
   dgusdisplay.loop();
1397 1397
 
1398 1398
   const millis_t ms = millis();
@@ -1444,22 +1444,22 @@ bool DGUSScreenHandler::loop() {
1444 1444
   return IsScreenComplete();
1445 1445
 }
1446 1446
 
1447
-void DGUSScreenHandler::LanguagePInit() {
1447
+void DGUSScreenHandlerMKS::LanguagePInit() {
1448 1448
   switch (mks_language_index) {
1449 1449
     case MKS_SimpleChinese:
1450
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_Choose);
1451
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_NoChoose);
1450
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_Choose);
1451
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_NoChoose);
1452 1452
       break;
1453 1453
     case MKS_English:
1454
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_NoChoose);
1455
-      dgusdisplay.MKS_WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_Choose);
1454
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE1, MKS_Language_NoChoose);
1455
+      dgusdisplay.WriteVariable(VP_LANGUAGE_CHANGE2, MKS_Language_Choose);
1456 1456
       break;
1457 1457
     default:
1458 1458
       break;
1459 1459
   }
1460 1460
 }
1461 1461
 
1462
-void DGUSScreenHandler::DGUS_ExtrudeLoadInit() {
1462
+void DGUSScreenHandlerMKS::DGUS_ExtrudeLoadInit() {
1463 1463
   ex_filament.ex_length           = distanceFilament;
1464 1464
   ex_filament.ex_load_unload_flag = 0;
1465 1465
   ex_filament.ex_need_time        = filamentSpeed_mm_s;
@@ -1469,7 +1469,7 @@ void DGUSScreenHandler::DGUS_ExtrudeLoadInit() {
1469 1469
   ex_filament.ex_tick_start       = 0;
1470 1470
 }
1471 1471
 
1472
-void DGUSScreenHandler::DGUS_RunoutInit() {
1472
+void DGUSScreenHandlerMKS::DGUS_RunoutInit() {
1473 1473
   #if PIN_EXISTS(MT_DET_1)
1474 1474
     SET_INPUT_PULLUP(MT_DET_1_PIN);
1475 1475
   #endif
@@ -1479,7 +1479,7 @@ void DGUSScreenHandler::DGUS_RunoutInit() {
1479 1479
   runout_mks.runout_status = UNRUNOUT_STATUS;
1480 1480
 }
1481 1481
 
1482
-void DGUSScreenHandler::DGUS_Runout_Idle() {
1482
+void DGUSScreenHandlerMKS::DGUS_Runout_Idle() {
1483 1483
   #if ENABLED(DGUS_MKS_RUNOUT_SENSOR)
1484 1484
     // scanf runout pin
1485 1485
     switch (runout_mks.runout_status) {
@@ -1514,7 +1514,7 @@ void DGUSScreenHandler::DGUS_Runout_Idle() {
1514 1514
   #endif
1515 1515
 }
1516 1516
 
1517
-void DGUSScreenHandler::DGUS_LanguageDisplay(uint8_t var) {
1517
+void DGUSScreenHandlerMKS::DGUS_LanguageDisplay(uint8_t var) {
1518 1518
   if (var == MKS_English) {
1519 1519
     const char home_buf_en[] = "Home";
1520 1520
     dgusdisplay.WriteVariable(VP_HOME_Dis, home_buf_en, 32, true);

+ 30
- 235
Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h Vedi File

@@ -21,64 +21,26 @@
21 21
  */
22 22
 #pragma once
23 23
 
24
-#include "../DGUSDisplay.h"
25
-#include "../DGUSVPVariable.h"
26
-#include "../DGUSDisplayDef.h"
27
-
28
-#include "../../../../inc/MarlinConfig.h"
24
+#include "../DGUSScreenHandlerBase.h"
29 25
 
30 26
 enum DGUSLCD_Screens : uint8_t;
31 27
 
32
-class DGUSScreenHandler {
28
+class DGUSScreenHandlerMKS : public DGUSScreenHandler {
33 29
 public:
34
-  DGUSScreenHandler() = default;
35
-
36
-  static bool loop();
37
-
38
-  // Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
39
-  // The bools specifying whether the strings are in RAM or FLASH.
40
-  static void sendinfoscreen(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
41
-  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) {
42
-    sendinfoscreen(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, liinflash);
43
-  }
44
-  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) {
45
-    sendinfoscreen(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), l1inflash, l2inflash, l3inflash, liinflash);
46
-  }
47
-
48
-  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);
30
+  DGUSScreenHandlerMKS() = default;
49 31
 
50 32
   #if 0
51
-  static void sendinfoscreen_ch_mks(const uint16_t *line1, const uint16_t *line2, const uint16_t *line3, const uint16_t *line4);
52
-  static void sendinfoscreen_en_mks(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4);
53
-  static void sendinfoscreen_mks(const void *line1, const void *line2, const void *line3, const void *line4, uint16_t language);
33
+  static void sendinfoscreen_ch(const uint16_t *line1, const uint16_t *line2, const uint16_t *line3, const uint16_t *line4);
34
+  static void sendinfoscreen_en(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4);
35
+  static void sendinfoscreen(const void *line1, const void *line2, const void *line3, const void *line4, uint16_t language);
54 36
   #endif
55 37
 
56
-  // "M117" Message -- msg is a RAM ptr.
57
-  static void setstatusmessage(const char *msg);
58
-  // The same for messages from Flash
59
-  static void setstatusmessagePGM(PGM_P const msg);
60
-  // Callback for VP "Display wants to change screen on idle printer"
61
-  static void ScreenChangeHookIfIdle(DGUS_VP_Variable &var, void *val_ptr);
62
-  // Callback for VP "Screen has been changed"
63
-  static void ScreenChangeHook(DGUS_VP_Variable &var, void *val_ptr);
64
-
65 38
   static void ScreenBackChange(DGUS_VP_Variable &var, void *val_ptr);
66 39
 
67
-  // Callback for VP "All Heaters Off"
68
-  static void HandleAllHeatersOff(DGUS_VP_Variable &var, void *val_ptr);
69
-  // Hook for "Change this temperature"
70
-  static void HandleTemperatureChanged(DGUS_VP_Variable &var, void *val_ptr);
71
-  // Hook for "Change Flowrate"
72
-  static void HandleFlowRateChanged(DGUS_VP_Variable &var, void *val_ptr);
73
-  #if ENABLED(DGUS_UI_MOVE_DIS_OPTION)
74
-    // Hook for manual move option
75
-    static void HandleManualMoveOption(DGUS_VP_Variable &var, void *val_ptr);
76
-  #endif
77
-
78 40
   static void EEPROM_CTRL(DGUS_VP_Variable &var, void *val_ptr);
79
-  static void LanguageChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
41
+  static void LanguageChange(DGUS_VP_Variable &var, void *val_ptr);
80 42
   static void GetOffsetValue(DGUS_VP_Variable &var, void *val_ptr);
81
-  static void Level_Ctrl_MKS(DGUS_VP_Variable &var, void *val_ptr);
43
+  static void Level_Ctrl(DGUS_VP_Variable &var, void *val_ptr);
82 44
   static void MeshLevel(DGUS_VP_Variable &var, void *val_ptr);
83 45
   static void MeshLevelDistanceConfig(DGUS_VP_Variable &var, void *val_ptr);
84 46
   static void ManualAssistLeveling(DGUS_VP_Variable &var, void *val_ptr);
@@ -87,9 +49,9 @@ public:
87 49
   static void GetManualMovestep(DGUS_VP_Variable &var, void *val_ptr);
88 50
   static void GetZoffsetDistance(DGUS_VP_Variable &var, void *val_ptr);
89 51
   static void GetMinExtrudeTemp(DGUS_VP_Variable &var, void *val_ptr);
90
-  static void GetParkPos_MKS(DGUS_VP_Variable &var, void *val_ptr);
52
+  static void GetParkPos(DGUS_VP_Variable &var, void *val_ptr);
91 53
   #if ENABLED(PREVENT_COLD_EXTRUSION)
92
-    static void HandleGetExMinTemp_MKS(DGUS_VP_Variable &var, void *val_ptr);
54
+    static void HandleGetExMinTemp(DGUS_VP_Variable &var, void *val_ptr);
93 55
   #endif
94 56
   static void DGUS_LanguageDisplay(uint8_t var);
95 57
   static void TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr);
@@ -101,221 +63,54 @@ public:
101 63
   static void LCD_BLK_Adjust(DGUS_VP_Variable &var, void *val_ptr);
102 64
   static void SD_FileBack(DGUS_VP_Variable &var, void *val_ptr);
103 65
 
104
-  // Hook for manual move.
105
-  static void HandleManualMove(DGUS_VP_Variable &var, void *val_ptr);
106
-  // Hook for manual extrude.
107
-  static void HandleManualExtrude(DGUS_VP_Variable &var, void *val_ptr);
108
-  // Hook for motor lock and unlook
109
-  static void HandleMotorLockUnlock(DGUS_VP_Variable &var, void *val_ptr);
110
-  #if ENABLED(POWER_LOSS_RECOVERY)
111
-    // Hook for power loss recovery.
112
-    static void HandlePowerLossRecovery(DGUS_VP_Variable &var, void *val_ptr);
113
-  #endif
114
-  // Hook for settings
115
-  static void HandleSettings(DGUS_VP_Variable &var, void *val_ptr);
116 66
   static void HandleStepPerMMChanged(DGUS_VP_Variable &var, void *val_ptr);
117 67
   static void HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, void *val_ptr);
118
-
119
-  static void HandleStepPerMMChanged_MKS(DGUS_VP_Variable &var, void *val_ptr);
120
-  static void HandleStepPerMMExtruderChanged_MKS(DGUS_VP_Variable &var, void *val_ptr);
121
-  static void HandleMaxSpeedChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
122
-  static void HandleExtruderMaxSpeedChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
123
-  static void HandleAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
124
-  static void HandleMaxAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
125
-  static void HandleExtruderAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
126
-  static void HandleChangeLevelPoint_MKS(DGUS_VP_Variable &var, void *val_ptr);
127
-  static void HandleTravelAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
128
-  static void HandleFeedRateMinChange_MKS(DGUS_VP_Variable &var, void *val_ptr);
129
-  static void HandleMin_T_F_MKS(DGUS_VP_Variable &var, void *val_ptr);
68
+  static void HandleMaxSpeedChange(DGUS_VP_Variable &var, void *val_ptr);
69
+  static void HandleExtruderMaxSpeedChange(DGUS_VP_Variable &var, void *val_ptr);
70
+  static void HandleAccChange(DGUS_VP_Variable &var, void *val_ptr);
71
+  static void HandleMaxAccChange(DGUS_VP_Variable &var, void *val_ptr);
72
+  static void HandleExtruderAccChange(DGUS_VP_Variable &var, void *val_ptr);
73
+  static void HandleChangeLevelPoint(DGUS_VP_Variable &var, void *val_ptr);
74
+  static void HandleTravelAccChange(DGUS_VP_Variable &var, void *val_ptr);
75
+  static void HandleFeedRateMinChange(DGUS_VP_Variable &var, void *val_ptr);
76
+  static void HandleMin_T_F(DGUS_VP_Variable &var, void *val_ptr);
130 77
 
131 78
   #if HAS_PID_HEATING
132
-    // Hook for "Change this temperature PID para"
133
-    static void HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr);
134
-    // Hook for PID autotune
135
-    static void HandlePIDAutotune(DGUS_VP_Variable &var, void *val_ptr);
136
-  #endif
137
-  #if HAS_BED_PROBE
138
-    // Hook for "Change probe offset z"
139
-    static void HandleProbeOffsetZChanged(DGUS_VP_Variable &var, void *val_ptr);
140
-  #endif
141
-  #if ENABLED(BABYSTEPPING)
142
-    // Hook for live z adjust action
143
-    static void HandleLiveAdjustZ(DGUS_VP_Variable &var, void *val_ptr);
144
-  #endif
145
-  #if HAS_FAN
146
-    // Hook for fan control
147
-    static void HandleFanControl(DGUS_VP_Variable &var, void *val_ptr);
148
-  #endif
149
-  // Hook for heater control
150
-  static void HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr);
151
-  #if ENABLED(DGUS_PREHEAT_UI)
152
-    // Hook for preheat
153
-    static void HandlePreheat(DGUS_VP_Variable &var, void *val_ptr);
154
-  #endif
155
-  #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
156
-    // Hook for filament load and unload filament option
157
-    static void HandleFilamentOption(DGUS_VP_Variable &var, void *val_ptr);
158
-    // Hook for filament load and unload
159
-    static void HandleFilamentLoadUnload(DGUS_VP_Variable &var);
160
-
161
-    static void MKS_FilamentLoadUnload(DGUS_VP_Variable &var, void *val_ptr, const int filamentDir);
162
-    static void MKS_FilamentLoad(DGUS_VP_Variable &var, void *val_ptr);
163
-    static void MKS_FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr);
164
-    static void MKS_LOAD_UNLOAD_IDLE();
165
-    static void MKS_LOAD_Cancle(DGUS_VP_Variable &var, void *val_ptr);
79
+    static void FilamentLoadUnload(DGUS_VP_Variable &var, void *val_ptr, const int filamentDir);
80
+    static void FilamentLoad(DGUS_VP_Variable &var, void *val_ptr);
81
+    static void FilamentUnLoad(DGUS_VP_Variable &var, void *val_ptr);
166 82
     static void GetManualFilament(DGUS_VP_Variable &var, void *val_ptr);
167 83
     static void GetManualFilamentSpeed(DGUS_VP_Variable &var, void *val_ptr);
168 84
   #endif
169 85
 
170 86
   #if ENABLED(SDSUPPORT)
171
-    // Callback for VP "Display wants to change screen when there is a SD card"
172
-    static void ScreenChangeHookIfSD(DGUS_VP_Variable &var, void *val_ptr);
173
-    // Scroll buttons on the file listing screen.
174
-    static void DGUSLCD_SD_ScrollFilelist(DGUS_VP_Variable &var, void *val_ptr);
175
-    // File touched.
176
-    static void DGUSLCD_SD_FileSelected(DGUS_VP_Variable &var, void *val_ptr);
177
-    // start print after confirmation received.
178
-    static void DGUSLCD_SD_StartPrint(DGUS_VP_Variable &var, void *val_ptr);
179
-    // User hit the pause, resume or abort button.
180
-    static void DGUSLCD_SD_ResumePauseAbort(DGUS_VP_Variable &var, void *val_ptr);
181
-    // User confirmed the abort action
182
-    static void DGUSLCD_SD_ReallyAbort(DGUS_VP_Variable &var, void *val_ptr);
183
-    // User hit the tune button
184
-    static void DGUSLCD_SD_PrintTune(DGUS_VP_Variable &var, void *val_ptr);
185
-    // Send a single filename to the display.
186
-    static void DGUSLCD_SD_SendFilename(DGUS_VP_Variable &var);
187
-    // Marlin informed us that a new SD has been inserted.
188
-    static void SDCardInserted();
189
-    // Marlin informed us that the SD Card has been removed().
190
-    static void SDCardRemoved();
191
-    // Marlin informed us about a bad SD Card.
192
-    static void SDCardError();
193 87
     // Marlin informed us about SD print completion.
194 88
     static void SDPrintingFinished();
195 89
   #else
196 90
     static void PrintReturn(DGUS_VP_Variable &var, void *val_ptr);
197 91
   #endif
198 92
 
199
-  // OK Button on the Confirm screen.
200
-  static void ScreenConfirmedOK(DGUS_VP_Variable &var, void *val_ptr);
201
-
202
-  // Update data after going to a new screen (by display or by GotoScreen)
203
-  // remember: store the last-displayed screen, so it can be returned to.
204
-  // (e.g for popup messages)
205
-  static void UpdateNewScreen(DGUSLCD_Screens newscreen, bool popup=false);
206
-
207
-  // Recall the remembered screen.
208
-  static void PopToOldScreen();
209
-
210
-  // Make the display show the screen and update all VPs in it.
211
-  static void GotoScreen(DGUSLCD_Screens screen, bool ispopup = false);
212
-
213
-  static void UpdateScreenVPData();
214
-
215
-  // Helpers to convert and transfer data to the display.
216
-  static void DGUSLCD_SendWordValueToDisplay(DGUS_VP_Variable &var);
217
-  static void DGUSLCD_SendStringToDisplay(DGUS_VP_Variable &var);
218
-  static void DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var);
219
-  static void DGUSLCD_SendTemperaturePID(DGUS_VP_Variable &var);
220
-  static void DGUSLCD_SendPercentageToDisplay(DGUS_VP_Variable &var);
221
-  static void DGUSLCD_SendPrintProgressToDisplay(DGUS_VP_Variable &var);
222 93
   static void DGUSLCD_SendPrintTimeToDisplay(DGUS_VP_Variable &var);
223
-
224
-  static void DGUSLCD_SendPrintTimeToDisplay_MKS(DGUS_VP_Variable &var);
225
-  static void DGUSLCD_SendBabyStepToDisplay_MKS(DGUS_VP_Variable &var);
94
+  static void DGUSLCD_SendBabyStepToDisplay(DGUS_VP_Variable &var);
226 95
   static void DGUSLCD_SendFanToDisplay(DGUS_VP_Variable &var);
227 96
   static void DGUSLCD_SendGbkToDisplay(DGUS_VP_Variable &var);
228
-  static void DGUSLCD_SendStringToDisplay_Language_MKS(DGUS_VP_Variable &var);
97
+  static void DGUSLCD_SendStringToDisplay_Language(DGUS_VP_Variable &var);
229 98
   static void DGUSLCD_SendTMCStepValue(DGUS_VP_Variable &var);
230 99
 
231
-  #if ENABLED(PRINTCOUNTER)
232
-    static void DGUSLCD_SendPrintAccTimeToDisplay(DGUS_VP_Variable &var);
233
-    static void DGUSLCD_SendPrintsTotalToDisplay(DGUS_VP_Variable &var);
234
-  #endif
235
-  #if HAS_FAN
236
-    static void DGUSLCD_SendFanStatusToDisplay(DGUS_VP_Variable &var);
237
-  #endif
238
-  static void DGUSLCD_SendHeaterStatusToDisplay(DGUS_VP_Variable &var);
239
-  #if ENABLED(DGUS_UI_WAITING)
240
-    static void DGUSLCD_SendWaitingStatusToDisplay(DGUS_VP_Variable &var);
241
-  #endif
242
-
243
-  // Send a value from 0..100 to a variable with a range from 0..255
244
-  static void DGUSLCD_PercentageToUint8(DGUS_VP_Variable &var, void *val_ptr);
245
-
246 100
   static void DGUSLCD_SetUint8(DGUS_VP_Variable &var, void *val_ptr);
247 101
 
248
-  template<typename T>
249
-  static void DGUSLCD_SetValueDirectly(DGUS_VP_Variable &var, void *val_ptr) {
250
-    if (!var.memadr) return;
251
-    union { unsigned char tmp[sizeof(T)]; T t; } x;
252
-    unsigned char *ptr = (unsigned char*)val_ptr;
253
-    LOOP_L_N(i, sizeof(T)) x.tmp[i] = ptr[sizeof(T) - i - 1];
254
-    *(T*)var.memadr = x.t;
255
-  }
256
-
257
-  // Send a float value to the display.
258
-  // Display will get a 4-byte integer scaled to the number of digits:
259
-  // Tell the display the number of digits and it cheats by displaying a dot between...
260
-  template<unsigned int decimals>
261
-  static void DGUSLCD_SendFloatAsLongValueToDisplay(DGUS_VP_Variable &var) {
262
-    if (var.memadr) {
263
-      float f = *(float *)var.memadr;
264
-      f *= cpow(10, decimals);
265
-      dgusdisplay.WriteVariable(var.VP, (long)f);
266
-    }
267
-  }
268
-
269
-  // Send a float value to the display.
270
-  // Display will get a 2-byte integer scaled to the number of digits:
271
-  // Tell the display the number of digits and it cheats by displaying a dot between...
272
-  template<unsigned int decimals>
273
-  static void DGUSLCD_SendFloatAsIntValueToDisplay(DGUS_VP_Variable &var) {
274
-    if (var.memadr) {
275
-      float f = *(float *)var.memadr;
276
-      DEBUG_ECHOLNPAIR_F(" >> ", f, 6);
277
-      f *= cpow(10, decimals);
278
-      dgusdisplay.WriteVariable(var.VP, (int16_t)f);
279
-    }
280
-  }
281
-
282
-  // Force an update of all VP on the current screen.
283
-  static void ForceCompleteUpdate() { update_ptr = 0; ScreenComplete = false; }
284
-  // Has all VPs sent to the screen
285
-  static bool IsScreenComplete() { return ScreenComplete; }
286
-
287
-  static DGUSLCD_Screens getCurrentScreen() { return current_screen; }
288
-
289
-  static void SetupConfirmAction( void (*f)()) { confirm_action_cb = f; }
290
-
291
-private:
292
-  static DGUSLCD_Screens current_screen;  //< currently on screen
293
-  static constexpr uint8_t NUM_PAST_SCREENS = 4;
294
-  static DGUSLCD_Screens past_screens[NUM_PAST_SCREENS]; //< LIFO with past screens for the "back" button.
295
-
296
-  static uint8_t update_ptr;      //< Last sent entry in the VPList for the actual screen.
297
-  static uint16_t skipVP;         //< When updating the screen data, skip this one, because the user is interacting with it.
298
-  static bool ScreenComplete;     //< All VPs sent to screen?
299
-
300
-  static uint16_t ConfirmVP;      //< context for confirm screen (VP that will be emulated-sent on "OK").
301
-
302
-  #if ENABLED(SDSUPPORT)
303
-    static int16_t top_file;      //< file on top of file chooser
304
-    static int16_t file_to_print; //< touched file to be confirmed
305
-  #endif
306
-
307
-  static void (*confirm_action_cb)();
102
+  static bool loop();
308 103
 };
309 104
 
310
-#define MKS_Language_Choose   0x00
311
-#define MKS_Language_NoChoose 0x01
105
+enum MKS_Choose : uint8_t { MKS_Language_Choose, MKS_Language_NoChoose };
106
+enum MKS_Language : uint8_t { MKS_SimpleChinese, MKS_English };
312 107
 
313
-#define MKS_SimpleChinese     0
314
-#define MKS_English           1
315
-extern uint8_t mks_language_index;
108
+extern MKS_Language mks_language_index;
316 109
 extern bool DGUSAutoTurnOff;
317 110
 
318 111
 #if ENABLED(POWER_LOSS_RECOVERY)
319 112
   #define PLR_SCREEN_RECOVER MKSLCD_SCREEN_PRINT
320 113
   #define PLR_SCREEN_CANCEL MKSLCD_SCREEN_HOME
321 114
 #endif
115
+
116
+typedef DGUSScreenHandlerMKS DGUSScreenHandlerClass;

+ 2
- 217
Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.h Vedi File

@@ -21,224 +21,9 @@
21 21
  */
22 22
 #pragma once
23 23
 
24
-#include "../DGUSDisplay.h"
25
-#include "../DGUSVPVariable.h"
26
-#include "../DGUSDisplayDef.h"
24
+#include "../DGUSScreenHandlerBase.h"
27 25
 
28
-#include "../../../../inc/MarlinConfig.h"
29
-
30
-enum DGUSLCD_Screens : uint8_t;
31
-
32
-class DGUSScreenHandler {
33
-public:
34
-  DGUSScreenHandler() = default;
35
-
36
-  static bool loop();
37
-
38
-  // Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
39
-  // The bools specifying whether the strings are in RAM or FLASH.
40
-  static void sendinfoscreen(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
41
-  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) {
42
-    sendinfoscreen(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, liinflash);
43
-  }
44
-  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) {
45
-    sendinfoscreen(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), l1inflash, l2inflash, l3inflash, liinflash);
46
-  }
47
-
48
-  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);
49
-
50
-  // "M117" Message -- msg is a RAM ptr.
51
-  static void setstatusmessage(const char *msg);
52
-  // The same for messages from Flash
53
-  static void setstatusmessagePGM(PGM_P const msg);
54
-  // Callback for VP "Display wants to change screen on idle printer"
55
-  static void ScreenChangeHookIfIdle(DGUS_VP_Variable &var, void *val_ptr);
56
-  // Callback for VP "Screen has been changed"
57
-  static void ScreenChangeHook(DGUS_VP_Variable &var, void *val_ptr);
58
-
59
-  // Callback for VP "All Heaters Off"
60
-  static void HandleAllHeatersOff(DGUS_VP_Variable &var, void *val_ptr);
61
-  // Hook for "Change this temperature"
62
-  static void HandleTemperatureChanged(DGUS_VP_Variable &var, void *val_ptr);
63
-  // Hook for "Change Flowrate"
64
-  static void HandleFlowRateChanged(DGUS_VP_Variable &var, void *val_ptr);
65
-  #if ENABLED(DGUS_UI_MOVE_DIS_OPTION)
66
-    // Hook for manual move option
67
-    static void HandleManualMoveOption(DGUS_VP_Variable &var, void *val_ptr);
68
-  #endif
69
-
70
-  // Hook for manual move.
71
-  static void HandleManualMove(DGUS_VP_Variable &var, void *val_ptr);
72
-  // Hook for manual extrude.
73
-  static void HandleManualExtrude(DGUS_VP_Variable &var, void *val_ptr);
74
-  // Hook for motor lock and unlook
75
-  static void HandleMotorLockUnlock(DGUS_VP_Variable &var, void *val_ptr);
76
-  #if ENABLED(POWER_LOSS_RECOVERY)
77
-    // Hook for power loss recovery.
78
-    static void HandlePowerLossRecovery(DGUS_VP_Variable &var, void *val_ptr);
79
-  #endif
80
-  // Hook for settings
81
-  static void HandleSettings(DGUS_VP_Variable &var, void *val_ptr);
82
-  static void HandleStepPerMMChanged(DGUS_VP_Variable &var, void *val_ptr);
83
-  static void HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, void *val_ptr);
84
-
85
-  #if HAS_PID_HEATING
86
-    // Hook for "Change this temperature PID para"
87
-    static void HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr);
88
-    // Hook for PID autotune
89
-    static void HandlePIDAutotune(DGUS_VP_Variable &var, void *val_ptr);
90
-  #endif
91
-  #if HAS_BED_PROBE
92
-    // Hook for "Change probe offset z"
93
-    static void HandleProbeOffsetZChanged(DGUS_VP_Variable &var, void *val_ptr);
94
-  #endif
95
-  #if ENABLED(BABYSTEPPING)
96
-    // Hook for live z adjust action
97
-    static void HandleLiveAdjustZ(DGUS_VP_Variable &var, void *val_ptr);
98
-  #endif
99
-  #if HAS_FAN
100
-    // Hook for fan control
101
-    static void HandleFanControl(DGUS_VP_Variable &var, void *val_ptr);
102
-  #endif
103
-  // Hook for heater control
104
-  static void HandleHeaterControl(DGUS_VP_Variable &var, void *val_ptr);
105
-  #if ENABLED(DGUS_PREHEAT_UI)
106
-    // Hook for preheat
107
-    static void HandlePreheat(DGUS_VP_Variable &var, void *val_ptr);
108
-  #endif
109
-  #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
110
-    // Hook for filament load and unload filament option
111
-    static void HandleFilamentOption(DGUS_VP_Variable &var, void *val_ptr);
112
-    // Hook for filament load and unload
113
-    static void HandleFilamentLoadUnload(DGUS_VP_Variable &var);
114
-  #endif
115
-
116
-  #if ENABLED(SDSUPPORT)
117
-    // Callback for VP "Display wants to change screen when there is a SD card"
118
-    static void ScreenChangeHookIfSD(DGUS_VP_Variable &var, void *val_ptr);
119
-    // Scroll buttons on the file listing screen.
120
-    static void DGUSLCD_SD_ScrollFilelist(DGUS_VP_Variable &var, void *val_ptr);
121
-    // File touched.
122
-    static void DGUSLCD_SD_FileSelected(DGUS_VP_Variable &var, void *val_ptr);
123
-    // start print after confirmation received.
124
-    static void DGUSLCD_SD_StartPrint(DGUS_VP_Variable &var, void *val_ptr);
125
-    // User hit the pause, resume or abort button.
126
-    static void DGUSLCD_SD_ResumePauseAbort(DGUS_VP_Variable &var, void *val_ptr);
127
-    // User confirmed the abort action
128
-    static void DGUSLCD_SD_ReallyAbort(DGUS_VP_Variable &var, void *val_ptr);
129
-    // User hit the tune button
130
-    static void DGUSLCD_SD_PrintTune(DGUS_VP_Variable &var, void *val_ptr);
131
-    // Send a single filename to the display.
132
-    static void DGUSLCD_SD_SendFilename(DGUS_VP_Variable &var);
133
-    // Marlin informed us that a new SD has been inserted.
134
-    static void SDCardInserted();
135
-    // Marlin informed us that the SD Card has been removed().
136
-    static void SDCardRemoved();
137
-    // Marlin informed us about a bad SD Card.
138
-    static void SDCardError();
139
-  #endif
140
-
141
-  // OK Button the Confirm screen.
142
-  static void ScreenConfirmedOK(DGUS_VP_Variable &var, void *val_ptr);
143
-
144
-  // Update data after went to new screen (by display or by GotoScreen)
145
-  // remember: store the last-displayed screen, so it can get returned to.
146
-  // (e.g for pop up messages)
147
-  static void UpdateNewScreen(DGUSLCD_Screens newscreen, bool popup=false);
148
-
149
-  // Recall the remembered screen.
150
-  static void PopToOldScreen();
151
-
152
-  // Make the display show the screen and update all VPs in it.
153
-  static void GotoScreen(DGUSLCD_Screens screen, bool ispopup = false);
154
-
155
-  static void UpdateScreenVPData();
156
-
157
-  // Helpers to convert and transfer data to the display.
158
-  static void DGUSLCD_SendWordValueToDisplay(DGUS_VP_Variable &var);
159
-  static void DGUSLCD_SendStringToDisplay(DGUS_VP_Variable &var);
160
-  static void DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var);
161
-  static void DGUSLCD_SendTemperaturePID(DGUS_VP_Variable &var);
162
-  static void DGUSLCD_SendPercentageToDisplay(DGUS_VP_Variable &var);
163
-  static void DGUSLCD_SendPrintProgressToDisplay(DGUS_VP_Variable &var);
164
-  static void DGUSLCD_SendPrintTimeToDisplay(DGUS_VP_Variable &var);
165
-
166
-  #if ENABLED(PRINTCOUNTER)
167
-    static void DGUSLCD_SendPrintAccTimeToDisplay(DGUS_VP_Variable &var);
168
-    static void DGUSLCD_SendPrintsTotalToDisplay(DGUS_VP_Variable &var);
169
-  #endif
170
-  #if HAS_FAN
171
-    static void DGUSLCD_SendFanStatusToDisplay(DGUS_VP_Variable &var);
172
-  #endif
173
-  static void DGUSLCD_SendHeaterStatusToDisplay(DGUS_VP_Variable &var);
174
-  #if ENABLED(DGUS_UI_WAITING)
175
-    static void DGUSLCD_SendWaitingStatusToDisplay(DGUS_VP_Variable &var);
176
-  #endif
177
-
178
-  // Send a value from 0..100 to a variable with a range from 0..255
179
-  static void DGUSLCD_PercentageToUint8(DGUS_VP_Variable &var, void *val_ptr);
180
-
181
-  template<typename T>
182
-  static void DGUSLCD_SetValueDirectly(DGUS_VP_Variable &var, void *val_ptr) {
183
-    if (!var.memadr) return;
184
-    union { unsigned char tmp[sizeof(T)]; T t; } x;
185
-    unsigned char *ptr = (unsigned char*)val_ptr;
186
-    LOOP_L_N(i, sizeof(T)) x.tmp[i] = ptr[sizeof(T) - i - 1];
187
-    *(T*)var.memadr = x.t;
188
-  }
189
-
190
-  // Send a float value to the display.
191
-  // Display will get a 4-byte integer scaled to the number of digits:
192
-  // Tell the display the number of digits and it cheats by displaying a dot between...
193
-  template<unsigned int decimals>
194
-  static void DGUSLCD_SendFloatAsLongValueToDisplay(DGUS_VP_Variable &var) {
195
-    if (var.memadr) {
196
-      float f = *(float *)var.memadr;
197
-      f *= cpow(10, decimals);
198
-      dgusdisplay.WriteVariable(var.VP, (long)f);
199
-    }
200
-  }
201
-
202
-  // Send a float value to the display.
203
-  // Display will get a 2-byte integer scaled to the number of digits:
204
-  // Tell the display the number of digits and it cheats by displaying a dot between...
205
-  template<unsigned int decimals>
206
-  static void DGUSLCD_SendFloatAsIntValueToDisplay(DGUS_VP_Variable &var) {
207
-    if (var.memadr) {
208
-      float f = *(float *)var.memadr;
209
-      DEBUG_ECHOLNPAIR_F(" >> ", f, 6);
210
-      f *= cpow(10, decimals);
211
-      dgusdisplay.WriteVariable(var.VP, (int16_t)f);
212
-    }
213
-  }
214
-
215
-  // Force an update of all VP on the current screen.
216
-  static void ForceCompleteUpdate() { update_ptr = 0; ScreenComplete = false; }
217
-  // Has all VPs sent to the screen
218
-  static bool IsScreenComplete() { return ScreenComplete; }
219
-
220
-  static DGUSLCD_Screens getCurrentScreen() { return current_screen; }
221
-
222
-  static void SetupConfirmAction( void (*f)()) { confirm_action_cb = f; }
223
-
224
-private:
225
-  static DGUSLCD_Screens current_screen;  //< currently on screen
226
-  static constexpr uint8_t NUM_PAST_SCREENS = 4;
227
-  static DGUSLCD_Screens past_screens[NUM_PAST_SCREENS]; //< LIFO with past screens for the "back" button.
228
-
229
-  static uint8_t update_ptr;      //< Last sent entry in the VPList for the actual screen.
230
-  static uint16_t skipVP;         //< When updating the screen data, skip this one, because the user is interacting with it.
231
-  static bool ScreenComplete;     //< All VPs sent to screen?
232
-
233
-  static uint16_t ConfirmVP;      //< context for confirm screen (VP that will be emulated-sent on "OK").
234
-
235
-  #if ENABLED(SDSUPPORT)
236
-    static int16_t top_file;      //< file on top of file chooser
237
-    static int16_t file_to_print; //< touched file to be confirmed
238
-  #endif
239
-
240
-  static void (*confirm_action_cb)();
241
-};
26
+typedef DGUSScreenHandler DGUSScreenHandlerClass;
242 27
 
243 28
 #if ENABLED(POWER_LOSS_RECOVERY)
244 29
   #define PLR_SCREEN_RECOVER DGUSLCD_SCREEN_SDPRINTMANIPULATION

+ 11
- 11
Marlin/src/module/settings.cpp Vedi File

@@ -555,7 +555,7 @@ typedef struct SettingsDataStruct {
555 555
   // MKS UI controller
556 556
   //
557 557
   #if ENABLED(DGUS_LCD_UI_MKS)
558
-    uint8_t mks_language_index;                         // Display Language
558
+    MKS_Language mks_language_index;                    // Display Language
559 559
     xy_int_t mks_corner_offsets[5];                     // Bed Tramming
560 560
     xyz_int_t mks_park_pos;                             // Custom Parking (without NOZZLE_PARK)
561 561
     celsius_t mks_min_extrusion_temp;                   // Min E Temp (shadow M302 value)
@@ -3302,16 +3302,6 @@ void MarlinSettings::reset() {
3302 3302
   //
3303 3303
   TERN_(DGUS_LCD_UI_MKS, MKS_reset_settings());
3304 3304
 
3305
-  postprocess();
3306
-
3307
-  #if EITHER(EEPROM_CHITCHAT, DEBUG_LEVELING_FEATURE)
3308
-    FSTR_P const hdsl = F("Hardcoded Default Settings Loaded");
3309
-    TERN_(HOST_EEPROM_CHITCHAT, hostui.notify(hdsl));
3310
-    DEBUG_ECHO_START(); DEBUG_ECHOLNF(hdsl);
3311
-  #endif
3312
-
3313
-  TERN_(EXTENSIBLE_UI, ExtUI::onFactoryReset());
3314
-
3315 3305
   //
3316 3306
   // Model predictive control
3317 3307
   //
@@ -3342,6 +3332,16 @@ void MarlinSettings::reset() {
3342 3332
       #endif
3343 3333
     }
3344 3334
   #endif
3335
+
3336
+  postprocess();
3337
+
3338
+  #if EITHER(EEPROM_CHITCHAT, DEBUG_LEVELING_FEATURE)
3339
+    FSTR_P const hdsl = F("Hardcoded Default Settings Loaded");
3340
+    TERN_(HOST_EEPROM_CHITCHAT, hostui.notify(hdsl));
3341
+    DEBUG_ECHO_START(); DEBUG_ECHOLNF(hdsl);
3342
+  #endif
3343
+
3344
+  TERN_(EXTENSIBLE_UI, ExtUI::onFactoryReset());
3345 3345
 }
3346 3346
 
3347 3347
 #if DISABLED(DISABLE_M503)

Loading…
Annulla
Salva