Browse Source

Show the appropriate pause message (#12348)

Scott Lahteine 6 years ago
parent
commit
4c5ca89d8c
No account linked to committer's email address

+ 3
- 0
Marlin/src/core/language.h View File

@@ -202,10 +202,13 @@
202 202
 
203 203
 #define MSG_FILAMENT_CHANGE_HEAT            "Press button (or M108) to heat nozzle"
204 204
 #define MSG_FILAMENT_CHANGE_INSERT          "Insert filament and press button (or M108)"
205
+#define MSG_FILAMENT_CHANGE_WAIT            "Press button (or M108) to resume"
205 206
 #define MSG_FILAMENT_CHANGE_HEAT_LCD        "Press button to heat nozzle"
206 207
 #define MSG_FILAMENT_CHANGE_INSERT_LCD      "Insert filament and press button"
208
+#define MSG_FILAMENT_CHANGE_WAIT_LCD        "Press button to resume"
207 209
 #define MSG_FILAMENT_CHANGE_HEAT_M108       "Send M108 to heat nozzle"
208 210
 #define MSG_FILAMENT_CHANGE_INSERT_M108     "Insert filament and send M108"
211
+#define MSG_FILAMENT_CHANGE_WAIT_M108       "Send M108 to resume"
209 212
 
210 213
 #define MSG_ERR_EEPROM_WRITE                "Error writing to EEPROM!"
211 214
 

+ 27
- 29
Marlin/src/feature/pause.cpp View File

@@ -103,7 +103,7 @@ static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_
103 103
   #endif
104 104
 
105 105
   #if HAS_LCD_MENU
106
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT, mode);
106
+    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_HEATING, mode);
107 107
   #else
108 108
     UNUSED(mode);
109 109
   #endif
