Paradigms

From SweepMe! Wiki
Jump to navigation Jump to search

To create program procedures and settings, a number of concepts and paradigms are essential:

  • The main flow of the program originates in the Sequencer. Here, users can place modules via drag and drop. The arrangement of these modules determines their activation timing, repetitions, and variations.
  • For more precise control over measurement instruments, one can design SweepMe! instrument drivers using Python. This allows specifying commands sent to instruments at various stages of the sequencer procedure. If the existing drivers do not meet the requirements, they can be extended or replaced with customized ones for specific problems.
  • Modules often depend on values from other modules. Some have a Sweep mode and value for transferring values between modules. This feature enables, for example, synchronizing the voltage increase of two sources or setting them to vary in opposite directions.
  • The parameter syntax, based on curly brackets {...}, facilitates value transfer to modules. The Parameters widget provides an overview of all system parameters. Users can insert these parameters into module text fields. Changes to the parameters notify the module or driver, or allow for inline calculations.
  • While modules offer extensive configuration options, running individual code may be necessary. The Calc module supports simple point-wise calculations, and the CustomFunction add-on allows for more complex scripts, including measurement history analysis.
  • Sometimes, single actions are needed like "close the shutter", "zero the thickness" or "skip the current wafer". Such actions can now be added to modules and drivers and triggered via buttons from add-on module ControlWidgets or from the add-on module Condition.
  • To perform correlated sweeps with two or more modules, such as varying a wavelength while positioning another module accordingly, the ReadValues or TableValues add-ons are useful. They create tables for transferring values between modules. The Calc module can also calculate new Sweep values for a module based on another module's sweep.