Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.apo.nmsu.edu/Telescopes/TCC/Commands.html
Дата изменения: Tue Mar 31 04:31:33 2015
Дата индексирования: Sat Apr 9 23:23:25 2016
Кодировка:
TCC Commands

TCC Commands

Introduction

This document describes the commands for the Apache Point Observatory Telescope Control Computer (TCC). If you are unfamiliar with using the TCC, I suggest you start by reading the TCC User's Guide. If you do not know how to start and stop the TCC, please see the TCC Operator's Manual. For details on the proper format for commands, please read Input Rules.

Commands are shown in UPPER CASE, followed by their parameters in lower case. Read the command description to see what to substitute for the various parameters. Square brackets around a parameter (e.g. [item]) means that the parameter is optional; do not type the brackets. Command and keywords are not case sensitive, and may be abbreviated (so long as the abbreviation is unique).

Commands

AXIS command [axis1 [, axis2 [,...]]]

Communicate with one or more of the axis controllers.

command is one of:

Initialize connect (if disconnected) and initialize the specified axes. Initialization halts motion and puts the axis controller into a state in which it can be slewed, if possible.
Status returns the present position and velocity and a status word. Returned keywords: <Axis>Stat, <Axis>DTime.
Stop halts the specified axes, ending at the position of the telescope when the command was issued (hence there is some intentional backtracking). Also halts guiding and any axes whose position depends on the axes being halted. See also TRACK/STOP and ROTATE/STOP.
Connect connect to the specified axis controllers. Has no effect if already connected.
Disconnect disconnect from the specified axis controllers. Has no effect if already disconnected.

axis is one of:

Azimuth
Altitude
Rotator
All (default) all axes
In addition, Tel1 and Tel2 are accepted for Azimuth and Altitude, but are deprecated.

/NoCheck sends the command to all specified controllers, without checking to see if they exist. The default behavior is to check for the existence of the specified controllers and ignore those that don't exist. For example, if you specify "All" axes, you normally only affect all axes that the TCC thinks exist at the current instrument position. /NoCheck may be useful in case of certain kinds of problems.

/TimeLimit = delta-time causes communication with the controller to time out after "delta-time" seconds. This prevents the command interpreter from locking up if the controller is hung. TimeLimit = 0 specifies no limit (infinite time). The default limit depends on the command, but is never 0.

BROADCAST ["message"]

Sends a message to all users. If the message contains spaces or other special characters then it must appear in double quotes.

/Type=message_type specifies the message "type", e.g. information or error. Message_type is one of: Done, Started, Superceded, Information, Warning, Error (default), or Fatal.

Returned keywords: Broadcast.

CONVERT coordSet fromsys [tosys]

Converts a position from one coordinate system to another.

coordSet the position (and optionally velocity) to be converted from. Both axes must be specified.

fromsys, tosys the coordinate system of the initial ("from") and converted ("to") position. Mount and None are not supported. The default "to" coordinate system is the "from" system (hence no conversion, unless /ZPM is used). The default date is coordSet time, converted to the appropriate units.

/Distance=distance the distance to the object in au. Note that you cannot specify both /Distance and /Px as they are different ways of specifying the same information. The default is infinity.

/PM=(pm1, pm2) proper motion in arcseconds/century (default is zero). The equatorial proper motion is dEquatorialAngle/dt, so it gets large near the pole.

/Px=parallax parallax in arcseconds (1/parsecs) (default is zero).

/RV=radvel radial velocity in km/s, positive receding (default is zero)

/ZPM removes the effects of proper motion and radial velocity to the current date (in addition to performing the requested conversion, if any). It does this by first converting to current apparent geocentric place, zeroing the resulting space motion, and then converting to the final requested position.

/UseGSWavelength use the guide star wavelength instead of the object wavelength for refraction correction. The default is the object wavelength unless fromsys or tosys are GProbe or GImage, in which case the default is the guide star wavelength. When in doubt, specify /UseGSWavelength or /NoUseGSWavelength.

Warnings

Returned keywords: ConvPos, ConvSys, ConvPM, ConvAng.

EXIT

Disconnect from the TCC. QUIT is a synonym.

HELP [cmdName]

Print help about a command (if cmdName specified) or all commands (if cmdName not specified).

MIRROR command [mirror1 [, mirror2 [,...]]]

Sends a command to the specified mirror controllers.

command is one of:

Status return controller status.
Initialize connect (if disconnected) and initialize the mirror controller(s). Initializing a mirror controller aborts the currently executing command (if any) and halts motion (if any).
Connect connect to the specified mirror controller(s); a no-op if already connected.
Disconnect disconnect from the specified mirror controller(s); a no-op if already disconnected.

mirror is one of the following. If you specify an axis that does not exist, it is silently ignored.

Primary
Secondary
Tertiary
All all existing mirror controllers (the default)

/TimeLimit = delta-time causes communication with the controller to time out after "delta-time" seconds. This prevents the command interpreter from locking up if the controller is hung. TimeLimit = 0 specifies no limit (infinite time). The default limit depends on the command, but is never 0.

OFFSET type [coordSet]

Offsets the telescope in various ways, both in position and velocity. Offsets are computed with full accuracy, regardless of size. However, use of "/Computed" is suggested for large offsets and is required during guiding.

type is one of:

