_LOG.debug('current position: %s' % ret)
return ret
- def jump(self, axis_name, position):
+ def jump(self, axis_name, position, steps=1, sleep=None):
"Move the output named `axis_name` to `position`."
- _LOG.debug('jump %s to %s' % (axis_name, position))
+ _LOG.debug('jump %s to %s in %d steps' % (axis_name, position, steps))
+ if steps > 1:
+ orig_pos = self.last_output[axis_name]
+ for pos in _numpy.linspace(orig_pos, position, steps+1)[1:]:
+ self.jump(axis_name=axis_name, position=pos)
+ if sleep:
+ _sleep(sleep)
position = int(position)
channel = self.channel_by_name(name=axis_name)
channel.data_write(position)