stepcompress: Store a reference to 'struct stepper_kinematics'
Support storing a reference to 'struct stepper_kinematics' in 'struct stepcompress' and support globally generating steps via the steppersync mechanism. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
@@ -48,7 +48,6 @@ class MCU_stepper:
|
||||
ffi_main, ffi_lib = chelper.get_ffi()
|
||||
ffi_lib.stepcompress_set_invert_sdir(self._stepqueue, self._invert_dir)
|
||||
self._stepper_kinematics = None
|
||||
self._itersolve_generate_steps = ffi_lib.itersolve_generate_steps
|
||||
self._itersolve_check_active = ffi_lib.itersolve_check_active
|
||||
self._trapq = ffi_main.NULL
|
||||
printer.register_event_handler('klippy:connect',
|
||||
@@ -192,6 +191,8 @@ class MCU_stepper:
|
||||
if old_sk is not None:
|
||||
mcu_pos = self.get_mcu_position()
|
||||
self._stepper_kinematics = sk
|
||||
ffi_main, ffi_lib = chelper.get_ffi()
|
||||
ffi_lib.stepcompress_set_stepper_kinematics(self._stepqueue, sk);
|
||||
self.set_trapq(self._trapq)
|
||||
self._set_mcu_position(mcu_pos)
|
||||
return old_sk
|
||||
@@ -253,12 +254,6 @@ class MCU_stepper:
|
||||
# Invoke callbacks
|
||||
for cb in cbs:
|
||||
cb(ret)
|
||||
def generate_steps(self, flush_time):
|
||||
# Generate steps
|
||||
sk = self._stepper_kinematics
|
||||
ret = self._itersolve_generate_steps(sk, self._stepqueue, flush_time)
|
||||
if ret:
|
||||
raise error("Internal error in stepcompress")
|
||||
def is_active_axis(self, axis):
|
||||
ffi_main, ffi_lib = chelper.get_ffi()
|
||||
a = axis.encode()
|
||||
@@ -281,8 +276,7 @@ def PrinterStepper(config, units_in_radians=False):
|
||||
rotation_dist, steps_per_rotation,
|
||||
step_pulse_duration, units_in_radians)
|
||||
# Register with helper modules
|
||||
mods = ['stepper_enable', 'force_move', 'motion_report', 'motion_queuing']
|
||||
for mname in mods:
|
||||
for mname in ['stepper_enable', 'force_move', 'motion_report']:
|
||||
m = printer.load_object(config, mname)
|
||||
m.register_stepper(config, mcu_stepper)
|
||||
return mcu_stepper
|
||||
|
||||
Reference in New Issue
Block a user