Arc offset along a great circle on the sky. The components are in the user-specified coordinate system for the object (e.g. RA, Dec for ICRS), and are used as follows: The arc length along the great circle equals the magnitude of the net arc offset vector. The angle of the arc offset vector is tangent to the great circle at the arc offset origin. One major use of arc offsets is drift-scanning. As such, please note:
Boresight specifies the position of the object on the instrument. The axes of the offset are the x-y axes of the instrument (NOT the sky), and 0,0 is nominally the center of the instrument. If the rotator is not rotating with the sky then the boresight is the center of rotation of the sky on the instrument. Warning: ignored (but recorded and a warning is issued) for Physical or Mount coordinates. This is because Physical and Mount coordinates describe the position of the mount, not of the object; in fact Boresight position is one of the main components of the coversion from Observed to Physical coordinates.
InstPlane an older term for Boresight.
Rotator There is just one axis, the rotator. Warning: the offset directly modifies the rotator user position (as specified in the ROTATE or TRACK command). Unlike all other offsets, the rotator offset value is not stored separately, so there is no way to differentiate the offset from the rotator angle you originally specified. As a result, when you slew to a new star the rotator angle will retain its modified value. This misfeature may be fixed at some point.
Calibration (primarily for engineering use) changes the local pointing correction (normally set automatically by a pointing error sequence). There are three axes: azimuth, altitude and rotator. The offset is in telescope mount coordinates. Warning: ignored (but recorded and a warning is issued) for mount coordinates. This is because it is considered a correction for physical imperfection, and hence is applied during the conversion from physical to mount. If the object is specified in mount coordinates then the azimuth and altitude components are ignored; if the rotator is specified in mount coordinates then the rotator component is ignored.
GuideCorrection (primarily for engineering use) changes the guiding correction. There are three axes: azimuth, altitude and rotator. The offset is in telescope mount coordinates. Warning: ignored (but recorded and a warning issued) for mount coordinates; see calibration offsets for details.
GCorrection an older term for GuideCorrection.

coordSet the amount of the offset. The meaning depends on the kind of offset, but there are two axes unless otherwise noted. If you specify position or velocity, the default for the other is zero. If you omit position and velocity for all axes, then all axes will be set to zero. If you omit pos and vel for a given axis, that axis will not be changed (unless you omit it for all axes, as just mentioned).

/PAbsolute, /VIncremental specifies whether the position and velocity components are absolute or incremental. Absolute means that the new offset completely replaces the old offset. Incremental means that the new offset is added to the old offset. The default is relative position and absolute velocity; so if pos=vel=0, position is unchanged, but any drifting is halted. Note: /VIncremental is ignored for position-only offsets. Examples:

OFFSET Boresight
stops drift due to velocity in the boresight offset. It zeros velocity and leaves position alone because by default pos = 0, vel = 0, position is incremental and velocity is absolute.
OFFSET Boresight/PAbsolute
Zeros both position and velocity in the instrument plane offset.

/Computed specifies that the motion uses a precomputed slew, rather than a path chosen by the axes controllers. The default is /NoComputed unless /Restart is specified.

Computed offsets are usually preferred because:

However, uncomputed offsets may be a bit faster for short offsets, and computed offsets cause the axis controllers to drift at constant velocity for a short time while the path is computed.

/Restart = ([no]axis1, [no]axis2...) specifies whether or not to try to restart halted axes. The default is to not restart any axes. Restarting requires a computed offset. If you specify both /Restart and /NoComputed then /Restart is rejected with an error message.

/Perfect the move only proceeds if all axes can make it.

/AbsRefCorrect use the absolute position reference sensors during the motion.

/RefCoefficients update refraction coefficients (using the latest weather data) before computing the new move.

/Collimate update collimation after the move begins.

Returned keywords: MoveDone or SlewBeg and SlewEnd (depending if the move is immediate or computed), MoveItems, ObjOff, GSOff, InstOff. Some values which remain unchanged will not be returned.

PROCESS cmd procName

Disables, enables or shows the state of several optional processes.

cmd is one of:

Disable disables the specified process.
Enable enables the specified process.
Status shows which processes are disabled or dead.

procName is one of:

BrdTelPos broadcasts telescope position as UDP packets.
Collimate talks to the telescope mirrors and guide camera focus to adjust collimation and focus. Disabling collimation disables all of the following operations (new mirror positions, if any, are recorded but not applied):
Notes:
Status regularly displays status

PTCORR predCoords predCoordSys measCoords measCoordSys

Compute pointing correction from predicted and measured star position. The computed data is suitable both for guiding correction and for logging pointing data.

Typical usage is to specify the predicted position of the star in ICRS, or a similar coordinate system, and the measured position in GuideImage, GuideProbe or Instrument coordinates. For example:

PtCorr 175, 86 icrs 512.3, 351.2, 0, 0, 4914579848.3 instrument
indicates that the star's position is RA=175, Dec=86 in ICRS coordinates and it was measured on the instrument with centroid 512.3, 351.2. The TAI date at the middle of the exposure was 4914579848.3 (MJD seconds).

Returned keywords: PtCorr, PtData.

QUEUE command

Executes a TCC batch job, e.g. the snow program, in the background. Only one batch job may be queued at one time.

command is one of:

Run = jobName start the specified batch job.
Stop stop the current batch job, if any.
Status show the name of the file currently running.
List show the names of all available batch jobs (python files found in $TCC_DATA_DIR/jobs/).

QUIT

Identical to EXIT.

ROTATE coord rot_type

Make the instrument rotator track the object, horizon, etc.

rot_type is one of:

