My machine as various levels of "I need to stop now". Physical estop switches are in the contactor chain (and an input pin), VOLATILE_HOME is set, servos are monitored, and now I have a HAL component that keeps rogue gcode from crashing into my toolholder. However, that last one causes the machine to unhome because it's wired to turn the machine off, and volatile_home...
The servo faults (clearpath) are wired into joint.N.amp-fault-in, and the servo enable is wired into pid.N.enable. They lose position when disabled.
Is there an alternate way to say "stop this job now" in HAL, for cases where the gcode (or the user) is the problem, not the machine? I.e. that doesn't turn the machine off or unhome anything?
Or is this a case for something in python?