Sequencer procedure

From SweepMe! Wiki
Revision as of 10:47, 15 February 2024 by Franz Hempel (talk | contribs)
Jump to navigation Jump to search

This section provides an easy-to-understand overview of the functions executed in a SweepMe! Module. These functions are forwarded to a Driver if the Module can load drivers.

SweepMe! version 1.5.4 or higher

Sequencer Start:

  • connect() - For all items from root to leaf: get and open a port object to communicate with a device.
  • initialize() - For all items from root to leaf: Set values and configurations for devices to prepare for measurement.

If a new branch is entered and the module was not part of the previous branch:

  • configure() - For all items from root to leaf: Set device configuration.
  • poweron() - For all items from root to leaf: Powers on the device.

If an item of the sequencer starts its parameter variation:

  • signin() - Calls reconfigure() if needed. Can be used to perform actions before parameter variation starts.

For each measurement point:

Each step is performed for all items from root to leaf before the next step is started:

  • start() - Preparation before applying a new value.

  • apply() - Only called if the sweep value changes: Sets a new value to a device .
  • reach() - Only called if apply() was called: Wait to reach the new value or start reaching a certain condition
  • sleephold() - Sleeps during hold time while set values are applied.



  • process_data() - Processes measured data after the measurement finishes.
  • call() - Mandatory: Returns values to SweepMe! as defined by self.variables.

  • process() - Deprecated, continued for a while.
  • finish() - Cleans up before the next measurement.

If an item of the sequencer finishes its parameter variation:

  • signout() - Optionally performs actions after parameter variation.

Leaving a branch and the module is not part of the next branch or run is stopped by error:

  • poweroff() - For all items from root to leaf: Switch off modules and devices.
  • unconfigure() - For all items from root to leaf: Unconfigure modules and devices.

End of sequencer of run is stopped by error

  • deinitialize() - For all items from root to leaf: Resets the status for any other user of the equipment.
  • disconnect() - For all items from root to leaf: Closes the port object.


General rules

  • At the beginning of a measurement, modules and drivers use connect and initialize. At the end deinitialize and [[disconnect] to bring the module or the driver back to an idle state and to close the connection.
  • When a module gets active, i.e. it is part of an active branch, it runs configure and poweron. If a module is not active anymore it runs poweroff and reconfigure.
  • 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.