None no rotation. It is basically the same as ROTATE/STOP, but /STOP is clearer.
Object sets the orientation of the object with respect to the instrument. The rotator angle specifies the angle of the coordinate system of the object with respect to instrument x,y. If the object is specified in some RA/Dec coordinate system then at 0 degrees east will be along the x axis of the instrument, and at 90 degrees east will be along y (because east is the direction of increasing coordinate system axis 1). Warning: the orientation is specified at the un-arc-offset position (without arc offsets taken into account). This allows drift-scanning to work, but can have surprising (not necessarily bad, just surprising) effects if you are using arc offsets for other purposes.
Horizon sets the angle of the horizon with respect to the instrument. At 0 the horizon (direction of increasing azimuth) lies along the x axis of the instrument; at 90 the horizon lies along the y axis. Obtaining good results while rotating with the horizon requires great care; read the note for details. Note: unlike object rotation, horizon rotation is specified at the net object position, with arc offsets included.
Physical sets the angle of the rotator with respect to its mounting. Generally used during maintenance, to put the instrument or rotator at a specific angle. The angle you specify is the angle from the mechanical x axis to the rotator x axis. 0 typically is some sort of neutral position for the instrument, but this is up to the folks who build the instruments, and is certainly not enforced.
Mount sets the angle of the rotator in the coordinate system used by the rotator controller. Used during maintenance, usually to exercise the rotator controller. The angle you specify is the angle sent directly to the rotator controller; no wrapping is done.

/Stop the instrument rotator will be gently stopped. Warning: the main axes are slewed to a new position chosen as if the rotator were at Rot_Fixed_Phys in the Inst block; If the instrument is very off center, this could cause problems. In general, you are better off explicitly moving the rotator in mount or physical coordinates if you want it to halt. while you are tracking.

/NoCollimate do not update collimation after the move begins.

/Perfect the move only proceeds if all axes can make it.

/RefCoefficients update refraction coefficients (using the latest weather data) before computing the new move.

/Restart = ([no]axis1, [no]axis2...) specifies whether or not to try to restart halted axes. The default is to restart only the rotator axis.

/RotWrap = wrap specifies the desired wrap for the instrument rotator (if present). The default is "middle". Ignored if rot_type is mount.

Returned keywords: MoveItems, RotType, RotPos, RotWrapPref, SlewBeg, SlewEnd. RotWrapPref is only returned if it is not "near".

Note on rotating with the horizon: this type of rotation must be used with great care. The sky rotates with respect to the instrument, so only one point on the sky can be kept fixed on the image plane. If there is any tracking error or error in your object position, that point will not be the one you expect. The result will be a steady drift of your object, even if you are guiding! To minimize this drift, recalibrate the telescope using TRACK/PtError before you start tracking on your object, and correct any remaining errors by using object offsets (not any other kind of offset!).

If the current instrument has no rotator, then this command is rejected.

SET commands...

SET BLOCK block-name

Changes information in a block in the global database. By default it reads data from the terminal, but you may read from a file using /Input. Warning! Use with care; this command can easily incapacitate the TCC system!

All blocks are set in the same format as data written by SHOW BLOCK. Most blocks are set using "keyword value" format; keywords may be specified in any order, and values for omitted keywords are left unchanged. Use SHOW BLOCK to determine the available keywords. A few blocks are still in an older order-based format; for these values must be specified in the same order as written out by SHOW BLOCK; lines may be defaulted by supplying an initial "*" and the file may end early to default all remaining items. In one or two cases the file format is special and all values must be specified.

Note: many of these blocks are read at startup from files named $TCC_DATA_DIR/<block-name>.dat. If you wish to change defaults, edit these files (and then load them if you want the changes to take place immediately).

block-name is one of the following:

AxeLim position, velocity, acceleration and jerk limits for the telescope, rotator and guide camera. Position limits for the primary, secondary and tertiary mirrors, and for the guide camera focus. The data is read from $TCC_DATA_DIR/axelim.dat at startup, but instrument-position-related limits are modified by the SET INSTRUMENT command.
Earth TAI-UTC and pole motion information.
Inst information about the currently selected instrument position.
Mir information about the mirrors, including locations of the actuators, scale and motion limits.
Obj object, rotator, and telescope axes positions in various coordinate systems.
TelMod parameters of the telescope model. Uses a special file format, for compatibility with TPOINT. Warning: All values must be specified. Defaults are not allowed, and you may not end the file early. This is intended to make it harder to specify non-self-consistent data.
Tune tuning parameters for background processes, etc.
Weath weather data

/Input = file the specified file is used for input. The TCC will automatically look for this file in the $TCC_DATA_DIR (~/tccdata).

/NoRead normally the block is first read from the global database before setting it, so the current values can be used as defaults. However, a block must not be read before it has been written once, so when setting the block for the first time, you must use /NoRead. This is automatically done for all blocks as part of the startup procedure. Note that /NoRead causes the default values to be null: numbers are zero, logicals are false, and strings are all nulls.

SET FOCUS [= value]

Changes the user-settable focus offset for the secondary mirror, and then updates the collimation and focus correction accordingly by moving the various mirrors.

value is the focus offset in microns; positive values move the secondary mirror towards the primary mirror (i.e. closer to the sky along the light path). If the value is omitted, collimation is updated and the current focus is displayed.

/Incremental add the new focus offset to the existing focus offset, rather than replacing it.

Returned keywords: SecFocus.

Details:

SET IMCENTER = (x, y)

Set a new image center (specified in unbinned pixels) and adjust the pointing of the telescope accordingly (by shifting the boresight). The new center will persist until the next SET INSTRUMENT command.

Warning: if the new center is out of bounds (off the instrument) then the command is rejected.

This command is intended for spectrographs whose slit positions are not repeatable. Use SET IMCENTER to set the center of the image to the center of the slit. That way objects will be properly centered on the slit.

If slit position is repeatable and you have multiple slits with different centers, it is may be easier to set up a view data file for each slit and use SET INSTRUMENT/GCView whenever you change slits.

