Explorar el Código

E3 DWIN: General cleanup

Scott Lahteine hace 3 años
padre
commit
37cf156223
Se han modificado 2 ficheros con 38 adiciones y 94 borrados
  1. 36
    92
      Marlin/src/lcd/dwin/e3v2/dwin.cpp
  2. 2
    2
      Marlin/src/lcd/dwin/e3v2/dwin.h

+ 36
- 92
Marlin/src/lcd/dwin/e3v2/dwin.cpp Ver fichero

@@ -494,6 +494,16 @@ inline void Draw_Back_First(const bool is_sel=true) {
494 494
   if (is_sel) Draw_Menu_Cursor(0);
495 495
 }
496 496
 
497
+inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, auto &valref) {
498
+  if (encoder_diffState == ENCODER_DIFF_CW)
499
+    valref += EncoderRate.encoderMoveValue;
500
+  else if (encoder_diffState == ENCODER_DIFF_CCW)
501
+    valref -= EncoderRate.encoderMoveValue;
502
+  else if (encoder_diffState == ENCODER_DIFF_ENTER)
503
+    return true;
504
+  return false;
505
+}
506
+
497 507
 //
498 508
 // Draw Menus
499 509
 //
@@ -1146,13 +1156,7 @@ inline ENCODER_DiffState get_encoder_state() {
1146 1156
 void HMI_Move_X() {
1147 1157
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1148 1158
   if (encoder_diffState != ENCODER_DIFF_NO) {
1149
-    if (encoder_diffState == ENCODER_DIFF_CW) {
1150
-      HMI_ValueStruct.Move_X_scale += EncoderRate.encoderMoveValue;
1151
-    }
1152
-    else if (encoder_diffState == ENCODER_DIFF_CCW) {
1153
-      HMI_ValueStruct.Move_X_scale -= EncoderRate.encoderMoveValue;
1154
-    }
1155
-    else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1159
+    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_X_scale)) {
1156 1160
       checkkey = AxisMove;
1157 1161
       EncoderRate.enabled = false;
1158 1162
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(1), HMI_ValueStruct.Move_X_scale);
@@ -1175,13 +1179,7 @@ void HMI_Move_X() {
1175 1179
 void HMI_Move_Y() {
1176 1180
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1177 1181
   if (encoder_diffState != ENCODER_DIFF_NO) {
1178
-    if (encoder_diffState == ENCODER_DIFF_CW) {
1179
-      HMI_ValueStruct.Move_Y_scale += EncoderRate.encoderMoveValue;
1180
-    }
1181
-    else if (encoder_diffState == ENCODER_DIFF_CCW) {
1182
-      HMI_ValueStruct.Move_Y_scale -= EncoderRate.encoderMoveValue;
1183
-    }
1184
-    else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1182
+    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_Y_scale)) {
1185 1183
       checkkey = AxisMove;
1186 1184
       EncoderRate.enabled = false;
1187 1185
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(2), HMI_ValueStruct.Move_Y_scale);
@@ -1204,13 +1202,7 @@ void HMI_Move_Y() {
1204 1202
 void HMI_Move_Z() {
1205 1203
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1206 1204
   if (encoder_diffState != ENCODER_DIFF_NO) {
1207
-    if (encoder_diffState == ENCODER_DIFF_CW) {
1208
-      HMI_ValueStruct.Move_Z_scale += EncoderRate.encoderMoveValue;
1209
-    }
1210
-    else if (encoder_diffState == ENCODER_DIFF_CCW) {
1211
-      HMI_ValueStruct.Move_Z_scale -= EncoderRate.encoderMoveValue;
1212
-    }
1213
-    else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1205
+    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_Z_scale)) {
1214 1206
       checkkey = AxisMove;
1215 1207
       EncoderRate.enabled = false;
1216 1208
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(3), HMI_ValueStruct.Move_Z_scale);
@@ -1236,13 +1228,7 @@ void HMI_Move_Z() {
1236 1228
     static float last_E_scale = 0;
1237 1229
     ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1238 1230
     if (encoder_diffState != ENCODER_DIFF_NO) {
1239
-      if (encoder_diffState == ENCODER_DIFF_CW) {
1240
-        HMI_ValueStruct.Move_E_scale += EncoderRate.encoderMoveValue;
1241
-      }
1242
-      else if (encoder_diffState == ENCODER_DIFF_CCW) {
1243
-        HMI_ValueStruct.Move_E_scale -= EncoderRate.encoderMoveValue;
1244
-      }
1245
-      else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1231
+      if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Move_E_scale)) {
1246 1232
         checkkey = AxisMove;
1247 1233
         EncoderRate.enabled = false;
1248 1234
         last_E_scale = HMI_ValueStruct.Move_E_scale;
@@ -1278,11 +1264,7 @@ void HMI_Move_Z() {
1278 1264
         case -4: zoff_line = PREPARE_CASE_ZOFF + MROWS - index_prepare; break;
1279 1265
         default: zoff_line = TUNE_CASE_ZOFF + MROWS - index_tune;
1280 1266
       }
1281
-      if (encoder_diffState == ENCODER_DIFF_CW)
1282
-        HMI_ValueStruct.offset_value += EncoderRate.encoderMoveValue;
1283
-      else if (encoder_diffState == ENCODER_DIFF_CCW)
1284
-        HMI_ValueStruct.offset_value -= EncoderRate.encoderMoveValue;
1285
-      else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1267
+      if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.offset_value)) {
1286 1268
         EncoderRate.enabled = false;
1287 1269
         #if HAS_BED_PROBE
1288 1270
           probe.offset.z = dwin_zoffset;
@@ -1326,13 +1308,7 @@ void HMI_Move_Z() {
1326 1308
         case -3: temp_line = PREHEAT_CASE_TEMP; break;
1327 1309
         default: temp_line = TUNE_CASE_TEMP + MROWS - index_tune;
1328 1310
       }
1329
-      if (encoder_diffState == ENCODER_DIFF_CW) {
1330
-        HMI_ValueStruct.E_Temp += EncoderRate.encoderMoveValue;
1331
-      }
1332
-      else if (encoder_diffState == ENCODER_DIFF_CCW) {
1333
-        HMI_ValueStruct.E_Temp -= EncoderRate.encoderMoveValue;
1334
-      }
1335
-      else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1311
+      if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.E_Temp)) {
1336 1312
         EncoderRate.enabled = false;
1337 1313
         if (HMI_ValueStruct.show_mode == -1) { // temperature
1338 1314
           checkkey = TemperatureID;
@@ -1379,13 +1355,7 @@ void HMI_Move_Z() {
1379 1355
         case -3: bed_line = PREHEAT_CASE_BED; break;
1380 1356
         default: bed_line = TUNE_CASE_BED + MROWS - index_tune;
1381 1357
       }
1382
-      if (encoder_diffState == ENCODER_DIFF_CW) {
1383
-        HMI_ValueStruct.Bed_Temp += EncoderRate.encoderMoveValue;
1384
-      }
1385
-      else if (encoder_diffState == ENCODER_DIFF_CCW) {
1386
-        HMI_ValueStruct.Bed_Temp -= EncoderRate.encoderMoveValue;
1387
-      }
1388
-      else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1358
+      if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Bed_Temp)) {
1389 1359
         EncoderRate.enabled = false;
1390 1360
         if (HMI_ValueStruct.show_mode == -1) {
1391 1361
           checkkey = TemperatureID;
@@ -1433,13 +1403,7 @@ void HMI_Move_Z() {
1433 1403
         default: fan_line = TUNE_CASE_FAN + MROWS - index_tune;
1434 1404
       }
1435 1405
 
1436
-      if (encoder_diffState == ENCODER_DIFF_CW) {
1437
-        HMI_ValueStruct.Fan_speed += EncoderRate.encoderMoveValue;
1438
-      }
1439
-      else if (encoder_diffState == ENCODER_DIFF_CCW) {
1440
-        HMI_ValueStruct.Fan_speed -= EncoderRate.encoderMoveValue;
1441
-      }
1442
-      else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1406
+      if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Fan_speed)) {
1443 1407
         EncoderRate.enabled = false;
1444 1408
         if (HMI_ValueStruct.show_mode == -1) {
1445 1409
           checkkey = TemperatureID;
@@ -1477,13 +1441,7 @@ void HMI_Move_Z() {
1477 1441
 void HMI_PrintSpeed() {
1478 1442
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1479 1443
   if (encoder_diffState != ENCODER_DIFF_NO) {
1480
-    if (encoder_diffState == ENCODER_DIFF_CW) {
1481
-      HMI_ValueStruct.print_speed += EncoderRate.encoderMoveValue;
1482
-    }
1483
-    else if (encoder_diffState == ENCODER_DIFF_CCW) {
1484
-      HMI_ValueStruct.print_speed -= EncoderRate.encoderMoveValue;
1485
-    }
1486
-    else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1444
+    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.print_speed)) {
1487 1445
       checkkey = Tune;
1488 1446
       EncoderRate.enabled = false;
1489 1447
       feedrate_percentage = HMI_ValueStruct.print_speed;
@@ -1501,13 +1459,7 @@ void HMI_PrintSpeed() {
1501 1459
 void HMI_MaxFeedspeedXYZE() {
1502 1460
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1503 1461
   if (encoder_diffState != ENCODER_DIFF_NO) {
1504
-    if (encoder_diffState == ENCODER_DIFF_CW) {
1505
-      HMI_ValueStruct.Max_Feedspeed += EncoderRate.encoderMoveValue;
1506
-    }
1507
-    else if (encoder_diffState == ENCODER_DIFF_CCW) {
1508
-      HMI_ValueStruct.Max_Feedspeed -= EncoderRate.encoderMoveValue;
1509
-    }
1510
-    else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1462
+    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Feedspeed)) {
1511 1463
       checkkey = MaxSpeed;
1512 1464
       EncoderRate.enabled = false;
1513 1465
       if (WITHIN(HMI_flag.feedspeed_axis, X_AXIS, E_AXIS))
@@ -1527,9 +1479,7 @@ void HMI_MaxFeedspeedXYZE() {
1527 1479
 void HMI_MaxAccelerationXYZE() {
1528 1480
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1529 1481
   if (encoder_diffState != ENCODER_DIFF_NO) {
1530
-    if (encoder_diffState == ENCODER_DIFF_CW) { HMI_ValueStruct.Max_Acceleration += EncoderRate.encoderMoveValue;}
1531
-    else if (encoder_diffState == ENCODER_DIFF_CCW) { HMI_ValueStruct.Max_Acceleration -= EncoderRate.encoderMoveValue;}
1532
-    else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1482
+    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Acceleration)) {
1533 1483
       checkkey = MaxAcceleration;
1534 1484
       EncoderRate.enabled = false;
1535 1485
       if (HMI_flag.acc_axis == X_AXIS) planner.set_max_acceleration(X_AXIS, HMI_ValueStruct.Max_Acceleration);
@@ -1555,11 +1505,7 @@ void HMI_MaxAccelerationXYZE() {
1555 1505
   void HMI_MaxJerkXYZE() {
1556 1506
     ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1557 1507
     if (encoder_diffState != ENCODER_DIFF_NO) {
1558
-      if (encoder_diffState == ENCODER_DIFF_CW)
1559
-        HMI_ValueStruct.Max_Jerk += EncoderRate.encoderMoveValue;
1560
-      else if (encoder_diffState == ENCODER_DIFF_CCW)
1561
-        HMI_ValueStruct.Max_Jerk -= EncoderRate.encoderMoveValue;
1562
-      else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1508
+      if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Jerk)) {
1563 1509
         checkkey = MaxJerk;
1564 1510
         EncoderRate.enabled = false;
1565 1511
         if (WITHIN(HMI_flag.step_axis, X_AXIS, E_AXIS))
@@ -1581,13 +1527,7 @@ void HMI_MaxAccelerationXYZE() {
1581 1527
 void HMI_StepXYZE() {
1582 1528
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1583 1529
   if (encoder_diffState != ENCODER_DIFF_NO) {
1584
-    if (encoder_diffState == ENCODER_DIFF_CW) {
1585
-      HMI_ValueStruct.Max_Step += EncoderRate.encoderMoveValue;
1586
-    }
1587
-    else if (encoder_diffState == ENCODER_DIFF_CCW) {
1588
-      HMI_ValueStruct.Max_Step -= EncoderRate.encoderMoveValue;
1589
-    }
1590
-    else if (encoder_diffState == ENCODER_DIFF_ENTER) { // return
1530
+    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Step)) {
1591 1531
       checkkey = Step;
1592 1532
       EncoderRate.enabled = false;
1593 1533
       if (WITHIN(HMI_flag.step_axis, X_AXIS, E_AXIS))
@@ -1842,7 +1782,7 @@ void HMI_SDCardUpdate() {
1842 1782
   if (DWIN_lcd_sd_status != card.isMounted()) {
1843 1783
     DWIN_lcd_sd_status = card.isMounted();
1844 1784
     // SERIAL_ECHOLNPAIR("HMI_SDCardUpdate: ", int(DWIN_lcd_sd_status));
1845
-    if (card.isMounted()) {
1785
+    if (DWIN_lcd_sd_status) {
1846 1786
       if (checkkey == SelectFile)
1847 1787
         Redraw_SD_List();
1848 1788
     }
@@ -1863,10 +1803,11 @@ void HMI_SDCardUpdate() {
1863 1803
   }
1864 1804
 }
1865 1805
 
1866
-/* Start Frame */
1867
-
1868
-void HMI_StartFrame(const bool with_update) {
1869
-  Goto_MainMenu();
1806
+//
1807
+// The status area is always on-screen, except during
1808
+// full-screen modal dialogs. (TODO: Keep alive during dialogs)
1809
+//
1810
+void Draw_Status_Area(const bool with_update) {
1870 1811
 
1871 1812
   // Clear the bottom area of the screen
1872 1813
   DWIN_Draw_Rectangle(1, Color_Bg_Black, 0, STATUS_Y, DWIN_WIDTH, DWIN_HEIGHT - 1);
@@ -1906,6 +1847,11 @@ void HMI_StartFrame(const bool with_update) {
1906 1847
   }
1907 1848
 }
1908 1849
 
1850
+void HMI_StartFrame(const bool with_update) {
1851
+  Goto_MainMenu();
1852
+  Draw_Status_Area(with_update);
1853
+}
1854
+
1909 1855
 inline void Draw_Info_Menu() {
1910 1856
   Clear_Main_Window();
1911 1857
 
@@ -2233,12 +2179,10 @@ void HMI_PauseOrStop() {
2233 2179
   ENCODER_DiffState encoder_diffState = get_encoder_state();
2234 2180
   if (encoder_diffState == ENCODER_DIFF_NO) return;
2235 2181
 
2236
-  if (encoder_diffState == ENCODER_DIFF_CW) {
2182
+  if (encoder_diffState == ENCODER_DIFF_CW)
2237 2183
     Draw_Select_Highlight(false);
2238
-  }
2239
-  else if (encoder_diffState == ENCODER_DIFF_CCW) {
2184
+  else if (encoder_diffState == ENCODER_DIFF_CCW)
2240 2185
     Draw_Select_Highlight(true);
2241
-  }
2242 2186
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2243 2187
     if (select_print.now == 1) { // pause window
2244 2188
       if (HMI_flag.select_flag) {

+ 2
- 2
Marlin/src/lcd/dwin/e3v2/dwin.h Ver fichero

@@ -335,8 +335,8 @@ void Icon_temperature(bool value);
335 335
 void Icon_leveling(bool value);
336 336
 
337 337
 // Other
338
-bool Pause_HeatStatus();
339
-void HMI_StartFrame(const bool with_update); // Startup screen
338
+void Draw_Status_Area(const bool with_update); // Status Area
339
+void HMI_StartFrame(const bool with_update);   // Prepare the menu view
340 340
 void HMI_MainMenu();    // Main process screen
341 341
 void HMI_SelectFile();  // File page
342 342
 void HMI_Printing();    // Print page

Loading…
Cancelar
Guardar