diff --git a/klippy/extras/gcode_move.py b/klippy/extras/gcode_move.py index 655b8108f..929f7a807 100644 --- a/klippy/extras/gcode_move.py +++ b/klippy/extras/gcode_move.py @@ -8,20 +8,6 @@ import logging class GCodeMove: def __init__(self, config): self.printer = printer = config.get_printer() - printer.register_event_handler("klippy:ready", self._handle_ready) - printer.register_event_handler("klippy:shutdown", self._handle_shutdown) - printer.register_event_handler("toolhead:set_position", - self.reset_last_position) - printer.register_event_handler("toolhead:manual_move", - self.reset_last_position) - printer.register_event_handler("toolhead:update_extra_axes", - self._update_extra_axes) - printer.register_event_handler("gcode:command_error", - self.reset_last_position) - printer.register_event_handler("extruder:activate_extruder", - self._handle_activate_extruder) - printer.register_event_handler("homing:home_rails_end", - self._handle_home_rails_end) self.is_printer_ready = False # Register g-code commands gcode = printer.lookup_object('gcode') @@ -52,6 +38,23 @@ class GCodeMove: self.saved_states = {} self.move_transform = self.move_with_transform = None self.position_with_transform = (lambda: [0., 0., 0., 0.]) + # Register callbacks + printer.register_event_handler("klippy:ready", self._handle_ready) + printer.register_event_handler("klippy:shutdown", self._handle_shutdown) + printer.register_event_handler("klippy:analyze_shutdown", + self._handle_analyze_shutdown) + printer.register_event_handler("toolhead:set_position", + self.reset_last_position) + printer.register_event_handler("toolhead:manual_move", + self.reset_last_position) + printer.register_event_handler("toolhead:update_extra_axes", + self._update_extra_axes) + printer.register_event_handler("gcode:command_error", + self.reset_last_position) + printer.register_event_handler("extruder:activate_extruder", + self._handle_activate_extruder) + printer.register_event_handler("homing:home_rails_end", + self._handle_home_rails_end) def _handle_ready(self): self.is_printer_ready = True if self.move_transform is None: @@ -60,9 +63,8 @@ class GCodeMove: self.position_with_transform = toolhead.get_position self.reset_last_position() def _handle_shutdown(self): - if not self.is_printer_ready: - return self.is_printer_ready = False + def _handle_analyze_shutdown(self, msg, details): logging.info("gcode state: absolute_coord=%s absolute_extrude=%s" " base_position=%s last_position=%s homing_position=%s" " speed_factor=%s extrude_factor=%s speed=%s",