Qudi
|
This is the Interface class to define the controls for the devices controlling the magnetic field. More...
Public Member Functions | |
def | get_constraints (self) |
Retrieve the hardware constrains from the magnet driving device. More... | |
def | move_rel (self, param_dict) |
Moves stage in given direction (relative movement) More... | |
def | move_abs (self, param_dict) |
Moves stage to absolute position (absolute movement) More... | |
def | abort (self) |
Stops movement of the stage. More... | |
def | get_pos (self, param_list=None) |
Gets current position of the stage. More... | |
def | get_status (self, param_list=None) |
Get the status of the position. More... | |
def | calibrate (self, param_list=None) |
Calibrates the stage. More... | |
def | get_velocity (self, param_list=None) |
Gets the current velocity for all connected axes. More... | |
def | set_velocity (self, param_dict=None) |
Write new value for velocity. More... | |
def | tell (self, param_dict=None) |
Send a command to the magnet. More... | |
def | ask (self, param_dict=None) |
Ask the magnet a question. More... | |
def | set_magnet_idle_state (self, magnet_idle=True) |
Set the magnet to couple/decouple to/from the control. More... | |
def | get_magnet_idle_state (self) |
Retrieve the current state of the magnet, whether it is idle or not. More... | |
def | initialize (self) |
![]() | |
def | __new__ (cls, name, bases, attrs) |
Collect declared Connectors, ConfigOptions and StatusVars into dictionaries. More... | |
This is the Interface class to define the controls for the devices controlling the magnetic field.
def magnet_interface.MagnetInterface.abort | ( | self | ) |
Stops movement of the stage.
def magnet_interface.MagnetInterface.ask | ( | self, | |
param_dict = None |
|||
) |
Ask the magnet a question.
dict | param_dict: dictionary, which passes all the relevant parameters, which should be changed. Usage: {'axis_label': <the question="" string>="">}. 'axis_label' must correspond to a label given to one of the axis. |
def magnet_interface.MagnetInterface.calibrate | ( | self, | |
param_list = None |
|||
) |
Calibrates the stage.
dict | param_list: param_list: optional, if a specific calibration of an axis is desired, then the labels of the needed axis should be passed in the param_list. If nothing is passed, then all connected axis will be calibrated. |
After calibration the stage moves to home position which will be the zero point for the passed axis. The calibration procedure will be different for each stage.
def magnet_interface.MagnetInterface.get_constraints | ( | self | ) |
Retrieve the hardware constrains from the magnet driving device.
Provides all the constraints for each axis of a motorized stage (like total travel distance, velocity, ...) Each axis has its own dictionary, where the label is used as the identifier throughout the whole module. The dictionaries for each axis are again grouped together in a constraints dictionary in the form
{'<label_axis0>': axis0 }
where axis0 is again a dict with the possible values defined below. The possible keys in the constraint are defined here in the interface file. If the hardware does not support the values for the constraints, then insert just None. If you are not sure about the meaning, look in other hardware files to get an impression.
constraints = {}
axis0 = {} axis0['label'] = 'x' # name is just as a sanity included axis0['unit'] = 'm' # the SI units axis0['ramp'] = ['Sinus','Linear'] # a possible list of ramps axis0['pos_min'] = 0 axis0['pos_max'] = 100 # that is basically the traveling range axis0['pos_step'] = 100 axis0['vel_min'] = 0 axis0['vel_max'] = 100 axis0['vel_step'] = 0.01
axis1 = {} axis1['label'] = 'y' # name is just as a sanity included axis1['unit'] = 'm' # the SI units axis1['ramp'] = ['Sinus','Linear'] # a possible list of ramps axis1['pos_min'] = 0 axis1['pos_max'] = 100 # that is basically the traveling range axis1['pos_step'] = 100 axis1['vel_min'] = 0 axis1['vel_max'] = 100 axis1['vel_step'] = 0.01
axis2 = {} axis2['label'] = 'z' # name is just as a sanity included axis2['unit'] = 'm' # the SI units axis2['ramp'] = ['Sinus','Linear'] # a possible list of ramps axis2['pos_min'] = 0 axis2['pos_max'] = 1000 # that is basically the traveling range axis2['pos_step'] = 1 # right now unit is millimeter. axis2['vel_min'] = 0 axis2['vel_max'] = 100 axis2['vel_step'] = 0.01
constraints[axis0['label']] = axis0 constraints[axis1['label']] = axis1 constraints[axis2['label']] = axis2
def magnet_interface.MagnetInterface.get_magnet_idle_state | ( | self | ) |
Retrieve the current state of the magnet, whether it is idle or not.
def magnet_interface.MagnetInterface.get_pos | ( | self, | |
param_list = None |
|||
) |
Gets current position of the stage.
list | param_list: optional, if a specific position of an axis is desired, then the labels of the needed axis should be passed in the param_list. If nothing is passed, then from each axis the position is asked. |
def magnet_interface.MagnetInterface.get_status | ( | self, | |
param_list = None |
|||
) |
Get the status of the position.
list | param_list: optional, if a specific status of an axis is desired, then the labels of the needed axis should be passed in the param_list. If nothing is passed, then from each axis the status is asked. |
def magnet_interface.MagnetInterface.get_velocity | ( | self, | |
param_list = None |
|||
) |
Gets the current velocity for all connected axes.
dict | param_list: optional, if a specific velocity of an axis is desired, then the labels of the needed axis should be passed as the param_list. If nothing is passed, then from each axis the velocity is asked. |
def magnet_interface.MagnetInterface.move_abs | ( | self, | |
param_dict | |||
) |
Moves stage to absolute position (absolute movement)
dict | param_dict: dictionary, which passes all the relevant parameters, which should be changed. Usage: {'axis_label': <the-abs-pos-value>}. 'axis_label' must correspond to a label given to one of the axis. |
def magnet_interface.MagnetInterface.move_rel | ( | self, | |
param_dict | |||
) |
Moves stage in given direction (relative movement)
dict | param_dict: dictionary, which passes all the relevant parameters, which should be changed. Usage: {'axis_label': <the-abs-pos-value>}. 'axis_label' must correspond to a label given to one of the axis. |
A smart idea would be to ask the position after the movement.
def magnet_interface.MagnetInterface.set_magnet_idle_state | ( | self, | |
magnet_idle = True |
|||
) |
Set the magnet to couple/decouple to/from the control.
bool | magnet_idle: if True then magnet will be set to idle and each movement command will be ignored from the hardware file. If False the magnet will react on movement changes of any kind. |
def magnet_interface.MagnetInterface.set_velocity | ( | self, | |
param_dict = None |
|||
) |
Write new value for velocity.
dict | param_dict: dictionary, which passes all the relevant parameters, which should be changed. Usage: {'axis_label': <the-velocity-value>}. 'axis_label' must correspond to a label given to one of the axis. |
def magnet_interface.MagnetInterface.tell | ( | self, | |
param_dict = None |
|||
) |
Send a command to the magnet.
dict | param_dict: dictionary, which passes all the relevant parameters, which should be changed. Usage: {'axis_label': <the command="" string>="">}. 'axis_label' must correspond to a label given to one of the axis. |