Fix Host Keepalive serial target (#21283)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
This commit is contained in:
@ -1067,6 +1067,7 @@ void GcodeSuite::process_subcommands_now(char * gcode) {
|
||||
static millis_t next_busy_signal_ms = 0;
|
||||
if (!autoreport_paused && host_keepalive_interval && busy_state != NOT_BUSY) {
|
||||
if (PENDING(ms, next_busy_signal_ms)) return;
|
||||
PORT_REDIRECT(SERIAL_ALL);
|
||||
switch (busy_state) {
|
||||
case IN_HANDLER:
|
||||
case IN_PROCESS:
|
||||
|
@ -272,21 +272,7 @@ void GCodeQueue::flush_and_request_resend(const serial_index_t serial_ind) {
|
||||
SERIAL_ECHOLN(serial_state[serial_ind].last_N + 1);
|
||||
}
|
||||
|
||||
// Multiserial already handle the dispatch to/from multiple port by itself
|
||||
inline bool serial_data_available(uint8_t index = SERIAL_ALL) {
|
||||
if (index == SERIAL_ALL) {
|
||||
for (index = 0; index < NUM_SERIAL; index++) {
|
||||
const int a = SERIAL_IMPL.available(index);
|
||||
#if BOTH(RX_BUFFER_MONITOR, RX_BUFFER_SIZE)
|
||||
if (a > RX_BUFFER_SIZE - 2) {
|
||||
PORT_REDIRECT(SERIAL_PORTMASK(index));
|
||||
SERIAL_ERROR_MSG("RX BUF overflow, increase RX_BUFFER_SIZE: ", a);
|
||||
}
|
||||
#endif
|
||||
if (a > 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
inline bool serial_data_available(uint8_t index) {
|
||||
const int a = SERIAL_IMPL.available(index);
|
||||
#if BOTH(RX_BUFFER_MONITOR, RX_BUFFER_SIZE)
|
||||
if (a > RX_BUFFER_SIZE - 2) {
|
||||
@ -294,10 +280,16 @@ inline bool serial_data_available(uint8_t index = SERIAL_ALL) {
|
||||
SERIAL_ERROR_MSG("RX BUF overflow, increase RX_BUFFER_SIZE: ", a);
|
||||
}
|
||||
#endif
|
||||
|
||||
return a > 0;
|
||||
}
|
||||
|
||||
// Multiserial already handles dispatch to/from multiple ports
|
||||
inline bool any_serial_data_available() {
|
||||
LOOP_L_N(p, NUM_SERIAL)
|
||||
if (serial_data_available(p))
|
||||
return true;
|
||||
}
|
||||
|
||||
inline int read_serial(const uint8_t index) { return SERIAL_IMPL.read(index); }
|
||||
|
||||
void GCodeQueue::gcode_line_error(PGM_P const err, const serial_index_t serial_ind) {
|
||||
@ -409,7 +401,7 @@ void GCodeQueue::get_serial_commands() {
|
||||
// send "wait" to indicate Marlin is still waiting.
|
||||
#if NO_TIMEOUTS > 0
|
||||
const millis_t ms = millis();
|
||||
if (ring_buffer.empty() && !serial_data_available() && ELAPSED(ms, last_command_time + NO_TIMEOUTS)) {
|
||||
if (ring_buffer.empty() && !any_serial_data_available() && ELAPSED(ms, last_command_time + NO_TIMEOUTS)) {
|
||||
SERIAL_ECHOLNPGM(STR_WAIT);
|
||||
last_command_time = ms;
|
||||
}
|
||||
|
Reference in New Issue
Block a user