evil-mad/robopaint — pull request #148 by techninja (2014-09-29 10:47:10+00:00)
Title: Stream support for better pause, resume and update functionality

Before this update, pausing required simply not sending any more commands to CNCServer, completely stuck to execute whatever had been sent, and messing up our ability to properly time sends. This update changes all of that:
* Because the new CNCserver buffer is central to the stream system, the command runner clientside buffer has been re-purposed to now push out all commands immediately with no care to time intended to be taken. Its sole purpose is now to ensure the commands are added to the buffer in the correct order.
* Once commands are sent out, using the new stream events for buffer and pen update, we update the exact pen position immediately, not to mention buffer updates and multi-client monitoring and support.
* A pause command is set down to the individual movement command level, capable of reacting immediately between one move and another.
* All resume capability is managed within CNCserver so no more badly calculated position updates or dragging pen errors spilling water everywhere