Send a command to the CCD controller. Tries not to molest
either the command or the response lines. The controller
speaks Forth, and the program it runs is in the
~dis/camera/firmware directory on the DIS ICC.
e.g. Ask for a bunch of parameters: camcmd PARAMS?
If the basename is specified, it is used as a full Unix
path name, to which b.fit and r.fit are
appended. It is strongly recommended that the path begin with
"/export/images". If basename is not specified, the filenames are
determined by the ICC's path, name, places, and
number
If neither red nor blue is specified, both images will
be saved. Both CCDs are always read out, and always in parallel, so
no time is saved by specifying a single side.
The instrument shutter can only be commanded in one second
increments. You can request fractional seconds, but that request
will be rounded to the nearest second.
stop immediately finishes and reads out the current
exposure, abort finishes and discards the current
exposure. Readouts cannot be aborted.
Initialize the motor and camera controllers. If neither is specified,
initialize both. For the TDS motor controller, init does not move any motor or
forget where it is. For the camera controller, resets the binning
and windowing to the default values.
home [mask] [filter] [shutter] [turret] [r1] [r2] [b1] [b2]
Home one or more of the instrument motors. If none are
specified, all are homed.
The two grating change positions are only useful for the obs-specs.
Xstep=N
X=r1,r2,b1,b2
N=valid step, 100 to about 2400
[I don't know how to specify the valid range.]
Xlambda=N
X=r1,r2,b1,b2
N=valid wavelength
[I don't know how to specify the valid range.]
e.g. r2lambda=7500
For any particular grating, only one of "step" or "lambda" an be specified.
We look for, and run, any commands in the above order (mask, filter, turret, r1, r2, b1, b2)
overscan cols rows
Set the overscan columns and rows. These dimensions are not
affected by binning: you will always get the number of overscan
pixels that you request here.
Reload configuration files. If none are specified, reloads all
of them.
The grating configuration file is in config/gratings.txt, and
specifies which gratings are in which bays, as well as the motor
steps to reach the desired grating zeropoints.
The masknames configuration file is in config/masknames.txt, and
specifies the five slit mask names.
The camera configurations are in configdata.py. Other data are
saved there, and all need to be better documented....
Return the status of various sub-systems. If none are specified,
all are queried. gratings is shorthand for r1 r2 b1 b2.
If quick is specified, returns cached values. These
should, of course, be identical to the values found by actually
querying the controllers.
Send a command to the TDS motor controller. Tries not to molest
either the command or the response lines. The TDS ("Triangle Digital
Services") controller speaks Forth, and the program it runs
is in the ~dis/TDS directory of the DIS ICC.
e.g. Ask for the stepper velocities for the b2 grating motor:
tdscmd 3 ?PAR
Set the CCD readout window for both the red and blue CCDs. The
bottom-left pixel is (1,1). All dimensions refer to binned
pixels, unless the unbinned argument is passed.
If the optional center argument is given, X and
Y specify the center pixel of a rectangle, and W and
H the "radius" to extend the rectangle on each
side of the center pixel; a width of 1 would yield a one pixel
wide readout.
window reset resets the window to the full size specified
in the default configuration file. Neither the binning nor the
overscan size are changed. If the readout is binned, the binning is
applied to the new readout window after the window is reset.