diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-11-12 18:34:32 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-11-12 18:45:31 -0500 |
commit | 6116a5d48f1a1d7fd4cd671659515fa9cf71a2b5 (patch) | |
tree | 23c86d93ed8059ae3b9904062eaa95538598b52e /klippy/extras | |
parent | 77dff35faefe18cc9cc567ec4428fd7f59ad4e24 (diff) | |
download | kutter-6116a5d48f1a1d7fd4cd671659515fa9cf71a2b5.tar.gz kutter-6116a5d48f1a1d7fd4cd671659515fa9cf71a2b5.tar.xz kutter-6116a5d48f1a1d7fd4cd671659515fa9cf71a2b5.zip |
stepper_enable: Remove ability to use a list of pins in enable_pin
Now that the tmc drivers perform automatic soft stepper enabling,
there is no need to be able to list multiple pins in the enable_pin
config setting.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r-- | klippy/extras/stepper_enable.py | 54 |
1 files changed, 19 insertions, 35 deletions
diff --git a/klippy/extras/stepper_enable.py b/klippy/extras/stepper_enable.py index 99f075ff..e02563fb 100644 --- a/klippy/extras/stepper_enable.py +++ b/klippy/extras/stepper_enable.py @@ -9,10 +9,10 @@ DISABLE_STALL_TIME = 0.100 # Tracking of shared stepper enable pins class StepperEnablePin: - def __init__(self, mcu_enable, enable_count=0): + def __init__(self, mcu_enable, enable_count): self.mcu_enable = mcu_enable self.enable_count = enable_count - self.is_dedicated = enable_count == 0 + self.is_dedicated = True def set_enable(self, print_time): if not self.enable_count: self.mcu_enable.set_digital(print_time, 1) @@ -22,38 +22,6 @@ class StepperEnablePin: if not self.enable_count: self.mcu_enable.set_digital(print_time, 0) -# Automatic multiple pin enable lines -class StepperMultiEnablePin: - def __init__(self, enable_list): - self.enable_list = enable_list - self.is_dedicated = False - def set_enable(self, print_time): - for en in self.enable_list: - en.set_enable(print_time) - def set_disable(self, print_time): - for en in self.enable_list: - en.set_disable(print_time) - -# Resolve the 'enable_pin' stepper config setting -def lookup_enable_pin(ppins, pin_list): - if pin_list is None: - return StepperEnablePin(None, 9999) - enable_list = [] - for pin in pin_list.split(','): - pin_params = ppins.lookup_pin(pin, can_invert=True, - share_type='stepper_enable') - enable = pin_params.get('class') - if enable is None: - mcu_enable = pin_params['chip'].setup_pin('digital_out', pin_params) - mcu_enable.setup_max_duration(0.) - pin_params['class'] = enable = StepperEnablePin(mcu_enable) - else: - enable.is_dedicated = False - enable_list.append(enable) - if len(enable_list) == 1: - return enable_list[0] - return StepperMultiEnablePin(enable_list) - # Enable line tracking for each stepper motor class EnableTracking: def __init__(self, printer, stepper, pin): @@ -61,7 +29,22 @@ class EnableTracking: self.callbacks = [] self.is_enabled = False self.stepper.add_active_callback(self.motor_enable) - self.enable = lookup_enable_pin(printer.lookup_object('pins'), pin) + if pin is None: + # No enable line (stepper always enabled) + self.enable = StepperEnablePin(None, 9999) + self.enable.is_dedicated = False + return + ppins = printer.lookup_object('pins') + pin_params = ppins.lookup_pin(pin, can_invert=True, + share_type='stepper_enable') + self.enable = pin_params.get('class') + if self.enable is not None: + # Shared enable line + self.enable.is_dedicated = False + return + mcu_enable = pin_params['chip'].setup_pin('digital_out', pin_params) + mcu_enable.setup_max_duration(0.) + self.enable = pin_params['class'] = StepperEnablePin(mcu_enable, 0) def register_state_callback(self, callback): self.callbacks.append(callback) def motor_enable(self, print_time): @@ -83,6 +66,7 @@ class EnableTracking: def has_dedicated_enable(self): return self.enable.is_dedicated +# Global stepper enable line tracking class PrinterStepperEnable: def __init__(self, config): self.printer = config.get_printer() |