@@ -413,14 +413,27 @@ bool pause_print(const float &retract, const point_t &park_point, const float &u
413 413
  *
414 414
  * Used by M125 and M600
415 415
  */
416
-void wait_for_filament_reload(const int8_t max_beep_count/*=0*/ DXC_ARGS) {
417
-  bool nozzle_timed_out = false;
418 416
 
417
+#if HAS_LCD_MENU && ENABLED(EMERGENCY_PARSER)
418
+  #define _PMSG(L) L
419
+#elif ENABLED(EMERGENCY_PARSER)
420
+  #define _PMSG(L) L##_M108
421
+#else
422
+  #define _PMSG(L) L##_LCD
423
+#endif
424
+
425
+void show_continue_prompt(const bool is_reload) {
419 426
   #if HAS_LCD_MENU
420
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT);
427
+    lcd_advanced_pause_show_message(is_reload ? ADVANCED_PAUSE_MESSAGE_INSERT : ADVANCED_PAUSE_MESSAGE_WAITING);
421 428
   #endif
422 429
   SERIAL_ECHO_START();
423
-  SERIAL_ERRORLNPGM(MSG_FILAMENT_CHANGE_INSERT);
430
+  serialprintPGM(is_reload ? PSTR(_PMSG(MSG_FILAMENT_CHANGE_INSERT) "\n") : PSTR(_PMSG(MSG_FILAMENT_CHANGE_WAIT) "\n"));
431
+}
432
+
433
+void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep_count/*=0*/ DXC_ARGS) {
434
+  bool nozzle_timed_out = false;
435
+
436
+  show_continue_prompt(is_reload);
424 437
 
425 438
   #if HAS_BUZZER
426 439
     filament_change_beep(max_beep_count, true);
@@ -447,24 +460,18 @@ void wait_for_filament_reload(const int8_t max_beep_count/*=0*/ DXC_ARGS) {
447 460
       filament_change_beep(max_beep_count);
448 461
     #endif
449 462
 
450
-    // If the nozzle has timed out, wait for the user to press the button to re-heat the nozzle, then
451
-    // re-heat the nozzle, re-show the insert screen, restart the idle timers, and start over
463
+    // If the nozzle has timed out...
452 464
     if (!nozzle_timed_out)
453
-      HOTEND_LOOP()
454
-        nozzle_timed_out |= thermalManager.is_heater_idle(e);
465
+      HOTEND_LOOP() nozzle_timed_out |= thermalManager.is_heater_idle(e);
455 466
 
467
+    // Wait for the user to press the button to re-heat the nozzle, then
468
+    // re-heat the nozzle, re-show the continue prompt, restart idle timers, start over
456 469
     if (nozzle_timed_out) {
457 470
       #if HAS_LCD_MENU
458
-        lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE);
471
+        lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_HEAT);
459 472
       #endif
460 473
       SERIAL_ECHO_START();
461
-      #if HAS_LCD_MENU && ENABLED(EMERGENCY_PARSER)
462
-        SERIAL_ECHOLNPGM(MSG_FILAMENT_CHANGE_HEAT);
463
-      #elif ENABLED(EMERGENCY_PARSER)
464
-        SERIAL_ECHOLNPGM(MSG_FILAMENT_CHANGE_HEAT_M108);
465
-      #else
466
-        SERIAL_ECHOLNPGM(MSG_FILAMENT_CHANGE_HEAT_LCD);
467
-      #endif
474
+      SERIAL_ECHOLNPGM(_PMSG(MSG_FILAMENT_CHANGE_HEAT));
468 475
 
469 476
       // Wait for LCD click or M108
470 477
       while (wait_for_user) idle(true);
@@ -475,17 +482,8 @@ void wait_for_filament_reload(const int8_t max_beep_count/*=0*/ DXC_ARGS) {
475 482
       // Wait for the heaters to reach the target temperatures
476 483
       ensure_safe_temperature();
477 484
 
478
-      #if HAS_LCD_MENU
479
-        lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT);
480
-      #endif
481
-      SERIAL_ECHO_START();
482
-      #if HAS_LCD_MENU && ENABLED(EMERGENCY_PARSER)
483
-        SERIAL_ECHOLNPGM(MSG_FILAMENT_CHANGE_INSERT);
484
-      #elif ENABLED(EMERGENCY_PARSER)
485
-        SERIAL_ECHOLNPGM(MSG_FILAMENT_CHANGE_INSERT_M108);
486
-      #else
487
-        SERIAL_ECHOLNPGM(MSG_FILAMENT_CHANGE_INSERT_LCD);
488
-      #endif
485
+      // Show the prompt to continue
486
+      show_continue_prompt(is_reload);
489 487
 
490 488
       // Start the heater idle timers
491 489
       const millis_t nozzle_timeout = (millis_t)(PAUSE_PARK_NOZZLE_TIMEOUT) * 1000UL;
@@ -493,7 +491,7 @@ void wait_for_filament_reload(const int8_t max_beep_count/*=0*/ DXC_ARGS) {
493 491
       HOTEND_LOOP()
494 492
         thermalManager.start_heater_idle_timer(e, nozzle_timeout);
495 493
 
496
-      wait_for_user = true; // Wait for user to load filament
494
+      wait_for_user = true;
497 495
       nozzle_timed_out = false;
498 496
 
499 497
       #if HAS_BUZZER

+ 6
- 4
Marlin/src/feature/pause.h View File

@@ -44,18 +44,20 @@ enum AdvancedPauseMode : char {
44 44
 
45 45
 enum AdvancedPauseMessage : char {
46 46
   ADVANCED_PAUSE_MESSAGE_INIT,
47
+  ADVANCED_PAUSE_MESSAGE_WAITING,
47 48
   ADVANCED_PAUSE_MESSAGE_UNLOAD,
48 49
   ADVANCED_PAUSE_MESSAGE_INSERT,
49 50
   ADVANCED_PAUSE_MESSAGE_LOAD,
50
-  ADVANCED_PAUSE_MESSAGE_PURGE,
51 51
   #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
52 52
     ADVANCED_PAUSE_MESSAGE_CONTINUOUS_PURGE,
53
+  #else
54
+    ADVANCED_PAUSE_MESSAGE_PURGE,
53 55
   #endif
54 56
   ADVANCED_PAUSE_MESSAGE_OPTION,
55 57
   ADVANCED_PAUSE_MESSAGE_RESUME,
56 58
   ADVANCED_PAUSE_MESSAGE_STATUS,
57
-  ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE,
58
-  ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT
59
+  ADVANCED_PAUSE_MESSAGE_HEAT,
60
+  ADVANCED_PAUSE_MESSAGE_HEATING
59 61
 };
60 62
 
61 63
 enum AdvancedPauseMenuResponse : char {
@@ -84,7 +86,7 @@ void do_pause_e_move(const float &length, const float &fr);
84 86
 
85 87
 bool pause_print(const float &retract, const point_t &park_point, const float &unload_length=0, const bool show_lcd=false DXC_PARAMS);
86 88
 
87
-void wait_for_filament_reload(const int8_t max_beep_count=0 DXC_PARAMS);
89
+void wait_for_confirmation(const bool is_reload=false, const int8_t max_beep_count=0 DXC_PARAMS);
88 90
 
89 91
 void resume_print(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=ADVANCED_PAUSE_PURGE_LENGTH, const int8_t max_beep_count=0 DXC_PARAMS);
90 92
 

+ 2
- 2
Marlin/src/gcode/feature/pause/M125.cpp View File

@@ -71,8 +71,8 @@ void GcodeSuite::M125() {
71 71
   const bool job_running = print_job_timer.isRunning();
72 72
 
73 73
   if (pause_print(retract, park_point) && !IS_SD_PRINTING()) {
74
-    wait_for_filament_reload(); // Wait for lcd click or M108
75
-    resume_print();             // Return to print position and continue
74
+    wait_for_confirmation();  // Wait for lcd click or M108
75
+    resume_print();           // Return to print position and continue
76 76
   }
77 77
 
78 78
   if (job_running) print_job_timer.start();

+ 1
- 1
Marlin/src/gcode/feature/pause/M600.cpp View File

@@ -131,7 +131,7 @@ void GcodeSuite::M600() {
131 131
   const bool job_running = print_job_timer.isRunning();
132 132
 
133 133
   if (pause_print(retract, park_point, unload_length, true DXC_PASS)) {
134
-    wait_for_filament_reload(beep_count DXC_PASS);
134
+    wait_for_confirmation(true, beep_count DXC_PASS);
135 135
     resume_print(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, beep_count DXC_PASS);
136 136
   }
137 137
 

+ 35
- 28
Marlin/src/lcd/language/language_en.h View File

@@ -1097,63 +1097,70 @@
1097 1097
 //                        ...or up to 2 lines on a 3-line display
1098 1098
 //
1099 1099
 #if LCD_HEIGHT >= 4
1100
-  #ifndef MSG_FILAMENT_CHANGE_INIT_1
1101
-    #define MSG_FILAMENT_CHANGE_INIT_1          _UxGT("Wait for start")
1102
-    #define MSG_FILAMENT_CHANGE_INIT_2          _UxGT("of the filament")
1103
-    #define MSG_FILAMENT_CHANGE_INIT_3          _UxGT("change")
1100
+  #ifndef MSG_ADVANCED_PAUSE_WAITING_1
1101
+    #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Press button")
1102
+    #define MSG_ADVANCED_PAUSE_WAITING_2      _UxGT("to resume print")
1104 1103
   #endif
1105
-  #ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
1106
-    #define MSG_FILAMENT_CHANGE_UNLOAD_1        _UxGT("Wait for")
1107
-    #define MSG_FILAMENT_CHANGE_UNLOAD_2        _UxGT("filament unload")
1104
+  #ifndef MSG_FILAMENT_CHANGE_INIT_1
1105
+    #define MSG_FILAMENT_CHANGE_INIT_1        _UxGT("Wait for")
1106
+    #define MSG_FILAMENT_CHANGE_INIT_2        _UxGT("filament change")
1107
+    #define MSG_FILAMENT_CHANGE_INIT_3        _UxGT("to start")
1108 1108
   #endif
1109 1109
   #ifndef MSG_FILAMENT_CHANGE_INSERT_1
1110
-    #define MSG_FILAMENT_CHANGE_INSERT_1        _UxGT("Insert filament")
1111
-    #define MSG_FILAMENT_CHANGE_INSERT_2        _UxGT("and press button")
1112
-    #define MSG_FILAMENT_CHANGE_INSERT_3        _UxGT("to continue...")
1110
+    #define MSG_FILAMENT_CHANGE_INSERT_1      _UxGT("Insert filament")
1111
+    #define MSG_FILAMENT_CHANGE_INSERT_2      _UxGT("and press button")
1112
+    #define MSG_FILAMENT_CHANGE_INSERT_3      _UxGT("to continue")
1113 1113
   #endif
1114 1114
   #ifndef MSG_FILAMENT_CHANGE_HEAT_1
1115
-    #define MSG_FILAMENT_CHANGE_HEAT_1          _UxGT("Press button to")
1116
-    #define MSG_FILAMENT_CHANGE_HEAT_2          _UxGT("heat nozzle.")
1115
+    #define MSG_FILAMENT_CHANGE_HEAT_1        _UxGT("Press button")
1116
+    #define MSG_FILAMENT_CHANGE_HEAT_2        _UxGT("to heat nozzle")
1117 1117
   #endif
1118 1118
   #ifndef MSG_FILAMENT_CHANGE_HEATING_1
1119
-    #define MSG_FILAMENT_CHANGE_HEATING_1       _UxGT("Heating nozzle")
1120
-    #define MSG_FILAMENT_CHANGE_HEATING_2       _UxGT("Please wait...")
1119
+    #define MSG_FILAMENT_CHANGE_HEATING_1     _UxGT("Nozzle heating")
1120
+    #define MSG_FILAMENT_CHANGE_HEATING_2     _UxGT("Please wait...")
1121
+  #endif
1122
+  #ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
1123
+    #define MSG_FILAMENT_CHANGE_UNLOAD_1      _UxGT("Wait for")
1124
+    #define MSG_FILAMENT_CHANGE_UNLOAD_2      _UxGT("filament unload")
1121 1125
   #endif
1122 1126
   #ifndef MSG_FILAMENT_CHANGE_LOAD_1
1123
-    #define MSG_FILAMENT_CHANGE_LOAD_1          _UxGT("Wait for")
1124
-    #define MSG_FILAMENT_CHANGE_LOAD_2          _UxGT("filament load")
1127
+    #define MSG_FILAMENT_CHANGE_LOAD_1        _UxGT("Wait for")
1128
+    #define MSG_FILAMENT_CHANGE_LOAD_2        _UxGT("filament load")
1125 1129
   #endif
1126 1130
   #ifndef MSG_FILAMENT_CHANGE_PURGE_1
1127
-    #define MSG_FILAMENT_CHANGE_PURGE_1         _UxGT("Wait for")
1128
-    #define MSG_FILAMENT_CHANGE_PURGE_2         _UxGT("filament purge")
1131
+    #define MSG_FILAMENT_CHANGE_PURGE_1       _UxGT("Wait for")
1132
+    #define MSG_FILAMENT_CHANGE_PURGE_2       _UxGT("filament purge")
1129 1133
   #endif
1130 1134
   #ifndef MSG_FILAMENT_CHANGE_RESUME_1
1131
-    #define MSG_FILAMENT_CHANGE_RESUME_1        _UxGT("Wait for print")
1132
-    #define MSG_FILAMENT_CHANGE_RESUME_2        _UxGT("to resume")
1135
+    #define MSG_FILAMENT_CHANGE_RESUME_1      _UxGT("Wait for print")
1136
+    #define MSG_FILAMENT_CHANGE_RESUME_2      _UxGT("to resume...")
1133 1137
   #endif
1134 1138
 #else // LCD_HEIGHT < 4
1139
+  #ifndef MSG_ADVANCED_PAUSE_WAITING_1
1140
+    #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Click to continue")
1141
+  #endif
1135 1142
   #ifndef MSG_FILAMENT_CHANGE_INIT_1
1136
-    #define MSG_FILAMENT_CHANGE_INIT_1          _UxGT("Please wait...")
1143
+    #define MSG_FILAMENT_CHANGE_INIT_1        _UxGT("Please wait...")
1137 1144
   #endif
1138 1145
   #ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
1139
-    #define MSG_FILAMENT_CHANGE_UNLOAD_1        _UxGT("Ejecting...")
1146
+    #define MSG_FILAMENT_CHANGE_UNLOAD_1      _UxGT("Ejecting...")
1140 1147
   #endif
1141 1148
   #ifndef MSG_FILAMENT_CHANGE_INSERT_1
1142
-    #define MSG_FILAMENT_CHANGE_INSERT_1        _UxGT("Insert and Click")
1149
+    #define MSG_FILAMENT_CHANGE_INSERT_1      _UxGT("Insert and Click")
1143 1150
   #endif
1144 1151
   #ifndef MSG_FILAMENT_CHANGE_HEAT_1
1145
-    #define MSG_FILAMENT_CHANGE_HEAT_1          _UxGT("Click to heat")
1152
+    #define MSG_FILAMENT_CHANGE_HEAT_1        _UxGT("Click to heat")
1146 1153
   #endif
1147 1154
   #ifndef MSG_FILAMENT_CHANGE_HEATING_1
1148
-    #define MSG_FILAMENT_CHANGE_HEATING_1       _UxGT("Heating...")
1155
+    #define MSG_FILAMENT_CHANGE_HEATING_1     _UxGT("Heating...")
1149 1156
   #endif
1150 1157
   #ifndef MSG_FILAMENT_CHANGE_LOAD_1
1151
-    #define MSG_FILAMENT_CHANGE_LOAD_1          _UxGT("Loading...")
1158
+    #define MSG_FILAMENT_CHANGE_LOAD_1        _UxGT("Loading...")
1152 1159
   #endif
1153 1160
   #ifndef MSG_FILAMENT_CHANGE_PURGE_1
1154
-    #define MSG_FILAMENT_CHANGE_PURGE_1         _UxGT("Purging...")
1161
+    #define MSG_FILAMENT_CHANGE_PURGE_1       _UxGT("Purging...")
1155 1162
   #endif
1156 1163
   #ifndef MSG_FILAMENT_CHANGE_RESUME_1
1157
-    #define MSG_FILAMENT_CHANGE_RESUME_1        _UxGT("Resuming...")
1164
+    #define MSG_FILAMENT_CHANGE_RESUME_1      _UxGT("Resuming...")
1158 1165
   #endif
1159 1166
 #endif // LCD_HEIGHT < 4

+ 106
- 163
Marlin/src/lcd/menu/menu_filament.cpp View File

@@ -354,208 +354,151 @@ void menu_advanced_pause_option() {
354 354
   END_MENU();
355 355
 }
356 356
 
357
-void lcd_advanced_pause_init_message() {
357
+//
358
+// ADVANCED_PAUSE_FEATURE message screens
359
+//
360
+
361
+void _lcd_advanced_pause_message(PGM_P const msg1, PGM_P const msg2=NULL, PGM_P const msg3=NULL) {
358 362
   START_SCREEN();
359 363
   STATIC_ITEM_P(advanced_pause_header(), true, true);
360
-  STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_1);
361
-  #ifdef MSG_FILAMENT_CHANGE_INIT_2
362
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_2);
363
-    #define __FC_LINES_A 3
364
-  #else
365
-    #define __FC_LINES_A 2
366
-  #endif
367
-  #ifdef MSG_FILAMENT_CHANGE_INIT_3
368
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_3);
369
-    #define _FC_LINES_A (__FC_LINES_A + 1)
370
-  #else
371
-    #define _FC_LINES_A __FC_LINES_A
372
-  #endif
373
-  #if LCD_HEIGHT > _FC_LINES_A + 1
374
-    STATIC_ITEM(" ");
375
-  #endif
364
+  STATIC_ITEM_P(msg1);
365
+  if (msg2) STATIC_ITEM_P(msg2);
366
+  if (msg3) STATIC_ITEM_P(msg3);
367
+  if ((!!msg2) + (!!msg3) + 2 < LCD_HEIGHT - 1) STATIC_ITEM(" ");
376 368
   HOTEND_STATUS_ITEM();
377 369
   END_SCREEN();
378 370
 }
379 371
 
372
+void lcd_advanced_pause_init_message() {
373
+  _lcd_advanced_pause_message(MSG_FILAMENT_CHANGE_INIT_1
374
+    #ifdef MSG_FILAMENT_CHANGE_INIT_2
375
+      , MSG_FILAMENT_CHANGE_INIT_2
376
+      #ifdef MSG_FILAMENT_CHANGE_INIT_3
377
+        , MSG_FILAMENT_CHANGE_INIT_3
378
+      #endif
379
+    #endif
380
+  );
381
+}
382
+
380 383
 void lcd_advanced_pause_unload_message() {
381
-  START_SCREEN();
382
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
383
-  STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_1);
384
-  #ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
385
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_2);
386
-    #define __FC_LINES_B 3
387
-  #else
388
-    #define __FC_LINES_B 2
389
-  #endif
390
-  #ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
391
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_3);
392
-    #define _FC_LINES_B (__FC_LINES_B + 1)
393
-  #else
394
-    #define _FC_LINES_B __FC_LINES_B
395
-  #endif
396
-  #if LCD_HEIGHT > _FC_LINES_B + 1
397
-    STATIC_ITEM(" ");
398
-  #endif
399
-  HOTEND_STATUS_ITEM();
400
-  END_SCREEN();
384
+  _lcd_advanced_pause_message(MSG_FILAMENT_CHANGE_UNLOAD_1
385
+    #ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
386
+      , MSG_FILAMENT_CHANGE_UNLOAD_2
387
+      #ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
388
+        , MSG_FILAMENT_CHANGE_UNLOAD_3
389
+      #endif
390
+    #endif
391
+  );
401 392
 }
402 393
 
403
-void lcd_advanced_pause_wait_for_nozzles_to_heat() {
404
-  START_SCREEN();
405
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
406
-  STATIC_ITEM(MSG_FILAMENT_CHANGE_HEATING_1);
407
-  #ifdef MSG_FILAMENT_CHANGE_HEATING_2
408
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_HEATING_2);
409
-    #define _FC_LINES_C 3
410
-  #else
411
-    #define _FC_LINES_C 2
412
-  #endif
413
-  #if LCD_HEIGHT > _FC_LINES_C + 1
414
-    STATIC_ITEM(" ");
415
-  #endif
416
-  HOTEND_STATUS_ITEM();
417
-  END_SCREEN();
394
+void lcd_advanced_pause_heating_message() {
395
+  _lcd_advanced_pause_message(MSG_FILAMENT_CHANGE_HEATING_1
396
+    #ifdef MSG_FILAMENT_CHANGE_HEATING_2
397
+      , MSG_FILAMENT_CHANGE_HEATING_2
398
+      #ifdef MSG_FILAMENT_CHANGE_HEATING_3
399
+        , MSG_FILAMENT_CHANGE_HEATING_3
400
+      #endif
401
+    #endif
402
+  );
418 403
 }
419 404
 
420
-void lcd_advanced_pause_heat_nozzle() {
421
-  START_SCREEN();
422
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
423
-  STATIC_ITEM(MSG_FILAMENT_CHANGE_HEAT_1);
424
-  #ifdef MSG_FILAMENT_CHANGE_INSERT_2
425
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_HEAT_2);
426
-    #define _FC_LINES_D 3
427
-  #else
428
-    #define _FC_LINES_D 2
429
-  #endif
430
-  #if LCD_HEIGHT > _FC_LINES_D + 1
431
-    STATIC_ITEM(" ");
432
-  #endif
433
-  HOTEND_STATUS_ITEM();
434
-  END_SCREEN();
405
+void lcd_advanced_pause_heat_message() {
406
+  _lcd_advanced_pause_message(MSG_FILAMENT_CHANGE_HEAT_1
407
+    #ifdef MSG_FILAMENT_CHANGE_HEAT_2
408
+      , MSG_FILAMENT_CHANGE_HEAT_2
409
+      #ifdef MSG_FILAMENT_CHANGE_HEAT_3
410
+        , MSG_FILAMENT_CHANGE_HEAT_3
411
+      #endif
412
+    #endif
413
+  );
435 414
 }
436 415
 
437 416
 void lcd_advanced_pause_insert_message() {
438
-  START_SCREEN();
439
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
440
-  STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_1);
441
-  #ifdef MSG_FILAMENT_CHANGE_INSERT_2
442
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_2);
443
-    #define __FC_LINES_E 3
444
-  #else
445
-    #define __FC_LINES_E 2
446
-  #endif
447
-  #ifdef MSG_FILAMENT_CHANGE_INSERT_3
448
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_3);
449
-    #define _FC_LINES_E (__FC_LINES_E + 1)
450
-  #else
451
-    #define _FC_LINES_E __FC_LINES_E
452
-  #endif
453
-  #if LCD_HEIGHT > _FC_LINES_E + 1
454
-    STATIC_ITEM(" ");
455
-  #endif
456
-  HOTEND_STATUS_ITEM();
457
-  END_SCREEN();
417
+  _lcd_advanced_pause_message(MSG_FILAMENT_CHANGE_INSERT_1
418
+    #ifdef MSG_FILAMENT_CHANGE_INSERT_2
419
+      , MSG_FILAMENT_CHANGE_INSERT_2
420
+      #ifdef MSG_FILAMENT_CHANGE_INSERT_3
421
+        , MSG_FILAMENT_CHANGE_INSERT_3
422
+      #endif
423
+    #endif
424
+  );
458 425
 }
459 426
 
460 427
 void lcd_advanced_pause_load_message() {
461
-  START_SCREEN();
462
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
463
-  STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_1);
464
-  #ifdef MSG_FILAMENT_CHANGE_LOAD_2
465
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_2);
466
-    #define __FC_LINES_F 3
467
-  #else
468
-    #define __FC_LINES_F 2
469
-  #endif
470
-  #ifdef MSG_FILAMENT_CHANGE_LOAD_3
471
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_3);
472
-    #define _FC_LINES_F (__FC_LINES_F + 1)
473
-  #else
474
-    #define _FC_LINES_F __FC_LINES_F
475
-  #endif
476
-  #if LCD_HEIGHT > _FC_LINES_F + 1
477
-    STATIC_ITEM(" ");
478
-  #endif
479
-  HOTEND_STATUS_ITEM();
480
-  END_SCREEN();
428
+  _lcd_advanced_pause_message(MSG_FILAMENT_CHANGE_LOAD_1
429
+    #ifdef MSG_FILAMENT_CHANGE_LOAD_2
430
+      , MSG_FILAMENT_CHANGE_LOAD_2
431
+      #ifdef MSG_FILAMENT_CHANGE_LOAD_3
432
+        , MSG_FILAMENT_CHANGE_LOAD_3
433
+      #endif
434
+    #endif
435
+  );
436
+}
437
+
438
+void lcd_advanced_pause_waiting_message() {
439
+  _lcd_advanced_pause_message(MSG_ADVANCED_PAUSE_WAITING_1
440
+    #ifdef MSG_ADVANCED_PAUSE_WAITING_2
441
+      , MSG_ADVANCED_PAUSE_WAITING_2
442
+      #ifdef MSG_ADVANCED_PAUSE_WAITING_3
443
+        , MSG_ADVANCED_PAUSE_WAITING_3
444
+      #endif
445
+    #endif
446
+  );
447
+}
448
+
449
+void lcd_advanced_pause_resume_message() {
450
+  _lcd_advanced_pause_message(MSG_FILAMENT_CHANGE_RESUME_1
451
+    #ifdef MSG_FILAMENT_CHANGE_RESUME_2
452
+      , MSG_FILAMENT_CHANGE_RESUME_2
453
+      #ifdef MSG_FILAMENT_CHANGE_RESUME_3
454
+        , MSG_FILAMENT_CHANGE_RESUME_3
455
+      #endif
456
+    #endif
457
+  );
481 458
 }
