techninja / cncserver

A RESTful API server for driving serial based CNC devices
133 stars 39 forks source link

Ad real queueing to actions that must eventually queue #41

Closed techninja closed 10 years ago

techninja commented 10 years ago

As an addendum or replacement for #27, currently because of low-level driver implementation, on the Mac commands do not automatically queue in the same way as Linux or Windows, so multiple commands for movement can come in at different times and _completely screw up_ absolute positioning. I can't seem to recreate on anything but Mac, bit it's quite serious when it does show up.

A real queuing is a good idea anyways. more accurate control over exactly what's going on with our synchronous bot over asynchronous controls.

techninja commented 10 years ago

Initial work for this has been done in the buffer_experiment branch, and though it works well in Windows/Linux, it works no better than it has before. With the obvious exception that tool changes and other "immediate" changes happen in the correct order.

The real issue becomes that with this patch, on Mac, performance has taken a huge dive, and path drawing is no longer smooth. Not sure if this should be continued without a good solution to the latency/buffer issues.

techninja commented 10 years ago

This has now been merged to master, hopefully this isn't the end of the world. :)