Victor Oliveira
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
4 additions and
5 deletions
-
Marlin/src/gcode/control/M999.cpp
-
Marlin/src/gcode/queue.cpp
-
Marlin/src/gcode/queue.h
|
|
@ -41,5 +41,5 @@ void GcodeSuite::M999() { |
|
|
|
|
|
|
|
if (parser.boolval('S')) return; |
|
|
|
|
|
|
|
queue.flush_and_request_resend(); |
|
|
|
queue.flush_and_request_resend(queue.ring_buffer.command_port()); |
|
|
|
} |
|
|
|
|
|
@ -262,8 +262,7 @@ void GCodeQueue::RingBuffer::ok_to_send() { |
|
|
|
* Send a "Resend: nnn" message to the host to |
|
|
|
* indicate that a command needs to be re-sent. |
|
|
|
*/ |
|
|
|
void GCodeQueue::flush_and_request_resend() { |
|
|
|
const serial_index_t serial_ind = ring_buffer.command_port(); |
|
|
|
void GCodeQueue::flush_and_request_resend(const serial_index_t serial_ind) { |
|
|
|
#if HAS_MULTI_SERIAL |
|
|
|
if (serial_ind < 0) return; // Never mind. Command came from SD or Flash Drive
|
|
|
|
PORT_REDIRECT(SERIAL_PORTMASK(serial_ind)); // Reply to the serial port that sent the command
|
|
|
@ -306,7 +305,7 @@ void GCodeQueue::gcode_line_error(PGM_P const err, const serial_index_t serial_i |
|
|
|
SERIAL_ERROR_START(); |
|
|
|
SERIAL_ECHOLNPAIR_P(err, serial_state[serial_ind].last_N); |
|
|
|
while (read_serial(serial_ind) != -1) { /* nada */ } // Clear out the RX buffer. Why don't use flush here ?
|
|
|
|
flush_and_request_resend(); |
|
|
|
flush_and_request_resend(serial_ind); |
|
|
|
serial_state[serial_ind].count = 0; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -185,7 +185,7 @@ public: |
|
|
|
* Clear the serial line and request a resend of |
|
|
|
* the next expected line number. |
|
|
|
*/ |
|
|
|
static void flush_and_request_resend(); |
|
|
|
static void flush_and_request_resend(const serial_index_t serial_ind); |
|
|
|
|
|
|
|
/**
|
|
|
|
* (Re)Set the current line number for the last received command |
|
|
|