482 459
 
483 460
 void lcd_advanced_pause_purge_message() {
484 461
   START_SCREEN();
485
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
486 462
   STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_1);
487 463
   #ifdef MSG_FILAMENT_CHANGE_PURGE_2
488 464
     STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_2);
489
-    #define __FC_LINES_G 3
490
-  #else
491
-    #define __FC_LINES_G 2
465
+    #ifdef MSG_FILAMENT_CHANGE_PURGE_3
466
+      STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_3);
467
+    #endif
492 468
   #endif
493
-  #ifdef MSG_FILAMENT_CHANGE_PURGE_3
494
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_3);
495
-    #define _FC_LINES_G (__FC_LINES_G + 1)
469
+  #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
470
+    #define _PURGE_BASE 3
496 471
   #else
497
-    #define _FC_LINES_G __FC_LINES_G
472
+    #define _PURGE_BASE 2
498 473
   #endif
499
-  #if LCD_HEIGHT > _FC_LINES_G + 1
474
+  #if (_PURGE_BASE + defined(MSG_FILAMENT_CHANGE_PURGE_2) + defined(MSG_FILAMENT_CHANGE_PURGE_3)) < LCD_HEIGHT - 1
500 475
     STATIC_ITEM(" ");
501 476
   #endif
502 477
   HOTEND_STATUS_ITEM();
503
-  END_SCREEN();
504
-}
505
-
506
-#if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
507
-  void menu_advanced_pause_continuous_purge() {
508
-    START_SCREEN();
509
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_1);
510
-    #ifdef MSG_FILAMENT_CHANGE_PURGE_2
511
-      STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_2);
512
-      #define __FC_LINES_G 3
513
-    #else
514
-      #define __FC_LINES_G 2
515
-    #endif
516
-    #ifdef MSG_FILAMENT_CHANGE_PURGE_3
517
-      STATIC_ITEM(MSG_FILAMENT_CHANGE_PURGE_3);
518
-      #define _FC_LINES_G (__FC_LINES_G + 1)
519
-    #else
520
-      #define _FC_LINES_G __FC_LINES_G
521
-    #endif
522
-    #if LCD_HEIGHT > _FC_LINES_G + 1
523
-      STATIC_ITEM(" ");
524
-    #endif
525
-    HOTEND_STATUS_ITEM();
478
+  #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
526 479
     STATIC_ITEM(MSG_USERWAIT);
527
-    END_SCREEN();
528
-  }
529
-#endif
530
-
531
-void lcd_advanced_pause_resume_message() {
532
-  START_SCREEN();
533
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
534
-  STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_1);
535
-  #ifdef MSG_FILAMENT_CHANGE_RESUME_2
536
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_2);
537
-  #endif
538
-  #ifdef MSG_FILAMENT_CHANGE_RESUME_3
539
-    STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_3);
540 480
   #endif
