CARMA C++
carma::control::Drives Interface Reference

Tracking and drive related portions of the subarray control interface. More...

import "carma/control/Drives.idl";

Inheritance diagram for carma::control::Drives:
carma::control::SubarrayControl

Public Member Functions

void azPointingConstant (in double m1, in short carmaAntNo) raises (carma::util::UserException)
 Set azimuth mount offset This is a convenience method that sets m1 of the ovro model, and equivalent terms for the other models. More...
 
void mountOffset (in double az, in double el, in short carmaAntNo) raises (carma::util::UserException)
 Collimation offset from the mount. More...
 
void move (in double azDegrees, in double elDegrees, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Move antenna(s) to the requested az/el position. More...
 
void moveAz (in double azDegrees, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Move antenna(s) to the requested az position (el unchanged). More...
 
void moveEl (in double elDegrees, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Move antenna(s) to the requested el position. More...
 
void offset (in double azArcmin, in double elArcmin, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Offset from the nominal position. More...
 
void offsetAz (in double azArcmin, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Offset in azimuth from the nominal position, Convenience routine. More...
 
void offsetEl (in double elArcmin, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Offset in elevation from the nominal position, Convenience routine. More...
 
void setBimaMountPointingConstants (in SeqDouble dazCoefs, in SeqDouble delCoefs, in short carmaAntNo) raises ( carma::util::UserException )
 Set bima mount pointing constants. More...
 
void setOvroMountPointingConstants (in double m1, in double m2, in double m3, in double m4, in double m5, in short carmaAntNo) raises ( carma::util::UserException )
 Set ovro mount pointing constants el" = elEncoder + m2 el' = el"+ apertureOffsetEl +apertureSagEl*cos(el") - AFtilt az' = azEncoder + m1 + apertureOffsetAz/cos(el') az = az'+ [m3 + LRtilt - m4*sin(az') - m5*cos(az')]*sin(el')/cos(el') el = el' - m4*cos(az') + m5*sin(az') More...
 
void setSafeRange (in float azLow, in float azHigh, in float elLow, in float elHigh, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Set the azimuth and elevation ranges within which an antenna(s) is safe from collisions with other antennas. More...
 
void setSzaEncoderLimits (in unsigned long azMinCount, in unsigned long azMaxCount, in unsigned long elMinCount, in unsigned long elMaxCount, in short carmaAntNo) raises ( carma::util::UserException )
 
void setSzaEncoderZeros (in double azEncZeroDeg, in double elEncZeroDeg, in short carmaAntNo) raises ( carma::util::UserException )
 
void setSzaMountPointingConstants (in unsigned long azEncoderCountsPerTurn, in unsigned long elEncoderCountsPerTurn, in unsigned long azMinEncoderCount, in unsigned long azMaxEncoderCount, in unsigned long elMinEncoderCount, in unsigned long elMaxEncoderCount, in double azEncoderZeroDegrees, in double elEncoderZeroDegrees, in double haTiltDegrees, in double latTiltDegrees, in double elTiltDegrees, in double opticalXCollimationDegrees, in double opticalYCollimationDegrees, in double opticalFlexureSinDegrees, in double opticalFlexureCosDegrees, in double radioXCollimationDegrees, in double radioYCollimationDegrees, in double radioFlexureSinDegrees, in double radioFlexureCosDegrees, in short carmaAntNo) raises ( carma::util::UserException )
 
void setSzaTilts (in double haTilt, in double latTilt, in double elTilt, in short carmaAntNo) raises ( carma::util::UserException )
 
void snowTrack (in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Track the wind in a manner that minimizes snow buildup on antenna backing structures. More...
 
void stop (in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Stops the antennas and turns off the drive system. More...
 
void stow (in carma::antenna::common::DriveControl::Position pos, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Stows antennas in the ZENITH, SERVICE, or SAFE position. More...
 
void track (in string source, in SeqShort carmaAntNoSeq, in boolean affectPhaseCenter, in AzWrapMode xzWrapMode, in double time, in boolean overTheTop) raises (carma::util::UserException)
 Track the requested source. More...
 
void trackThreshold (in float threshold, in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Sets tracking threshold The tracking threshold is the sky tracking error in beamwidths that is used to determine if the antenna state is TRACK. More...
 
void windTrack (in SeqShort carmaAntNoSeq) raises (carma::util::UserException)
 Track the wind in an antenna specific manner during high winds. More...
 

Detailed Description

Tracking and drive related portions of the subarray control interface.

The interface is split into several pieces because the idl parser overflows.

Definition at line 26 of file Drives.idl.

Member Function Documentation

void carma::control::Drives::azPointingConstant ( in double  m1,
in short  carmaAntNo 
)
raises (carma::util::UserException
)

Set azimuth mount offset This is a convenience method that sets m1 of the ovro model, and equivalent terms for the other models.

This is the only pointing constant that should change after an antenna move.

Parameters
m1azimuth encoder offset, arcmin
carmaAntNocarma antenna number
void carma::control::Drives::mountOffset ( in double  az,
in double  el,
in short  carmaAntNo 
)
raises (carma::util::UserException
)

Collimation offset from the mount.

This offset tracks slowly varying (timescale of hours) collimation offsets and will be applied to all apertures.

Parameters
az(actually cross-elevation) collimation offset in arcmin This offset is an arc on the great circle perpendicular to the nominal source position.
elcollimation offset in arcmin
carmaAntNocarma antenna number
void carma::control::Drives::move ( in double  azDegrees,
in double  elDegrees,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Move antenna(s) to the requested az/el position.

Convenience routine. This command is memorized as part of the system state.

Parameters
azDegreesazimuth in degrees
elDegreeselevation in degrees
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
See Also
moveAz
moveEl
void carma::control::Drives::moveAz ( in double  azDegrees,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Move antenna(s) to the requested az position (el unchanged).

Convenience routine. This command is memorized as part of the system state.

Parameters
azDegreesazimuth in degrees
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
void carma::control::Drives::moveEl ( in double  elDegrees,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Move antenna(s) to the requested el position.

Convenience routine. This command is memorized as part of the system state.

Parameters
elDegreeselevation in degrees
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
void carma::control::Drives::offset ( in double  azArcmin,
in double  elArcmin,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Offset from the nominal position.

Convenience routine, used by pointing, for testing, etc. This offset will be removed on the next change of source or tracking mode.

Parameters
azArcmin(actually cross-elevation) collimation offset in arcmin This offset is an arc on the great circle perpendicular to the nominal source position.
elArcminelevation offset in arcmin
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
See Also
track, move
void carma::control::Drives::offsetAz ( in double  azArcmin,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Offset in azimuth from the nominal position, Convenience routine.

The elevation offset is unchanged. This offset will be removed on the next change of source or tracking mode.

Parameters
azArcmin(actually cross-elevation) collimation offset in arcmin This offset is an arc on the great circle perpendicular to the nominal source position.
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
void carma::control::Drives::offsetEl ( in double  elArcmin,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Offset in elevation from the nominal position, Convenience routine.

This offset will be removed on the next change of source or tracking mode.

Parameters
elArcminelevation offset in arcmin
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
void carma::control::Drives::setBimaMountPointingConstants ( in SeqDouble  dazCoefs,
in SeqDouble  delCoefs,
in short  carmaAntNo 
)
raises (carma::util::UserException
)

Set bima mount pointing constants.

Parameters
dazCoefsA sequence of coefficients for use with the pointing model's azimuth offset equation.
delCoefsA sequence of coefficients for use with the pointing model's elevation offset equation.
carmaAntNocarma antenna number
void carma::control::Drives::setOvroMountPointingConstants ( in double  m1,
in double  m2,
in double  m3,
in double  m4,
in double  m5,
in short  carmaAntNo 
)
raises (carma::util::UserException
)

Set ovro mount pointing constants el" = elEncoder + m2 el' = el"+ apertureOffsetEl +apertureSagEl*cos(el") - AFtilt az' = azEncoder + m1 + apertureOffsetAz/cos(el') az = az'+ [m3 + LRtilt - m4*sin(az') - m5*cos(az')]*sin(el')/cos(el') el = el' - m4*cos(az') + m5*sin(az')

Parameters
m1azimuth encoder offset, arcmin
m2elevation encoder offset, arcmin
m3non-orthogonality of axes, arcmin
m4azimuth axis verticality, North/South, arcmin
m5azimuth axis verticality, East/West, arcmin
carmaAntNocarma antenna number
void carma::control::Drives::setSafeRange ( in float  azLow,
in float  azHigh,
in float  elLow,
in float  elHigh,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Set the azimuth and elevation ranges within which an antenna(s) is safe from collisions with other antennas.

Note: an invocation DriveControl::stow(SAFE) must throw an exception if valid safe ranges have not been set with this command beforehand.

Parameters
azLow- the low end of the safe azimuth range, in degrees.
azHigh- the high end of the safe azimuth range, in degrees.
elLow- the low end of the safe elevation range, in degrees.
elHigh- the high end of the safe elevation range, in degrees.
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
See Also
antenna::common::DriveControl::setSafeRange()
void carma::control::Drives::snowTrack ( in SeqShort  carmaAntNoSeq)
raises (carma::util::UserException
)

Track the wind in a manner that minimizes snow buildup on antenna backing structures.

On ovro antennas, tracking is done at a 60 degree offset into the wind. On bima antennas tracking is done with the antenna back to the wind (opposite the wind vector).

Exceptions
UserExceptionon error.
void carma::control::Drives::stop ( in SeqShort  carmaAntNoSeq)
raises (carma::util::UserException
)

Stops the antennas and turns off the drive system.

Parameters
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
void carma::control::Drives::stow ( in carma::antenna::common::DriveControl::Position  pos,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Stows antennas in the ZENITH, SERVICE, or SAFE position.

Parameters
positionOne of ZENITH, SERVICE, SAFE
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
void carma::control::Drives::track ( in string  source,
in SeqShort  carmaAntNoSeq,
in boolean  affectPhaseCenter,
in AzWrapMode  xzWrapMode,
in double  time,
in boolean  overTheTop 
)
raises (carma::util::UserException
)

Track the requested source.

This position serves as the reference for both pointing and optionally the phase center. Any offsets entered with offset, equatOffset, or phaseCenterOffset are set to zero to avoid mistakes for the most common observing patterns. This command is saved as system state.

Parameters
sourcesource name
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas
affectPhaseCenterWhether or not to change the phase center/subarray info
azWrapModespecifies whether to add or subtract a turn from the nominal azimuth
timewhen azWrapMode==TIME, an az wrap will be requested that allows the source to be tracked for 'time' minutes. Ignored if azWrapMode != TIME.
overTheTopspecifies whether to use an elevation that is more than 90 degrees
Exceptions
UserExceptionif the source does not exist or an error occurs in distributing the source info to other distributed components
See Also
offset, equatOffset, phaseCenterOffset
Exceptions
UserExceptionif integration is in progress, or if subarray has not been initialized
See Also
setInitializationFlag
void carma::control::Drives::trackThreshold ( in float  threshold,
in SeqShort  carmaAntNoSeq 
)
raises (carma::util::UserException
)

Sets tracking threshold The tracking threshold is the sky tracking error in beamwidths that is used to determine if the antenna state is TRACK.

Parameters
threshold- tracking threshold in beamwidths
carmaAntNoSeqSequence of carma antenna numbers. A sequence of the single value zero means all subarray antennas.
void carma::control::Drives::windTrack ( in SeqShort  carmaAntNoSeq)
raises (carma::util::UserException
)

Track the wind in an antenna specific manner during high winds.

This command stows ovro dishes at the zenith during high winds. For bima antennas, it actively tracks with dish backs to the wind.

Exceptions
UserExceptionon error.

The documentation for this interface was generated from the following file: