diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2020-04-25 00:15:47 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2020-05-05 11:08:12 -0400 |
commit | a11535fc868a63ba31903bad73f126958877ac80 (patch) | |
tree | 6f7ad2bd1e16002315a0f93850c83208c7a1bc2a | |
parent | 53093a7a15a6c8750bdb8289d88fd48ed7acc780 (diff) | |
download | kutter-a11535fc868a63ba31903bad73f126958877ac80.tar.gz kutter-a11535fc868a63ba31903bad73f126958877ac80.tar.xz kutter-a11535fc868a63ba31903bad73f126958877ac80.zip |
servo: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r-- | klippy/extras/servo.py | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/klippy/extras/servo.py b/klippy/extras/servo.py index 3d6e51ad..c579b143 100644 --- a/klippy/extras/servo.py +++ b/klippy/extras/servo.py @@ -26,10 +26,10 @@ class PrinterServo: self.enable = config.getboolean('enable', True) self.last_enable = not self.enable servo_name = config.get_name().split()[1] - self.gcode = self.printer.lookup_object('gcode') - self.gcode.register_mux_command("SET_SERVO", "SERVO", servo_name, - self.cmd_SET_SERVO, - desc=self.cmd_SET_SERVO_help) + gcode = self.printer.lookup_object('gcode') + gcode.register_mux_command("SET_SERVO", "SERVO", servo_name, + self.cmd_SET_SERVO, + desc=self.cmd_SET_SERVO_help) # Check to see if an initial angle or pulse width is # configured and set it as required self.initial_pwm_value = None @@ -71,20 +71,19 @@ class PrinterServo: width = max(self.min_width, min(self.max_width, width)) return width * self.width_to_value cmd_SET_SERVO_help = "Set servo angle" - def cmd_SET_SERVO(self, params): + def cmd_SET_SERVO(self, gcmd): print_time = self.printer.lookup_object('toolhead').get_last_move_time() - if 'ENABLE' in params: - value = self.gcode.get_int('ENABLE', params) - self.enable = value != 0 - if 'WIDTH' in params: - self._set_pwm(print_time, self._get_pwm_from_pulse_width( - self.gcode.get_float('WIDTH', params))) + enable = gcmd.get_int('ENABLE', None) + width = gcmd.get_float('WIDTH', None) + angle = gcmd.get_float('ANGLE', None) + if enable is not None: + self.enable = enable != 0 + if width is not None: + self._set_pwm(print_time, self._get_pwm_from_pulse_width(width)) + elif angle is not None: + self._set_pwm(print_time, self._get_pwm_from_angle(angle)) else: - if 'ANGLE' in params: - self._set_pwm(print_time, self._get_pwm_from_angle( - self.gcode.get_float('ANGLE', params))) - else: - self._set_pwm(print_time, self.last_value) + self._set_pwm(print_time, self.last_value) def load_config_prefix(config): return PrinterServo(config) |