Giter Club home page Giter Club logo

liveprinter's People

Contributors

cassiel avatar pixelpusher avatar ulyssesdotcodes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

liveprinter's Issues

Need re-sync or re-start after clearing queue

If not, filament length gets out of syn and can waste lots.
Maybe do an auto-sync? In trials, start() was necessary afterwards. Sometimes retraction gets out of sync to, this needs to be cleared in hardware and software along with queues

Re-skin GUI, make accesible

Right now the colours have poor contrast and the whole colour scheme needs sanitising. This was identified in one of the January 9 user tests.

Fix GUI so it updates more often after operations

the updateGUI() function in js/liveprinter.ui.js doesn't always update because it depends on a gcode response callback. Functions like # turn 90 don't generate gcode, hence don't update the GUI display up top. This needs to be done more sensibly.

Fix acorn line number errors

It seems that the acornjs version used here doesn't throw complete line/col numbers for syntax highlighting. Probably need to regex the error message manually to highlight wrong code in CodeMirror

3D drawing using draw(x,y,z)

Experiment with 3D drawing by getting rid of drawup/drawdown functions and instead using "classic" draw() with 3 optional arguments (each 0 by default) for x,y,z. OR, drawx(x), drawy(y), draw(z) for explicit dimensions setting.

Move printer movement and model code to back end

All print API code should be on the server (move, extrude, stop, etc) and exposed via RPC. The raw GCode sending function can stay for advanced users but it makes sense that the printer driver itself should make decisions about queuing commands, interpreting printer physical extents, and handling errors and actual movements. The web GUI can query printer position and movement status and the size/content of the raw GCode and higher level API command queue.

Make printer serial communications more general

In the printer serial read thread, create a mapping of printer responses (from commands) to handler functions that can be loaded up when the “driver” is changed (in effect, write a driver for each printer or device firmware instead of hard-coding Marlin). Also create a mapping of printer API functions (move, extrude, etc) to firmware specific GCode.

fix threading model - use python3 tornado to handle all threads

Right now threading is a mess because code came from two different threading systems and I had to learn tornado's method first. Future code should all be futures/promise-based and use async functions and tornado io loops to handle all threads instead of the hacky sleep/mash-up of python threading library and tornado's that is causing events to get lost. But this is a big change because it could mean getting rid of the printer request/commands queue and replacing it with a proper statefull database of some sort (but lightweight) and then having proper command/responses that can be chained with futures/promises/callbacks so a json-rpc request from the GUI can guarantee a response from the server (although doing that over networks and with multiple people and possible machines is tricky).

auto-updating of history editors is broken!

For some reason, they are updating only intermittently and save is also broken -- it saves an older version. Probably to do with the session storage? Seen on FireFox 90.0 on Ubuntu.

ReferenceError, Linux/Firefox

Getting this on Firefox, Linux Mint:

[Show/hide message details.] ReferenceError: assignment to undeclared variable event[Learn More] liveprinter.js:68:33
scheduler
http://localhost:8888/static/liveprinter.js:68:33

Fine on Chrome/macOS. Probably a Firefox thing, will investigate.

tornado's threading is not implemented well

the periodic callback and ioloop in PrinterServer.py is not working... it's blocking and preventing the WebSockets client from connecting. Likely I've not implemented it correctly, it's more complex than I'd hoped. Perhaps it needs to be a simpler threading model.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.