From 064efb20e02c6300f04f559545a42c31881e4de1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 31 May 2016 17:41:32 -0700 Subject: [PATCH] Also call clear_command_queue for lcd_sdcard_stop --- Marlin/Marlin.h | 1 + Marlin/Marlin_main.cpp | 5 +++++ Marlin/ultralcd.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index ee2453615c..837f1b5d81 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -254,6 +254,7 @@ inline bool IsStopped() { return !Running; } bool enqueue_and_echo_command(const char* cmd, bool say_ok=false); //put a single ASCII command at the end of the current buffer or return false when it is full void enqueue_and_echo_command_now(const char* cmd); // enqueue now, only return when the command has been enqueued void enqueue_and_echo_commands_P(const char* cmd); //put one or many ASCII commands at the end of the current buffer, read from flash +void clear_command_queue(); void clamp_to_software_endstops(float target[3]); diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 53053221f2..1e98877bec 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -613,6 +613,11 @@ void enqueue_and_echo_commands_P(const char* pgcode) { drain_queued_commands_P(); // first command executed asap (when possible) } +void clear_command_queue() { + cmd_queue_index_r = cmd_queue_index_w; + commands_in_queue = 0; +} + /** * Once a new command is in the ring buffer, call this to commit it */ diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 9080f7e1c0..c1526e4a44 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -483,6 +483,7 @@ inline void line_to_current(AxisEnum axis) { static void lcd_sdcard_stop() { stepper.quick_stop(); set_current_position_from_planner(); + clear_command_queue(); card.sdprinting = false; card.closefile(); print_job_timer.stop();