Enable Purge More / Resume with EP + Host Prompt (#21671)
Co-authored-by: Msq001 <alansayyeah@gmail.com>
This commit is contained in:
parent
f075dd0db3
commit
a58276c4c1
@ -149,13 +149,13 @@ void host_action(PGM_P const pstr, const bool eol) {
|
|||||||
switch (response) {
|
switch (response) {
|
||||||
|
|
||||||
case 0: // "Purge More" button
|
case 0: // "Purge More" button
|
||||||
#if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
|
#if BOTH(M600_PURGE_MORE_RESUMABLE, ADVANCED_PAUSE_FEATURE)
|
||||||
pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE; // Simulate menu selection (menu exits, doesn't extrude more)
|
pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE; // Simulate menu selection (menu exits, doesn't extrude more)
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // "Continue" / "Disable Runout" button
|
case 1: // "Continue" / "Disable Runout" button
|
||||||
#if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE)
|
#if BOTH(M600_PURGE_MORE_RESUMABLE, ADVANCED_PAUSE_FEATURE)
|
||||||
pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT; // Simulate menu selection
|
pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT; // Simulate menu selection
|
||||||
#endif
|
#endif
|
||||||
#if HAS_FILAMENT_SENSOR
|
#if HAS_FILAMENT_SENSOR
|
||||||
|
@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
static xyze_pos_t resume_position;
|
static xyze_pos_t resume_position;
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if M600_PURGE_MORE_RESUMABLE
|
||||||
PauseMenuResponse pause_menu_response;
|
PauseMenuResponse pause_menu_response;
|
||||||
PauseMode pause_mode = PAUSE_MODE_PAUSE_PRINT;
|
PauseMode pause_mode = PAUSE_MODE_PAUSE_PRINT;
|
||||||
#endif
|
#endif
|
||||||
@ -257,18 +257,22 @@ bool load_filament(const_float_t slow_load_length/*=0*/, const_float_t fast_load
|
|||||||
|
|
||||||
TERN_(HOST_PROMPT_SUPPORT, filament_load_host_prompt()); // Initiate another host prompt.
|
TERN_(HOST_PROMPT_SUPPORT, filament_load_host_prompt()); // Initiate another host prompt.
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if M600_PURGE_MORE_RESUMABLE
|
||||||
if (show_lcd) {
|
if (show_lcd) {
|
||||||
// Show "Purge More" / "Resume" menu and wait for reply
|
// Show "Purge More" / "Resume" menu and wait for reply
|
||||||
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
||||||
wait_for_user = false;
|
wait_for_user = false;
|
||||||
ui.pause_show_message(PAUSE_MESSAGE_OPTION);
|
#if HAS_LCD_MENU
|
||||||
|
ui.pause_show_message(PAUSE_MESSAGE_OPTION); // Also sets PAUSE_RESPONSE_WAIT_FOR
|
||||||
|
#else
|
||||||
|
pause_menu_response = PAUSE_RESPONSE_WAIT_FOR;
|
||||||
|
#endif
|
||||||
while (pause_menu_response == PAUSE_RESPONSE_WAIT_FOR) idle_no_sleep();
|
while (pause_menu_response == PAUSE_RESPONSE_WAIT_FOR) idle_no_sleep();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Keep looping if "Purge More" was selected
|
// Keep looping if "Purge More" was selected
|
||||||
} while (TERN0(HAS_LCD_MENU, show_lcd && pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE));
|
} while (TERN0(M600_PURGE_MORE_RESUMABLE, show_lcd && pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
TERN_(HOST_PROMPT_SUPPORT, host_action_prompt_end());
|
TERN_(HOST_PROMPT_SUPPORT, host_action_prompt_end());
|
||||||
|
@ -59,7 +59,7 @@ enum PauseMessage : char {
|
|||||||
PAUSE_MESSAGE_HEATING
|
PAUSE_MESSAGE_HEATING
|
||||||
};
|
};
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if M600_PURGE_MORE_RESUMABLE
|
||||||
enum PauseMenuResponse : char {
|
enum PauseMenuResponse : char {
|
||||||
PAUSE_RESPONSE_WAIT_FOR,
|
PAUSE_RESPONSE_WAIT_FOR,
|
||||||
PAUSE_RESPONSE_EXTRUDE_MORE,
|
PAUSE_RESPONSE_EXTRUDE_MORE,
|
||||||
|
@ -2716,8 +2716,16 @@
|
|||||||
#define HEATER_IDLE_HANDLER 1
|
#define HEATER_IDLE_HANDLER 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(ADVANCED_PAUSE_FEATURE) && !defined(FILAMENT_CHANGE_SLOW_LOAD_LENGTH)
|
/**
|
||||||
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0
|
* Advanced Pause - Filament Change
|
||||||
|
*/
|
||||||
|
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||||
|
#if HAS_LCD_MENU || BOTH(EMERGENCY_PARSER, HOST_PROMPT_SUPPORT)
|
||||||
|
#define M600_PURGE_MORE_RESUMABLE 1
|
||||||
|
#endif
|
||||||
|
#ifndef FILAMENT_CHANGE_SLOW_LOAD_LENGTH
|
||||||
|
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_MULTI_EXTRUDER && !defined(TOOLCHANGE_FS_EXTRA_PRIME)
|
#if HAS_MULTI_EXTRUDER && !defined(TOOLCHANGE_FS_EXTRA_PRIME)
|
||||||
|
Loading…
Reference in New Issue
Block a user