Allow print recovery after parking
This commit is contained in:
parent
6fd7f4fe1b
commit
18b875dc9f
4 changed files with 14 additions and 10 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
Reference in a new issue