import pypiezo.base as _pypiezo_base
from . import LOG as _LOG
+from . import unfolder as _unfolder
from .unfolder import ExceptionTooFar as _ExceptionTooFar
from .unfolder import ExceptionTooClose as _ExceptionTooClose
+
class UnfoldScanner (object):
- def __init__(self, config, unfolder):
+ def __init__(self, config=None, unfolder=None):
self.config = config
self.unfolder = unfolder
self._state = {'x direction': 1}
+ def load_from_config(self, devices):
+ c = self.config # reduce verbosity
+ if self.unfolder is None and c['unfold']:
+ self.unfolder = _unfolder.Unfolder(config=c['unfold'])
+ self.unfolder.load_from_config(devices=devices)
+
+ def setup_config(self):
+ if self.unfolder:
+ self.unfolder.setup_config()
+ self.config['unfolder'] = self.unfolder.config
+ else:
+ self.config['unfolder'] = None
+
def run(self, stepper_tweaks=True):
self._stop = False
_signal.signal(_signal.SIGTERM, self._handle_stop_signal)
self.unfolder.config['unfold']['velocity'] = velocity
try:
self.unfolder.run()
- except _ExceptionTooFar:
+ except _unfolder.ExceptionTooFar:
if stepper_tweaks:
self.stepper_approach()
else:
raise
- except _ExceptionTooClose:
+ except _unfolder.ExceptionTooClose:
if stepper_tweaks:
self.afm.move_away_from_surface()
self.stepper_approach()