Returned keywords: IImCtr, RotInstXYAng.

SET INSTRUMENT [= inst_name]

Specifies which instrument to use; automatically loads a file of specifications for that instrument position and adjusts the collimation (see SET FOCUS). If the instrument changes then halts rotation (by setting rotation type to none).

inst_name the name of the instrument; abbreviations are acceptable if unique. If omitted, has the same effect as setting the current instrument again (it goes through the whole sequence including reading data files, initializing controllers, etc.); however this is an error if there is no current instrument.

/GCView=view_name changes the guide camera view to the one specified. The default guide camera view has no name; to obtain it, omit /GCView.

/Keep=(item1, item2,...), where items are: scaleFac, secFocus,gcFocus. Specifies which items to retain during the instrument change. Items omitted will be nulled.

/AzWrap = wrap specifies the desired wrap for the aximuth axis. The default is "near", and I think you will rarely feel the need to choose anything else.

/RotWrap = wrap specifies the desired wrap for the instrument rotator. The default is "middle"; this keeps the rotator away from its limits, but may mean that the rotator will occasionally unwrap needlessly. Thus you may find it quite useful to specify /RotWrap. Ignored if rotation type is mount or if the instrument has no rotator.

Returned keywords: same as SHOW INSTRUMENT/Full.

SET PTERRPROBE [= probeNum]

Specifies the guide probe to use for pointing error correction. The specified probe must exist.

Returned keywords: PtErrProbe

SET MAXUSERS [= value]

Sets the maximum number of users of the command interpreter. Generally this should be left at some large value such as 20 or 50. In a few limited cases it may be desirable to temporarily restrict other people's ability to use the TCC. The minimum allowed value is 1.

Warning: Changing the maximum number of users has no affect on current users. There is no way to disconnect current users, other than restarting the TCC software. Thus this is a crude command, not intended for responsive, finely tuned security. It was originally designed to prevent other users from connecting while the old TCC starts up; that is not an issue for the current TCC, and it is not clear if this command has any practical value anymore.

Returned keywords: MaxUsers.

SET SCALEFACTOR [= value]

Sets the desired scale factor. Requires that the primary and secondary mirror both be movable in piston. Scale factor is defined as actual focal plane scale / nominal scale, where larger scale (and hence larger scale factor) gives higher resolution, e.g. more pixels/arcsec

/Multiplicative if specified then new scale factor = old scale factor * value. If omitted then new scale factor = value.

Returned keywords: ScaleFac.

SET STINTERVAL [= (track_int, slew_int, other_int)]

Sets the intervals between status updates during tracking, slewing and when the telescope is doing neither.

track_int, slew_int, other_int time interval in seconds.

Returned keywords: StInterval.

SET TIME

Loads earth orientation predictions from the current earth orientation data. Warns and continues if the earth orientation data file cannot be read.

This command also purges disconnected users from the user database. That is an unintended (but harmless) side effect of the way it runs: waking up the "slow" background process.

At one time this command also set the TCC's real-time clock by reading a GPS clock. However the TCC's time is now maintained (much more accurately) using an NTP client.

Returned keywords: <Axis>DTime plus all those returned by SHOW TIME/Full.

SET WAVELENGTH item1=value1 [, item2=value2]

Sets the central wavelength for refraction correction for the object and/or the guide star(s), and computes the corresponding refraction coefficients.

item is one of:

Obj wavelength for object, in Angstroms
GStars wavelength for all guide stars, in Angstroms

Returned keywords: ObjWavelength, GSWavelength.

SET WEATHER [item1=value1 [, item2=value2 [, ...]]]

Sets entries in the global weather data block. It also updates the refraction correction coefficients and the collimation correction. Both corrections affect the telescope position, so you can choose to not update them, if you prefer.

item is one of:

AirTemp outside air temperature, in C
SecTrussTemp secondary truss temperature, in C
PrimF_BFTemp two measures of primary mirror temperature: front temperature, back - front temperature difference, in C
SecF_BFTemp two measures of secondary mirror temperature: front temperature, back - front temperature difference, in C
TLapse temperature lapse rate, in C/km
Pressure pressure in Pascals
Humidity fractional humidity (e.g. 0.2 for 20%)
WSpeed wind speed in m/s
WDirection wind direction in degrees: S = 0, E = 90

/NoRefCoefficients prevents recomputation of refraction coefficients. The coefficients are also updated, by default, at the beginning of every slew and after each Set Wavelength command.

/NoCollimate prevents updating the collimation correction.

Returned keywords: same as SHOW WEATHER/Full.

SHOW commands...

SHOW item

Returns various kinds of information.

item is one of:

