Sequencer procedure: Difference between revisions

From SweepMe! Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 50: Line 50:
     [[deinitialize()]]  -> for all items: reset the status for any other user of the equipment
     [[deinitialize()]]  -> for all items: reset the status for any other user of the equipment
     [[disconnect()]]    -> for all items: closes the port object
     [[disconnect()]]    -> for all items: closes the port object
== General rules ==
* At the beginning of a measurement, modules and drivers use [[connect]] and [[initialize]] to make everything ready for the run. At the end [[deinitialize]] and [[disconnect] to bring the module or the driver back into an idle state and to close the connection.
* When a module gets active, i.e. it is part of an active [[branch]], it is configure and powered on using [[configure]] and [[poweron]] function. If a module is not active anymore it get unconfigured and powered off using [[poweroff]] and [[unconfigure]].
* At each measurement point, i.e. a combination of setpoint iteration steps of the all modules in a branch, a couple of functions are called to perform the measurement point such as [[start]], [[apply]], [[reach]], [[adapt]], [[measure]], [[call]] to name the most important ones.

Revision as of 13:32, 11 July 2022

The following gives an overview of the functions that are called in a Module and that are forwarded to a Driver if the Module can load drivers.

SweepMe! version 1.5.4 or higher

   # at start of the sequencer
   connect()     -> for all items: get and open a port object to communicate with a device
   initialize()  -> for all items: set all value and configurations to make the device ready for a measurement
   
       # if a item of the sequencer starts its parameter variation
       signin()  -> does nothing, but can be used to do something before the parameter variation starts
       
       # if a new branch is entered and the module was not part of the previous branch
       configure()  -> changes the configuration of the device
       poweron()    -> switches the device on
   
           # for each measurement point
           # each function is done for all items of the branch before the next function is performed: 
           start()          -> prepare something before value is applied
           ----------------------------------------------------------------------------------------------
           apply()          -> set the new value to a device if supported, only called if sweep value changes
           reach()          -> wait to reach the new value, start reaching a certain condition,  only called if 'apply' was called previously
           ----------------------------------------------------------------------------------------------
           wait hold time       -> sleep any hold time while the setvalues are applied
           ----------------------------------------------------------------------------------------------
           adapt()          -> adapt the measurement devices to the new conditions
           adapt_ready()    -> make sure all device have adapted to the new conditions
           trigger_ready()  -> make devices ready to be triggered
           trigger()        -> deprecated: will be continued for a while
           ----------------------------------------------------------------------------------------------
           measure()        -> initiate/trigger a measurement, nothing else
           request_result() -> request a result from the device buffer
           read_result()    -> read a result from the port buffer
           ----------------------------------------------------------------------------------------------
           process_data()   -> process the measured data after the measurement itself has finished
           call()           -> mandatory: return values to SweepMe! as defined by self.variables
           ----------------------------------------------------------------------------------------------
           process()        -> deprecated: will be continued for a while
           finish()         -> clean up before the next measurement starts 
           ----------------------------------------------------------------------------------------------
           wait stop time       -> deprecated from 1.5.5.: sleep any stop time while time while the devices are set to their idlevalues
     
       #  if a branch is left and the module is not part of the next branch; also called if run is stopped by error
       poweroff()      -> for all items: switches the device off
       unconfigure()   -> set value to idlevalue and apply() it
       
       # if a item of the sequencer finishs its parameter variation
       signout()  -> does nothing, but can be used to do something after the parameter variation
   
   # at end for all items of the sequencer; also called if run is stopped by error
   deinitialize()   -> for all items: reset the status for any other user of the equipment
   disconnect()     -> for all items: closes the port object


General rules

  • At the beginning of a measurement, modules and drivers use connect and initialize to make everything ready for the run. At the end deinitialize and [[disconnect] to bring the module or the driver back into an idle state and to close the connection.
  • When a module gets active, i.e. it is part of an active branch, it is configure and powered on using configure and poweron function. If a module is not active anymore it get unconfigured and powered off using poweroff and unconfigure.
  • At each measurement point, i.e. a combination of setpoint iteration steps of the all modules in a branch, a couple of functions are called to perform the measurement point such as start, apply, reach, adapt, measure, call to name the most important ones.