Fix "paused" message and M125 called by M25 (#12551)

This commit is contained in:
Scott Lahteine 2018-11-28 19:28:31 -06:00 committed by GitHub
parent 95d154a91f
commit 03ef2d6c82
Signed by: GitHub
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 24 additions and 32 deletions

View file

@ -45,10 +45,7 @@
#include "../feature/runout.h" #include "../feature/runout.h"
#endif #endif
#if HAS_LCD_MENU #include "../lcd/ultralcd.h"
#include "../lcd/ultralcd.h"
#endif
#include "../libs/buzzer.h" #include "../libs/buzzer.h"
#include "../libs/nozzle.h" #include "../libs/nozzle.h"
#include "pause.h" #include "pause.h"
@ -531,7 +528,7 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
SERIAL_ECHOPAIR("\nextruder_duplication_enabled:", extruder_duplication_enabled); SERIAL_ECHOPAIR("\nextruder_duplication_enabled:", extruder_duplication_enabled);
SERIAL_ECHOPAIR("\nactive_extruder:", active_extruder); SERIAL_ECHOPAIR("\nactive_extruder:", active_extruder);
SERIAL_ECHOPGM("\n\n"); SERIAL_ECHOPGM("\n\n");
*/ //*/
if (!did_pause_print) return; if (!did_pause_print) return;
@ -590,9 +587,10 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
} }
#endif #endif
#if ENABLED(ULTRA_LCD) // Resume the print job timer if it was running
if (print_job_timer.isPaused()) print_job_timer.start();
ui.reset_status(); ui.reset_status();
#endif
} }
#endif // ADVANCED_PAUSE_FEATURE #endif // ADVANCED_PAUSE_FEATURE

View file

@ -68,15 +68,16 @@ void GcodeSuite::M125() {
park_point.y += (active_extruder ? hotend_offset[Y_AXIS][active_extruder] : 0); park_point.y += (active_extruder ? hotend_offset[Y_AXIS][active_extruder] : 0);
#endif #endif
const bool job_running = print_job_timer.isRunning(),
sd_printing = IS_SD_PRINTING();
if (pause_print(retract, park_point)) { if (pause_print(retract, park_point)) {
#if ENABLED(SDSUPPORT)
const bool sd_printing = IS_SD_PRINTING() || parser.boolval('S'); // Undocumented parameter
#else
constexpr bool sd_printing = false;
#endif
if (!sd_printing) { if (!sd_printing) {
wait_for_confirmation(); wait_for_confirmation();
resume_print(); resume_print();
} }
if (job_running) print_job_timer.start();
} }
} }

View file

@ -129,8 +129,6 @@ void GcodeSuite::M600() {
#endif #endif
); );
const bool job_running = print_job_timer.isRunning();
if (pause_print(retract, park_point, unload_length, true DXC_PASS)) { if (pause_print(retract, park_point, unload_length, true DXC_PASS)) {
wait_for_confirmation(true, beep_count DXC_PASS); wait_for_confirmation(true, beep_count DXC_PASS);
resume_print(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, beep_count DXC_PASS); resume_print(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, beep_count DXC_PASS);
@ -141,9 +139,6 @@ void GcodeSuite::M600() {
if (active_extruder_before_filament_change != active_extruder) if (active_extruder_before_filament_change != active_extruder)
tool_change(active_extruder_before_filament_change, 0, true); tool_change(active_extruder_before_filament_change, 0, true);
#endif #endif
// Resume the print job timer if it was running
if (job_running) print_job_timer.start();
} }
#endif // ADVANCED_PAUSE_FEATURE #endif // ADVANCED_PAUSE_FEATURE

View file

@ -113,7 +113,7 @@ void GcodeSuite::M25() {
print_job_timer.pause(); print_job_timer.pause();
#if ENABLED(PARK_HEAD_ON_PAUSE) #if ENABLED(PARK_HEAD_ON_PAUSE)
enqueue_and_echo_commands_P(PSTR("M125")); // Must be enqueued with pauseSDPrint set to be last in the buffer enqueue_and_echo_commands_P(PSTR("M125 S")); // To be last in the buffer, must enqueue after pauseSDPrint
#endif #endif
} }

