From b0891b4d1653af00030221e5cdac6af7ae6e9f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Fri, 31 May 2013 23:24:21 +0200 Subject: [PATCH] Added resource for retrieving a JSON representation of the current printer state (basically most of what's available on socket.io) Endpoint is /ajax/state --- octoprint/printer.py | 15 +++++++++++++++ octoprint/server.py | 11 +++++++++++ 2 files changed, 26 insertions(+) diff --git a/octoprint/printer.py b/octoprint/printer.py index db41c8d..76bc285 100644 --- a/octoprint/printer.py +++ b/octoprint/printer.py @@ -563,6 +563,21 @@ class Printer(): else: return self._comm.getStateString() + def getCurrentData(self): + return self._stateMonitor.getCurrentData() + + def getCurrentTemperatures(self): + return { + "extruder": { + "current": self._temp, + "target": self._targetTemp + }, + "bed": { + "current": self._bedTemp, + "target": self._targetBedTemp + } + } + def isClosedOrError(self): return self._comm is None or self._comm.isClosedOrError() diff --git a/octoprint/server.py b/octoprint/server.py index f7ee412..4ede4ed 100644 --- a/octoprint/server.py +++ b/octoprint/server.py @@ -271,6 +271,17 @@ def sdCommand(): return jsonify(SUCCESS) +#~~ Printer State + +@app.route(BASEURL + "state", methods=["GET"]) +@login_required +def getPrinterState(): + currentData = printer.getCurrentData() + currentData.update({ + "temperatures": printer.getCurrentTemperatures() + }) + return jsonify(currentData) + #~~ GCODE file handling @app.route(BASEURL + "gcodefiles", methods=["GET"])