CYCLE CONTROLS Panel
Cycle Mode Overview
Cycle mode allows control and timing of acquisition sequences. Cycle acquisitions are started when 1) is enabled on the Cycle Controls panel and 2) a LOOP acquisition is started.
Cycle acquisitions consist of Iterations each of which is a Loop of 1 or more acquisitions (Loop Repeats) – i.e. a Cycle is effectively a meta-loop, or loop of loops.
At the start of each Cycle Iteration, one or more of the following actions can be specified:
- Wait a specified Iteration Delay before starting Iteration acquisition
- Load a specified Configuration (CFG) file, updating configuration parameters to use for that iteration's acquisition(s)
- Step motor by specified increment, or move motor to coordinates associated with specified ROI ID or Position ID
- Update ROI Scan Parameters to those associated with specified ROI ID
- Override Configuration parameters (e.g. # Repeats, # Frames, # Slices, etc) with Iteration-specific values
Left Side Controls
: Enables Cycle mode – subsequently started LOOP acquisitions will follow the Cycle parameters configured in this panel.
: Name of Cycle file (.CYC), if any, that has last been loaded or saved
: Load a Cycle file (.CYC), updating current Cycle parameters.
: Save current Cycle parameters to a Cycle file (.CYC). Dialog is launched to select the folder/file to save to.
The current Cycle parameters are exactly those displayed in the
table
See Cycle (CYC) File Format section below
: On right, sets the number of Cycles to complete before automatically terminating the LOOP acquisition. On left, displays the number of Cycles which have been completed so far. In case of
disabled, value at left can be edited to specify which Cycle count value to start with for next started LOOP acquisition.
- For value > 1, Cycle wraps around to Iteration 1 following the final Iteration N.
- For value Inf, Cycle wraps around indefinitely and never completes until user hits
on the Main Controls panel.
: On right, shows the number of Iterations to be executed per-Cycle, i.e. the number defined in the
table. On left, displays the number of Iterations which have been completed for the current Cycle count value so far. In case of
disabled, value at left can be edited to specify which Iteration to start with for next started LOOP acquisition.
: If enabled, the motor position is recorded at start of each Cycle-enabled LOOP acquisition. Upon completion or abort of the acquisition, the motor is moved to restore the starting position.
: If enabled, the prevailing Configuration is cached at start of each Cycle-enabled LOOP acquisition – the active settings, not just the settings in the last-loaded Configuration file. Upon completion or abort of the acquisition, the cached Configuration settings are restored.
: If enabled, the
and
values are reset to 0 and 1, respectively, upon completion or abort of each Cycle-enabled LOOP acquisition. If disabled,
Disabling
allows user to handle cases where an ongoing Cycle may need to be aborted/restarted, e.g. for motion or other interruption, perhaps redoing particular iteration(s).
If is disabled, the following controls are available:
: Manually reset the
and
values to 0 and 1, respectively.
: Specifies the number of Cycle iterations to execute before automatically terminating for each started LOOP acquisition. Value of Inf implies to execute all iterations until specified number of Cycles (see
) have completed, if ever.
Setting
to finite value allows one to use
as a 'to-do' list of acquisitions to obtain, one or more at a time.
Right Side Controls
: Table specifying number of Cycle Iterations and the actions to implement for each one. Each column is a possible per-Iteration action:
: Specify a Configuration (CFG) file to load for that Iteration
: Time, in seconds, to wait before start of this Iteration (the first Repeat, if # Repeats > 1 for that Iteration
: Specify, together with
, to take a motor step, or to move motor to specified Position ID, or to update ROI Scan Parameters and execute possible motor move according to specified ROI ID
: For specified type of
:
- Motor Step: Specify a 1x3, or 1x4, vector indicating increment of motor position, in microns, e.g. [0 0 1] for a 1um step in the Z dimension
- Posn #: Specify one of the position IDs identified in the Position Controls
- ROI #: Specify one of the ROI IDs identified in the ROI Controls
/
/etc: Specify Iteration-override value to use for acquisition (including multiple Repeats if applicable) for particular Iteration. Overrides value loaded as part of specified Iteration Configuration (CFG) file (
), if any.
KEY POINTS:
Leaving a column blank implies that particular action is not taken for that particular Iteration.
For an Iteration with no Configuration (CFG) file loaded and no Iteration-override specified for a particular parameter, the prevailing parameter value at the start of the LOOP acquisition is used. In other words, subsequent Iterations 'forget' overrides and loaded Configurations at previous Iterations.
Table Edit Tools
: Add an Iteration to Cycle, i.e. add row at end of table
: Remove Iteration associated with currently selected row
: Launch dialog to select Configuration (CFG) file to load for Iteration in currently selected row
: Clears the contents of the selected cells in the table
Hitting <Delete> key has equivalent behavior
: If enabled, an edit in particular column for particular Iteration will be applied (copied) to all Iterations (rows) in table
: Clears data in all rows of
Cycle (CYC) File Format
The Cycle (CYC) file format is text, i.e. human-readable and human-editable. Advanced users may find it necessary/useful to generate CYC files programatically .
The first 5 lines capture the left-hand-side of the Cycle Controls panel:
cycleName <string val> cycleLength <numeric val> numCycleRepeats <numeric val> returnHomeAtCycleEnd <0 or 1> restoreOriginalConfig <0 or 1>
Subsequently there is one line per Cycle iteration, following general format
<iteration #> <columnName1> <columnVal1> <columnName2> <columnVal2> ....
i.e., one name/value pair, e.g. 'repeatPeriod 3', for each non-empty column for each iteration. Note that column names are specified with lower-case names using camel casing.
Users interested in programmatically generating CYC files should enter similar entries directly into Cycle Controls table and save to a demonstration CYC file to better understand the file format that should be followed.