|
@@ -9585,14 +9585,14 @@ void UnconditionalStop()
|
|
|
// WARNING: This function is called *continuously* during a thermal failure.
|
|
|
//
|
|
|
// This either pauses (for thermal model errors) or stops *without recovery* depending on
|
|
|
-// "allow_pause". If pause is allowed, this forces a printer-initiated instantanenous pause (just
|
|
|
-// like an LCD pause) that bypasses the host pausing functionality. In this state the printer is
|
|
|
-// kept in busy state and *must* be recovered from the LCD.
|
|
|
-void ThermalStop(bool allow_pause)
|
|
|
+// "allow_recovery". If recovery is allowed, this forces a printer-initiated instantanenous pause
|
|
|
+// (just like an LCD pause) that bypasses the host pausing functionality. In this state the printer
|
|
|
+// is kept in busy state and *must* be recovered from the LCD.
|
|
|
+void ThermalStop(bool allow_recovery)
|
|
|
{
|
|
|
if(Stopped == false) {
|
|
|
Stopped = true;
|
|
|
- if(allow_pause && (IS_SD_PRINTING || usb_timer.running())) {
|
|
|
+ if(allow_recovery && (IS_SD_PRINTING || usb_timer.running())) {
|
|
|
if (!isPrintPaused) {
|
|
|
lcd_setalertstatuspgm(_T(MSG_PAUSED_THERMAL_ERROR), LCD_STATUS_CRITICAL);
|
|
|
|
|
@@ -9625,13 +9625,15 @@ void ThermalStop(bool allow_pause)
|
|
|
// Make a warning sound! We cannot use Sound_MakeCustom as this would stop further moves.
|
|
|
// Turn on the speaker here (if not already), and turn it off when back in the main loop.
|
|
|
WRITE(BEEPER, HIGH);
|
|
|
- }
|
|
|
|
|
|
- // Return to the status screen to stop any pending menu action which could have been
|
|
|
- // started by the user while stuck in the Stopped state. This also ensures the NEW
|
|
|
- // error is immediately shown.
|
|
|
- if (menu_menu != lcd_status_screen)
|
|
|
+ // Always return to the status screen to ensure the NEW error is immediately shown.
|
|
|
lcd_return_to_status();
|
|
|
+
|
|
|
+ if(!allow_recovery) {
|
|
|
+ // prevent menu access for all fatal errors
|
|
|
+ menu_set_block(MENU_BLOCK_THERMAL_ERROR);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
bool IsStopped() { return Stopped; };
|