Browse Source

Enable Purge More / Resume with EP + Host Prompt (#21671)

Co-authored-by: Msq001 <alansayyeah@gmail.com>
BigTreeTech 4 years ago
parent
commit
a58276c4c1
No account linked to committer's email address

+ 2
- 2
Marlin/src/feature/host_actions.cpp View File

@@ -149,13 +149,13 @@ void host_action(PGM_P const pstr, const bool eol) {
149 149
         switch (response) {
150 150
 
151 151
           case 0: // "Purge More" button
152
-            #if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
152
+            #if BOTH(M600_PURGE_MORE_RESUMABLE, ADVANCED_PAUSE_FEATURE)
153 153
               pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE;  // Simulate menu selection (menu exits, doesn't extrude more)
154 154
             #endif
155 155
             break;
156 156
 
157 157
           case 1: // "Continue" / "Disable Runout" button
158
-            #if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
158
+            #if BOTH(M600_PURGE_MORE_RESUMABLE, ADVANCED_PAUSE_FEATURE)
159 159
               pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT;  // Simulate menu selection
160 160
             #endif
161 161
             #if HAS_FILAMENT_SENSOR

+ 8
- 4
Marlin/src/feature/pause.cpp View File

@@ -75,7 +75,7 @@
75 75
 
76 76
 static xyze_pos_t resume_position;
77 77
 
78
-#if HAS_LCD_MENU
78
+#if M600_PURGE_MORE_RESUMABLE
79 79
   PauseMenuResponse pause_menu_response;
80 80
   PauseMode pause_mode = PAUSE_MODE_PAUSE_PRINT;
81 81
 #endif
@@ -257,18 +257,22 @@ bool load_filament(const_float_t slow_load_length/*=0*/, const_float_t fast_load
257 257
 
258 258
       TERN_(HOST_PROMPT_SUPPORT, filament_load_host_prompt()); // Initiate another host prompt.
259 259
 
260
-      #if HAS_LCD_MENU
260
+      #if M600_PURGE_MORE_RESUMABLE
261 261
         if (show_lcd) {
262 262
           // Show "Purge More" / "Resume" menu and wait for reply
263 263
           KEEPALIVE_STATE(PAUSED_FOR_USER);
264 264
           wait_for_user = false;
265
-          ui.pause_show_message(PAUSE_MESSAGE_OPTION);
265
+          #if HAS_LCD_MENU
266
+            ui.pause_show_message(PAUSE_MESSAGE_OPTION); // Also sets PAUSE_RESPONSE_WAIT_FOR
267
+          #else
268
+            pause_menu_response = PAUSE_RESPONSE_WAIT_FOR;
269
+          #endif
266 270
           while (pause_menu_response == PAUSE_RESPONSE_WAIT_FOR) idle_no_sleep();
267 271
         }
268 272
       #endif
269 273
 
270 274
       // Keep looping if "Purge More" was selected
271
-    } while (TERN0(HAS_LCD_MENU, show_lcd && pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE));
275
+    } while (TERN0(M600_PURGE_MORE_RESUMABLE, show_lcd && pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE));
272 276
 
273 277
   #endif
274 278
   TERN_(HOST_PROMPT_SUPPORT, host_action_prompt_end());

+ 1
- 1
Marlin/src/feature/pause.h View File

@@ -59,7 +59,7 @@ enum PauseMessage : char {
59 59
   PAUSE_MESSAGE_HEATING
60 60
 };
61 61
 
62
-#if HAS_LCD_MENU
62
+#if M600_PURGE_MORE_RESUMABLE
63 63
   enum PauseMenuResponse : char {
64 64
     PAUSE_RESPONSE_WAIT_FOR,
65 65
     PAUSE_RESPONSE_EXTRUDE_MORE,

+ 10
- 2
Marlin/src/inc/Conditionals_post.h View File

@@ -2716,8 +2716,16 @@
2716 2716
   #define HEATER_IDLE_HANDLER 1
2717 2717
 #endif
2718 2718
 
2719
-#if ENABLED(ADVANCED_PAUSE_FEATURE) && !defined(FILAMENT_CHANGE_SLOW_LOAD_LENGTH)
2720
-  #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0
2719
+/**
2720
+ * Advanced Pause - Filament Change
2721
+ */
2722
+#if ENABLED(ADVANCED_PAUSE_FEATURE)
2723
+  #if HAS_LCD_MENU || BOTH(EMERGENCY_PARSER, HOST_PROMPT_SUPPORT)
2724
+    #define M600_PURGE_MORE_RESUMABLE 1
2725
+  #endif
2726
+  #ifndef FILAMENT_CHANGE_SLOW_LOAD_LENGTH
2727
+    #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0
2728
+  #endif
2721 2729
 #endif
2722 2730
 
2723 2731
 #if HAS_MULTI_EXTRUDER && !defined(TOOLCHANGE_FS_EXTRA_PRIME)

Loading…
Cancel
Save