import os.path as _os_path
import time as _time
-import h5py as _h5py
-import pypiezo.base as _pypiezo_base
from h5config.storage.hdf5 import HDF5_Storage as _HDF5_Storage
from h5config.storage.hdf5 import h5_create_group as _h5_create_group
+import h5py as _h5py
+import pyafm.afm as _pyafm_afm
+import pypiezo.base as _pypiezo_base
from . import LOG as _LOG
from . import package_config as _package_config
class Unfolder (object):
- def __init__(self, config, afm):
+ def __init__(self, config=None, afm=None):
self.config = config
self.afm = afm
- self.zero_piezo()
+ if self.afm:
+ self.zero_piezo()
+
+ def load_from_config(self, devices):
+ c = self.config # reduce verbosity
+ if self.afm is None and c['afm']:
+ self.afm = _pyafm_afm.AFM(config=c['afm'])
+ self.afm.load_from_config(devices=devices)
+
+ def setup_config(self):
+ if self.afm:
+ self.afm.setup_config()
+ self.config['afm'] = self.afm.config
+ else:
+ self.config['afm'] = None
def run(self):
"""Approach-bind-unfold-save[-plot] cycle.
storage = _HDF5_Storage()
config_cwg = _h5_create_group(f, 'config')
storage.save(config=self.config, group=config_cwg)
- afm_piezo_cwg = _h5_create_group(config_cwg, 'afm/piezo')
- storage.save(config=self.afm.piezo.config, group=afm_piezo_cwg)
f['/environment/timestamp'] = timestamp
x_axis_name = 'x'
f['/environment/{}-position/data'.format(x_axis_name)