Coder Social home page Coder Social logo

3djuggler's Introduction

Integration with internal website (intern)

You will need to implement internal website API, which supports following:

/job. Depending on a POST params it should:

  • Give a new job
  • Give details about job
  • Update job status

/printer. Depending on a POST params it should:

  • Refresh printer healthcheck
  • Reschedule jobs

Every API call must send Username (app) and Password (token) as POST params

Intergration with printer management device:

Printer management device will need to interact with 3djuggler in order to control the job state. By default http server will listern on localhost:8888. Juggler supports following blocking API calls:

/info

Gives information about current job state, printed percentage etc

/start

Start the job

/pause

Pause the job

/cancel

Cancel the job

/reshedule

Give more time before jobs gets marked as "timed out"

/version

In order to use this functionality, you needs to compile juggler with extra flag (see compile section)

Compile

Simply run:

go get github.com/leoleovich/3djuggler
go build github.com/leoleovich/3djuggler

If you want to enable optional /version api - you need to build juggler with extra flag:

go build -ldflags "-X main.gitCommit=123" github.com/leoleovich/3djuggler

Where 123 is a commit hash. You don't have to use this functionality. In this case /version will simply return empty string

How to run

In order to run juggler you will need a config file. Example of this file you can find in this repository. Juggler also supports following There are extra flags you may find useful:

  -config string
    Main config (default "3djuggler.json")
  -log string
    Where to log (default "/var/log/3djuggler.log")
  -verbose
    Use verbose log output

I am providing code in the repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not my employer (Facebook)

3djuggler's People

Contributors

abulimov avatar gsaraf avatar leoleovich avatar yarikk avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

3djuggler's Issues

spontaneous hang-ups due to partial reads from serial port

time="2021-07-14T02:59:55-07:00" level=debug msg="Feeder: WRITING: G1 X118.967 Y99.506 E0.03359"
time="2021-07-14T02:59:55-07:00" level=debug msg="Feeder: READING: ok"
time="2021-07-14T02:59:55-07:00" level=debug msg="Feeder: WRITING: G1 X118.967 Y100.472 E0.03031"
time="2021-07-14T02:59:55-07:00" level=debug msg="Feeder: READING: o"
time="2021-07-14T02:59:55-07:00" level=debug msg="Feeder: READING: k"
time="2021-07-14T02:59:59-07:00" level=debug msg="No status updates"
time="2021-07-14T02:59:59-07:00" level=info msg="My status is: 'Printing'"
time="2021-07-14T02:59:59-07:00" level=info msg="Job 3780 is currently printing"
time="2021-07-14T02:59:59-07:00" level=info msg="Updating intern status to 'Printing... (0.0%)'"
time="2021-07-14T03:00:04-07:00" level=debug msg="No status updates"
time="2021-07-14T03:00:04-07:00" level=info msg="My status is: 'Printing'"
time="2021-07-14T03:00:04-07:00" level=info msg="Job 3780 is currently printing"

The "ok" string is read as separate "o" and "k" and therefore not recognised.

Related to #8

[question][documentation] Comparison with OctoPrint

Hello.

Just a humble ask. Is it possible to add info about the reasoning behind this project when OctoPrint already exists. This is really nice to see a simple Go daemon to manage 3D printers remotely, but yet :)

For example right now I use OctoPrint at home, but may be it is better to use this instead. What are the advantages of using using 3djuggler instead of OctoPrint? And what are the supposed use cases?

premature Finished due to "interrupted system call"

…
time="2021-07-06T23:32:16-07:00" level=debug msg="Feeder: READING: T:208.04 E:0 B:52.9"
time="2021-07-06T23:32:17-07:00" level=debug msg="Feeder: READING: T:209.42 E:0 B:53.1"
time="2021-07-06T23:32:17-07:00" level=error msg="Feeder: Error reading from printer: interrupted system call"
time="2021-07-06T23:32:17-07:00" level=debug msg="Feeder: Cancel is called"
time="2021-07-06T23:32:17-07:00" level=debug msg="Feeder: Cancel is called"
time="2021-07-06T23:32:19-07:00" level=debug msg="No status updates"
time="2021-07-06T23:32:19-07:00" level=info msg="My status is: 'Printing'"
time="2021-07-06T23:32:20-07:00" level=info msg="Job 3778 is currently printing"
time="2021-07-06T23:32:20-07:00" level=debug msg="Requesting status change to: 'Finished'"
ti
…

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.