Browse Source

E3 DWIN: General cleanup

Scott Lahteine 3 years ago
parent
commit
37cf156223
2 changed files with 38 additions and 94 deletions
  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 View File

494
   if (is_sel) Draw_Menu_Cursor(0);
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
 // Draw Menus
508
 // Draw Menus
499
 //
509
 //
1146
 void HMI_Move_X() {
1156
 void HMI_Move_X() {
1147
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1157
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1148
   if (encoder_diffState != ENCODER_DIFF_NO) {
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
       checkkey = AxisMove;
1160
       checkkey = AxisMove;
1157
       EncoderRate.enabled = false;
1161
       EncoderRate.enabled = false;
1158
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(1), HMI_ValueStruct.Move_X_scale);
1162
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(1), HMI_ValueStruct.Move_X_scale);
1175
 void HMI_Move_Y() {
1179
 void HMI_Move_Y() {
1176
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1180
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1177
   if (encoder_diffState != ENCODER_DIFF_NO) {
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
       checkkey = AxisMove;
1183
       checkkey = AxisMove;
1186
       EncoderRate.enabled = false;
1184
       EncoderRate.enabled = false;
1187
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(2), HMI_ValueStruct.Move_Y_scale);
1185
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(2), HMI_ValueStruct.Move_Y_scale);
1204
 void HMI_Move_Z() {
1202
 void HMI_Move_Z() {
1205
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1203
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1206
   if (encoder_diffState != ENCODER_DIFF_NO) {
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
       checkkey = AxisMove;
1206
       checkkey = AxisMove;
1215
       EncoderRate.enabled = false;
1207
       EncoderRate.enabled = false;
1216
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(3), HMI_ValueStruct.Move_Z_scale);
1208
       DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 216, MBASE(3), HMI_ValueStruct.Move_Z_scale);
1236
     static float last_E_scale = 0;
1228
     static float last_E_scale = 0;
1237
     ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1229
     ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1238
     if (encoder_diffState != ENCODER_DIFF_NO) {
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
         checkkey = AxisMove;
1232
         checkkey = AxisMove;
1247
         EncoderRate.enabled = false;
1233
         EncoderRate.enabled = false;
1248
         last_E_scale = HMI_ValueStruct.Move_E_scale;
1234
         last_E_scale = HMI_ValueStruct.Move_E_scale;
1278
         case -4: zoff_line = PREPARE_CASE_ZOFF + MROWS - index_prepare; break;
1264
         case -4: zoff_line = PREPARE_CASE_ZOFF + MROWS - index_prepare; break;
1279
         default: zoff_line = TUNE_CASE_ZOFF + MROWS - index_tune;
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
         EncoderRate.enabled = false;
1268
         EncoderRate.enabled = false;
1287
         #if HAS_BED_PROBE
1269
         #if HAS_BED_PROBE
1288
           probe.offset.z = dwin_zoffset;
1270
           probe.offset.z = dwin_zoffset;
1326
         case -3: temp_line = PREHEAT_CASE_TEMP; break;
1308
         case -3: temp_line = PREHEAT_CASE_TEMP; break;
1327
         default: temp_line = TUNE_CASE_TEMP + MROWS - index_tune;
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
         EncoderRate.enabled = false;
1312
         EncoderRate.enabled = false;
1337
         if (HMI_ValueStruct.show_mode == -1) { // temperature
1313
         if (HMI_ValueStruct.show_mode == -1) { // temperature
1338
           checkkey = TemperatureID;
1314
           checkkey = TemperatureID;
1379
         case -3: bed_line = PREHEAT_CASE_BED; break;
1355
         case -3: bed_line = PREHEAT_CASE_BED; break;
1380
         default: bed_line = TUNE_CASE_BED + MROWS - index_tune;
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
         EncoderRate.enabled = false;
1359
         EncoderRate.enabled = false;
1390
         if (HMI_ValueStruct.show_mode == -1) {
1360
         if (HMI_ValueStruct.show_mode == -1) {
1391
           checkkey = TemperatureID;
1361
           checkkey = TemperatureID;
1433
         default: fan_line = TUNE_CASE_FAN + MROWS - index_tune;
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
         EncoderRate.enabled = false;
1407
         EncoderRate.enabled = false;
1444
         if (HMI_ValueStruct.show_mode == -1) {
1408
         if (HMI_ValueStruct.show_mode == -1) {
1445
           checkkey = TemperatureID;
1409
           checkkey = TemperatureID;
1477
 void HMI_PrintSpeed() {
1441
 void HMI_PrintSpeed() {
1478
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1442
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1479
   if (encoder_diffState != ENCODER_DIFF_NO) {
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
       checkkey = Tune;
1445
       checkkey = Tune;
1488
       EncoderRate.enabled = false;
1446
       EncoderRate.enabled = false;
1489
       feedrate_percentage = HMI_ValueStruct.print_speed;
1447
       feedrate_percentage = HMI_ValueStruct.print_speed;
1501
 void HMI_MaxFeedspeedXYZE() {
1459
 void HMI_MaxFeedspeedXYZE() {
1502
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1460
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1503
   if (encoder_diffState != ENCODER_DIFF_NO) {
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
       checkkey = MaxSpeed;
1463
       checkkey = MaxSpeed;
1512
       EncoderRate.enabled = false;
1464
       EncoderRate.enabled = false;
1513
       if (WITHIN(HMI_flag.feedspeed_axis, X_AXIS, E_AXIS))
1465
       if (WITHIN(HMI_flag.feedspeed_axis, X_AXIS, E_AXIS))
1527
 void HMI_MaxAccelerationXYZE() {
1479
 void HMI_MaxAccelerationXYZE() {
1528
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1480
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1529
   if (encoder_diffState != ENCODER_DIFF_NO) {
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
       checkkey = MaxAcceleration;
1483
       checkkey = MaxAcceleration;
1534
       EncoderRate.enabled = false;
1484
       EncoderRate.enabled = false;
1535
       if (HMI_flag.acc_axis == X_AXIS) planner.set_max_acceleration(X_AXIS, HMI_ValueStruct.Max_Acceleration);
1485
       if (HMI_flag.acc_axis == X_AXIS) planner.set_max_acceleration(X_AXIS, HMI_ValueStruct.Max_Acceleration);
1555
   void HMI_MaxJerkXYZE() {
1505
   void HMI_MaxJerkXYZE() {
1556
     ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1506
     ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1557
     if (encoder_diffState != ENCODER_DIFF_NO) {
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
         checkkey = MaxJerk;
1509
         checkkey = MaxJerk;
1564
         EncoderRate.enabled = false;
1510
         EncoderRate.enabled = false;
1565
         if (WITHIN(HMI_flag.step_axis, X_AXIS, E_AXIS))
1511
         if (WITHIN(HMI_flag.step_axis, X_AXIS, E_AXIS))
1581
 void HMI_StepXYZE() {
1527
 void HMI_StepXYZE() {
1582
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1528
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
1583
   if (encoder_diffState != ENCODER_DIFF_NO) {
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
       checkkey = Step;
1531
       checkkey = Step;
1592
       EncoderRate.enabled = false;
1532
       EncoderRate.enabled = false;
1593
       if (WITHIN(HMI_flag.step_axis, X_AXIS, E_AXIS))
1533
       if (WITHIN(HMI_flag.step_axis, X_AXIS, E_AXIS))
1842
   if (DWIN_lcd_sd_status != card.isMounted()) {
1782
   if (DWIN_lcd_sd_status != card.isMounted()) {
1843
     DWIN_lcd_sd_status = card.isMounted();
1783
     DWIN_lcd_sd_status = card.isMounted();
1844
     // SERIAL_ECHOLNPAIR("HMI_SDCardUpdate: ", int(DWIN_lcd_sd_status));
1784
     // SERIAL_ECHOLNPAIR("HMI_SDCardUpdate: ", int(DWIN_lcd_sd_status));
1845
-    if (card.isMounted()) {
1785
+    if (DWIN_lcd_sd_status) {
1846
       if (checkkey == SelectFile)
1786
       if (checkkey == SelectFile)
1847
         Redraw_SD_List();
1787
         Redraw_SD_List();
1848
     }
1788
     }
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
   // Clear the bottom area of the screen
1812
   // Clear the bottom area of the screen
1872
   DWIN_Draw_Rectangle(1, Color_Bg_Black, 0, STATUS_Y, DWIN_WIDTH, DWIN_HEIGHT - 1);
1813
   DWIN_Draw_Rectangle(1, Color_Bg_Black, 0, STATUS_Y, DWIN_WIDTH, DWIN_HEIGHT - 1);
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
 inline void Draw_Info_Menu() {
1855
 inline void Draw_Info_Menu() {
1910
   Clear_Main_Window();
1856
   Clear_Main_Window();
1911
 
1857
 
2233
   ENCODER_DiffState encoder_diffState = get_encoder_state();
2179
   ENCODER_DiffState encoder_diffState = get_encoder_state();
2234
   if (encoder_diffState == ENCODER_DIFF_NO) return;
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
     Draw_Select_Highlight(false);
2183
     Draw_Select_Highlight(false);
2238
-  }
2239
-  else if (encoder_diffState == ENCODER_DIFF_CCW) {
2184
+  else if (encoder_diffState == ENCODER_DIFF_CCW)
2240
     Draw_Select_Highlight(true);
2185
     Draw_Select_Highlight(true);
2241
-  }
2242
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2186
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2243
     if (select_print.now == 1) { // pause window
2187
     if (select_print.now == 1) { // pause window
2244
       if (HMI_flag.select_flag) {
2188
       if (HMI_flag.select_flag) {

+ 2
- 2
Marlin/src/lcd/dwin/e3v2/dwin.h View File

335
 void Icon_leveling(bool value);
335
 void Icon_leveling(bool value);
336
 
336
 
337
 // Other
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
 void HMI_MainMenu();    // Main process screen
340
 void HMI_MainMenu();    // Main process screen
341
 void HMI_SelectFile();  // File page
341
 void HMI_SelectFile();  // File page
342
 void HMI_Printing();    // Print page
342
 void HMI_Printing();    // Print page

Loading…
Cancel
Save