aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/klippy.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-01-08 09:15:40 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-01-08 10:59:43 -0500
commitfb7fe282c80854ba06defa1cb4b49f1c9942f450 (patch)
treefcc3098dd798ddd75d75ea854b0c1f4d6dae6b60 /klippy/klippy.py
parentb2d5a8e65bfb4d5c9250a8cfb72e0b1923c8355d (diff)
downloadkutter-fb7fe282c80854ba06defa1cb4b49f1c9942f450.tar.gz
kutter-fb7fe282c80854ba06defa1cb4b49f1c9942f450.tar.xz
kutter-fb7fe282c80854ba06defa1cb4b49f1c9942f450.zip
klippy: Convert printer_state("shutdown") to an event handler
Convert all users of the printer_state("shutdown") handler to register a "klippy:shutdown" event handler instead. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/klippy.py')
-rw-r--r--klippy/klippy.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/klippy/klippy.py b/klippy/klippy.py
index d81b4dc4..0ac421ae 100644
--- a/klippy/klippy.py
+++ b/klippy/klippy.py
@@ -51,14 +51,14 @@ class Printer:
self.bglogger = bglogger
self.start_args = start_args
self.reactor = reactor.Reactor()
- gc = gcode.GCodeParser(self, input_fd)
- self.objects = collections.OrderedDict({'gcode': gc})
self.reactor.register_callback(self._connect)
self.state_message = message_startup
self.is_shutdown = False
self.run_result = None
- self.state_cb = [gc.printer_state]
self.event_handlers = {}
+ gc = gcode.GCodeParser(self, input_fd)
+ self.objects = collections.OrderedDict({'gcode': gc})
+ self.state_cb = [gc.printer_state]
def get_start_args(self):
return self.start_args
def get_reactor(self):
@@ -183,8 +183,11 @@ class Printer:
return
self.is_shutdown = True
self._set_state("%s%s" % (msg, message_shutdown))
- for cb in self.state_cb:
- cb('shutdown')
+ for cb in self.event_handlers.get("klippy:shutdown", []):
+ try:
+ cb()
+ except:
+ logging.exception("Exception during shutdown handler")
def invoke_async_shutdown(self, msg):
self.reactor.register_async_callback(
(lambda e: self.invoke_shutdown(msg)))