mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-27 13:56:24 +00:00
Fix bug in CardReader::stopSDPrint
If the SD print is paused, it cannot be stopped
This commit is contained in:
parent
11027a56b6
commit
61932b859e
@ -276,19 +276,12 @@ void CardReader::openAndPrintFile(const char *name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CardReader::startFileprint() {
|
void CardReader::startFileprint() {
|
||||||
if (cardOK)
|
if (cardOK) sdprinting = true;
|
||||||
sdprinting = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CardReader::pauseSDPrint() {
|
|
||||||
if (sdprinting) sdprinting = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardReader::stopSDPrint() {
|
void CardReader::stopSDPrint() {
|
||||||
if (sdprinting) {
|
sdprinting = false;
|
||||||
sdprinting = false;
|
if (isFileOpen()) file.close();
|
||||||
file.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardReader::openLogFile(char* name) {
|
void CardReader::openLogFile(char* name) {
|
||||||
@ -340,7 +333,6 @@ void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
|||||||
SERIAL_ECHOPGM("Now doing file: ");
|
SERIAL_ECHOPGM("Now doing file: ");
|
||||||
SERIAL_ECHOLN(name);
|
SERIAL_ECHOLN(name);
|
||||||
}
|
}
|
||||||
file.close();
|
|
||||||
}
|
}
|
||||||
else { //opening fresh file
|
else { //opening fresh file
|
||||||
file_subcall_ctr = 0; //resetting procedure depth in case user cancels print while in procedure
|
file_subcall_ctr = 0; //resetting procedure depth in case user cancels print while in procedure
|
||||||
@ -348,7 +340,8 @@ void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
|||||||
SERIAL_ECHOPGM("Now fresh file: ");
|
SERIAL_ECHOPGM("Now fresh file: ");
|
||||||
SERIAL_ECHOLN(name);
|
SERIAL_ECHOLN(name);
|
||||||
}
|
}
|
||||||
sdprinting = false;
|
|
||||||
|
stopSDPrint();
|
||||||
|
|
||||||
SdFile myDir;
|
SdFile myDir;
|
||||||
curDir = &root;
|
curDir = &root;
|
||||||
@ -425,8 +418,7 @@ void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
|||||||
void CardReader::removeFile(char* name) {
|
void CardReader::removeFile(char* name) {
|
||||||
if (!cardOK) return;
|
if (!cardOK) return;
|
||||||
|
|
||||||
file.close();
|
stopSDPrint();
|
||||||
sdprinting = false;
|
|
||||||
|
|
||||||
SdFile myDir;
|
SdFile myDir;
|
||||||
curDir = &root;
|
curDir = &root;
|
||||||
|
@ -51,7 +51,6 @@ public:
|
|||||||
void release();
|
void release();
|
||||||
void openAndPrintFile(const char *name);
|
void openAndPrintFile(const char *name);
|
||||||
void startFileprint();
|
void startFileprint();
|
||||||
void pauseSDPrint();
|
|
||||||
void stopSDPrint();
|
void stopSDPrint();
|
||||||
void getStatus();
|
void getStatus();
|
||||||
void printingHasFinished();
|
void printingHasFinished();
|
||||||
@ -70,6 +69,7 @@ public:
|
|||||||
void updir();
|
void updir();
|
||||||
void setroot();
|
void setroot();
|
||||||
|
|
||||||
|
FORCE_INLINE void pauseSDPrint() { sdprinting = false; }
|
||||||
FORCE_INLINE bool isFileOpen() { return file.isOpen(); }
|
FORCE_INLINE bool isFileOpen() { return file.isOpen(); }
|
||||||
FORCE_INLINE bool eof() { return sdpos >= filesize; }
|
FORCE_INLINE bool eof() { return sdpos >= filesize; }
|
||||||
FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); }
|
FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); }
|
||||||
|
Loading…
Reference in New Issue
Block a user