Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
----
{center}
!CycleControls.bmp!
*CYCLE CONTROLS Panel*
{center}
-----
{toc:type=flat}

h3. Cycle Mode Overview
{excerpt-include:Cycle Mode (r3.8)|nopanel=true}

h3. Left Side Controls

* {blue:Cycle Mode On}: Enables Cycle mode -- subsequently started [LOOP acquisitions|SI3.8_AcqModes] will follow the Cycle parameters configured in this panel.

* {blue:Cycle Name}: Name of Cycle file (.CYC), if any, that has last been loaded or saved
* {blue:Load}: Load a Cycle file (.CYC), updating current Cycle parameters. 
* {blue:Save}: Save current Cycle parameters to a Cycle file (.CYC). Dialog is launched to select the folder/file to save to.

(i) The current Cycle parameters are exactly those displayed in the {blue:Cycle Iteration Data} table
(/) See [Cycle (CYC) File Format|#CycFileFormat] section below

* {blue:Cycles Done}: On right, sets the number of Cycles to complete before automatically terminating the [LOOP acquisition|SI3.8_AcqModes]. On left, displays the number of Cycles which have been completed so far. In case of {blue:Auto-reset Iteration/Count} disabled, value at left can be edited to specify which Cycle count value to start with for next started [LOOP acquisition|SI3.8_AcqModes].
** 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 {blue:Abort} on the [Main Controls|Main Controls (r3.8)] panel. 

* {blue:Cycle Iteration}: On right, shows the number of _Iterations_ to be executed per-Cycle, i.e. the number defined in the {blue:Cycle Iteration Data} table. On left, displays the number of _Iterations_ which have been completed for the current Cycle count value so far. In case of {blue:Auto-reset Iteration/Count} disabled, value at left can be edited to specify which _Iteration_ to start with for next started [LOOP acquisition|SI3.8_AcqModes].

* {blue:Go Home at Cycle End}: If enabled, the motor position is recorded at start of each Cycle-enabled [LOOP acquisition|SI3.8_AcqModes]. Upon completion or abort of the acquisition, the motor is moved to restore the starting position.

* {blue:Restore Original CFG}: If enabled, the prevailing [Configuration|SI3.8_Config] is cached at start of each Cycle-enabled [LOOP acquisition|SI3.8_AcqModes] -- the active settings, not just the settings in the last-loaded [Configuration file|SI3.8_Config]. Upon completion or abort of the acquisition, the cached [Configuration|SI3.8_Config] settings are restored.

* {blue:Auto-reset Iteration/Count}: If enabled, the {blue:Cycles Done} and {blue:Cycle Iteration} values are reset to 0 and 1, respectively, upon completion or abort of each Cycle-enabled [LOOP acquisition|SI3.8_AcqModes]. If disabled, 

(/) Disabling {blue:Auto-reset Iteration/Count} 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 {blue:Auto-reset Iteration/Count} is disabled, the following controls are available:

* {blue:Reset}: Manually reset the {blue:Cycles Done} and {blue:Cycle Iteration} values to 0 and 1, respectively.

* {blue:Iterations per LOOP}: Specifies the number of Cycle iterations to execute before automatically terminating for each started [LOOP acquisition|SI3.8_AcqModes]. Value of Inf implies to execute all iterations until specified number of Cycles (see {blue:Cycles Done}) have completed, if ever. 

(/) Setting {blue:Iterations per LOOP} to finite value allows one to use {blue:Cycle Iteration Data} as a 'to-do' list of acquisitions to obtain, one or more at a time.

h3. Right Side Controls

{blue:Cycle Iteration Data}: Table specifying number of Cycle _Iterations_ and the actions to implement for each one. Each column is a possible per-Iteration action:

* {blue:Config Name}: Specify a [Configuration (CFG) file|SI3.8_Config] to load for that _Iteration_
* {blue:Iteration Delay}: Time, in seconds, to wait before start of this _Iteration_ (the first _Repeat_, if # Repeats > 1 for that _Iteration_
* {blue:Motor Action}: Specify, together with {blue:Motor Step/Posn #/ROI #}, to take a motor step, or to move motor to specified [Position ID|Position Controls (r3.8)], or to update _ROI Scan Parameters_ and execute possible motor move according to specified [ROI ID|ROI Controls (r3.8)]
* {blue:Motor Step/Posn #/ROI #}: For specified type of {blue:Motor Action}:
** _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|Position Controls (r3.8)]
** _ROI #_: Specify one of the ROI IDs identified in the [ROI Controls|ROI Controls (r3.8)]

* {blue:Repeat Period}/{blue:# Repeats}/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|SI3.8 config] ({blue:Config Name}), 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|SI3.8_Config] loaded and no _Iteration_-override specified for a particular parameter, the prevailing parameter value at the start of the [LOOP acquisition|SI3.8_AcqModes] is used. In other words, subsequent _Iterations_ 'forget' overrides and loaded [Configurations|SI3.8_Config] at previous _Iterations_.

h5. {blue:Cycle Iteration Data} Table Edit Tools

{blue:Add Iteration}: Add an _Iteration_ to Cycle, i.e. add row at end of table
{blue:Remove Iteration}: Remove  _Iteration_ associated with currently selected row

{blue:Add CFG...}: Launch dialog to select [Configuration (CFG) file|SI3.8_Config] to load for _Iteration_ in currently selected row

{blue:Clear}: Clears the contents of the selected cells in the table
(/) Hitting <Delete> key has equivalent behavior

{blue:Apply to All}: If enabled, an edit in particular column for particular _Iteration_ will be applied (copied) to all _Iterations_ (rows) in table

{blue:Clear All}: Clears data in all rows of {blue:Cycle Iteration Data}


{anchor:CycFileFormat}
h3. 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:

{code:lang=none}
cycleName <string val>
cycleLength <numeric val>
numCycleRepeats <numeric val>
returnHomeAtCycleEnd <0 or 1>
restoreOriginalConfig <0 or 1>
{code}

Subsequently there is one line per Cycle iteration, following general format

{code:lang=none}
<iteration #> <columnName1> <columnVal1> <columnName2> <columnVal2> ....
{code}

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|http://en.wikipedia.org/wiki/CamelCase]. 

(/) 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.