Chapter 2. ICL 9
loop_begin
(loop_count);
This function allows looping within a script. A
loop_count
specifies the number of times to perform the loop.
All instructions between the loop_begin and matching loop_end commands are executed exactly
loop_count
times. Loops may be nested up to 16 deep. Note that indentation of a script’s source code may
improve readability, but it does not alter the loop nesting in any way.
loop_count
must be between 1 and
65,535, inclusive.
loop_end( );
This function defines the end-of-loop, and allows looping within a script. This command must be matched
with a loop_begin command (the loop_begin command must appear first). Loops can be nested.
pixel_display
(x,y);
This function indicates that camera output is decoded for display on a monitor. The application software takes
the next (
x*y
) pixels from the output data stream and displays them as a single rectangular image, x pixels
wide by y pixels tall. Cross-checking done during script setup ensures that the total number of pixels
displayed matches the total number of pixels collected (assuming that data collection is completed without
errors). In other words, the total number of pixels read from the camera (using pixel_readout) equals the
total number of pixels displayed (using pixel_display). Depending on the experiment design and the exact
script used, the individual pixel_readout and pixel_display instructions may or may not be closely
matched. However, if the script contains any pixel_readout instructions (i.e., if one or more pixels are
readout from the camera), it must also contain at least one pixel_display instruction. Both x and y must be
between 1 and 65,535, inclusive.
pixel_readout(s_offset, s_size, s_bin, p_size, p_bin);
This function causes a block of pixels (region) to be first read out into the serial register, then transferred into
the output converter and digitizer. The region must be immediately adjacent to the serial register when this
instruction is given (the parallel offset must be zero, so you have to use the shift command to move the
desired region to the edge of the parallel register).
Serial Register

Parallel Register

s_size
p_size
(0,0)
s_offset
For each row of the block, the first
s_offset
pixels are skipped. The next
s_size
pixels (after the skipped
pixels) are digitized using a binning of
s_bin
. Each subsequent row is then digitized in the same fashion for a
total of
p_size
rows. Finally, if
p_bin
is greater than 1, parallel binning is also performed.
All parallel shifting is performed using the current parallel shifting mode. In some cases, the resulting readout
makes no sense (for example, if a custom backward shift is used).
If any of the sizes are an uneven multiple of binning, a smaller size that exactly fits the binning is used. If the
size is smaller than the binning (size 4, binning 5) a fatal error is produced.