Sequencer procedure

From SweepMe! Wiki
Revision as of 15:18, 14 February 2024 by Franz Hempel (talk | contribs) (Rewrite for quality and clarity)
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.