mirror of
https://github.com/Klipper3d/klipper.git
synced 2026-01-17 21:35:49 -07:00
tmc: Simplify TMCCommandHelper() error checking
Move shutdown checking from _do_enable() and _dos_disable() to new enable_disable_cb(). Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
db35e99ea1
commit
d5ef924751
1 changed files with 30 additions and 32 deletions
|
|
@ -442,42 +442,40 @@ class TMCCommandHelper:
|
|||
self.mcu_phase_offset = moff
|
||||
# Stepper enable/disable tracking
|
||||
def _do_enable(self, print_time):
|
||||
try:
|
||||
if self.toff is not None:
|
||||
# Shared enable via comms handling
|
||||
self.fields.set_field("toff", self.toff)
|
||||
self._init_registers()
|
||||
did_reset = self.echeck_helper.start_checks()
|
||||
if did_reset:
|
||||
self.mcu_phase_offset = None
|
||||
# Calculate phase offset
|
||||
if self.toff is not None:
|
||||
# Shared enable via comms handling
|
||||
self.fields.set_field("toff", self.toff)
|
||||
self._init_registers()
|
||||
did_reset = self.echeck_helper.start_checks()
|
||||
if did_reset:
|
||||
self.mcu_phase_offset = None
|
||||
# Calculate phase offset
|
||||
if self.mcu_phase_offset is not None:
|
||||
return
|
||||
gcode = self.printer.lookup_object("gcode")
|
||||
with gcode.get_mutex():
|
||||
if self.mcu_phase_offset is not None:
|
||||
return
|
||||
gcode = self.printer.lookup_object("gcode")
|
||||
with gcode.get_mutex():
|
||||
if self.mcu_phase_offset is not None:
|
||||
return
|
||||
logging.info("Pausing toolhead to calculate %s phase offset",
|
||||
self.stepper_name)
|
||||
self.printer.lookup_object('toolhead').wait_moves()
|
||||
self._handle_sync_mcu_pos(self.stepper)
|
||||
except self.printer.command_error as e:
|
||||
self.printer.invoke_shutdown(str(e))
|
||||
logging.info("Pausing toolhead to calculate %s phase offset",
|
||||
self.stepper_name)
|
||||
self.printer.lookup_object('toolhead').wait_moves()
|
||||
self._handle_sync_mcu_pos(self.stepper)
|
||||
def _do_disable(self, print_time):
|
||||
try:
|
||||
if self.toff is not None:
|
||||
val = self.fields.set_field("toff", 0)
|
||||
reg_name = self.fields.lookup_register("toff")
|
||||
self.mcu_tmc.set_register(reg_name, val, print_time)
|
||||
self.echeck_helper.stop_checks()
|
||||
except self.printer.command_error as e:
|
||||
self.printer.invoke_shutdown(str(e))
|
||||
if self.toff is not None:
|
||||
val = self.fields.set_field("toff", 0)
|
||||
reg_name = self.fields.lookup_register("toff")
|
||||
self.mcu_tmc.set_register(reg_name, val, print_time)
|
||||
self.echeck_helper.stop_checks()
|
||||
def _handle_stepper_enable(self, print_time, is_enable):
|
||||
if is_enable:
|
||||
cb = (lambda ev: self._do_enable(print_time))
|
||||
else:
|
||||
cb = (lambda ev: self._do_disable(print_time))
|
||||
self.printer.get_reactor().register_callback(cb)
|
||||
def enable_disable_cb(eventtime):
|
||||
try:
|
||||
if is_enable:
|
||||
self._do_enable(print_time)
|
||||
else:
|
||||
self._do_disable(print_time)
|
||||
except self.printer.command_error as e:
|
||||
self.printer.invoke_shutdown(str(e))
|
||||
self.printer.get_reactor().register_callback(enable_disable_cb)
|
||||
# Initial startup handling
|
||||
def _handle_mcu_identify(self):
|
||||
# Lookup stepper object
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue