mcu: Internally store _print_start_time instead of _print_start_clock

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2016-08-25 12:07:08 -04:00
parent e52113a319
commit 7276c7085a
1 changed files with 12 additions and 9 deletions

View File

@ -260,7 +260,7 @@ class MCU:
self._steppers = [] self._steppers = []
self._steppersync = None self._steppersync = None
# Print time to clock epoch calculations # Print time to clock epoch calculations
self._print_start_clock = 0 self._print_start_time = 0.
self._clock_freq = 0. self._clock_freq = 0.
# Stats # Stats
self._mcu_tick_avg = 0. self._mcu_tick_avg = 0.
@ -421,12 +421,14 @@ class MCU:
return MCU_adc(self, pin) return MCU_adc(self, pin)
# Clock syncing # Clock syncing
def set_print_start_time(self, eventtime): def set_print_start_time(self, eventtime):
self._print_start_clock = self.serial.get_clock(eventtime) est_mcu_time = self.serial.get_clock(eventtime) / self._clock_freq
def get_print_buffer_time(self, eventtime, last_move_end): self._print_start_time = est_mcu_time
clock_diff = self.serial.get_clock(eventtime) - self._print_start_clock def get_print_buffer_time(self, eventtime, print_time):
return last_move_end - (float(clock_diff) / self._clock_freq) mcu_time = print_time + self._print_start_time
est_mcu_time = self.serial.get_clock(eventtime) / self._clock_freq
return mcu_time - est_mcu_time
def print_to_mcu_time(self, print_time): def print_to_mcu_time(self, print_time):
return print_time + self._print_start_clock / self._clock_freq return print_time + self._print_start_time
def get_mcu_freq(self): def get_mcu_freq(self):
return self._clock_freq return self._clock_freq
def get_last_clock(self): def get_last_clock(self):
@ -435,7 +437,8 @@ class MCU:
def send(self, cmd, minclock=0, reqclock=0, cq=None): def send(self, cmd, minclock=0, reqclock=0, cq=None):
self.serial.send(cmd, minclock, reqclock, cq=cq) self.serial.send(cmd, minclock, reqclock, cq=cq)
def flush_moves(self, print_time): def flush_moves(self, print_time):
clock = int(print_time * self._clock_freq) + self._print_start_clock mcu_time = print_time + self._print_start_time
clock = int(mcu_time * self._clock_freq)
self.ffi_lib.steppersync_flush(self._steppersync, clock) self.ffi_lib.steppersync_flush(self._steppersync, clock)
@ -490,7 +493,7 @@ class DummyMCU:
def __init__(self, outfile): def __init__(self, outfile):
self.outfile = outfile self.outfile = outfile
self._stepid = -1 self._stepid = -1
self._print_start_clock = 0 self._print_start_time = 0.
self._clock_freq = 16000000. self._clock_freq = 16000000.
logging.debug('Translated by klippy') logging.debug('Translated by klippy')
def connect(self): def connect(self):
@ -517,7 +520,7 @@ class DummyMCU:
def get_print_buffer_time(self, eventtime, last_move_end): def get_print_buffer_time(self, eventtime, last_move_end):
return 0.250 return 0.250
def print_to_mcu_time(self, print_time): def print_to_mcu_time(self, print_time):
return print_time + self._print_start_clock / self._clock_freq return print_time + self._print_start_time
def get_mcu_freq(self): def get_mcu_freq(self):
return self._clock_freq return self._clock_freq
def flush_moves(self, print_time): def flush_moves(self, print_time):