From b217d9fe69749be084c43c0e984b8c1f3fd6934c Mon Sep 17 00:00:00 2001 From: Knutwurst <36196269+knutwurst@users.noreply.github.com> Date: Fri, 4 Feb 2022 19:44:38 +0100 Subject: [PATCH] Fix lockup and freeze for DGUS variants when pressing STOP while printing from SD card. --- Marlin/src/lcd/anycubic_touchscreen.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/src/lcd/anycubic_touchscreen.cpp b/Marlin/src/lcd/anycubic_touchscreen.cpp index bab3f030..38c4c518 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.cpp +++ b/Marlin/src/lcd/anycubic_touchscreen.cpp @@ -497,7 +497,7 @@ void AnycubicTouchscreenClass::PausePrint() { inline void AnycubicTouchscreenClass::StopPrint() { - card.abortFilePrintNow(); + card.abortFilePrintSoon(); #ifdef ANYCUBIC_TFT_DEBUG SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared"); @@ -513,6 +513,7 @@ inline void AnycubicTouchscreenClass::StopPrint() SERIAL_EOL(); #endif + IsParked = true; TFTstate = ANYCUBIC_TFT_STATE_SDSTOP_REQ; } @@ -1367,7 +1368,6 @@ void AnycubicTouchscreenClass::StateHandler() { HARDWARE_SERIAL_PROTOCOLPGM("J16"); // J16 stop print HARDWARE_SERIAL_ENTER(); if ((!card.isPrinting()) && (!planner.movesplanned())) { - queue.clear(); TFTstate = ANYCUBIC_TFT_STATE_IDLE; #ifdef SDSUPPORT HARDWARE_SERIAL_PROTOCOLPGM("J16"); // J16 stop print