Hide menus more consistently when the printer is busy
lcd_calibration_menu: Remove redundant if (!isPrintPaused). The menu is never called unless this condition is true. eeprom_switch_to_next_sheet: Don't show this menu if the printer is busy doing work! Do not allow these menus to run while a print is paused or when we're recovering a print: - Preload to MMU - Load to Nozzle - Unload filament - Eject from MMU - Cut filament - Autoload filament - Settings - Calibration
This commit is contained in:
parent
06d34b4398
commit
016db6a6e8
|
|
@ -99,7 +99,6 @@ static void lcd_language_menu();
|
|||
static void lcd_main_menu();
|
||||
static void lcd_tune_menu();
|
||||
static void lcd_settings_menu();
|
||||
static void lcd_calibration_menu();
|
||||
static void lcd_control_temperature_menu();
|
||||
#ifdef TMC2130
|
||||
static void lcd_settings_linearity_correction_menu_save();
|
||||
|
|
@ -4553,20 +4552,18 @@ static void lcd_settings_linearity_correction_menu_save()
|
|||
|
||||
static void lcd_calibration_menu()
|
||||
{
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
||||
if (!isPrintPaused)
|
||||
{
|
||||
MENU_ITEM_FUNCTION_P(_i("Wizard"), lcd_wizard);////MSG_WIZARD c=17
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
||||
MENU_ITEM_FUNCTION_P(_i("Wizard"), lcd_wizard);////MSG_WIZARD c=17
|
||||
if (lcd_commands_type == LcdCommands::Idle)
|
||||
{
|
||||
MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), lcd_first_layer_calibration_reset);
|
||||
MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), lcd_first_layer_calibration_reset);
|
||||
}
|
||||
MENU_ITEM_GCODE_P(_T(MSG_AUTO_HOME), G28W);
|
||||
MENU_ITEM_GCODE_P(_T(MSG_AUTO_HOME), G28W);
|
||||
#ifdef TMC2130
|
||||
MENU_ITEM_FUNCTION_P(_i("Belt test"), lcd_belttest_v);////MSG_BELTTEST c=18
|
||||
MENU_ITEM_FUNCTION_P(_i("Belt test"), lcd_belttest_v);////MSG_BELTTEST c=18
|
||||
#endif //TMC2130
|
||||
MENU_ITEM_FUNCTION_P(_i("Selftest"), lcd_selftest_v);////MSG_SELFTEST c=18
|
||||
MENU_ITEM_FUNCTION_P(_i("Selftest"), lcd_selftest_v);////MSG_SELFTEST c=18
|
||||
// MK2
|
||||
MENU_ITEM_FUNCTION_P(_i("Calibrate XYZ"), lcd_mesh_calibration);////MSG_CALIBRATE_BED c=18
|
||||
// "Calibrate Z" with storing the reference values to EEPROM.
|
||||
|
|
@ -4575,21 +4572,21 @@ static void lcd_calibration_menu()
|
|||
MENU_ITEM_SUBMENU_P(_T(MSG_MESH_BED_LEVELING), lcd_mesh_bedleveling); ////MSG_MESH_BED_LEVELING c=18
|
||||
|
||||
MENU_ITEM_SUBMENU_P(_i("Bed level correct"), lcd_adjust_bed);////MSG_BED_CORRECTION_MENU c=18
|
||||
MENU_ITEM_SUBMENU_P(_i("PID calibration"), pid_extruder);////MSG_PID_EXTRUDER c=17
|
||||
MENU_ITEM_SUBMENU_P(_i("PID calibration"), pid_extruder);////MSG_PID_EXTRUDER c=17
|
||||
#ifndef TMC2130
|
||||
MENU_ITEM_SUBMENU_P(_i("Show end stops"), menu_show_end_stops);////MSG_SHOW_END_STOPS c=18
|
||||
#endif
|
||||
MENU_ITEM_GCODE_P(_i("Reset XYZ calibr."), PSTR("M44"));////MSG_CALIBRATE_BED_RESET c=18
|
||||
#ifdef PINDA_THERMISTOR
|
||||
if(has_temperature_compensation())
|
||||
MENU_ITEM_FUNCTION_P(_T(MSG_PINDA_CALIBRATION), lcd_calibrate_pinda);
|
||||
MENU_ITEM_FUNCTION_P(_T(MSG_PINDA_CALIBRATION), lcd_calibrate_pinda);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef THERMAL_MODEL
|
||||
MENU_ITEM_SUBMENU_P(_n("Thermal Model cal."), lcd_thermal_model_cal);
|
||||
#endif //THERMAL_MODEL
|
||||
|
||||
MENU_END();
|
||||
|
||||
MENU_END();
|
||||
}
|
||||
|
||||
//! @brief Select one of numbered items
|
||||
|
|
@ -5253,17 +5250,15 @@ static void lcd_main_menu()
|
|||
}
|
||||
#endif //SDSUPPORT
|
||||
|
||||
if(!isPrintPaused && !printJobOngoing() && (lcd_commands_type == LcdCommands::Idle)) {
|
||||
if (!farm_mode) {
|
||||
const int8_t sheet = eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet));
|
||||
const int8_t nextSheet = eeprom_next_initialized_sheet(sheet);
|
||||
if ((nextSheet >= 0) && (sheet != nextSheet)) { // show menu only if we have 2 or more sheets initialized
|
||||
MENU_ITEM_FUNCTION_E(EEPROM_Sheets_base->s[sheet], eeprom_switch_to_next_sheet);
|
||||
}
|
||||
if(!printer_active() && !farm_mode) {
|
||||
const int8_t sheet = eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet));
|
||||
const int8_t nextSheet = eeprom_next_initialized_sheet(sheet);
|
||||
if ((nextSheet >= 0) && (sheet != nextSheet)) { // show menu only if we have 2 or more sheets initialized
|
||||
MENU_ITEM_FUNCTION_E(EEPROM_Sheets_base->s[sheet], eeprom_switch_to_next_sheet);
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! ( printJobOngoing() || (lcd_commands_type != LcdCommands::Idle) || (eFilamentAction != FilamentAction::None) || Stopped ) ) {
|
||||
if ( ! ( printer_active() || (eFilamentAction != FilamentAction::None) || Stopped ) ) {
|
||||
if (MMU2::mmu2.Enabled()) {
|
||||
if(!MMU2::mmu2.FindaDetectsFilament() && !fsensor.getFilamentPresent()) {
|
||||
// The MMU 'Load filament' state machine will reject the command if any
|
||||
|
|
@ -5290,8 +5285,8 @@ static void lcd_main_menu()
|
|||
}
|
||||
MENU_ITEM_SUBMENU_P(_T(MSG_UNLOAD_FILAMENT), lcd_unLoadFilament);
|
||||
}
|
||||
MENU_ITEM_SUBMENU_P(_T(MSG_SETTINGS), lcd_settings_menu);
|
||||
if(!isPrintPaused && (custom_message_type != CustomMsg::Resuming)) MENU_ITEM_SUBMENU_P(_T(MSG_CALIBRATION), lcd_calibration_menu);
|
||||
MENU_ITEM_SUBMENU_P(_T(MSG_SETTINGS), lcd_settings_menu);
|
||||
if(!isPrintPaused) MENU_ITEM_SUBMENU_P(_T(MSG_CALIBRATION), lcd_calibration_menu);
|
||||
}
|
||||
|
||||
if (!usb_timer.running()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue