From 3e0d22c9b07c55f2d2e6f73a94c752e24ca0e10a Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Thu, 15 Mar 2012 07:51:55 -0400 Subject: [PATCH] Fix soft jump handling for unknown `last_output`. Also return after a successful soft jump. The previous implementation duplicated the final step. --- pypiezo/base.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pypiezo/base.py b/pypiezo/base.py index 5fecd64..3e5a079 100644 --- a/pypiezo/base.py +++ b/pypiezo/base.py @@ -524,11 +524,20 @@ class Piezo (object): "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) -- 2.26.2