gcode: Fix out-of-order check for M112 when read from gcode pseudo-tty

Make sure to check for an out-of-order M112 command on the gcode
pseudo-tty even if there is no pending commands being processed from
that gcode pseudo-tty.  There could be long running commands pending
from webhooks, virtual_sdcard, or similar.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2025-09-06 14:06:25 -04:00
parent 68b67a16d6
commit 96c3ca160e

View File

@ -430,18 +430,17 @@ class GCodeIO:
self.gcode.request_restart('exit') self.gcode.request_restart('exit')
pending_commands.append("") pending_commands.append("")
# Handle case where multiple commands pending # Handle case where multiple commands pending
if self.is_processing_data or len(pending_commands) > 1: if len(pending_commands) < 20:
if len(pending_commands) < 20: # Check for M112 out-of-order
# Check for M112 out-of-order for line in lines:
for line in lines: if self.m112_r.match(line) is not None:
if self.m112_r.match(line) is not None: self.gcode.cmd_M112(None)
self.gcode.cmd_M112(None) if self.is_processing_data:
if self.is_processing_data: if len(pending_commands) >= 20:
if len(pending_commands) >= 20: # Stop reading input
# Stop reading input self.reactor.unregister_fd(self.fd_handle)
self.reactor.unregister_fd(self.fd_handle) self.fd_handle = None
self.fd_handle = None return
return
# Process commands # Process commands
self.is_processing_data = True self.is_processing_data = True
while pending_commands: while pending_commands: