Axis device driver example ___________________________ .. code-block:: python from terapy.hardware.axes.base import AxisDevice class AxisExample(AxisDevice): def __init__(self): AxisDevice.__init__(self) # Insert here what the driver should do when loaded # (e.g. check that the right modules/interface cards/... are present). # DON'T initialize the device here (see initialize() function for that). self.qtynames = "Position" # name of returned quantities self.units = "ps" # units of axis readings # variables stated in self.config will be loaded/saved # from/to the configuration file (devices.ini) self.config = ["variable1", "variable2"] self.variable1 = 0.0 self.variable2 = "blah" def assign(self, address, ID, name, axis): """ Configure device driver prior to initialization. Parameters: address - physical address as required by communication interface driver ID - device short name (str) name - device long name (str) axis - axis id (int) """ self.address = address self.ID = ID self.name = name self.axis = axis def initialize(self): """ Initialize device. """ pass def configure(self): """ Run configuration routine for device. """ pass def detect(self): """ Detect available devices handled by device driver. Output: list of available devices, each entry as (address, short name, long name, axis id) """ return [] def reset(self): """ Reset device. """ pass def ask(self, cmd): """ Send given command to instrument and return result. Parameters: cmd - command (str) Output: instrument reply (float) """ return 0 def write(self, cmd): """ Send given command to instrument. Parameters: cmd - command (str) """ pass def jog(self, step): """ Jog device relative to current position by given amount. Parameters: step - movement size (float) """ pass def get_motion_status(self): """ Return current state of device. Output: device response to status polling """ return 0 def pos(self): """ Return current position of device. Output: Device position (float) """ return 0 def stop(self): """ Stop device movement. """ pass def prepareScan(self): """ Prepare device for scanning. """ pass def goTo(self, position, wait = False): """ Set device position to given position. Parameters: position - position (float) wait - if True, wait that device reaches position before return """ pass