Initial work for server side buffer management with socket streaming
Total POC, but it does work and is fairly simple. Will need to handle the full suite of commands that RP uses, and will need to have absolute (not relative) positional movements, but it’s a start.
Add API get settings wrappers
Add more emit update locations
Update example with live interpolating positional indicator
Also includes buffer information, and initial detail ping
Initial work towards buffer visualization in example
This is obviously broken, but a good proof of concept
Add initial required work for absolute buffering on movements
Adds a new buffer type (object), and
Fix bug in pause/resume where string “true” i sent instead of boolean
Putting code after a “return” is an act of futility.
Oh, and it’s silly too!
Update various stream update calls to get more coverage
Port buffer skip functionality by hand. IT WORKS!
All it need was absolute based buffering. This opens up per serial command pausing, clean resuming from anywhere, and lots more.

This still needs some work on wrapper functions and bufferSkip actions for commands other than “move”
Send the entire argument object, not just the parts we “care” about.
Ensure height runs before park.
This probably isn’t needed, but it seems like a good thing to do.
WIP: Heavily revamp recent bufferSkip and resume additions
This fixes a number of subtle and very dangerous bugs and rethinks the usage of “pen” in the many locations it’s used. This should be the last of the really bad resume bugs, but it remains a Work In Progress as pen lift is not yet part of resuming or skipBuffer action. Also ensures if serialWrite is called multiple times, previous timeout is cancelled and only one executeNext() is called.
Add complete working visualization of buffer path and resume point
Massively overhaul functional documentation!!
This was long overdue, and it helps general understanding of new practices and use cases. No real code changes here (though a few returns adjusted and function names changed).
Add full options object push for various API wrapper members
Build Z option buttons dynamically via settings in controller
Skip null commands when parsing buffer in controller
Also sanity check input for special commands, also add support for buffered Z height commands
Add skip buffer support for pen park
Adjust WCB wipe position, also add get paint position (untested)