|
@@ -819,7 +819,7 @@ void lcd_status_screen()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void print_stop();
|
|
|
+void lcd_print_stop_finish();
|
|
|
|
|
|
void lcd_commands()
|
|
|
{
|
|
@@ -837,7 +837,7 @@ void lcd_commands()
|
|
|
lcd_setstatuspgm(_T(MSG_PRINT_ABORTED));
|
|
|
lcd_commands_type = LcdCommands::Idle;
|
|
|
lcd_commands_step = 0;
|
|
|
- print_stop();
|
|
|
+ lcd_print_stop_finish();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -5456,7 +5456,7 @@ static void lcd_main_menu()
|
|
|
|
|
|
if ( moves_planned() || printer_active() ) {
|
|
|
MENU_ITEM_SUBMENU_P(_i("Tune"), lcd_tune_menu);
|
|
|
- } else {
|
|
|
+ } else if (!Stopped) {
|
|
|
MENU_ITEM_SUBMENU_P(_i("Preheat"), lcd_preheat_menu);
|
|
|
}
|
|
|
|
|
@@ -5485,6 +5485,11 @@ static void lcd_main_menu()
|
|
|
if((IS_SD_PRINTING || usb_timer.running() || isPrintPaused) && (custom_message_type != CustomMsg::MeshBedLeveling)) {
|
|
|
MENU_ITEM_SUBMENU_P(_T(MSG_STOP_PRINT), lcd_sdcard_stop);
|
|
|
}
|
|
|
+#ifdef TEMP_MODEL
|
|
|
+ else if(Stopped) {
|
|
|
+ MENU_ITEM_SUBMENU_P(_T(MSG_TM_ACK_ERROR), lcd_print_stop);
|
|
|
+ }
|
|
|
+#endif
|
|
|
#ifdef SDSUPPORT
|
|
|
if (card.cardOK || lcd_commands_type == LcdCommands::Layer1Cal) {
|
|
|
if (!card.isFileOpen()) {
|
|
@@ -5515,7 +5520,7 @@ static void lcd_main_menu()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if ( ! ( IS_SD_PRINTING || usb_timer.running() || (lcd_commands_type == LcdCommands::Layer1Cal) ) ) {
|
|
|
+ if ( ! ( IS_SD_PRINTING || usb_timer.running() || (lcd_commands_type == LcdCommands::Layer1Cal || Stopped) ) ) {
|
|
|
if (MMU2::mmu2.Enabled()) {
|
|
|
MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_FILAMENT), mmu_load_filament_menu);
|
|
|
MENU_ITEM_SUBMENU_P(_i("Load to nozzle"), mmu_load_to_nozzle_menu);
|
|
@@ -5873,7 +5878,7 @@ static void lcd_sd_updir()
|
|
|
}
|
|
|
|
|
|
|
|
|
-void print_stop()
|
|
|
+void lcd_print_stop_finish()
|
|
|
{
|
|
|
|
|
|
stoptime = _millis();
|
|
@@ -5916,11 +5921,11 @@ void print_stop()
|
|
|
axis_relative_modes = E_AXIS_MASK;
|
|
|
}
|
|
|
|
|
|
-void lcd_print_stop()
|
|
|
+void print_stop(bool interactive)
|
|
|
{
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
UnconditionalStop();
|
|
|
|
|
|
if (!card.sdprinting) {
|
|
@@ -5935,11 +5940,21 @@ void lcd_print_stop()
|
|
|
pause_time = 0;
|
|
|
isPrintPaused = false;
|
|
|
|
|
|
+ if (interactive) {
|
|
|
+
|
|
|
+ Stopped = false;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
lcd_commands_type = LcdCommands::StopPrint;
|
|
|
lcd_return_to_status();
|
|
|
}
|
|
|
|
|
|
+void lcd_print_stop()
|
|
|
+{
|
|
|
+ print_stop(true);
|
|
|
+}
|
|
|
+
|
|
|
#ifdef TEMP_MODEL
|
|
|
void lcd_temp_model_cal()
|
|
|
{
|
|
@@ -7503,13 +7518,13 @@ void lcd_setalertstatus_(const char* message, uint8_t severity, bool progmem)
|
|
|
bool same = !(progmem?
|
|
|
strcmp_P(lcd_status_message, message):
|
|
|
strcmp(lcd_status_message, message));
|
|
|
- lcd_updatestatus(message, progmem);
|
|
|
lcd_status_message_timeout.start();
|
|
|
lcd_status_message_level = severity;
|
|
|
custom_message_type = CustomMsg::Status;
|
|
|
custom_message_state = 0;
|
|
|
if (!same) {
|
|
|
|
|
|
+ lcd_updatestatus(message, progmem);
|
|
|
lcd_return_to_status();
|
|
|
}
|
|
|
}
|
|
@@ -7541,7 +7556,7 @@ void menu_lcd_longpress_func(void)
|
|
|
|
|
|
lcd_timeoutToStatus.start();
|
|
|
backlight_wake();
|
|
|
- if (homing_flag || mesh_bed_leveling_flag || menu_menu == lcd_babystep_z || menu_menu == lcd_move_z || menu_block_mask != MENU_BLOCK_NONE)
|
|
|
+ if (homing_flag || mesh_bed_leveling_flag || menu_menu == lcd_babystep_z || menu_menu == lcd_move_z || menu_block_mask != MENU_BLOCK_NONE || Stopped)
|
|
|
{
|
|
|
|
|
|
lcd_quick_feedback();
|