diff options
Diffstat (limited to 'gui/api/__init__.py')
-rwxr-xr-x | gui/api/__init__.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gui/api/__init__.py b/gui/api/__init__.py index a535eb3..56062c3 100755 --- a/gui/api/__init__.py +++ b/gui/api/__init__.py @@ -47,15 +47,20 @@ class API(plugins.SimplePlugin): plugins.SimplePlugin.__init__(self, bus) self.mod_rc = mod_rc self.dpd_state = None + self.calibration_result = None def start(self): self.bus.subscribe("dpd-state", self.dpd_state) + self.bus.subscribe("dpd-calibration-result", self.calibration_result) def stop(self): self.bus.unsubscribe("dpd-state", self.dpd_state) + self.bus.unsubscribe("dpd-calibration-result", self.calibration_result) + + def calibration_result(self, new_result): + self.calibration_result = new_result def dpd_state(self, new_state): - print("API got new dpd-state {}".format(new_state)) self.dpd_state = new_state @cherrypy.expose @@ -102,3 +107,15 @@ class API(plugins.SimplePlugin): else: return send_error("DPD state unknown") + @cherrypy.expose + @cherrypy.tools.json_out() + def dpd_calibrate(self, **kwargs): + if cherrypy.request.method == 'POST': + cherrypy.engine.publish('dpd-calibrate', None) + return send_ok() + else: + if self.dpd_state is not None: + return send_ok(self.calibration_result) + else: + return send_error("DPD calibration result unknown") + |