Fix Pause Print message and behavior (#13394)
This commit is contained in:
parent
f5bcc00570
commit
9a515cbd32
18 changed files with 174 additions and 154 deletions
|
@ -66,10 +66,10 @@ void FWRetract::reset() {
|
||||||
settings.retract_length = RETRACT_LENGTH;
|
settings.retract_length = RETRACT_LENGTH;
|
||||||
settings.retract_feedrate_mm_s = RETRACT_FEEDRATE;
|
settings.retract_feedrate_mm_s = RETRACT_FEEDRATE;
|
||||||
settings.retract_zraise = RETRACT_ZRAISE;
|
settings.retract_zraise = RETRACT_ZRAISE;
|
||||||
settings.retract_recover_length = RETRACT_RECOVER_LENGTH;
|
settings.retract_recover_extra = RETRACT_RECOVER_LENGTH;
|
||||||
settings.retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE;
|
settings.retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE;
|
||||||
settings.swap_retract_length = RETRACT_LENGTH_SWAP;
|
settings.swap_retract_length = RETRACT_LENGTH_SWAP;
|
||||||
settings.swap_retract_recover_length = RETRACT_RECOVER_LENGTH_SWAP;
|
settings.swap_retract_recover_extra = RETRACT_RECOVER_LENGTH_SWAP;
|
||||||
settings.swap_retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE_SWAP;
|
settings.swap_retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE_SWAP;
|
||||||
current_hop = 0.0;
|
current_hop = 0.0;
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ void FWRetract::retract(const bool retracting
|
||||||
planner.synchronize(); // Wait for move to complete
|
planner.synchronize(); // Wait for move to complete
|
||||||
}
|
}
|
||||||
|
|
||||||
const float extra_recover = swapping ? settings.swap_retract_recover_length : settings.retract_recover_length;
|
const float extra_recover = swapping ? settings.swap_retract_recover_extra : settings.retract_recover_extra;
|
||||||
if (extra_recover != 0.0) {
|
if (extra_recover != 0.0) {
|
||||||
current_position[E_AXIS] -= extra_recover; // Adjust the current E position by the extra amount to recover
|
current_position[E_AXIS] -= extra_recover; // Adjust the current E position by the extra amount to recover
|
||||||
sync_plan_position_e(); // Sync the planner position so the extra amount is recovered
|
sync_plan_position_e(); // Sync the planner position so the extra amount is recovered
|
||||||
|
|
|
@ -33,10 +33,10 @@ typedef struct {
|
||||||
float retract_length, // M207 S - G10 Retract length
|
float retract_length, // M207 S - G10 Retract length
|
||||||
retract_feedrate_mm_s, // M207 F - G10 Retract feedrate
|
retract_feedrate_mm_s, // M207 F - G10 Retract feedrate
|
||||||
retract_zraise, // M207 Z - G10 Retract hop size
|
retract_zraise, // M207 Z - G10 Retract hop size
|
||||||
retract_recover_length, // M208 S - G11 Recover length
|
retract_recover_extra, // M208 S - G11 Recover length
|
||||||
retract_recover_feedrate_mm_s, // M208 F - G11 Recover feedrate
|
retract_recover_feedrate_mm_s, // M208 F - G11 Recover feedrate
|
||||||
swap_retract_length, // M207 W - G10 Swap Retract length
|
swap_retract_length, // M207 W - G10 Swap Retract length
|
||||||
swap_retract_recover_length, // M208 W - G11 Swap Recover length
|
swap_retract_recover_extra, // M208 W - G11 Swap Recover length
|
||||||
swap_retract_recover_feedrate_mm_s; // M208 R - G11 Swap Recover feedrate
|
swap_retract_recover_feedrate_mm_s; // M208 R - G11 Swap Recover feedrate
|
||||||
} fwretract_settings_t;
|
} fwretract_settings_t;
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ void host_action(const char * const pstr, const bool eol) {
|
||||||
case PROMPT_FILAMENT_RUNOUT:
|
case PROMPT_FILAMENT_RUNOUT:
|
||||||
msg = PSTR("FILAMENT_RUNOUT");
|
msg = PSTR("FILAMENT_RUNOUT");
|
||||||
if (response == 0) {
|
if (response == 0) {
|
||||||
advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE;
|
pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE;
|
||||||
host_action_prompt_end(); // Close current prompt
|
host_action_prompt_end(); // Close current prompt
|
||||||
host_action_prompt_begin(PSTR("Paused"));
|
host_action_prompt_begin(PSTR("Paused"));
|
||||||
host_action_prompt_button(PSTR("Purge More"));
|
host_action_prompt_button(PSTR("Purge More"));
|
||||||
|
@ -133,7 +133,7 @@ void host_action(const char * const pstr, const bool eol) {
|
||||||
runout.reset();
|
runout.reset();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_RESUME_PRINT;
|
pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PROMPT_USER_CONTINUE:
|
case PROMPT_USER_CONTINUE:
|
||||||
|
|
|
@ -58,7 +58,9 @@
|
||||||
|
|
||||||
static float resume_position[XYZE];
|
static float resume_position[XYZE];
|
||||||
|
|
||||||
AdvancedPauseMenuResponse advanced_pause_menu_response;
|
PauseMode pause_mode = PAUSE_MODE_PAUSE_PRINT;
|
||||||
|
|
||||||
|
PauseMenuResponse pause_menu_response;
|
||||||
|
|
||||||
fil_change_settings_t fc_settings[EXTRUDERS];
|
fil_change_settings_t fc_settings[EXTRUDERS];
|
||||||
|
|
||||||
|
@ -68,6 +70,7 @@ fil_change_settings_t fc_settings[EXTRUDERS];
|
||||||
|
|
||||||
#if HAS_BUZZER
|
#if HAS_BUZZER
|
||||||
static void filament_change_beep(const int8_t max_beep_count, const bool init=false) {
|
static void filament_change_beep(const int8_t max_beep_count, const bool init=false) {
|
||||||
|
if (pause_mode == PAUSE_MODE_PAUSE_PRINT) return;
|
||||||
static millis_t next_buzz = 0;
|
static millis_t next_buzz = 0;
|
||||||
static int8_t runout_beep = 0;
|
static int8_t runout_beep = 0;
|
||||||
|
|
||||||
|
@ -93,7 +96,7 @@ fil_change_settings_t fc_settings[EXTRUDERS];
|
||||||
*
|
*
|
||||||
* Returns 'true' if heating was completed, 'false' for abort
|
* Returns 'true' if heating was completed, 'false' for abort
|
||||||
*/
|
*/
|
||||||
static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_SAME) {
|
static bool ensure_safe_temperature(const PauseMode mode=PAUSE_MODE_SAME) {
|
||||||
|
|
||||||
#if ENABLED(PREVENT_COLD_EXTRUSION)
|
#if ENABLED(PREVENT_COLD_EXTRUSION)
|
||||||
if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
|
if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
|
||||||
|
@ -103,7 +106,7 @@ static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_HEATING, mode);
|
lcd_pause_show_message(PAUSE_MESSAGE_HEATING, mode);
|
||||||
#else
|
#else
|
||||||
UNUSED(mode);
|
UNUSED(mode);
|
||||||
#endif
|
#endif
|
||||||
|
@ -134,7 +137,7 @@ void do_pause_e_move(const float &length, const float &fr_mm_s) {
|
||||||
*/
|
*/
|
||||||
bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_length/*=0*/, const float &purge_length/*=0*/, const int8_t max_beep_count/*=0*/,
|
bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_length/*=0*/, const float &purge_length/*=0*/, const int8_t max_beep_count/*=0*/,
|
||||||
const bool show_lcd/*=false*/, const bool pause_for_user/*=false*/,
|
const bool show_lcd/*=false*/, const bool pause_for_user/*=false*/,
|
||||||
const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
|
const PauseMode mode/*=PAUSE_MODE_PAUSE_PRINT*/
|
||||||
DXC_ARGS
|
DXC_ARGS
|
||||||
) {
|
) {
|
||||||
#if !HAS_LCD_MENU
|
#if !HAS_LCD_MENU
|
||||||
|
@ -143,14 +146,14 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
||||||
|
|
||||||
if (!ensure_safe_temperature(mode)) {
|
if (!ensure_safe_temperature(mode)) {
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS, mode);
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS, mode);
|
||||||
#endif
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pause_for_user) {
|
if (pause_for_user) {
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT, mode);
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_INSERT, mode);
|
||||||
#endif
|
#endif
|
||||||
SERIAL_ECHO_MSG(MSG_FILAMENT_CHANGE_INSERT);
|
SERIAL_ECHO_MSG(MSG_FILAMENT_CHANGE_INSERT);
|
||||||
|
|
||||||
|
@ -186,7 +189,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, mode);
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_LOAD, mode);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE)
|
#if ENABLED(DUAL_X_CARRIAGE)
|
||||||
|
@ -222,7 +225,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
||||||
#if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
|
#if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_PURGE);
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_PURGE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wait_for_user = true;
|
wait_for_user = true;
|
||||||
|
@ -239,7 +242,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
||||||
if (purge_length > 0) {
|
if (purge_length > 0) {
|
||||||
// "Wait for filament purge"
|
// "Wait for filament purge"
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_PURGE);
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_PURGE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Extrude filament to get into hotend
|
// Extrude filament to get into hotend
|
||||||
|
@ -269,8 +272,8 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
||||||
if (show_lcd) {
|
if (show_lcd) {
|
||||||
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
||||||
wait_for_user = false;
|
wait_for_user = false;
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_OPTION);
|
lcd_pause_show_message(PAUSE_MESSAGE_OPTION);
|
||||||
while (advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_WAIT_FOR) idle(true);
|
while (pause_menu_response == PAUSE_RESPONSE_WAIT_FOR) idle(true);
|
||||||
KEEPALIVE_STATE(IN_HANDLER);
|
KEEPALIVE_STATE(IN_HANDLER);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -278,7 +281,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
||||||
// Keep looping if "Purge More" was selected
|
// Keep looping if "Purge More" was selected
|
||||||
} while (false
|
} while (false
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
|| (show_lcd && advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE)
|
|| (show_lcd && pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE)
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -298,7 +301,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
||||||
* Returns 'true' if unload was completed, 'false' for abort
|
* Returns 'true' if unload was completed, 'false' for abort
|
||||||
*/
|
*/
|
||||||
bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
||||||
const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
|
const PauseMode mode/*=PAUSE_MODE_PAUSE_PRINT*/
|
||||||
) {
|
) {
|
||||||
#if !HAS_LCD_MENU
|
#if !HAS_LCD_MENU
|
||||||
UNUSED(show_lcd);
|
UNUSED(show_lcd);
|
||||||
|
@ -306,14 +309,14 @@ bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
||||||
|
|
||||||
if (!ensure_safe_temperature(mode)) {
|
if (!ensure_safe_temperature(mode)) {
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, mode);
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_UNLOAD, mode);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Retract filament
|
// Retract filament
|
||||||
|
@ -387,7 +390,7 @@ bool pause_print(const float &retract, const point_t &park_point, const float &u
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
if (show_lcd) { // Show status screen
|
if (show_lcd) { // Show status screen
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
|
lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
|
||||||
LCD_MESSAGEPGM(MSG_M600_TOO_COLD);
|
LCD_MESSAGEPGM(MSG_M600_TOO_COLD);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -464,7 +467,7 @@ bool pause_print(const float &retract, const point_t &park_point, const float &u
|
||||||
|
|
||||||
void show_continue_prompt(const bool is_reload) {
|
void show_continue_prompt(const bool is_reload) {
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(is_reload ? ADVANCED_PAUSE_MESSAGE_INSERT : ADVANCED_PAUSE_MESSAGE_WAITING);
|
lcd_pause_show_message(is_reload ? PAUSE_MESSAGE_INSERT : PAUSE_MESSAGE_WAITING);
|
||||||
#endif
|
#endif
|
||||||
SERIAL_ECHO_START();
|
SERIAL_ECHO_START();
|
||||||
serialprintPGM(is_reload ? PSTR(_PMSG(MSG_FILAMENT_CHANGE_INSERT) "\n") : PSTR(_PMSG(MSG_FILAMENT_CHANGE_WAIT) "\n"));
|
serialprintPGM(is_reload ? PSTR(_PMSG(MSG_FILAMENT_CHANGE_INSERT) "\n") : PSTR(_PMSG(MSG_FILAMENT_CHANGE_WAIT) "\n"));
|
||||||
|
@ -510,7 +513,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
|
||||||
// re-heat the nozzle, re-show the continue prompt, restart idle timers, start over
|
// re-heat the nozzle, re-show the continue prompt, restart idle timers, start over
|
||||||
if (nozzle_timed_out) {
|
if (nozzle_timed_out) {
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_HEAT);
|
lcd_pause_show_message(PAUSE_MESSAGE_HEAT);
|
||||||
#endif
|
#endif
|
||||||
SERIAL_ECHO_MSG(_PMSG(MSG_FILAMENT_CHANGE_HEAT));
|
SERIAL_ECHO_MSG(_PMSG(MSG_FILAMENT_CHANGE_HEAT));
|
||||||
|
|
||||||
|
@ -597,10 +600,10 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nozzle_timed_out || thermalManager.hotEnoughToExtrude(active_extruder)) // Load the new filament
|
if (nozzle_timed_out || thermalManager.hotEnoughToExtrude(active_extruder)) // Load the new filament
|
||||||
load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, ADVANCED_PAUSE_MODE_PAUSE_PRINT DXC_PASS);
|
load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_PAUSE_PRINT DXC_PASS);
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_RESUME);
|
lcd_pause_show_message(PAUSE_MESSAGE_RESUME);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Intelligent resuming
|
// Intelligent resuming
|
||||||
|
@ -628,7 +631,7 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
|
||||||
planner.set_e_position_mm((destination[E_AXIS] = current_position[E_AXIS] = resume_position[E_AXIS]));
|
planner.set_e_position_mm((destination[E_AXIS] = current_position[E_AXIS] = resume_position[E_AXIS]));
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
|
lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ACTION_ON_RESUMED
|
#ifdef ACTION_ON_RESUMED
|
||||||
|
|
|
@ -36,34 +36,36 @@ typedef struct {
|
||||||
|
|
||||||
#include "../libs/nozzle.h"
|
#include "../libs/nozzle.h"
|
||||||
|
|
||||||
enum AdvancedPauseMode : char {
|
enum PauseMode : char {
|
||||||
ADVANCED_PAUSE_MODE_SAME,
|
PAUSE_MODE_SAME,
|
||||||
ADVANCED_PAUSE_MODE_PAUSE_PRINT,
|
PAUSE_MODE_PAUSE_PRINT,
|
||||||
ADVANCED_PAUSE_MODE_LOAD_FILAMENT,
|
PAUSE_MODE_LOAD_FILAMENT,
|
||||||
ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT
|
PAUSE_MODE_UNLOAD_FILAMENT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AdvancedPauseMessage : char {
|
enum PauseMessage : char {
|
||||||
ADVANCED_PAUSE_MESSAGE_INIT,
|
PAUSE_MESSAGE_PAUSING,
|
||||||
ADVANCED_PAUSE_MESSAGE_WAITING,
|
PAUSE_MESSAGE_CHANGING,
|
||||||
ADVANCED_PAUSE_MESSAGE_UNLOAD,
|
PAUSE_MESSAGE_WAITING,
|
||||||
ADVANCED_PAUSE_MESSAGE_INSERT,
|
PAUSE_MESSAGE_UNLOAD,
|
||||||
ADVANCED_PAUSE_MESSAGE_LOAD,
|
PAUSE_MESSAGE_INSERT,
|
||||||
ADVANCED_PAUSE_MESSAGE_PURGE,
|
PAUSE_MESSAGE_LOAD,
|
||||||
ADVANCED_PAUSE_MESSAGE_OPTION,
|
PAUSE_MESSAGE_PURGE,
|
||||||
ADVANCED_PAUSE_MESSAGE_RESUME,
|
PAUSE_MESSAGE_OPTION,
|
||||||
ADVANCED_PAUSE_MESSAGE_STATUS,
|
PAUSE_MESSAGE_RESUME,
|
||||||
ADVANCED_PAUSE_MESSAGE_HEAT,
|
PAUSE_MESSAGE_STATUS,
|
||||||
ADVANCED_PAUSE_MESSAGE_HEATING
|
PAUSE_MESSAGE_HEAT,
|
||||||
|
PAUSE_MESSAGE_HEATING
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AdvancedPauseMenuResponse : char {
|
enum PauseMenuResponse : char {
|
||||||
ADVANCED_PAUSE_RESPONSE_WAIT_FOR,
|
PAUSE_RESPONSE_WAIT_FOR,
|
||||||
ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE,
|
PAUSE_RESPONSE_EXTRUDE_MORE,
|
||||||
ADVANCED_PAUSE_RESPONSE_RESUME_PRINT
|
PAUSE_RESPONSE_RESUME_PRINT
|
||||||
};
|
};
|
||||||
|
|
||||||
extern AdvancedPauseMenuResponse advanced_pause_menu_response;
|
extern PauseMode pause_mode;
|
||||||
|
extern PauseMenuResponse pause_menu_response;
|
||||||
|
|
||||||
extern fil_change_settings_t fc_settings[EXTRUDERS];
|
extern fil_change_settings_t fc_settings[EXTRUDERS];
|
||||||
|
|
||||||
|
@ -88,8 +90,8 @@ void wait_for_confirmation(const bool is_reload=false, const int8_t max_beep_cou
|
||||||
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);
|
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);
|
||||||
|
|
||||||
bool load_filament(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=0, const int8_t max_beep_count=0, const bool show_lcd=false,
|
bool load_filament(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=0, const int8_t max_beep_count=0, const bool show_lcd=false,
|
||||||
const bool pause_for_user=false, const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT DXC_PARAMS);
|
const bool pause_for_user=false, const PauseMode mode=PAUSE_MODE_PAUSE_PRINT DXC_PARAMS);
|
||||||
|
|
||||||
bool unload_filament(const float &unload_length, const bool show_lcd=false, const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT);
|
bool unload_filament(const float &unload_length, const bool show_lcd=false, const PauseMode mode=PAUSE_MODE_PAUSE_PRINT);
|
||||||
|
|
||||||
#endif // ADVANCED_PAUSE_FEATURE
|
#endif // ADVANCED_PAUSE_FEATURE
|
||||||
|
|
|
@ -45,16 +45,16 @@ void GcodeSuite::M207() {
|
||||||
/**
|
/**
|
||||||
* M208: Set firmware un-retraction values
|
* M208: Set firmware un-retraction values
|
||||||
*
|
*
|
||||||
* S[+units] retract_recover_length (in addition to M207 S*)
|
* S[+units] retract_recover_extra (in addition to M207 S*)
|
||||||
* W[+units] swap_retract_recover_length (multi-extruder)
|
* W[+units] swap_retract_recover_extra (multi-extruder)
|
||||||
* F[units/min] retract_recover_feedrate_mm_s
|
* F[units/min] retract_recover_feedrate_mm_s
|
||||||
* R[units/min] swap_retract_recover_feedrate_mm_s
|
* R[units/min] swap_retract_recover_feedrate_mm_s
|
||||||
*/
|
*/
|
||||||
void GcodeSuite::M208() {
|
void GcodeSuite::M208() {
|
||||||
if (parser.seen('S')) fwretract.settings.retract_recover_length = parser.value_axis_units(E_AXIS);
|
if (parser.seen('S')) fwretract.settings.retract_recover_extra = parser.value_axis_units(E_AXIS);
|
||||||
if (parser.seen('F')) fwretract.settings.retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
if (parser.seen('F')) fwretract.settings.retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||||
if (parser.seen('R')) fwretract.settings.swap_retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
if (parser.seen('R')) fwretract.settings.swap_retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||||
if (parser.seen('W')) fwretract.settings.swap_retract_recover_length = parser.value_axis_units(E_AXIS);
|
if (parser.seen('W')) fwretract.settings.swap_retract_recover_extra = parser.value_axis_units(E_AXIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(FWRETRACT_AUTORETRACT)
|
#if ENABLED(FWRETRACT_AUTORETRACT)
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* M125: Store current position and move to filament change position.
|
* M125: Store current position and move to parking position.
|
||||||
* Called on pause (by M25) to prevent material leaking onto the
|
* Called on pause (by M25) to prevent material leaking onto the
|
||||||
* object. On resume (M24) the head will be moved back and the
|
* object. On resume (M24) the head will be moved back and the
|
||||||
* print will resume.
|
* print will resume.
|
||||||
|
@ -79,14 +79,14 @@ void GcodeSuite::M125() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT);
|
lcd_pause_show_message(PAUSE_MESSAGE_PAUSING, PAUSE_MODE_PAUSE_PRINT);
|
||||||
const bool show_lcd = parser.seenval('P');
|
const bool show_lcd = parser.seenval('P');
|
||||||
#else
|
#else
|
||||||
constexpr bool show_lcd = false;
|
constexpr bool show_lcd = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pause_print(retract, park_point, 0, show_lcd)) {
|
if (pause_print(retract, park_point, 0, show_lcd)) {
|
||||||
if (!sd_printing || show_lcd ) {
|
if (!sd_printing || show_lcd) {
|
||||||
wait_for_confirmation(false, 0);
|
wait_for_confirmation(false, 0);
|
||||||
resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0);
|
resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ void GcodeSuite::M600() {
|
||||||
|
|
||||||
// Show initial "wait for start" message
|
// Show initial "wait for start" message
|
||||||
#if HAS_LCD_MENU && DISABLED(MMU2_MENUS)
|
#if HAS_LCD_MENU && DISABLED(MMU2_MENUS)
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, target_extruder);
|
lcd_pause_show_message(PAUSE_MESSAGE_CHANGING, PAUSE_MODE_PAUSE_PRINT, target_extruder);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(HOME_BEFORE_FILAMENT_CHANGE)
|
#if ENABLED(HOME_BEFORE_FILAMENT_CHANGE)
|
||||||
|
|
|
@ -68,7 +68,7 @@ void GcodeSuite::M701() {
|
||||||
|
|
||||||
// Show initial "wait for load" message
|
// Show initial "wait for load" message
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, ADVANCED_PAUSE_MODE_LOAD_FILAMENT, target_extruder);
|
lcd_pause_show_message(PAUSE_MESSAGE_LOAD, PAUSE_MODE_LOAD_FILAMENT, target_extruder);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
|
#if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
|
||||||
|
@ -90,7 +90,7 @@ void GcodeSuite::M701() {
|
||||||
const float fast_load_length = ABS(parser.seen('L') ? parser.value_axis_units(E_AXIS)
|
const float fast_load_length = ABS(parser.seen('L') ? parser.value_axis_units(E_AXIS)
|
||||||
: fc_settings[active_extruder].load_length);
|
: fc_settings[active_extruder].load_length);
|
||||||
load_filament(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, FILAMENT_CHANGE_ALERT_BEEPS,
|
load_filament(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, FILAMENT_CHANGE_ALERT_BEEPS,
|
||||||
true, thermalManager.still_heating(target_extruder), ADVANCED_PAUSE_MODE_LOAD_FILAMENT
|
true, thermalManager.still_heating(target_extruder), PAUSE_MODE_LOAD_FILAMENT
|
||||||
#if ENABLED(DUAL_X_CARRIAGE)
|
#if ENABLED(DUAL_X_CARRIAGE)
|
||||||
, target_extruder
|
, target_extruder
|
||||||
#endif
|
#endif
|
||||||
|
@ -109,7 +109,7 @@ void GcodeSuite::M701() {
|
||||||
|
|
||||||
// Show status screen
|
// Show status screen
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
|
lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ void GcodeSuite::M702() {
|
||||||
|
|
||||||
// Show initial "wait for unload" message
|
// Show initial "wait for unload" message
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, target_extruder);
|
lcd_pause_show_message(PAUSE_MESSAGE_UNLOAD, PAUSE_MODE_UNLOAD_FILAMENT, target_extruder);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
|
#if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
|
||||||
|
@ -161,7 +161,7 @@ void GcodeSuite::M702() {
|
||||||
if (!parser.seenval('T')) {
|
if (!parser.seenval('T')) {
|
||||||
HOTEND_LOOP() {
|
HOTEND_LOOP() {
|
||||||
if (e != active_extruder) tool_change(e, 0, false);
|
if (e != active_extruder) tool_change(e, 0, false);
|
||||||
unload_filament(-fc_settings[e].unload_length, true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT);
|
unload_filament(-fc_settings[e].unload_length, true, PAUSE_MODE_UNLOAD_FILAMENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -171,7 +171,7 @@ void GcodeSuite::M702() {
|
||||||
const float unload_length = -ABS(parser.seen('U') ? parser.value_axis_units(E_AXIS)
|
const float unload_length = -ABS(parser.seen('U') ? parser.value_axis_units(E_AXIS)
|
||||||
: fc_settings[target_extruder].unload_length);
|
: fc_settings[target_extruder].unload_length);
|
||||||
|
|
||||||
unload_filament(unload_length, true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT);
|
unload_filament(unload_length, true, PAUSE_MODE_UNLOAD_FILAMENT);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ void GcodeSuite::M702() {
|
||||||
|
|
||||||
// Show status screen
|
// Show status screen
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
|
lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1278,6 +1278,9 @@
|
||||||
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Press button")
|
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Press button")
|
||||||
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("to resume print")
|
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("to resume print")
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef MSG_PAUSE_PRINT_INIT_1
|
||||||
|
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parking...")
|
||||||
|
#endif
|
||||||
#ifndef MSG_FILAMENT_CHANGE_INIT_1
|
#ifndef MSG_FILAMENT_CHANGE_INIT_1
|
||||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wait for")
|
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wait for")
|
||||||
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filament change")
|
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filament change")
|
||||||
|
|
|
@ -256,8 +256,8 @@
|
||||||
#define MSG_CONTROL_RETRACT_SWAP _UxGT("换手回抽长度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
|
#define MSG_CONTROL_RETRACT_SWAP _UxGT("换手回抽长度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
|
||||||
#define MSG_CONTROL_RETRACTF _UxGT("回抽速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
|
#define MSG_CONTROL_RETRACTF _UxGT("回抽速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
|
||||||
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift
|
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift
|
||||||
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回抽恢复长度mm") //"UnRet +mm" retract_recover_length, additional recover length (mm, added to retract length when recovering)
|
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回抽恢复长度mm") //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering)
|
||||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("换手回抽恢复长度mm") //"S UnRet+mm" swap_retract_recover_length, additional swap recover length (mm, added to retract length when recovering from extruder change)
|
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("换手回抽恢复长度mm") //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change)
|
||||||
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回抽恢复后进料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
|
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回抽恢复后进料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
|
||||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V"
|
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V"
|
||||||
#define MSG_AUTORETRACT _UxGT("自动抽回") //"AutoRetr." autoretract_enabled,
|
#define MSG_AUTORETRACT _UxGT("自动抽回") //"AutoRetr." autoretract_enabled,
|
||||||
|
|
|
@ -256,8 +256,8 @@
|
||||||
#define MSG_CONTROL_RETRACT_SWAP _UxGT("換手回抽長度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
|
#define MSG_CONTROL_RETRACT_SWAP _UxGT("換手回抽長度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
|
||||||
#define MSG_CONTROL_RETRACTF _UxGT("回縮速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
|
#define MSG_CONTROL_RETRACTF _UxGT("回縮速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
|
||||||
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift
|
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift
|
||||||
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回縮恢復長度mm") //"UnRet +mm" retract_recover_length, additional recover length (mm, added to retract length when recovering)
|
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回縮恢復長度mm") //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering)
|
||||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("換手回縮恢復長度mm") //"S UnRet+mm" swap_retract_recover_length, additional swap recover length (mm, added to retract length when recovering from extruder change)
|
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("換手回縮恢復長度mm") //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change)
|
||||||
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回縮恢復後進料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
|
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回縮恢復後進料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
|
||||||
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V"
|
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V"
|
||||||
#define MSG_AUTORETRACT _UxGT("自動回縮") //"AutoRetr." autoretract_enabled,
|
#define MSG_AUTORETRACT _UxGT("自動回縮") //"AutoRetr." autoretract_enabled,
|
||||||
|
|
|
@ -196,9 +196,9 @@ static void lcd_factory_settings() {
|
||||||
#endif
|
#endif
|
||||||
MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACTF, &fwretract.settings.retract_feedrate_mm_s, 1, 999);
|
MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACTF, &fwretract.settings.retract_feedrate_mm_s, 1, 999);
|
||||||
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_ZHOP, &fwretract.settings.retract_zraise, 0, 999);
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_ZHOP, &fwretract.settings.retract_zraise, 0, 999);
|
||||||
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER, &fwretract.settings.retract_recover_length, -100, 100);
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER, &fwretract.settings.retract_recover_extra, -100, 100);
|
||||||
#if EXTRUDERS > 1
|
#if EXTRUDERS > 1
|
||||||
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER_SWAP, &fwretract.settings.swap_retract_recover_length, -100, 100);
|
MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER_SWAP, &fwretract.settings.swap_retract_recover_extra, -100, 100);
|
||||||
#endif
|
#endif
|
||||||
MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACT_RECOVERF, &fwretract.settings.retract_recover_feedrate_mm_s, 1, 999);
|
MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACT_RECOVERF, &fwretract.settings.retract_recover_feedrate_mm_s, 1, 999);
|
||||||
#if EXTRUDERS > 1
|
#if EXTRUDERS > 1
|
||||||
|
|
|
@ -34,19 +34,20 @@
|
||||||
#if HAS_FILAMENT_SENSOR
|
#if HAS_FILAMENT_SENSOR
|
||||||
#include "../../feature/runout.h"
|
#include "../../feature/runout.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Change Filament > Change/Unload/Load Filament
|
// Change Filament > Change/Unload/Load Filament
|
||||||
//
|
//
|
||||||
static AdvancedPauseMode _change_filament_temp_mode; // =ADVANCED_PAUSE_MODE_PAUSE_PRINT
|
static PauseMode _change_filament_temp_mode; // =PAUSE_MODE_PAUSE_PRINT
|
||||||
static int8_t _change_filament_temp_extruder; // =0
|
static int8_t _change_filament_temp_extruder; // =0
|
||||||
|
|
||||||
inline PGM_P _change_filament_temp_command() {
|
inline PGM_P _change_filament_temp_command() {
|
||||||
switch (_change_filament_temp_mode) {
|
switch (_change_filament_temp_mode) {
|
||||||
case ADVANCED_PAUSE_MODE_LOAD_FILAMENT:
|
case PAUSE_MODE_LOAD_FILAMENT:
|
||||||
return PSTR("M701 T%d");
|
return PSTR("M701 T%d");
|
||||||
case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT:
|
case PAUSE_MODE_UNLOAD_FILAMENT:
|
||||||
return _change_filament_temp_extruder >= 0 ? PSTR("M702 T%d") : PSTR("M702 ;%d");
|
return _change_filament_temp_extruder >= 0 ? PSTR("M702 T%d") : PSTR("M702 ;%d");
|
||||||
case ADVANCED_PAUSE_MODE_PAUSE_PRINT:
|
case PAUSE_MODE_PAUSE_PRINT:
|
||||||
default:
|
default:
|
||||||
return PSTR("M600 B0 T%d");
|
return PSTR("M600 B0 T%d");
|
||||||
}
|
}
|
||||||
|
@ -63,18 +64,18 @@ inline void _lcd_change_filament_temp_1_func() { _change_filament_temp(ui.pre
|
||||||
inline void _lcd_change_filament_temp_2_func() { _change_filament_temp(ui.preheat_hotend_temp[1]); }
|
inline void _lcd_change_filament_temp_2_func() { _change_filament_temp(ui.preheat_hotend_temp[1]); }
|
||||||
inline void _lcd_change_filament_temp_custom_cb() { _change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target); }
|
inline void _lcd_change_filament_temp_custom_cb() { _change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target); }
|
||||||
|
|
||||||
static PGM_P change_filament_header(const AdvancedPauseMode mode) {
|
static PGM_P change_filament_header(const PauseMode mode) {
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case ADVANCED_PAUSE_MODE_LOAD_FILAMENT:
|
case PAUSE_MODE_LOAD_FILAMENT:
|
||||||
return PSTR(MSG_FILAMENTLOAD);
|
return PSTR(MSG_FILAMENTLOAD);
|
||||||
case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT:
|
case PAUSE_MODE_UNLOAD_FILAMENT:
|
||||||
return PSTR(MSG_FILAMENTUNLOAD);
|
return PSTR(MSG_FILAMENTUNLOAD);
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
return PSTR(MSG_FILAMENTCHANGE);
|
return PSTR(MSG_FILAMENTCHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _menu_temp_filament_op(const AdvancedPauseMode mode, const int8_t extruder) {
|
void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
||||||
_change_filament_temp_mode = mode;
|
_change_filament_temp_mode = mode;
|
||||||
_change_filament_temp_extruder = extruder;
|
_change_filament_temp_extruder = extruder;
|
||||||
START_MENU();
|
START_MENU();
|
||||||
|
@ -105,28 +106,28 @@ void _menu_temp_filament_op(const AdvancedPauseMode mode, const int8_t extruder)
|
||||||
END_MENU();
|
END_MENU();
|
||||||
}
|
}
|
||||||
#if E_STEPPERS
|
#if E_STEPPERS
|
||||||
void menu_temp_e0_filament_change() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 0); }
|
void menu_temp_e0_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 0); }
|
||||||
void menu_temp_e0_filament_load() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 0); }
|
void menu_temp_e0_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); }
|
||||||
void menu_temp_e0_filament_unload() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 0); }
|
void menu_temp_e0_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); }
|
||||||
#if E_STEPPERS > 1
|
#if E_STEPPERS > 1
|
||||||
void menu_temp_e1_filament_change() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 1); }
|
void menu_temp_e1_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 1); }
|
||||||
void menu_temp_e1_filament_load() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 1); }
|
void menu_temp_e1_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 1); }
|
||||||
void menu_temp_e1_filament_unload() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 1); }
|
void menu_temp_e1_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); }
|
||||||
#if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS)
|
#if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS)
|
||||||
void menu_unload_filament_all_temp() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, -1); }
|
void menu_unload_filament_all_temp() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); }
|
||||||
#endif
|
#endif
|
||||||
#if E_STEPPERS > 2
|
#if E_STEPPERS > 2
|
||||||
void menu_temp_e2_filament_change() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 2); }
|
void menu_temp_e2_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 2); }
|
||||||
void menu_temp_e2_filament_load() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 2); }
|
void menu_temp_e2_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); }
|
||||||
void menu_temp_e2_filament_unload() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 2); }
|
void menu_temp_e2_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); }
|
||||||
#if E_STEPPERS > 3
|
#if E_STEPPERS > 3
|
||||||
void menu_temp_e3_filament_change() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 3); }
|
void menu_temp_e3_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 3); }
|
||||||
void menu_temp_e3_filament_load() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 3); }
|
void menu_temp_e3_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); }
|
||||||
void menu_temp_e3_filament_unload() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 3); }
|
void menu_temp_e3_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); }
|
||||||
#if E_STEPPERS > 4
|
#if E_STEPPERS > 4
|
||||||
void menu_temp_e4_filament_change() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 4); }
|
void menu_temp_e4_filament_change() { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 4); }
|
||||||
void menu_temp_e4_filament_load() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 4); }
|
void menu_temp_e4_filament_load() { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); }
|
||||||
void menu_temp_e4_filament_unload() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 4); }
|
void menu_temp_e4_filament_unload() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); }
|
||||||
#endif // E_STEPPERS > 4
|
#endif // E_STEPPERS > 4
|
||||||
#endif // E_STEPPERS > 3
|
#endif // E_STEPPERS > 3
|
||||||
#endif // E_STEPPERS > 2
|
#endif // E_STEPPERS > 2
|
||||||
|
@ -310,14 +311,13 @@ void _menu_temp_filament_op(const AdvancedPauseMode mode, const int8_t extruder)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static AdvancedPauseMode advanced_pause_mode = ADVANCED_PAUSE_MODE_PAUSE_PRINT;
|
|
||||||
static uint8_t hotend_status_extruder = 0;
|
static uint8_t hotend_status_extruder = 0;
|
||||||
|
|
||||||
static PGM_P advanced_pause_header() {
|
static PGM_P pause_header() {
|
||||||
switch (advanced_pause_mode) {
|
switch (pause_mode) {
|
||||||
case ADVANCED_PAUSE_MODE_LOAD_FILAMENT:
|
case PAUSE_MODE_LOAD_FILAMENT:
|
||||||
return PSTR(MSG_FILAMENT_CHANGE_HEADER_LOAD);
|
return PSTR(MSG_FILAMENT_CHANGE_HEADER_LOAD);
|
||||||
case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT:
|
case PAUSE_MODE_UNLOAD_FILAMENT:
|
||||||
return PSTR(MSG_FILAMENT_CHANGE_HEADER_UNLOAD);
|
return PSTR(MSG_FILAMENT_CHANGE_HEADER_UNLOAD);
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
@ -340,26 +340,26 @@ static PGM_P advanced_pause_header() {
|
||||||
++_thisItemNr; \
|
++_thisItemNr; \
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
void lcd_advanced_pause_resume_print() {
|
void lcd_pause_resume_print() {
|
||||||
advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_RESUME_PRINT;
|
pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT;
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_extrude_more() {
|
void lcd_pause_extrude_more() {
|
||||||
advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE;
|
pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void menu_advanced_pause_option() {
|
void menu_pause_option() {
|
||||||
START_MENU();
|
START_MENU();
|
||||||
#if LCD_HEIGHT > 2
|
#if LCD_HEIGHT > 2
|
||||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false);
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false);
|
||||||
#endif
|
#endif
|
||||||
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_PURGE, lcd_advanced_pause_extrude_more);
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_PURGE, lcd_pause_extrude_more);
|
||||||
#if HAS_FILAMENT_SENSOR
|
#if HAS_FILAMENT_SENSOR
|
||||||
if (runout.filament_ran_out)
|
if (runout.filament_ran_out)
|
||||||
MENU_ITEM_EDIT_CALLBACK(bool, MSG_RUNOUT_SENSOR, &runout.enabled, runout.reset);
|
MENU_ITEM_EDIT_CALLBACK(bool, MSG_RUNOUT_SENSOR, &runout.enabled, runout.reset);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_advanced_pause_resume_print);
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_pause_resume_print);
|
||||||
END_MENU();
|
END_MENU();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -367,9 +367,9 @@ void menu_advanced_pause_option() {
|
||||||
// ADVANCED_PAUSE_FEATURE message screens
|
// ADVANCED_PAUSE_FEATURE message screens
|
||||||
//
|
//
|
||||||
|
|
||||||
void _lcd_advanced_pause_message(PGM_P const msg1, PGM_P const msg2=NULL, PGM_P const msg3=NULL) {
|
void _lcd_pause_message(PGM_P const msg1, PGM_P const msg2=NULL, PGM_P const msg3=NULL) {
|
||||||
START_SCREEN();
|
START_SCREEN();
|
||||||
STATIC_ITEM_P(advanced_pause_header(), true, true);
|
STATIC_ITEM_P(pause_header(), true, true);
|
||||||
STATIC_ITEM_P(msg1);
|
STATIC_ITEM_P(msg1);
|
||||||
if (msg2) STATIC_ITEM_P(msg2);
|
if (msg2) STATIC_ITEM_P(msg2);
|
||||||
if (msg3) STATIC_ITEM_P(msg3);
|
if (msg3) STATIC_ITEM_P(msg3);
|
||||||
|
@ -378,8 +378,19 @@ void _lcd_advanced_pause_message(PGM_P const msg1, PGM_P const msg2=NULL, PGM_P
|
||||||
END_SCREEN();
|
END_SCREEN();
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_init_message() {
|
void lcd_pause_pausing_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_INIT_1)
|
_lcd_pause_message(PSTR(MSG_PAUSE_PRINT_INIT_1)
|
||||||
|
#ifdef MSG_PAUSE_PRINT_INIT_2
|
||||||
|
, PSTR(MSG_PAUSE_PRINT_INIT_2)
|
||||||
|
#ifdef MSG_PAUSE_PRINT_INIT_3
|
||||||
|
, PSTR(MSG_PAUSE_PRINT_INIT_3)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_pause_changing_message() {
|
||||||
|
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_INIT_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_INIT_2
|
#ifdef MSG_FILAMENT_CHANGE_INIT_2
|
||||||
, PSTR(MSG_FILAMENT_CHANGE_INIT_2)
|
, PSTR(MSG_FILAMENT_CHANGE_INIT_2)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_INIT_3
|
#ifdef MSG_FILAMENT_CHANGE_INIT_3
|
||||||
|
@ -389,8 +400,8 @@ void lcd_advanced_pause_init_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_unload_message() {
|
void lcd_pause_unload_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_UNLOAD_1)
|
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_UNLOAD_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
|
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
|
||||||
, PSTR(MSG_FILAMENT_CHANGE_UNLOAD_2)
|
, PSTR(MSG_FILAMENT_CHANGE_UNLOAD_2)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
|
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
|
||||||
|
@ -400,8 +411,8 @@ void lcd_advanced_pause_unload_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_heating_message() {
|
void lcd_pause_heating_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEATING_1)
|
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEATING_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_HEATING_2
|
#ifdef MSG_FILAMENT_CHANGE_HEATING_2
|
||||||
, PSTR(MSG_FILAMENT_CHANGE_HEATING_2)
|
, PSTR(MSG_FILAMENT_CHANGE_HEATING_2)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_HEATING_3
|
#ifdef MSG_FILAMENT_CHANGE_HEATING_3
|
||||||
|
@ -411,8 +422,8 @@ void lcd_advanced_pause_heating_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_heat_message() {
|
void lcd_pause_heat_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEAT_1)
|
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEAT_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_HEAT_2
|
#ifdef MSG_FILAMENT_CHANGE_HEAT_2
|
||||||
, PSTR(MSG_FILAMENT_CHANGE_HEAT_2)
|
, PSTR(MSG_FILAMENT_CHANGE_HEAT_2)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_HEAT_3
|
#ifdef MSG_FILAMENT_CHANGE_HEAT_3
|
||||||
|
@ -422,8 +433,8 @@ void lcd_advanced_pause_heat_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_insert_message() {
|
void lcd_pause_insert_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_INSERT_1)
|
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_INSERT_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_INSERT_2
|
#ifdef MSG_FILAMENT_CHANGE_INSERT_2
|
||||||
, PSTR(MSG_FILAMENT_CHANGE_INSERT_2)
|
, PSTR(MSG_FILAMENT_CHANGE_INSERT_2)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_INSERT_3
|
#ifdef MSG_FILAMENT_CHANGE_INSERT_3
|
||||||
|
@ -433,8 +444,8 @@ void lcd_advanced_pause_insert_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_load_message() {
|
void lcd_pause_load_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_LOAD_1)
|
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_LOAD_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_LOAD_2
|
#ifdef MSG_FILAMENT_CHANGE_LOAD_2
|
||||||
, PSTR(MSG_FILAMENT_CHANGE_LOAD_2)
|
, PSTR(MSG_FILAMENT_CHANGE_LOAD_2)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_LOAD_3
|
#ifdef MSG_FILAMENT_CHANGE_LOAD_3
|
||||||
|
@ -444,8 +455,8 @@ void lcd_advanced_pause_load_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_waiting_message() {
|
void lcd_pause_waiting_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_ADVANCED_PAUSE_WAITING_1)
|
_lcd_pause_message(PSTR(MSG_ADVANCED_PAUSE_WAITING_1)
|
||||||
#ifdef MSG_ADVANCED_PAUSE_WAITING_2
|
#ifdef MSG_ADVANCED_PAUSE_WAITING_2
|
||||||
, PSTR(MSG_ADVANCED_PAUSE_WAITING_2)
|
, PSTR(MSG_ADVANCED_PAUSE_WAITING_2)
|
||||||
#ifdef MSG_ADVANCED_PAUSE_WAITING_3
|
#ifdef MSG_ADVANCED_PAUSE_WAITING_3
|
||||||
|
@ -455,8 +466,8 @@ void lcd_advanced_pause_waiting_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_resume_message() {
|
void lcd_pause_resume_message() {
|
||||||
_lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_RESUME_1)
|
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_RESUME_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_RESUME_2
|
#ifdef MSG_FILAMENT_CHANGE_RESUME_2
|
||||||
, PSTR(MSG_FILAMENT_CHANGE_RESUME_2)
|
, PSTR(MSG_FILAMENT_CHANGE_RESUME_2)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_RESUME_3
|
#ifdef MSG_FILAMENT_CHANGE_RESUME_3
|
||||||
|
@ -466,8 +477,8 @@ void lcd_advanced_pause_resume_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_purge_message() {
|
void lcd_pause_purge_message() {
|
||||||
_lcd_advanced_pause_message(
|
_lcd_pause_message(
|
||||||
#if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
|
#if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
|
||||||
PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_1)
|
PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_1)
|
||||||
#ifdef MSG_FILAMENT_CHANGE_CONT_PURGE_2
|
#ifdef MSG_FILAMENT_CHANGE_CONT_PURGE_2
|
||||||
|
@ -488,31 +499,32 @@ void lcd_advanced_pause_purge_message() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
FORCE_INLINE screenFunc_t ap_message_screen(const AdvancedPauseMessage message) {
|
FORCE_INLINE screenFunc_t ap_message_screen(const PauseMessage message) {
|
||||||
switch (message) {
|
switch (message) {
|
||||||
case ADVANCED_PAUSE_MESSAGE_INIT: return lcd_advanced_pause_init_message;
|
case PAUSE_MESSAGE_PAUSING: return lcd_pause_pausing_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_UNLOAD: return lcd_advanced_pause_unload_message;
|
case PAUSE_MESSAGE_CHANGING: return lcd_pause_changing_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_WAITING: return lcd_advanced_pause_waiting_message;
|
case PAUSE_MESSAGE_UNLOAD: return lcd_pause_unload_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_INSERT: return lcd_advanced_pause_insert_message;
|
case PAUSE_MESSAGE_WAITING: return lcd_pause_waiting_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_LOAD: return lcd_advanced_pause_load_message;
|
case PAUSE_MESSAGE_INSERT: return lcd_pause_insert_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_PURGE: return lcd_advanced_pause_purge_message;
|
case PAUSE_MESSAGE_LOAD: return lcd_pause_load_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_RESUME: return lcd_advanced_pause_resume_message;
|
case PAUSE_MESSAGE_PURGE: return lcd_pause_purge_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_HEAT: return lcd_advanced_pause_heat_message;
|
case PAUSE_MESSAGE_RESUME: return lcd_pause_resume_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_HEATING: return lcd_advanced_pause_heating_message;
|
case PAUSE_MESSAGE_HEAT: return lcd_pause_heat_message;
|
||||||
case ADVANCED_PAUSE_MESSAGE_OPTION: advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_WAIT_FOR;
|
case PAUSE_MESSAGE_HEATING: return lcd_pause_heating_message;
|
||||||
return menu_advanced_pause_option;
|
case PAUSE_MESSAGE_OPTION: pause_menu_response = PAUSE_RESPONSE_WAIT_FOR;
|
||||||
case ADVANCED_PAUSE_MESSAGE_STATUS:
|
return menu_pause_option;
|
||||||
|
case PAUSE_MESSAGE_STATUS:
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_advanced_pause_show_message(
|
void lcd_pause_show_message(
|
||||||
const AdvancedPauseMessage message,
|
const PauseMessage message,
|
||||||
const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_SAME*/,
|
const PauseMode mode/*=PAUSE_MODE_SAME*/,
|
||||||
const uint8_t extruder/*=active_extruder*/
|
const uint8_t extruder/*=active_extruder*/
|
||||||
) {
|
) {
|
||||||
if (mode != ADVANCED_PAUSE_MODE_SAME) advanced_pause_mode = mode;
|
if (mode != PAUSE_MODE_SAME) pause_mode = mode;
|
||||||
hotend_status_extruder = extruder;
|
hotend_status_extruder = extruder;
|
||||||
const screenFunc_t next_screen = ap_message_screen(message);
|
const screenFunc_t next_screen = ap_message_screen(message);
|
||||||
if (next_screen) {
|
if (next_screen) {
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(PARK_HEAD_ON_PAUSE)
|
#if ENABLED(PARK_HEAD_ON_PAUSE)
|
||||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT); // Show message immediately to let user know about pause in progress
|
lcd_pause_show_message(PAUSE_MESSAGE_PAUSING, PAUSE_MODE_PAUSE_PRINT); // Show message immediately to let user know about pause in progress
|
||||||
enqueue_and_echo_commands_P(PSTR("M25 P\nM24"));
|
enqueue_and_echo_commands_P(PSTR("M25 P\nM24"));
|
||||||
#elif ENABLED(SDSUPPORT)
|
#elif ENABLED(SDSUPPORT)
|
||||||
enqueue_and_echo_commands_P(PSTR("M25"));
|
enqueue_and_echo_commands_P(PSTR("M25"));
|
||||||
|
|
|
@ -183,7 +183,7 @@ inline void action_mmu2_M600_loadCurrentFilamentToNozzle() { mmu2.loadFilamentTo
|
||||||
inline void action_mmu2_M600_unloadFilament() { mmu2.unload(); }
|
inline void action_mmu2_M600_unloadFilament() { mmu2.unload(); }
|
||||||
inline void action_mmu2_M600_resume() { mmuMenuWait = false; }
|
inline void action_mmu2_M600_resume() { mmuMenuWait = false; }
|
||||||
|
|
||||||
void menu_mmu2_advanced_pause() {
|
void menu_mmu2_pause() {
|
||||||
currentTool = mmu2.getCurrentTool();
|
currentTool = mmu2.getCurrentTool();
|
||||||
START_MENU();
|
START_MENU();
|
||||||
#if LCD_HEIGHT > 2
|
#if LCD_HEIGHT > 2
|
||||||
|
@ -198,7 +198,7 @@ void menu_mmu2_advanced_pause() {
|
||||||
|
|
||||||
void mmu2_M600() {
|
void mmu2_M600() {
|
||||||
ui.defer_status_screen(true);
|
ui.defer_status_screen(true);
|
||||||
ui.goto_screen(menu_mmu2_advanced_pause);
|
ui.goto_screen(menu_mmu2_pause);
|
||||||
mmuMenuWait = true;
|
mmuMenuWait = true;
|
||||||
while (mmuMenuWait) idle();
|
while (mmuMenuWait) idle();
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,8 +89,8 @@
|
||||||
extern float move_menu_scale;
|
extern float move_menu_scale;
|
||||||
|
|
||||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||||
void lcd_advanced_pause_show_message(const AdvancedPauseMessage message,
|
void lcd_pause_show_message(const PauseMessage message,
|
||||||
const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_SAME,
|
const PauseMode mode=PAUSE_MODE_SAME,
|
||||||
const uint8_t extruder=active_extruder);
|
const uint8_t extruder=active_extruder);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -2733,8 +2733,8 @@ void MarlinSettings::reset() {
|
||||||
CONFIG_ECHO_HEADING("Recover: S<length> F<units/m>");
|
CONFIG_ECHO_HEADING("Recover: S<length> F<units/m>");
|
||||||
CONFIG_ECHO_START();
|
CONFIG_ECHO_START();
|
||||||
SERIAL_ECHOLNPAIR(
|
SERIAL_ECHOLNPAIR(
|
||||||
" M208 S", LINEAR_UNIT(fwretract.settings.retract_recover_length)
|
" M208 S", LINEAR_UNIT(fwretract.settings.retract_recover_extra)
|
||||||
, " W", LINEAR_UNIT(fwretract.settings.swap_retract_recover_length)
|
, " W", LINEAR_UNIT(fwretract.settings.swap_retract_recover_extra)
|
||||||
, " F", MMS_TO_MMM(LINEAR_UNIT(fwretract.settings.retract_recover_feedrate_mm_s))
|
, " F", MMS_TO_MMM(LINEAR_UNIT(fwretract.settings.retract_recover_feedrate_mm_s))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Reference in a new issue