stepper: Simplify PrinterRail init

Use add_extra_stepper() during class init.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2019-11-12 13:53:07 -05:00
parent 0e30b862c7
commit 0204de46a6
1 changed files with 18 additions and 23 deletions

View File

@ -74,17 +74,13 @@ class PrinterStepper:
class PrinterRail:
def __init__(self, config, need_position_minmax=True,
default_position_endstop=None):
# Primary stepper
stepper = PrinterStepper(config)
self.steppers = [stepper]
self.name = stepper.get_name(short=True)
self.get_commanded_position = stepper.get_commanded_position
# Primary endstop and its position
printer = config.get_printer()
ppins = printer.lookup_object('pins')
mcu_endstop = ppins.setup_pin('endstop', config.get('endstop_pin'))
self.endstops = [(mcu_endstop, self.name)]
stepper.add_to_endstop(mcu_endstop)
# Primary stepper and endstop
self.steppers = []
self.endstops = []
self.add_extra_stepper(config)
self.get_commanded_position = self.steppers[0].get_commanded_position
# Primary endstop position
mcu_endstop = self.endstops[0][0]
if hasattr(mcu_endstop, "get_position_endstop"):
self.position_endstop = mcu_endstop.get_position_endstop()
elif default_position_endstop is None:
@ -92,8 +88,6 @@ class PrinterRail:
else:
self.position_endstop = config.getfloat(
'position_endstop', default_position_endstop)
query_endstops = printer.try_load_module(config, 'query_endstops')
query_endstops.register_endstop(mcu_endstop, self.name)
# Axis range
if need_position_minmax:
self.position_min = config.getfloat('position_min', 0.)
@ -142,17 +136,18 @@ class PrinterRail:
def add_extra_stepper(self, config):
stepper = PrinterStepper(config)
self.steppers.append(stepper)
mcu_endstop = self.endstops[0][0]
endstop_pin = config.get('endstop_pin', None)
if endstop_pin is not None:
if self.endstops and config.get('endstop_pin', None) is None:
# No endstop defined - use primary endstop
stepper.add_to_endstop(self.endstops[0][0])
return
printer = config.get_printer()
ppins = printer.lookup_object('pins')
mcu_endstop = ppins.setup_pin('endstop', endstop_pin)
mcu_endstop = ppins.setup_pin('endstop', config.get('endstop_pin'))
stepper.add_to_endstop(mcu_endstop)
name = stepper.get_name(short=True)
self.endstops.append((mcu_endstop, name))
query_endstops = printer.try_load_module(config, 'query_endstops')
query_endstops.register_endstop(mcu_endstop, name)
stepper.add_to_endstop(mcu_endstop)
def add_to_endstop(self, mcu_endstop):
for stepper in self.steppers:
stepper.add_to_endstop(mcu_endstop)