Browse Source
Abort SD printing more safely (#10407)
Allow the current command to complete when aborting an SD print, otherwise some commands (G28, G29, etc.) will cause trouble.
pull/1/head
Scott Lahteine
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
29 additions and
13 deletions
-
Marlin/src/Marlin.cpp
-
Marlin/src/lcd/ultralcd.cpp
-
Marlin/src/lcd/ultralcd.h
|
|
@ -898,6 +898,26 @@ void loop() { |
|
|
|
#endif |
|
|
|
|
|
|
|
for (;;) { |
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) && ENABLED(ULTIPANEL) |
|
|
|
if (abort_sd_printing) { |
|
|
|
abort_sd_printing = false; |
|
|
|
card.stopSDPrint( |
|
|
|
#if SD_RESORT |
|
|
|
true |
|
|
|
#endif |
|
|
|
); |
|
|
|
clear_command_queue(); |
|
|
|
quickstop_stepper(); |
|
|
|
print_job_timer.stop(); |
|
|
|
thermalManager.disable_all_heaters(); |
|
|
|
#if FAN_COUNT > 0 |
|
|
|
for (uint8_t i = 0; i < FAN_COUNT; i++) fanSpeeds[i] = 0; |
|
|
|
#endif |
|
|
|
wait_for_heatup = false; |
|
|
|
} |
|
|
|
#endif // SDSUPPORT && ULTIPANEL
|
|
|
|
|
|
|
|
if (commands_in_queue < BUFSIZE) get_available_commands(); |
|
|
|
advance_command_queue(); |
|
|
|
endstops.report_state(); |
|
|
|
|
|
@ -836,20 +836,10 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
lcd_reset_status(); |
|
|
|
} |
|
|
|
|
|
|
|
bool abort_sd_printing; // =false
|
|
|
|
|
|
|
|
void lcd_sdcard_stop() { |
|
|
|
card.stopSDPrint( |
|
|
|
#if SD_RESORT |
|
|
|
true |
|
|
|
#endif |
|
|
|
); |
|
|
|
clear_command_queue(); |
|
|
|
quickstop_stepper(); |
|
|
|
print_job_timer.stop(); |
|
|
|
thermalManager.disable_all_heaters(); |
|
|
|
#if FAN_COUNT > 0 |
|
|
|
for (uint8_t i = 0; i < FAN_COUNT; i++) fanSpeeds[i] = 0; |
|
|
|
#endif |
|
|
|
wait_for_heatup = false; |
|
|
|
abort_sd_printing = true; |
|
|
|
lcd_setstatusPGM(PSTR(MSG_PRINT_ABORTED), -1); |
|
|
|
lcd_return_to_status(); |
|
|
|
} |
|
|
|
|
|
@ -261,4 +261,10 @@ void lcd_reset_status(); |
|
|
|
void lcd_reselect_last_file(); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(ULTIPANEL) && ENABLED(SDSUPPORT) |
|
|
|
extern bool abort_sd_printing; |
|
|
|
#else |
|
|
|
constexpr bool abort_sd_printing = false; |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif // ULTRALCD_H
|
|
|
|