Fix lockup and freeze for DGUS variants when pressing STOP while printing from SD card.

This commit is contained in:
Knutwurst
2022-02-04 19:44:38 +01:00
parent de61898c55
commit b217d9fe69

View File

@@ -497,7 +497,7 @@ void AnycubicTouchscreenClass::PausePrint() {
inline void AnycubicTouchscreenClass::StopPrint() inline void AnycubicTouchscreenClass::StopPrint()
{ {
card.abortFilePrintNow(); card.abortFilePrintSoon();
#ifdef ANYCUBIC_TFT_DEBUG #ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared"); SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared");
@@ -513,6 +513,7 @@ inline void AnycubicTouchscreenClass::StopPrint()
SERIAL_EOL(); SERIAL_EOL();
#endif #endif
IsParked = true;
TFTstate = ANYCUBIC_TFT_STATE_SDSTOP_REQ; TFTstate = ANYCUBIC_TFT_STATE_SDSTOP_REQ;
} }
@@ -1367,7 +1368,6 @@ void AnycubicTouchscreenClass::StateHandler() {
HARDWARE_SERIAL_PROTOCOLPGM("J16"); // J16 stop print HARDWARE_SERIAL_PROTOCOLPGM("J16"); // J16 stop print
HARDWARE_SERIAL_ENTER(); HARDWARE_SERIAL_ENTER();
if ((!card.isPrinting()) && (!planner.movesplanned())) { if ((!card.isPrinting()) && (!planner.movesplanned())) {
queue.clear();
TFTstate = ANYCUBIC_TFT_STATE_IDLE; TFTstate = ANYCUBIC_TFT_STATE_IDLE;
#ifdef SDSUPPORT #ifdef SDSUPPORT
HARDWARE_SERIAL_PROTOCOLPGM("J16"); // J16 stop print HARDWARE_SERIAL_PROTOCOLPGM("J16"); // J16 stop print