1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-23 12:04:19 +00:00

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
*/
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
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 void load();
static void save(const bool force=
static void save(const bool force=false
#if ENABLED(SAVE_EACH_CMD_MODE)
true
#else
false
|| true
#endif
, const bool save_queue=true
);
#if PIN_EXISTS(POWER_LOSS)

View File

@ -35,6 +35,10 @@
#include "../../../lcd/ultralcd.h"
#endif
#if ENABLED(POWER_LOSS_RECOVERY)
#include "../../../feature/power_loss_recovery.h"
#endif
/**
* M125: Store current position and move to parking position.
* Called on pause (by M25) to prevent material leaking onto the
@ -85,6 +89,9 @@ void GcodeSuite::M125() {
#endif
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) {
wait_for_confirmation(false, 0);
resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0);

View File

@ -86,10 +86,6 @@ void GcodeSuite::M24() {
*/
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
#if ENABLED(SDSUPPORT)
if (IS_SD_PRINTING()) card.pauseSDPrint();
@ -101,6 +97,10 @@ void GcodeSuite::M25() {
#else
#if ENABLED(POWER_LOSS_RECOVERY)
if (recovery.enabled) recovery.save(true);
#endif
print_job_timer.pause();
ui.reset_status();