Improve M600 with timeout, wait for heatup.
This commit is contained in:
@ -54,6 +54,7 @@ char lcd_status_message[3 * (LCD_WIDTH) + 1] = WELCOME_MSG; // worst case is kan
|
||||
|
||||
#if ENABLED(DOGLCD)
|
||||
#include "ultralcd_impl_DOGM.h"
|
||||
#include <U8glib.h>
|
||||
#else
|
||||
#include "ultralcd_impl_HD44780.h"
|
||||
#endif
|
||||
@ -151,6 +152,7 @@ uint16_t max_display_update_time = 0;
|
||||
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();
|
||||
#endif
|
||||
@ -948,7 +950,8 @@ void kill_screen(const char* lcd_msg) {
|
||||
// Change filament
|
||||
//
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
||||
if (!thermalManager.tooColdToExtrude(active_extruder))
|
||||
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
||||
#endif
|
||||
|
||||
END_MENU();
|
||||
@ -1384,11 +1387,13 @@ KeepDrawing:
|
||||
MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_material1_hotend0);
|
||||
MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_material2_hotend0);
|
||||
#endif
|
||||
|
||||
//
|
||||
// Change filament
|
||||
//
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
||||
if (!thermalManager.tooColdToExtrude(active_extruder))
|
||||
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -2441,11 +2446,21 @@ KeepDrawing:
|
||||
}
|
||||
#endif // LCD_INFO_MENU
|
||||
|
||||
/**
|
||||
*
|
||||
* Filament Change Feature Screens
|
||||
*
|
||||
*/
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
|
||||
void lcd_filament_change_toocold_menu() {
|
||||
START_MENU();
|
||||
STATIC_ITEM(MSG_HEATING_FAILED_LCD, true, true);
|
||||
MENU_BACK(MSG_FILAMENTCHANGE);
|
||||
STATIC_ITEM (MSG_FILAMENT_CHANGE_MINTEMP STRINGIFY(EXTRUDE_MINTEMP) ".", false, false);
|
||||
MENU_BACK(MSG_BACK);
|
||||
STATIC_ITEM (" ");
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
@ -2478,6 +2493,8 @@ KeepDrawing:
|
||||
#ifdef MSG_FILAMENT_CHANGE_INIT_3
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_3);
|
||||
#endif
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_SCREEN();
|
||||
}
|
||||
|
||||
@ -2491,6 +2508,35 @@ KeepDrawing:
|
||||
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_3);
|
||||
#endif
|
||||
STATIC_ITEM (" ");
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_SCREEN();
|
||||
}
|
||||
|
||||
void lcd_filament_change_wait_for_nozzles_to_heat() {
|
||||
START_SCREEN();
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEATING_1);
|
||||
#ifdef MSG_FILAMENT_CHANGE_HEATING_2
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEATING_2);
|
||||
#endif
|
||||
STATIC_ITEM(" ");
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_SCREEN();
|
||||
}
|
||||
|
||||
void lcd_filament_change_heat_nozzle() {
|
||||
START_SCREEN();
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true);
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEAT_1);
|
||||
#ifdef MSG_FILAMENT_CHANGE_INSERT_2
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEAT_2);
|
||||
#endif
|
||||
STATIC_ITEM(" ");
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_SCREEN();
|
||||
}
|
||||
|
||||
@ -2504,6 +2550,8 @@ KeepDrawing:
|
||||
#ifdef MSG_FILAMENT_CHANGE_INSERT_3
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_3);
|
||||
#endif
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_SCREEN();
|
||||
}
|
||||
|
||||
@ -2517,6 +2565,9 @@ KeepDrawing:
|
||||
#ifdef MSG_FILAMENT_CHANGE_LOAD_3
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_3);
|
||||
#endif
|
||||
STATIC_ITEM(" ");
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_SCREEN();
|
||||
}
|
||||
|
||||
@ -2530,6 +2581,9 @@ KeepDrawing:
|
||||
#ifdef MSG_FILAMENT_CHANGE_EXTRUDE_3
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_3);
|
||||
#endif
|
||||
STATIC_ITEM(" ");
|
||||
STATIC_ITEM(MSG_FILAMENT_CHANGE_NOZZLE, false, true);
|
||||
lcd_implementation_hotend_status();
|
||||
END_SCREEN();
|
||||
}
|
||||
|
||||
@ -2550,20 +2604,33 @@ KeepDrawing:
|
||||
switch (message) {
|
||||
case FILAMENT_CHANGE_MESSAGE_INIT:
|
||||
defer_return_to_status = true;
|
||||
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
|
||||
lcd_goto_screen(lcd_filament_change_init_message);
|
||||
break;
|
||||
case FILAMENT_CHANGE_MESSAGE_UNLOAD:
|
||||
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
|
||||
lcd_goto_screen(lcd_filament_change_unload_message);
|
||||
break;
|
||||
case FILAMENT_CHANGE_MESSAGE_INSERT:
|
||||
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
|
||||
lcd_goto_screen(lcd_filament_change_insert_message);
|
||||
break;
|
||||
case FILAMENT_CHANGE_MESSAGE_LOAD:
|
||||
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
|
||||
lcd_goto_screen(lcd_filament_change_load_message);
|
||||
break;
|
||||
case FILAMENT_CHANGE_MESSAGE_EXTRUDE:
|
||||
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
|
||||
lcd_goto_screen(lcd_filament_change_extrude_message);
|
||||
break;
|
||||
case FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE:
|
||||
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
|
||||
lcd_goto_screen(lcd_filament_change_heat_nozzle);
|
||||
break;
|
||||
case FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT:
|
||||
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
|
||||
lcd_goto_screen(lcd_filament_change_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);
|
||||
|
Reference in New Issue
Block a user