mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-14 18:28:00 -06:00
stepper: Query the stepper mcu position during startup
Try to keep the host mcu_position synchronized with the micro-controller by querying during startup and after every homing event. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
33dcb38297
commit
24586f0c31
3 changed files with 12 additions and 8 deletions
|
@ -42,6 +42,8 @@ class MCU_stepper:
|
|||
self._itersolve_generate_steps = ffi_lib.itersolve_generate_steps
|
||||
self._itersolve_check_active = ffi_lib.itersolve_check_active
|
||||
self._trapq = ffi_main.NULL
|
||||
self._mcu.get_printer().register_event_handler('klippy:connect',
|
||||
self._query_mcu_position)
|
||||
def get_mcu(self):
|
||||
return self._mcu
|
||||
def get_name(self, short=False):
|
||||
|
@ -136,7 +138,7 @@ class MCU_stepper:
|
|||
self.set_trapq(self._trapq)
|
||||
self._set_mcu_position(mcu_pos)
|
||||
return old_sk
|
||||
def note_homing_end(self, did_trigger=False):
|
||||
def note_homing_end(self):
|
||||
ffi_main, ffi_lib = chelper.get_ffi()
|
||||
ret = ffi_lib.stepcompress_reset(self._stepqueue, 0)
|
||||
if ret:
|
||||
|
@ -145,7 +147,9 @@ class MCU_stepper:
|
|||
ret = ffi_lib.stepcompress_queue_msg(self._stepqueue, data, len(data))
|
||||
if ret:
|
||||
raise error("Internal error in stepcompress")
|
||||
if not did_trigger or self._mcu.is_fileoutput():
|
||||
self._query_mcu_position()
|
||||
def _query_mcu_position(self):
|
||||
if self._mcu.is_fileoutput():
|
||||
return
|
||||
params = self._get_position_cmd.send([self._oid])
|
||||
last_pos = params['pos']
|
||||
|
@ -153,6 +157,7 @@ class MCU_stepper:
|
|||
last_pos = -last_pos
|
||||
print_time = self._mcu.estimated_print_time(params['#receive_time'])
|
||||
clock = self._mcu.print_time_to_clock(print_time)
|
||||
ffi_main, ffi_lib = chelper.get_ffi()
|
||||
ret = ffi_lib.stepcompress_set_last_position(self._stepqueue, clock,
|
||||
last_pos)
|
||||
if ret:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue