MegaCam Camera Control Command Set

Command Sequencing and Interruption

For every MegaCam command, the Agent must not return a prompt until the action is completed. In some cases, this "action" may simply be start moving the filter into position, so then the command will appear immediate. In other cases, the command prompt may not re-appear for a period of seconds. During this period, progress messages should be printed approximately once per second to keep the user informed that there is still something happening. All commands should expect to receive an interrupt signal (user abort or ^C). For quick commands, the behavior should at a minimum be to inform the user that aborting is not possible for the command. For longer commands, such as those that wait for an action to complete, the behavior should be to give up waiting and/or cancel the action as soon as possible. The commands to which this applies are indicated in the tables below.
1a. Observation related commands -- miscellaneous
selftest(unspecified) ^C aborts and returns prompt as soon as possible, or after current action is done if it can't be aborted. PASS if all test ok, FAIL if any failed. Performs tests at various levels and provides system status about
  • Data link
  • DSP code integrity
  • ...
1b. Observation related commands -- pre-exposure setup
raster Xcenter Ycenter Xsize Ysize
  [Xbin [Ybin [SUBSAMPLE]]]

in addition to using pixel coordinate values,
Xcenter Ycenter can be "CENTER",
Xc Yc Xs Ys can all be "FULL", and
Xbin Ybin can be "BIN2" or "BIN4"
Finally, if binning, the keyword SUBSAMPLE can be added to select subsampling instead of adding.

(Refer to parsing code in MA skeleton.)
Command only stores newly requested raster in VxWorks. Should always be instant. PASS if parameters valid, FAIL if not. Defines a subraster and binning factor for all (80) amplifiers. Every amplifier (per 1K by 4.5K region if using 2 amplifiers per CCD) must use the same values for a given exposure. The xy-coordinate system for each region will be defined in terms of the corner from which the individual amplifier is read out, so regions may not all have the same orientation on the final mosaic. Subrastering will be used for focus mode (and lab development.) Any prescan/overscan regions that are adjacent to the current raster should automatically be included. Overscan cannot be defined by the user.
filter INDEX|NAME Except for the case of two filter move commands in a row, return should be immediate. PASS if filter INDEX/NAME is valid, FAIL if not. Begins moving filter (selected either by number or name) into the beam. If another filter request is in progress, preferred behavior is to abort that request and start the new one. If this is difficult to implement, an interruptible "filter wait" should be executed (see below) before the new request is initiated (and before the prompt returns.)
wait ^C aborts the action and returns the prompt, if possible. Otherwise ^C should result in a message warning the user that they must wait. PASS after selected filter made it into the beam, FAIL if not or aborted. Waits for the last requested filter to be in the beam. The "go" command should do an automatic "filter wait" before openning the shutter. Progress messages should be printed approximately once per second.
etime min:sec or sec where sec can be a floating point number. (Refer to parsion code in MA skeleton.) Command only stores data in VxWorks. Should always be instant. PASS if time within limits, FAIL if not. Sets the exposure (integration) time for the next frame (non-bias) frame. While taking a bias, the agent should still remember, and allow changes to the exposure time. In the skeleton, the resolution of the parameter is configurable by a compile-time constant, but we decided this resolution would be 0.1 seconds.
etype Either a single letter code, or the full name of one of the following exposure types:
  • o or OBJECT
  • b or BIAS
  • d or DARK
  • f or FLAT
  • x or FOCUS
i or INCPAT and s or CNSTPAT are accepted to, but not advertised in observing mode. (Refer to parsing code in MA skeleton.)
Command only stores data in VxWorks. Should always be instant. PASS if valid parameter, FAIL if not. Sets the exposure type for the next frame. This will control things like whether the shutter opens or not, etc.
defaults Command only stores data in VxWorks. Should always be instant. Should always return PASS. Set raster to FULL, ccdlist to ALL, etype to OBJECT and etime to 1.0 second.
1c. Observation related commands -- exposure/readout
preexp (none) Not interruptible, unless long timeouts are needed. PASS if all parameters successfully set. raster, ccdlist, etime, and etype only select parameters. This command should do any neccessary configuration to the camera, and also make a call to "filter wait" and "shutter wait" to make sure everything is ready for the shutter to be opened, or for integration to begin.
expose (none) Not interruptible. Returns immediately. PASS if shutter was successfully opened and integration has started. expose assumes preexp has already been called and begins integration (opens the shutter if object exposure.) If exposure already in progress... should FAIL for now (maybe useful as a way to download a new etime in the future?)
wait ^C aborts an expose wait,
^Z also stops an expose wait, but if called from a go, the readout will still take place.
PASS after current exposure completes and shutter is successfully closed. expose wait waits for the previous exposure to be completed, or returns PASS immediately if there was no exposure in progress. Progress messages including percent done and time remaining should be printed approximately once per second.
readout (none) Not interruptible. Returns immediately. PASS if pixel transfer successfully initiated. readout always executes an automatic expose wait because it doesn't make sense to begin reading out if integration is in progress. (During this period, signal handling of the expose wait command applies. Next, readout is initiated and prompt returns. Should FAIL if readout already in progress.
wait ^C aborts if possible. This is not essential if it is difficult to implement. PASS when readout complete and all pixels successfully transfered to NEO. readout wait waits for any readout in progress to finish, or returns PASS immediately if none in progress. Progress messages including percent done should be printed approximately once per second.
go Iterations ^C aborts sequence and returns to prompt as soon as possible.
^Z stops integration and jumps to readout phase immediately.
^\ only applies if Iterations > 1. Stops after next readout.
PASS if exposures completed, FAIL if ^C or problem with an exposure. This command sequences (1) preexp, (2) expose, and (3) readout (which waits for expose to finish). It may also do a (4) readout wait if it is not desirable to begin moving filters or other things under MA's control during the readout. This is the most commonly used command. The individual commands are available for engineering purposes, or when it is necessary to synchronize other actions during an exposure/readout.

2. Getting hardware status

3. Setup/engineering

ccdlist "ALL" or ??? (undecided) Command only stores data in VxWorks. Should always be instant. Selects a list of CCDs which should be included in the next readout. Could include a map of the mosaic with the amplifiers.

4. Upload/download

Sidik Isani
Last modified: Tue Jan 18 23:00:09 HST 2000