AxisConfig displays configuration infomation about the axis controllers, including motion limits (used by the TCC) and status masks. Returned keywords: <Axis>Lim, AxisBadStatusMask, AxisWarnStatusMask, AxisMaxDTime.
Focus returns the secondary focus offset, as specified by SET FOCUS. Returned keywords: Focus.
Instrument returns information about the current instrument, set via the SET INSTRUMENT command. Returned keywords: GCNFilt, GCView, GPCtr, GProbe, GPRotGImAng, Inst, InstPos. Also possibly CurrGCFilt, GCamID, GMechID, RotID. /Full adds keywords: GImCtr, GImLim, GImScale, GPLim, GPRotXY, IImCtr, IImLim, IImScale, IPConfig. Also possibly GCFilt, GCFocus, ScaleFac, SecFocus.
MaxUsers displays the maximum number of users, set via the SET MAXUSERS command. Returned keyword: MaxUsers.
Mount returns the mount position of the main axes. Returned keywords: TelMount, RotMount.
MyNumber returns your user ID number (assigned when you run the TCC software). Returned keywords: YourUserNum.
Object returns user-specified object position and related parameters, most of which are set via the TRACK command. Returned keywords: ObjName, ObjMag, ObjSys, ObjPM, ObjPos, ObjZPMPos, ObjOff, ObjArcOff, Boresight, GuideOff, CalibOff, RotType, RotPos, ObjNetPos, ObjInstAng, SpiderInstAng. (ObjPM is only displayed for mean coordinate systems.)
PtErrProbe returns the guide probe used for pointing error correction. The default value is set by the command SET INSTRUMENT and it may be overridden via the command SET PTERRPROBE. Returned keywords: PtErrProbe.
ScaleFactor returns the current scale factor, which can be set via SET SCALEFACTOR and may also vary during instrument changes or guiding. Returned keywords: ScaleFac. /Full adds ScaleFacLim.
Status returns information about the state of the control system. Returned keywords: TCCStatus, TCCPos, AxePos, ObjInstAng, AzInstAng, AzGImAng, DeadProcs. Some of these are only returned if they have changed or with /Full. Others are only returned with /Full. DeadProcs is only returned if there are actually dead processes.
StInterval returns the interval between status updates, during tracking and slewing set via SET STINTERVAL.
Time returns the current time in several time systems. The time returned is the time the command was parsed. There is not attempt to compensate for delays in transmitting the time string. However, the various kinds of time returned are consistent with each other. Note that there is a SET TIME command, but it calibrates the TCC's clock from the observatory's time standard. Returned keywords: TAI, UT1, LST, UTC_TAI.
Users returns information about all users and purges any users that disconnected improperly. More specifically, it shows information about anybody subscribed to the message hub (which should be anybody who is running a TCC command interpreter), and purges any users who disconnected from the TCC without unsubscribing from the message hub. Returned keywords: UserInfo, BadUser.
Version returns the version of the TCC control system software (as a text string). Returned keywords: Text.
Wavelength returns the central wavelength for refraction correction for the object and the guide star, set via SET WAVELENGTH. Returned keywords: ObjWavelength, GSWavelength.
Weather returns weather information set via SET WEATHER. Also returns the last date at which any weather item was changed. Returned keywords: AirTemp, SecTrussTemp, PrimF_BFTemp, SecF_BFTemp, TLapse, Pressure, Humidity, WSpeed, WDir, TAI.

/Full certain items return more information if /Full is used. See the description of the item in question for more information; if /Full is not listed, it has no effect.

Warning: this command is in flux, and the various items may change. See the document describing the final plans for status for details.

SHOW BLOCK block-name

Displays information in the global database. By default, it displays to the screen, but you may send output to a file using /Output. The format is compatible with SET BLOCK: files written with SHOW BLOCK/OUTPUT may be read with SET BLOCK/INPUT.

Warning: the format is not in MC-compatible keyword-value format.

block-name a block name; for the list and a description of each, see SET BLOCK block-name

/Output = file the specified file is used for output.

/NoRead instead of showing the data in the database, prints out a block of null values: numbers are zero, logicals are false, and strings are all nulls. This can be handy for obtaining the format of a block; however, it's main reason for existence is for symmetry with the SET BLOCK command (/NoRead is crucial for SET BLOCK).

TALK port command

Send a command to an axis controller or mirror controller.

port is one of the following:

Az azimuth axis.
Alt altitude axis.
Rot instrument rotator.
Prim primary mirror.
Sec secondary mirror.
Tert tertiary mirror.

command is the command to send. It must be in double quotes if it includes spaces or other special characters.

/TimeLimit = delta-time causes communication with the device to time out after "delta-time" seconds. This prevents TALK from locking up if a device is hung. TimeLimit = 0 specifies no limit (infinite time). The default time limit is one second.

Warnings:

TRACK [coordSet coordSys]

Causes the telescope to slew to and track an object. Also allows you to correct local pointing error (maximize the local pointing accuracy).

