Solved Invoking GCodes::DoPause with msg from gcode
-
Hi @dc42 I would like to be able to pause a print from gcode while telling the user why: "Cannot load filament", with mitigations that the user can do: "fix extruder", etc.
It looks like
GCodes::DoPause
has a facility for displaying a dialog upon pause with a reason message, but it's only used for firmware-internal purposes (stall detection pause, filament monitor pause, heater fault, etc.)Would it be possible to enhance
M226
such that it takes anR
, orS
parameter for messaging? It looks likeP
is already used for some deferred pause priority.Additionally, it seems
M226
waits for any currently executing macro to complete prior to pausing? My use case is to pause from within ERCF filament-changing macros when errors are detected. What could the solution be here? Outside of a print, I would simplyabort
to exit the macro; this wouldn't work while printing as it would cause the print to quit as well.It seems there is a need for a
return
to cause an early exit from macros without canceling prints. -
It looks like I can do some of the macro pausing with
M98 R1
and testingif state.macroStarted
at the beginning of my macros.It's a very big annoyance that I will have to wrap all my macros around with this.
I am assuming that all macros in the call stack must have
M98 R1
in order for a pause to execute, is that correct @dc42 ? -
Oops, looks like M99 is the early return.
-
and it seems M291 S1 would allow M226 to execute... so I guess an extra facility isn't necessary
-
this can be marked closed and resolved
-
-