Allow print recovery after parking

This commit is contained in:
Scott Lahteine 2020-02-26 08:16:46 -06:00
parent 6fd7f4fe1b
commit 18b875dc9f
4 changed files with 14 additions and 10 deletions

View File

@ -141,7 +141,7 @@ void PrintJobRecovery::prepare() {
/** /**
* Save the current machine state to the power-loss recovery file * Save the current machine state to the power-loss recovery file
*/ */
void PrintJobRecovery::save(const bool force/*=false*/, const bool save_queue/*=true*/) { void PrintJobRecovery::save(const bool force/*=false*/) {
#if SAVE_INFO_INTERVAL_MS > 0 #if SAVE_INFO_INTERVAL_MS > 0
static millis_t next_save_ms; // = 0 static millis_t next_save_ms; // = 0

View File

@ -159,13 +159,10 @@ class PrintJobRecovery {
static inline void cancel() { purge(); card.autostart_index = 0; } static inline void cancel() { purge(); card.autostart_index = 0; }
static void load(); static void load();
static void save(const bool force= static void save(const bool force=false
#if ENABLED(SAVE_EACH_CMD_MODE) #if ENABLED(SAVE_EACH_CMD_MODE)
true || true
#else
false
#endif #endif
, const bool save_queue=true
); );
#if PIN_EXISTS(POWER_LOSS) #if PIN_EXISTS(POWER_LOSS)

View File

@ -35,6 +35,10 @@
#include "../../../lcd/ultralcd.h" #include "../../../lcd/ultralcd.h"
#endif #endif
#if ENABLED(POWER_LOSS_RECOVERY)
#include "../../../feature/power_loss_recovery.h"
#endif
/** /**
* M125: Store current position and move to parking position. * M125: Store current position and move to parking position.
* Called on pause (by M25) to prevent material leaking onto the * Called on pause (by M25) to prevent material leaking onto the
@ -85,6 +89,9 @@ void GcodeSuite::M125() {
#endif #endif
if (pause_print(retract, park_point, 0, show_lcd)) { if (pause_print(retract, park_point, 0, show_lcd)) {
#if ENABLED(POWER_LOSS_RECOVERY)
if (recovery.enabled) recovery.save(true);
#endif
if (!sd_printing || show_lcd) { if (!sd_printing || show_lcd) {
wait_for_confirmation(false, 0); wait_for_confirmation(false, 0);
resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0); resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0);

View File

@ -86,10 +86,6 @@ void GcodeSuite::M24() {
*/ */
void GcodeSuite::M25() { void GcodeSuite::M25() {
#if ENABLED(POWER_LOSS_RECOVERY)
if (recovery.enabled) recovery.save(true, false);
#endif
// Set initial pause flag to prevent more commands from landing in the queue while we try to pause // Set initial pause flag to prevent more commands from landing in the queue while we try to pause
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
if (IS_SD_PRINTING()) card.pauseSDPrint(); if (IS_SD_PRINTING()) card.pauseSDPrint();
@ -101,6 +97,10 @@ void GcodeSuite::M25() {
#else #else
#if ENABLED(POWER_LOSS_RECOVERY)
if (recovery.enabled) recovery.save(true);
#endif
print_job_timer.pause(); print_job_timer.pause();
ui.reset_status(); ui.reset_status();