Contents
- STARGRASP Core System
- I. Core System Operation
- II. Core Software Overview
- Command Syntax Notes
- Application Notes
- A. Demo Scripts
- config
- functions
- stage2
- pon
- cal
- setup
- clean
- expose
- readout
- save
- video
- B. Toolkit Level
- C. STARGRASP C Libraries
- D. Controller Socket Commands
- E. Registers and Clocking Instructions
- III. Core Hardware Overview
- IV. Computers and Switches
- V. Test Procedures
- STARGRASP Info-Sheet
- STARGRASP Quick Start
- Extra Software Provided (Unsupported)
Command: | video |
Contexts: | Director console or command port |
Function: | Acquire sequential raw frames and deliver them to the video server |
Required Parameters: | none. |
Optional Parameters: | |
nframes= | [16] Number of raw frames/cycles |
etime= | *[0.005] Seconds of integration time per frame |
intstart= | *[0.005] Seconds after end of readout to start integration |
width= | [det-dependent] Width (columns) of readout per output |
height= | [det-dependent] Height (rows) of readout per output |
videodest= | [from-config] Video server destination IP, port, and feed name |
keep= | *[TRUE] If FALSE, read frame but discard the data |
shutter= | *[FALSE] If TRUE, SHUTTER TTL output goes high at intstart, and low at end of etime. |
mod= | Number of cycles after which to repeat pattern (must be < nframes) |
ncpus= | [2] The default enables multi-threaded operation for best performance. "1" disables. |
dreg= | * |
Frame-based options
(*) Options etime= intstart= dreg= and keep= take optional extensions to change to a new value on a given frame number. For example, to perform on reset and then readouts after:
dreg=<regval_with_reset>,2:<regval_no_reset>
Without whitespace a comma, a frame number, a colon, and new value.
nframes
The nframes option actually specifies the number of video "cycles" to complete. The video cycle goes in this order:
- Program dreg
- Perform a readout (possibly with integration starting during readout in low gain mode if intstart is negative.)
- Integrate
During the integration phase, the device's master clock is currently not operated. (This appears not to cause any adverse effects.)
The integration ends at the start of cycle n+1. The first cycle may also often request a "reset" rather than a readout for IR devices. For these reasons, nframes is often 1 or 2 greater than the actual number of desired video frames. (See the "keep" option for syntax to throw away data produced by these initial cycles.)
etime
The exposure time is specified in seconds. As of this writing, the controller pays attention to up to 3 decimal places (milliseconds) but a future upgrade will increase the precision to microseconds.
intstart
For devices with an electronic shutter, a time in seconds after the readout ends can be specified as the "start of integration." If it is desired to have integration overlap with readout, a negative number of seconds can be used (up to but not greater than the readout time, and also never greater than the etime.) No attempt is made to enforce the validity of integration during readout based on dreg.
width, height
These parameters default to the full (per output) detector size. If a window readout mode has been selected (see dreg) then width and height should be adjusted accordingly.
keep
When keep=false is used, no data will be transmitted. This is useful for a reset frame which should be discarded, or pipelined data which does not need to be kept. The default is keep=false. This option can be changed on a given frame (cycle) number using the extended syntax described under Frame-based options above.
shutter
Depending on the application, a the shutter output could drive a real physical shutter, or could be connected to GPS timestamping hardware. The controller records its own high precision timestamps, but at least one external timestamp should be recorded to relate these to an absolute time. Use "shutter=true" to trigger on all cycles. Use "shutter=<same-value-as-keep>" to trigger the shutter signal only on those frames which will be passed along to grasp_vidgrab.
Suppose two "reset" readouts were requested followed by a number of non-destructive readouts (IR). And suppose only one shutter signal was required, on the first real readout. This would be cycle 3, so the syntax for the single trigger would be:
video ... shutter=false,3:true,4:false
Note that if the "mod=" option is used, it applies to all cycle-based options including shutter=, so another shutter signal would occur every "mod" frames in that case.
mod
All of the frame based options can be set to repeat on a given number of cycles. For example, if "mod=5" is given, the 6th cycle will operate with the settings that were applied to the first cycle.
dreg
This option sets a device-specific data register. It can also be set to change on any cycle, but options which affect width and height (windowing) should remain the same.