diff --git a/klippy/clocksync.py b/klippy/clocksync.py index f32ed3cd..80ed9db6 100644 --- a/klippy/clocksync.py +++ b/klippy/clocksync.py @@ -66,10 +66,8 @@ class ClockSync: self.queries_pending = 0 # Extend clock to 64bit last_clock = self.last_clock - clock = (last_clock & ~0xffffffff) | params['clock'] - if clock < last_clock: - clock += 0x100000000 - self.last_clock = clock + clock_delta = (params['clock'] - last_clock) & 0xffffffff + self.last_clock = clock = last_clock + clock_delta # Check if this is the best round-trip-time seen so far sent_time = params['#sent_time'] if not sent_time: @@ -138,10 +136,9 @@ class ClockSync: # misc commands def clock32_to_clock64(self, clock32): last_clock = self.last_clock - clock_diff = (last_clock - clock32) & 0xffffffff - if clock_diff & 0x80000000: - return last_clock + 0x100000000 - clock_diff - return last_clock - clock_diff + clock_diff = (clock32 - last_clock) & 0xffffffff + clock_diff -= (clock_diff & 0x80000000) << 1 + return last_clock + clock_diff def is_active(self): return self.queries_pending <= 4 def dump_debug(self):