diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2023-12-16 14:31:32 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2023-12-26 11:47:21 -0500 |
commit | acde3720a4ee8caefacd39d39ea2e6d540e37453 (patch) | |
tree | cc5314123b436677786a272f9c1210cee2e52099 /klippy/extras/bulk_sensor.py | |
parent | ffd44c02194ecabdd559cac1654aa9a65ecb2c28 (diff) | |
download | kutter-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.py | 29 |
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: |