"Move the output named `axis_name` to `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)
+ try:
+ orig_pos = self.last_output[axis_name]
+ except KeyError, e:
+ _LOG.warn(
+ ("cannot make a soft jump to {} because we don't have a "
+ 'last-output position for {}').format(
+ position, axis_name))
+ steps = 1
+ else:
+ for pos in _numpy.linspace(orig_pos, position, steps+1)[1:]:
+ self.jump(axis_name=axis_name, position=pos)
+ if sleep:
+ _sleep(sleep)
+ return
position = int(position)
channel = self.channel_by_name(name=axis_name)
channel.data_write(position)