Once we add 3 byte long step and duration parameters for the SM command, and
add commands for homing, we start to see some things take very long times (a
3-byte duration in milliseconds is 4.7 hours). If something goes wrong, or you
need to bail on a long command, it would be very useful to have an 'abort'
command that would allow you to stop a long move or a home operation.
Note that, with the current system of flow-control built into USB, if you send
two long SM commands back to back, the abort won't do you any good because it
can't be processed until after the second long move is processed.
However, if you're careful, just send out one long move at a time, then you can
abort.
In the future, we can make a more sophisticated flow control method (where
there is a longer FIFO of queued moves in the EBB, and the USB interface never
blocks) or something like that, and then the abort will have more meaning.
We could also use a digital input as an abort. Right now, the PRG button acts
as a 'pause' button, but this is something handled up at the application level
(Inkscape) rather than at the EBB level. Having a hardware Estop input might be
really nice.
Original issue reported on code.google.com by brian.schmalz on 29 Apr 2014 at 10:03
Original issue reported on code.google.com by
brian.schmalz
on 29 Apr 2014 at 10:03