aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/bulk_sensor.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2023-12-16 14:31:32 -0500
committerKevin O'Connor <kevin@koconnor.net>2023-12-26 11:47:21 -0500
commitacde3720a4ee8caefacd39d39ea2e6d540e37453 (patch)
treecc5314123b436677786a272f9c1210cee2e52099 /klippy/extras/bulk_sensor.py
parentffd44c02194ecabdd559cac1654aa9a65ecb2c28 (diff)
downloadkutter-acde3720a4ee8caefacd39d39ea2e6d540e37453.tar.gz
kutter-acde3720a4ee8caefacd39d39ea2e6d540e37453.tar.xz
kutter-acde3720a4ee8caefacd39d39ea2e6d540e37453.zip
bulk_sensor: New add_mux_endpoint() helper function in APIDumpHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/bulk_sensor.py')
-rw-r--r--klippy/extras/bulk_sensor.py29
1 files changed, 19 insertions, 10 deletions
diff --git a/klippy/extras/bulk_sensor.py b/klippy/extras/bulk_sensor.py
index 8f166ec8..4c4f22ef 100644
--- a/klippy/extras/bulk_sensor.py
+++ b/klippy/extras/bulk_sensor.py
@@ -20,6 +20,8 @@ class APIDumpHelper:
self.update_interval = update_interval
self.update_timer = None
self.clients = {}
+ self.webhooks_start_resp = {}
+ # Periodic batch processing
def _stop(self):
self.clients.clear()
reactor = self.printer.get_reactor()
@@ -52,16 +54,6 @@ class APIDumpHelper:
systime = reactor.monotonic()
waketime = systime + self.update_interval
self.update_timer = reactor.register_timer(self._update, waketime)
- def add_client(self, web_request):
- cconn = web_request.get_client_connection()
- template = web_request.get_dict('response_template', {})
- self.clients[cconn] = template
- self._start()
- def add_internal_client(self):
- cconn = InternalDumpClient()
- self.clients[cconn] = {}
- self._start()
- return cconn
def _update(self, eventtime):
try:
msg = self.data_cb(eventtime)
@@ -80,6 +72,23 @@ class APIDumpHelper:
tmp['params'] = msg
cconn.send(tmp)
return eventtime + self.update_interval
+ # Internal clients
+ def add_internal_client(self):
+ cconn = InternalDumpClient()
+ self.clients[cconn] = {}
+ self._start()
+ return cconn
+ # Webhooks registration
+ def _add_api_client(self, web_request):
+ cconn = web_request.get_client_connection()
+ template = web_request.get_dict('response_template', {})
+ self.clients[cconn] = template
+ self._start()
+ web_request.send(self.webhooks_start_resp)
+ def add_mux_endpoint(self, path, key, value, webhooks_start_resp):
+ self.webhooks_start_resp = webhooks_start_resp
+ wh = self.printer.lookup_object('webhooks')
+ wh.register_mux_endpoint(path, key, value, self._add_api_client)
# An "internal webhooks" wrapper for using APIDumpHelper internally
class InternalDumpClient: