Closes #3826: SD printing will now pause and stop the print counter

The LCD menu items for SD printing pause/stop have been updated to control
also the print job timer. This commit also fixes a small output bug with
M78, the failed print counter was displaying the wrong value.
This commit is contained in:
João Brázio 2016-05-30 00:56:39 +01:00
parent fe3122774a
commit 40e64b36de
No known key found for this signature in database
GPG key ID: F62CFD37DFFDB540
2 changed files with 10 additions and 3 deletions

View file

@ -86,7 +86,7 @@ void PrintCounter::showStats() {
SERIAL_ECHOPGM(", Failed: "); SERIAL_ECHOPGM(", Failed: ");
SERIAL_ECHO(this->data.totalPrints - this->data.finishedPrints SERIAL_ECHO(this->data.totalPrints - this->data.finishedPrints
- (this->isRunning() || this->isPaused()) ? 1 : 0); // Removes 1 from failures with an active counter - ((this->isRunning() || this->isPaused()) ? 1 : 0)); // Removes 1 from failures with an active counter
uint32_t t = this->data.printTime /60; uint32_t t = this->data.printTime /60;
SERIAL_ECHOPGM(", Total print time: "); SERIAL_ECHOPGM(", Total print time: ");

View file

@ -470,14 +470,21 @@ inline void line_to_current(AxisEnum axis) {
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
static void lcd_sdcard_pause() { card.pauseSDPrint(); } static void lcd_sdcard_pause() {
card.pauseSDPrint();
print_job_timer.pause();
}
static void lcd_sdcard_resume() { card.startFileprint(); } static void lcd_sdcard_resume() {
card.startFileprint();
print_job_timer.start();
}
static void lcd_sdcard_stop() { static void lcd_sdcard_stop() {
stepper.quick_stop(); stepper.quick_stop();
card.sdprinting = false; card.sdprinting = false;
card.closefile(); card.closefile();
print_job_timer.stop();
thermalManager.autotempShutdown(); thermalManager.autotempShutdown();
cancel_heatup = true; cancel_heatup = true;
lcd_setstatus(MSG_PRINT_ABORTED, true); lcd_setstatus(MSG_PRINT_ABORTED, true);