coordSet = equatorialAngle, polarAngle [, equatorialVelocity, polarVelocity [, TAIDate]: the desired position and optional velocity and time. The velocity specifies dEquatAng/dt, dPolarAng/dt; if you want to scan along a great circle, use /ScanVelocity or, equivalently, specify an arc offset with nonzero velocity.

coordSys. the coordinate system you are using. Instrument or GImage coordinates are not allowed.

/Name = name the name of the object (a character string); default is no name.

/Magnitude = mag object brightness in magnitudes (floating point); default is "unspecified".

/Distance=distance the distance to the object in au. Note that you cannot specify both /Distance and /Px as they are different ways of inputting the same information. The default is infinity.

/PM=(pm1, pm2) proper motion in arcseconds/century (default is zero).

/Px=parallax parallax in arcseconds (1/parsecs) (default is zero), Only used for FK4, FK5, galactic and apparent geocentric coordinates; ignored otherwise. See /Distance for an alternative way of specifying the same information.

/RV=radvel radial velocity in km/s, positive receding (default is zero). Only used for FK4, FK5 and galactic coordinates; ignored otherwise.

defaults for /PM, /Px and /RV

/RotType = rot_type sets the type of rotation. Default is to keep the current rotation type. Special case: if a nonzero scan velocity is specified then RotType is ignored and object rotation is used. Warning: if you specify a rotation type, you must also specify a rotation angle with /RotAngle. See also the ROTATE command.

/RotAngle = coord sets the angle of rotation. Special case: if a nonzero scan velocity is specified then this angle is used as an offset to the angle computed for scanning. If specified, then the rotator must be able to move or the track command is rejected (unless there is no rotator, in which case the command is accepted with a warning). See also the ROTATE command.

/Stop the telescope (main axes and instrument rotator) will be gently stopped.

/NoAbsRefCorrect specifies whether or not the absolute position fiducials are used during the motion.

If an object position is specified, the default is /AbsRefCorrect. If no object position is specified, the default is /NoAbsRefCorrect (to increase accuracy when restarting an axis). Warning: when restarting an axis watch out for an axis unwrapping. Unwrapping is a long motion so it's a gamble whether you'll end up with high accuracy or a large error. Normally you'll win, but don't take the risk if you don't have to. For more information click here.

When using TRACK/PtError, this flag only applies to the initial slew to the reference star. Absolute reference correction is never applied when making the final slew to the object, thus maximizing the accuracy of the correction.

/Keep = (offsetType1, offsetType2, ...) controls whether the specified offsets are kept or zeroed. /Keep=OffsetName retains both position and velocity and /Keep=NoOffsetName zeros both position and velocity. The default behavior depends on the offset:

For the following offsets the default is to zero them, unless no new object is specified (e.g. to restart halted axes), in which case the default is to keep the offset.
[No]ObjOffset Object offset.
[No]ArcOffset Object arc offset. Silently ignored if using TRACK/ScanVelocity, since that works by setting the arc offset.
[No]Boresight Boresight (instrument plane offset).
[No]GCorrection Net guiding correction.
For the following offset the default is to keep only the position component but zero the velocity component.
[No]Calibration Local pointing error correction.

/Restart = ([no]axis1, [no]axis2...) specifies whether or not to try to restart halted axes. The default is to try to restart all axes.

/Perfect the move only proceeds if all axes can make it. For TRACK/PtError this setting is ignored for slewing to the position reference star because that slew always uses a perfect slew.

/NoRefCoefficients do not update refraction coefficients. By default these are updated using the latest weather data before computing the new move.

For TRACK/PtError, this setting will only be used for the first slew; if there is a second slew (which must be from the position reference star to the object, if it occurs) the refraction coefficients are left alone. This prevents a badly timed weather update from messing up a newly determined pointing correction (though it is very unlikely to ever make any difference).

/[No]Collimate specifies whether or not to update collimation. If an object position is specified, the default is /Collimate. If no object position is specified, the default is /NoCollimate. Hence correcting local pointing error for the current object using TRACK/PtError or restarting a halted axis using TRACK leaves collimation alone, for better accuracy.

For TRACK/PtError, this setting will only be used for the first slew; if there is a second slew (which must be from the position reference star to the object, if it occurs) the collimation is left alone.

/RotWrap = wrap specifies the desired wrap for the instrument rotator (if present). The default is "middle". Ignored if rot_type is mount. Warning: for TRACK/PtError the specified wrap preference is used only for the slew to the position referenc star; "near" wrap is always used for the slew to the object.

/AzWrap = wrap specifies the desired wrap for the aximuth axis. The default is "near". Ignored if coordSys is mount. Warning: for TRACK/PtError the specified wrap preference is used only for the slew to the position referenc star; "near" wrap is always used for the slew to the object.

Special Motions:

/PtError [=(item1,item2,...)]. Start or end a pointing error sequence. The default behavior is to save the current target, find a position reference star near the target, and slew to center the reference star in the pointing error guide probe (as designated in the inst block). The following items can alter this behavior:

NoFindReference use the current object as the position reference star. Normally the telescope searches its position reference catalog for the star nearest the position specified by the TRACK command (or the current object if no new object is specified), and uses that as its position reference star. Warning: the guide star wavelength, not the object wavelength, is used for refraction correction.
NoRefSlew do not slew to the reference star. Normally the telescope slews to the reference star, centering it on the the guide camera (or on the designated pointing reference probe, if there is more than one guide probe).
objSlew slew back to the target that was saved by the last TRACK/PtError command (and the saved target is cleared). This option may not be specified with /NoFindReference or /NoRefSlew.

The pointing error sequence uses the guide star wavelength for refraction correction when slewing to to the position reference star. This is true even if use /NoFindReference (thus even if you treat the current target as your position reference). This is because the guider may have a different filter than the instrument, and because it's easier to explain and implement. Use SET WAVELENGTH to set the guide star wavelength, if necessary, and please restore it to something reasonable afterward.

/MagRange = (minMag, maxMag) magnitude range for reference stars found with TRACK/PtError. The order of the two values doesn't matter (in order to avoid confusion between smaller values and fainter stars). If omitted, then defaults to target magnitude +/- 2, if known, else (3, 7).

/ScanVelocity = (equatorialSkyVel, polarVel [, TAIDate]) initiate a scan along a great circle. The default TAIDate is the coordSet TAIdate (which defaults to the current date). The scan begins at the position specified with the track command (or the current position, if no new position is specified). equatorialSkyVel, polarVel are in degrees/sec on the sky. The path is a great circle tangent to the velocity vector in the user's coordinate system at the starting point of the scan. The speed of the scan is the magnitude of the velocity vector. Details:

/Chebyshev = filename Track an object whose position is specified by Chebyshev polynomials of the first kind, as a function of TAI date.

The file format is as per the following example. The format is the same as output by SHOW BLOCK OBJ, but only the fields below are allowed. All fields whose name contains Cheby are required; all others are optional. You must save the file on the tcc, so that the tcc can see it (you may need an observing specialist for this). The default directory is the TCC's standard data directory $TCC_DATA_DIR.

# Name of object
# Optional: defaults to the empty string.
name               "test chebyshev"

# Coordinate system code and date
# Optional: defaults to appgeo 0
# Choices (which are case-sensitive) include:
# icrs: ICRS; date is date of observation (Julian years); 0 means now
# appgeo: apparent geocentric; date is date of equinox (Julian years); 0 means now
# apptopo: apparent topocentric; date is TAI (MJD, sec); 0 means now
# obs: refracted apparent topocentric; date is TAI (MJD, sec); 0 means now
userSys   obs 0

# Chebyshev polynomial coefficients for track/chebyshev
# The format is minTAI  maxTAI  coeff0  coeff1...
# where:
# - minTAI and maxTAI are the minimum and maximum allowed TAI date, in MJD, seconds
#   (tracking will fail if you use these polynomials outside this date range)
# - The polynomial is evaluated with x ranging from -1 to 1 over the specified date range
# Chebyshev coefficients for object position, equatorial axis (deg)
chebyUser1 4914545030   4914548630 323 0.03 0.01
# Chebyshev coefficients object position, polar axis (deg)
chebyUser2 4914545030   4914548630 45 0.03 0.01
# Chebyshev coefficients for object distance (au)
chebyDist  4914545030   4914548630 9.9e9

# Type of rotation (e.g. with object or horizon)
# Optional; defaults to none
# see rotUser for choices
rotType object

# Rotator angle as position velocity time (TAI, MDJ).
# Optional; defaults to nan nan nan
# The exact meaning depends on rotType (which is case sensitive):
# - object: the angle of the user coordinate system w.r.t. the instrument.
# - horizon: the angle of az/alt w.r.t the instrument
# - mount: the angle sent to the axis controller
# - none: no rotation
rotUser 0 0 1

# Predicted magnitude of object
# Optional: defaults to nan
mag        9

Returned keywords include: CalibOff, ChebyshevFilename, InstOff, MoveItems, GuideOff, ObjMag, ObjName, ObjOff, ObjPM, ObjPos, ObjSys, ObjZPMPos, RotPos, RotType, RotWrapPref, SlewBeg, SlewEnd, AzWrapPref. Some values which remain unchanged will not be returned. ObjPM is only returned if ObjSys is a mean coordinate system. Wrap preferences are only returned if they are not "near".

Notes

Warnings

Input Rules

General

The following rules are used for input (commands and data files) unless otherwise noted:

Note a few inconsistencies between input and replies:

Units

The following units are used for input (commands and data files), unless otherwise noted:

Commands

The basic input rules are given under general and units. Rules specific to commands include:

Standard Parameters

coord = pos [, vel [, time]]

Specifies a position and/or velocity for one axis.

pos the position in degrees. The default is 0 unless otherwise noted.
vel the velocity in degrees/sec. The default is 0.
time the TAI date in MJD seconds. The default is the current date. Time is only used for computing pos(t) = pos + vel * (t - time).
Warning: time may go away, as it seems to be useless; if you think you'll need it, please contact me about keeping it in.

coordSet = pos1, pos2, ...posN [, vel1, vel2, ...velN [, time]]

Specifies position and/or velocity for N axes. The usual case is two axes, in which case the axes are: equatorial angle, polar angle, equatorial velocity, polar velocity

pos the position in degrees. The default is 0 unless otherwise noted.
vel the velocity in degrees/sec. The default is 0.
time the TAI date in MJD seconds. The default is the current date.

coordSys

Specifies the coordinate system.

coordSys is one of:

ICRS [= date] modern mean RA, Dec. Date, specified as a Julian epoch, is the date of observation (the date from which proper motion correction is applied). The default (omit or specify 0) date is now.
The ICRS coordinate system is based on the Hipparcos catalog and has superceded FK5, but ICRS is basically FK5=2000.0. Unlike FK5 you need never (and are not allowed to) specify an equinox.
FK5 [= equinox] modern mean RA, Dec. Equinox is both the date of the equinox and the date of observation (the date from which proper motion correction is applied), specified as a Julian epoch. The default equinox (omit or specify 0) is 2000.0.
Positions dated 2000 or later are almost certainly FK5. For older positions, you may want FK4. In detail, FK5 is mean RA, Dec in the Fricke FK5 system, IAU 1976.
FK4 [= equinox] Old-style mean RA, Dec. Equinox is both the date of the equinox and the date of observation (the date from which proper motion correction is applied), specified as a Besselian epoch. The default equinox (omit or specify 0) is 1950.0. Positions dated 1950 or older are probably FK4. For modern positions use FK5. In detail, FK4 is mean RA, Dec in the Bessel-Newcomb FK4 system (pre-1976).
Warning: TCC coordinate conversions involving FK4 positions may have a fraction of an arcsecond of error.
Galactic [= date] Galactic coordinates (IAU 1958). Date, specified as a Julian epoch, is the date of observation, and is provided in the unlikely event that proper motion correction is desired. The default date (omit or specify 0) is "now".
Geocentric [= equinox] Apparent geocentric RA, Dec. Date is the date of observation, as a Julian epoch, but you will almost always want the default date of "now" (omit or specify 0); see note on apparent date for more information. Proper motion and radial velocity are ignored.
Topocentric [= date] Apparent topecentric azimuth, altitude, not corrected for refraction (see Observed, next). Date is TAI (MJD, seconds), but you will almost always want the default date of "now" (omit the date or specify 0); see note on apparent date for more information.
Observed [= date] Apparent topocentric azimuth, altitude corrected for refraction. Proper motion, parallax and radial velocity are ignored. Date is TAI (MJD, seconds), but you will almost always want the default date of "now" (omit the date or specify 0); see note on apparent date for more information.
Physical Mechanical position of the axis, in degrees. This is the position of an ideal telescope. The telescope model and calibration and guiding corrections are applied but the boresight offset is ignored. The axes are (azimuth, altitude) and/or rotator (depending on the command), and the zero and sign conventions are as follows:
Mount Mechanical position of the axis, in the units the axis controller uses. The telescope model, boresight, guiding and calibration offsets are all ignored. Unlike other coordinates, the position you specify is not adjusted into a convenient wrap; instead, the axes go exactly where you specify. Azimuth and altitude mount positions should closely match their physical position. However, the rotator mount angle can be any linear function of the physical angle -- the offset and scale (including sign of the scale) are arbitrary.
Instrument Position on the instrument's focal plane. Axis 1, 2 = instrument x, y in degrees on the sky. 0, 0 is the "center" of instrument (which can actually be any point on the instrument, depending on how it is set up). With the rotation angle=0 and rotation type=object, instrument x is the direction of increasing RA (east) and y is the direction of increasing Dec (north); this is by definition of object rotation. Although it is up to the person setting up the instrument data block, it is strongly recommended that y be chosen as the direction of increasing rows of the CCD. Then x will be the direction of increasing or decreasing rows (depending on the instrument position and choice of readout amplifier).
Rotator Position on the focal plane with respect to the instrument rotator, in degrees on the sky. 0,0 is the center of rotation. This has a fixed offset and rotation angle with respect to instrument coordinates; the offset and angle are set in the instrument data block.
GProbe [= gpNum] Position with respect to a guide probe on the guide image (the default probe number is 1). Axis 1, 2 = x, y in degrees, and 0,0 is a center of the guide probe. The orientation is the same as GImage, but the zero point is different and units are degrees, not pixels.
GImage [= gpNum] Position on the guide image (CCD) for a given guide probe (the default probe number is 1). Axis 1, 2 = x, y in unbinned pixels, and 0.5, 0.5 is the center of the lower left pixel of the CCD, x is rows, y is columns, x = 0 is the first row read out and y = 0 is the first pixel read from each row. Guide image coordinates are guide probe coordinates with a scale change and offset. This is the only case in which we do not gurantee a right-handed coordinate system. As such, the returned angle is relative to guide probe coordinates.

Notes:

Standard Qualifiers

/AbsRefCorrect, /NoAbsRefCorrect

Specifies whether or not to apply absolute encoder corrections during a move. Absolute encoders are coarser than the incremental encoders, and so should be avoided for short offsets or when very high precision is required (e.g. when centering up on a nearby position reference star). On the other hand, the absolute encoders are necessary because they correct for slippage of the incremental encoders. Hence use of the absolute position encoders is recommended whenever the lower precision is acceptable, such as when slewing to a new object.

/AzWrap = wrap, /RotWrap = wrap

Sets the wrap preferences for the aximuth axis or the instrument rotator, as appropriate. Note that wrap preference is ignored for mount coordinates!

wrap is one of:

nearest use the angle nearest to the current position. This is the default for /AzWrap and is also used for all offsets (except for offsets in mount coordinates, of course).
middle use the angle nearest the center of the range of motion. For example, if the range of motion is -190 to +370, the middle wrap range is -90 to +270. This is the default for /RotWrap (except during offsets), to reduce the odds that an exposure will be halted because the rotator hits a limit.
positive use the larger angle. For example, if the range of motion is -190 to +370, the positive wrap range is 10 to 370. See the notes for details.
negative use the smaller angle. For example, if the range of motion is -190 to +370, the wrap range is -190 to +170. See the notes for details.

Notes:

/Collimate

Specifies whether to update the position of the mirrors to maintain collimation as a function of temperature and altitude position. Collimation is updated, by default, by the commands Track,Rotate and Set Weather. It is also updated by Set Focus and at regular intervals (as specified in the Tune block). Collimation updates may be entirely disabled using the Process command.

/PM=(pm1, pm2)

Proper motion in arcseconds/century (default is zero). The first component is dPos1/dt, not dPos1/dt cos(pos2), i.e. it gets large at the poles. Be careful, as some catalogs use the TCC's definition, others present proper motion as velocity on the sky.

Proper motion is only used for mean coordinate systems (FK4, FK5 and galactic coordinates); it is ignored otherwise.

/Perfect

Normally a move will complete even if some "unimportant" axes cannot be moved. For instance a TRACK command will complete even if the guide camera would no longer be able to see the guide star. /Perfect prevents the requested move from happening unless all axes can be moved.

Note that if an axis is halted and that axis is prohibited from being restarted by /Restart (by explicit request or by default) then /Perfect will indeed prevent the move from taking place.

/RefCoefficients

Specifies whether to update the refraction coefficients.

/Restart = ([no]axis1, [no]axis2...) or /NoRestart

If an axis is halted (e.g. due to going out of bounds), but could move to the new position, /Restart=axis allows it to move and /Restart=noaxis prevents it from moving. /NoRestart prevents all axes from moving (hence is synonymous with /Restart=NoAll). The default depends on the command.

axis is one of:

Azimuth
Altitude
Rotator
All (default) all axes
In addition, Tel1 and Tel2 are accepted for Azimuth and Altitude, but are deprecated.

Note that "halted" is not the same thing as tracking a stationary position; when an axis is halted it is not tracking at all--the TCC doesn't know where it is. This condition is displayed by SHOW STATUS.

/Stop

Stops tracking in a gentle and controlled fashion, ending at the position of the telescope when the command was issued (hence there is some intentional backtracking). It is different than AXIS STOP in the following ways: