Sequencer procedure: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 40: | Line 40: | ||
# if a item of the sequencer finishs its parameter variation | # if a item of the sequencer finishs its parameter variation | ||
[[signout()]] -> does nothing, but can be used to do something after the parameter variation | [[signout()]] -> does nothing, but can be used to do something after the parameter variation | ||
# if a [[branch]] is left and the module is not part of the next branch; also called if run is stopped by error | # 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 from leaf to root: switches the modules and devices off | [[poweroff()]] -> for all items from leaf to root: switches the modules and devices off |
Revision as of 13:50, 28 August 2023
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 from root to leaf: get and open a port object to communicate with a device initialize() -> for all items from root to leaf: set all value and configurations to make the device ready for a 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: sets the configuration of the device poweron() -> for all items from root to leaf: switches the device on # if a item of the sequencer starts its parameter variation signin() -> does nothing except calling reconfigure() if needed, but can be used to do something before the parameter variation starts # for each measurement point # each function is done for all items of the branch from root to leaf 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 as many values to SweepMe! as defined by self.variables ---------------------------------------------------------------------------------------------- process() -> deprecated: will be continued for a while finish() -> clean up before the next measurement starts
# if a item of the sequencer finishs its parameter variation signout() -> does nothing, but can be used to do something after the parameter variation
# 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 from leaf to root: switches the modules and devices off unconfigure() -> for all items from leaf to root: unconfigures the modules and drivers # at end for all items of the sequencer; also called if run is stopped by error deinitialize() -> for all items from root to leaf: reset 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 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.