diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-10-08 20:50:45 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-10-10 14:30:09 -0400 |
commit | 770b92863f391df5af45909070bc2e87609c5d45 (patch) | |
tree | 65ebb0956e80dd3687366d75c9c8c07d4948cdc1 /klippy/mcu.py | |
parent | 459e5219910cb57888768f0096355d9be1389024 (diff) | |
download | kutter-770b92863f391df5af45909070bc2e87609c5d45.tar.gz kutter-770b92863f391df5af45909070bc2e87609c5d45.tar.xz kutter-770b92863f391df5af45909070bc2e87609c5d45.zip |
mcu: Add a set_commanded_position() method to MCU_stepper
Add the ability to directly set the "commanded" stepper position.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/mcu.py')
-rw-r--r-- | klippy/mcu.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/klippy/mcu.py b/klippy/mcu.py index 47b6c423..37a7eec0 100644 --- a/klippy/mcu.py +++ b/klippy/mcu.py @@ -73,17 +73,17 @@ class MCU_stepper: def calc_position_from_coord(self, coord): return self._ffi_lib.itersolve_calc_position_from_coord( self._stepper_kinematics, coord[0], coord[1], coord[2]) - def set_position(self, newpos): - spos = self.calc_position_from_coord(newpos) - self._mcu_position_offset += self.get_commanded_position() - spos - self._ffi_lib.itersolve_set_commanded_pos( - self._stepper_kinematics, spos) + def set_position(self, coord): + self.set_commanded_position(self.calc_position_from_coord(coord)) def get_commanded_position(self): return self._ffi_lib.itersolve_get_commanded_pos( self._stepper_kinematics) + def set_commanded_position(self, pos): + self._mcu_position_offset += self.get_commanded_position() - pos + self._ffi_lib.itersolve_set_commanded_pos(self._stepper_kinematics, pos) def get_mcu_position(self): - pos_delta = self.get_commanded_position() + self._mcu_position_offset - mcu_pos = pos_delta / self._step_dist + mcu_pos_dist = self.get_commanded_position() + self._mcu_position_offset + mcu_pos = mcu_pos_dist / self._step_dist if mcu_pos >= 0.: return int(mcu_pos + 0.5) return int(mcu_pos - 0.5) @@ -122,11 +122,11 @@ class MCU_stepper: return params = self._get_position_cmd.send_with_response( [self._oid], response='stepper_position', response_oid=self._oid) - pos = params['pos'] * self._step_dist + mcu_pos_dist = params['pos'] * self._step_dist if self._invert_dir: - pos = -pos + mcu_pos_dist = -mcu_pos_dist self._ffi_lib.itersolve_set_commanded_pos( - self._stepper_kinematics, pos - self._mcu_position_offset) + self._stepper_kinematics, mcu_pos_dist - self._mcu_position_offset) def step_itersolve(self, cmove): ret = self._itersolve_gen_steps(self._stepper_kinematics, cmove) if ret: |