Unify M600 and M125 pause features (#6407)

* Unify M600 and M125 pause features
* Cleanup per thinkyhead's comments
* Rename filament_change_menu_response to advanced_pause_menu_response
* Include HAS_BED_PROBE in QUIET_PROBING
* Update gMax example file
* is_idle() is out of scope without the braces
* Convert FT-i3-2020 to Advance Pause names...
* Allow pause even if not printing
This commit is contained in:
Thomas Moore
2017-05-26 13:01:02 -05:00
committed by Roxy-3D
parent 73ed0c63b4
commit fb5e0ffe16
54 changed files with 1092 additions and 847 deletions

View File

@ -126,16 +126,16 @@ uint16_t max_display_update_time = 0;
void lcd_info_menu();
#endif // LCD_INFO_MENU
#if ENABLED(FILAMENT_CHANGE_FEATURE)
void lcd_filament_change_toocold_menu();
void lcd_filament_change_option_menu();
void lcd_filament_change_init_message();
void lcd_filament_change_unload_message();
void lcd_filament_change_insert_message();
void lcd_filament_change_load_message();
void lcd_filament_change_heat_nozzle();
void lcd_filament_change_extrude_message();
void lcd_filament_change_resume_message();
#if ENABLED(ADVANCED_PAUSE_FEATURE)
void lcd_advanced_pause_toocold_menu();
void lcd_advanced_pause_option_menu();
void lcd_advanced_pause_init_message();
void lcd_advanced_pause_unload_message();
void lcd_advanced_pause_insert_message();
void lcd_advanced_pause_load_message();
void lcd_advanced_pause_heat_nozzle();
void lcd_advanced_pause_extrude_message();
void lcd_advanced_pause_resume_message();
#endif
#if ENABLED(DAC_STEPPER_CURRENT)
@ -676,6 +676,7 @@ void kill_screen(const char* lcd_msg) {
#if ENABLED(PARK_HEAD_ON_PAUSE)
enqueue_and_echo_commands_P(PSTR("M125"));
#endif
lcd_setstatuspgm(PSTR(MSG_PRINT_PAUSED), true);
}
void lcd_sdcard_resume() {
@ -685,6 +686,7 @@ void kill_screen(const char* lcd_msg) {
card.startFileprint();
print_job_timer.start();
#endif
lcd_setstatuspgm(PSTR(""), true);
}
void lcd_sdcard_stop() {
@ -1006,15 +1008,15 @@ void kill_screen(const char* lcd_msg) {
void watch_temp_callback_bed() { thermalManager.start_watching_bed(); }
#endif
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#if ENABLED(ADVANCED_PAUSE_FEATURE)
void lcd_enqueue_filament_change() {
if (!DEBUGGING(DRYRUN) && thermalManager.tooColdToExtrude(active_extruder)) {
lcd_save_previous_screen();
lcd_goto_screen(lcd_filament_change_toocold_menu);
lcd_goto_screen(lcd_advanced_pause_toocold_menu);
return;
}
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INIT);
enqueue_and_echo_commands_P(PSTR("M600"));
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT);
enqueue_and_echo_commands_P(PSTR("M600 B0"));
}
#endif
@ -1129,7 +1131,7 @@ void kill_screen(const char* lcd_msg) {
//
// Change filament
//
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#if ENABLED(ADVANCED_PAUSE_FEATURE)
if (!thermalManager.tooColdToExtrude(active_extruder))
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
#endif
@ -2043,7 +2045,7 @@ void kill_screen(const char* lcd_msg) {
//
// Change filament
//
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#if ENABLED(ADVANCED_PAUSE_FEATURE)
if (!thermalManager.tooColdToExtrude(active_extruder))
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
#endif
@ -3183,7 +3185,7 @@ void kill_screen(const char* lcd_msg) {
* Filament Change Feature Screens
*
*/
#if ENABLED(FILAMENT_CHANGE_FEATURE)
#if ENABLED(ADVANCED_PAUSE_FEATURE)
// Portions from STATIC_ITEM...
#define HOTEND_STATUS_ITEM() do { \
@ -3201,7 +3203,7 @@ void kill_screen(const char* lcd_msg) {
++_thisItemNr; \
} while(0)
void lcd_filament_change_toocold_menu() {
void lcd_advanced_pause_toocold_menu() {
START_MENU();
STATIC_ITEM(MSG_HEATING_FAILED_LCD, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_MINTEMP STRINGIFY(EXTRUDE_MINTEMP) ".", false, false);
@ -3213,25 +3215,25 @@ void kill_screen(const char* lcd_msg) {
END_MENU();
}
void lcd_filament_change_resume_print() {
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_RESUME_PRINT;
void lcd_advanced_pause_resume_print() {
advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_RESUME_PRINT;
}
void lcd_filament_change_extrude_more() {
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE;
void lcd_advanced_pause_extrude_more() {
advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE;
}
void lcd_filament_change_option_menu() {
void lcd_advanced_pause_option_menu() {
START_MENU();
#if LCD_HEIGHT > 2
STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false);
#endif
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_filament_change_resume_print);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_EXTRUDE, lcd_filament_change_extrude_more);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_advanced_pause_resume_print);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_EXTRUDE, lcd_advanced_pause_extrude_more);
END_MENU();
}
void lcd_filament_change_init_message() {
void lcd_advanced_pause_init_message() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_1);
@ -3254,7 +3256,7 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_unload_message() {
void lcd_advanced_pause_unload_message() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_1);
@ -3277,7 +3279,7 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_wait_for_nozzles_to_heat() {
void lcd_advanced_pause_wait_for_nozzles_to_heat() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEATING_1);
@ -3294,7 +3296,7 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_heat_nozzle() {
void lcd_advanced_pause_heat_nozzle() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEAT_1);
@ -3311,7 +3313,7 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_insert_message() {
void lcd_advanced_pause_insert_message() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_1);
@ -3334,7 +3336,7 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_load_message() {
void lcd_advanced_pause_load_message() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_1);
@ -3357,7 +3359,7 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_extrude_message() {
void lcd_advanced_pause_extrude_message() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_1);
@ -3380,7 +3382,7 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_resume_message() {
void lcd_advanced_pause_resume_message() {
START_SCREEN();
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_1);
@ -3393,44 +3395,52 @@ void kill_screen(const char* lcd_msg) {
END_SCREEN();
}
void lcd_filament_change_show_message(const FilamentChangeMessage message) {
void lcd_advanced_pause_show_message(const AdvancedPauseMessage message) {
switch (message) {
case FILAMENT_CHANGE_MESSAGE_INIT:
case ADVANCED_PAUSE_MESSAGE_INIT:
defer_return_to_status = true;
lcd_goto_screen(lcd_filament_change_init_message);
lcd_goto_screen(lcd_advanced_pause_init_message);
break;
case FILAMENT_CHANGE_MESSAGE_UNLOAD:
lcd_goto_screen(lcd_filament_change_unload_message);
case ADVANCED_PAUSE_MESSAGE_UNLOAD:
defer_return_to_status = true;
lcd_goto_screen(lcd_advanced_pause_unload_message);
break;
case FILAMENT_CHANGE_MESSAGE_INSERT:
lcd_goto_screen(lcd_filament_change_insert_message);
case ADVANCED_PAUSE_MESSAGE_INSERT:
defer_return_to_status = true;
lcd_goto_screen(lcd_advanced_pause_insert_message);
break;
case FILAMENT_CHANGE_MESSAGE_LOAD:
lcd_goto_screen(lcd_filament_change_load_message);
case ADVANCED_PAUSE_MESSAGE_LOAD:
defer_return_to_status = true;
lcd_goto_screen(lcd_advanced_pause_load_message);
break;
case FILAMENT_CHANGE_MESSAGE_EXTRUDE:
lcd_goto_screen(lcd_filament_change_extrude_message);
case ADVANCED_PAUSE_MESSAGE_EXTRUDE:
defer_return_to_status = true;
lcd_goto_screen(lcd_advanced_pause_extrude_message);
break;
case FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE:
lcd_goto_screen(lcd_filament_change_heat_nozzle);
case ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE:
defer_return_to_status = true;
lcd_goto_screen(lcd_advanced_pause_heat_nozzle);
break;
case FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT:
lcd_goto_screen(lcd_filament_change_wait_for_nozzles_to_heat);
case ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT:
defer_return_to_status = true;
lcd_goto_screen(lcd_advanced_pause_wait_for_nozzles_to_heat);
break;
case FILAMENT_CHANGE_MESSAGE_OPTION:
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_WAIT_FOR;
lcd_goto_screen(lcd_filament_change_option_menu);
case ADVANCED_PAUSE_MESSAGE_OPTION:
defer_return_to_status = true;
advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_WAIT_FOR;
lcd_goto_screen(lcd_advanced_pause_option_menu);
break;
case FILAMENT_CHANGE_MESSAGE_RESUME:
lcd_goto_screen(lcd_filament_change_resume_message);
case ADVANCED_PAUSE_MESSAGE_RESUME:
defer_return_to_status = true;
lcd_goto_screen(lcd_advanced_pause_resume_message);
break;
case FILAMENT_CHANGE_MESSAGE_STATUS:
case ADVANCED_PAUSE_MESSAGE_STATUS:
lcd_return_to_status();
break;
}
}
#endif // FILAMENT_CHANGE_FEATURE
#endif // ADVANCED_PAUSE_FEATURE
/**
*