With the modifications to print3d's GCodeBuffer (details here, integration in progress), it is now possible for the server to perform several sanity checks while appending code as well as rejecting new code when the buffer is full.
Steps to take
For this to work though, the client should undergo some changes:
[x] API docs on the wiki should be updated with the new metadata fields (in requests) as well as new possible errors (in responses);
[x] it should handle errors when sending GCode - this is currently being ignored, see here;
[x] moreover, it should deal with rejections when the buffer is full, possibly by exposing getMaxBufferSize through the API somehow, so the client can fill up the buffer and wait until it drops below a certain percentage (e.g. to 100%, back to 60%, fill back up again, etc.);
[x] although not something to be done in the client itself, with a small change in print3d, accuracy of printing progress could be improved (details here);
[x] it should send sequence number (and perhaps also total number of chunks) with each GCode part, to fix https://github.com/Doodle3D/doodle3d-client/issues/226 (so we can leave the stop button enabled - it is currently disabled while sending).
Related issues
Where appropriate, links are marked with 'unsure'.
Sending sequence numbers from the client is implemented here.
Only recent changes have been mentioned here, they should make a good starting point to find older changes (mainly in firmware and print3d) which facilitate the new ones though.
With the modifications to print3d's GCodeBuffer (details here, integration in progress), it is now possible for the server to perform several sanity checks while appending code as well as rejecting new code when the buffer is full.
Steps to take
For this to work though, the client should undergo some changes:
Related issues
Where appropriate, links are marked with 'unsure'.
(unsure) sending big files: https://github.com/Doodle3D/doodle3d-firmware/issues/13 (quite old, fixed?)(closed)sketch disk usage: https://github.com/Doodle3D/doodle3d-firmware/issues/50(unrelated)