View file

@ -45,12 +45,7 @@
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
if (recovery.enabled) recovery.save(true, false); if (recovery.enabled) recovery.save(true, false);
#endif #endif
card.pauseSDPrint(); enqueue_and_echo_commands_P(PSTR("M25"));
print_job_timer.pause();
#if ENABLED(PARK_HEAD_ON_PAUSE)
enqueue_and_echo_commands_P(PSTR("M125"));
#endif
ui.reset_status();
} }
void lcd_sdcard_resume() { void lcd_sdcard_resume() {

View file

@ -26,9 +26,7 @@
#if HAS_SPI_LCD || ENABLED(MALYAN_LCD) || ENABLED(EXTENSIBLE_UI) #if HAS_SPI_LCD || ENABLED(MALYAN_LCD) || ENABLED(EXTENSIBLE_UI)
#include "ultralcd.h" #include "ultralcd.h"
MarlinUI ui; MarlinUI ui;
#if ENABLED(SDSUPPORT)
#include "../sd/cardreader.h" #include "../sd/cardreader.h"
#endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
#define START_OF_UTF8_CHAR(C) (((C) & 0xC0u) != 0x80u) #define START_OF_UTF8_CHAR(C) (((C) & 0xC0u) != 0x80u)
#endif #endif
@ -1243,7 +1241,7 @@ void MarlinUI::update() {
static const char printing[] PROGMEM = MSG_PRINTING; static const char printing[] PROGMEM = MSG_PRINTING;
static const char welcome[] PROGMEM = WELCOME_MSG; static const char welcome[] PROGMEM = WELCOME_MSG;
PGM_P msg; PGM_P msg;
if (print_job_timer.isPaused()) if (!IS_SD_PRINTING() && print_job_timer.isPaused())
msg = paused; msg = paused;
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
else if (IS_SD_PRINTING()) else if (IS_SD_PRINTING())
@ -1257,4 +1255,4 @@ void MarlinUI::update() {
set_status_P(msg, -1); set_status_P(msg, -1);
} }
#endif #endif // HAS_SPI_LCD || EXTENSIBLE_UI

View file

@ -1922,7 +1922,7 @@ void Temperature::isr() {
; ;
/** /**
* Standard PWM modulation * Standard heater PWM modulation
*/ */
if (pwm_count_tmp >= 127) { if (pwm_count_tmp >= 127) {
pwm_count_tmp -= 127; pwm_count_tmp -= 127;

View file

@ -1027,15 +1027,20 @@ void CardReader::printingHasFinished() {
#if ENABLED(SD_FINISHED_STEPPERRELEASE) && defined(SD_FINISHED_RELEASECOMMAND) #if ENABLED(SD_FINISHED_STEPPERRELEASE) && defined(SD_FINISHED_RELEASECOMMAND)
planner.finish_and_disable(); planner.finish_and_disable();
#endif #endif
print_job_timer.stop(); print_job_timer.stop();
if (print_job_timer.duration() > 60) if (print_job_timer.duration() > 60) enqueue_and_echo_commands_P(PSTR("M31"));
enqueue_and_echo_commands_P(PSTR("M31"));
#if ENABLED(SDCARD_SORT_ALPHA) #if ENABLED(SDCARD_SORT_ALPHA)
presort(); presort();
#endif #endif
#if ENABLED(ULTRA_LCD) && ENABLED(LCD_SET_PROGRESS_MANUALLY) #if ENABLED(ULTRA_LCD) && ENABLED(LCD_SET_PROGRESS_MANUALLY)
ui.progress_bar_percent = 0; ui.progress_bar_percent = 0;
#endif #endif
ui.reset_status();
#if ENABLED(SD_REPRINT_LAST_SELECTED_FILE) #if ENABLED(SD_REPRINT_LAST_SELECTED_FILE)
ui.reselect_last_file(); ui.reselect_last_file();
#endif #endif