541 481
   END_SCREEN();
542 482
 }
543 483
 
544 484
 FORCE_INLINE screenFunc_t ap_message_screen(const AdvancedPauseMessage message) {
545 485
   switch (message) {
546
-    case ADVANCED_PAUSE_MESSAGE_INIT:                     return lcd_advanced_pause_init_message;
547
-    case ADVANCED_PAUSE_MESSAGE_UNLOAD:                   return lcd_advanced_pause_unload_message;
548
-    case ADVANCED_PAUSE_MESSAGE_INSERT:                   return lcd_advanced_pause_insert_message;
549
-    case ADVANCED_PAUSE_MESSAGE_LOAD:                     return lcd_advanced_pause_load_message;
550
-    case ADVANCED_PAUSE_MESSAGE_PURGE:                    return lcd_advanced_pause_purge_message;
551
-    case ADVANCED_PAUSE_MESSAGE_RESUME:                   return lcd_advanced_pause_resume_message;
552
-    case ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE:     return lcd_advanced_pause_heat_nozzle;
553
-    case ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT: return lcd_advanced_pause_wait_for_nozzles_to_heat;
554
-    case ADVANCED_PAUSE_MESSAGE_OPTION:                   advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_WAIT_FOR;
555
-                                                          return menu_advanced_pause_option;
486
+    case ADVANCED_PAUSE_MESSAGE_INIT:    return lcd_advanced_pause_init_message;
487
+    case ADVANCED_PAUSE_MESSAGE_UNLOAD:  return lcd_advanced_pause_unload_message;
488
+    case ADVANCED_PAUSE_MESSAGE_WAITING: return lcd_advanced_pause_waiting_message;
489
+    case ADVANCED_PAUSE_MESSAGE_INSERT:  return lcd_advanced_pause_insert_message;
490
+    case ADVANCED_PAUSE_MESSAGE_LOAD:    return lcd_advanced_pause_load_message;
556 491
     #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
557
-      case ADVANCED_PAUSE_MESSAGE_CONTINUOUS_PURGE:       return menu_advanced_pause_continuous_purge;
492
+      case ADVANCED_PAUSE_MESSAGE_CONTINUOUS_PURGE:
493
+    #else
494
+      case ADVANCED_PAUSE_MESSAGE_PURGE:
558 495
     #endif
496
+                                         return lcd_advanced_pause_purge_message;
497
+    case ADVANCED_PAUSE_MESSAGE_RESUME:  return lcd_advanced_pause_resume_message;
498
+    case ADVANCED_PAUSE_MESSAGE_HEAT:    return lcd_advanced_pause_heat_message;
499
+    case ADVANCED_PAUSE_MESSAGE_HEATING: return lcd_advanced_pause_heating_message;
500
+    case ADVANCED_PAUSE_MESSAGE_OPTION:  advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_WAIT_FOR;
501
+                                         return menu_advanced_pause_option;
559 502
     case ADVANCED_PAUSE_MESSAGE_STATUS:
560 503
     default: break;
561 504
   }

Loading…
Cancel
Save