Qudi
Public Member Functions | List of all members
motor_interface.MotorInterface Class Reference

This is the Interface class to define the controls for the simple step motor device. More...

Inheritance diagram for motor_interface.MotorInterface:
Inheritance graph
[legend]
Collaboration diagram for motor_interface.MotorInterface:
Collaboration graph
[legend]

Public Member Functions

def get_constraints (self)
 Retrieve the hardware constrains from the motor 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 arms. 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)
 Write new value for velocity. More...
 
- Public Member Functions inherited from core.module.ModuleMeta
def __new__ (cls, name, bases, attrs)
 Collect declared Connectors, ConfigOptions and StatusVars into dictionaries. More...
 

Detailed Description

This is the Interface class to define the controls for the simple step motor device.

The actual hardware implementation might have a different amount of axis. Implement each single axis as 'private' methods for the hardware class, which get called by the general method.

Member Function Documentation

◆ abort()

def motor_interface.MotorInterface.abort (   self)

Stops movement of the stage.

Returns
int: error code (0:OK, -1:error)

◆ calibrate()

def motor_interface.MotorInterface.calibrate (   self,
  param_list = None 
)

Calibrates the stage.

Parameters
dictparam_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.
Returns
int: error code (0:OK, -1:error)

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.

◆ get_constraints()

def motor_interface.MotorInterface.get_constraints (   self)

Retrieve the hardware constrains from the motor device.

Returns
dict: dict with constraints for the magnet hardware. These constraints will be passed via the logic to the GUI so that proper display elements with boundary conditions could be made.

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.

Example of how a return dict with constraints might look like:

constraints = {}

axis0 = {} axis0['label'] = 'x' # it is very crucial that this label coincides

with the label set in the config.

axis0['unit'] = 'm' # the SI units, only possible m or degree 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, axis0['acc_min'] = 0.1 axis0['acc_max'] = 0.0 axis0['acc_step'] = 0.0

axis1 = {} axis1['label'] = 'phi' that axis label should be obtained from config axis1['unit'] = 'degree' # the SI units axis1['ramp'] = ['Sinus','Trapez'], # a possible list of ramps axis1['pos_min'] = 0, axis1['pos_max'] = 360, # that is basically the traveling range axis1['pos_step'] = 100, axis1['vel_min'] = 1, axis1['vel_max'] = 20, axis1['vel_step'] = 0.1, axis1['acc_min'] = None axis1['acc_max'] = None axis1['acc_step'] = None

assign the parameter container for x to a name which will identify it

constraints[axis0['label']] = axis0 constraints[axis1['label']] = axis1

◆ get_pos()

def motor_interface.MotorInterface.get_pos (   self,
  param_list = None 
)

Gets current position of the stage arms.

Parameters
listparam_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.
Returns
dict: with keys being the axis labels and item the current position.

◆ get_status()

def motor_interface.MotorInterface.get_status (   self,
  param_list = None 
)

Get the status of the position.

Parameters
listparam_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.
Returns
dict: with the axis label as key and the status number as item.

◆ get_velocity()

def motor_interface.MotorInterface.get_velocity (   self,
  param_list = None 
)

Gets the current velocity for all connected axes.

Parameters
dictparam_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.
Returns
dict : with the axis label as key and the velocity as item.

◆ move_abs()

def motor_interface.MotorInterface.move_abs (   self,
  param_dict 
)

Moves stage to absolute position (absolute movement)

Parameters
dictparam_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.
Returns
int: error code (0:OK, -1:error)

◆ move_rel()

def motor_interface.MotorInterface.move_rel (   self,
  param_dict 
)

Moves stage in given direction (relative movement)

Parameters
dictparam_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.

Returns
int: error code (0:OK, -1:error)

◆ set_velocity()

def motor_interface.MotorInterface.set_velocity (   self,
  param_dict 
)

Write new value for velocity.

Parameters
dictparam_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.
Returns
int: error code (0:OK, -1:error)

The documentation for this class was generated from the following file: