CARMA C++
DriveControl.idl
Go to the documentation of this file.
1 
12 #ifndef _DRIVEIDL
13 #define _DRIVEIDL
14 
16 
17 module carma {
18  module antenna {
19  module common {
20 
27  const string DRIVE_NAME = "Drive";
28 
80  interface DriveControl {
81 
85  enum Aperture {
89  RADIO1CM
90  };
91 
95  enum Position {
98  SAFE
102  };
103 
118  enum AzWrapMode {
120  ADD,
121  SUB
122  };
123 
127  struct RaDecEpoch
128  {
129  double mjd;
130  double ra;
131  double dec;
132  };
133 
134  typedef sequence< RaDecEpoch, 3 > RaDecTriplet;
135 
150  void stow( in DriveControl::Position pos, in unsigned long seq )
151  raises ( carma::util::UserException );
152 
161  void stop()
162  raises (carma::util::UserException);
163 
171  void trackSnow()
172  raises (carma::util::UserException);
173 
179  void trackWind()
180  raises (carma::util::UserException);
181 
191  void setAntLocation(in double longitude, in double latitude,
192  in double altitude)
193  raises (carma::util::UserException);
194 
209  void setAzel( in double az, in double el, in unsigned long seq )
210  raises (carma::util::UserException);
211 
220  void setAz( in double az, in unsigned long seq )
221  raises (carma::util::UserException);
222 
231  void setEl( in double el, in unsigned long seq )
232  raises (carma::util::UserException);
233 
246  void setMaxRate(in float azRate, in float elRate)
247  raises (carma::util::UserException);
248 
255  void setAzMaxRate(in float azRate)
256  raises (carma::util::UserException);
257 
263  void setElMaxRate(in float elRate)
264  raises (carma::util::UserException);
265 
293  void track( in string source,
294  in RaDecTriplet positionTriplet,
295  in DriveControl::AzWrapMode mode,
296  in boolean overTheTop,
297  in unsigned long seq)
298  raises (carma::util::UserException);
299 
309  void updateRaDec( in RaDecEpoch position,
310  in DriveControl::AzWrapMode mode )
311  raises ( carma::util::UserException );
312 
330  void updateWeather(in float ambientTemp, in float barometricPressure,
331  in float relativeHumidity,
332  in float dewpointTemp,
333  in float windSpeed,
334  in float windDirection)
335  raises (carma::util::UserException);
336 
352  void setMountOffset(in double az, in double el, in unsigned long seq)
353  raises (carma::util::UserException);
354 
360  void setAzMountOffset(in double az, in unsigned long seq)
361  raises (carma::util::UserException);
362 
368  void setElMountOffset(in double el, in unsigned long seq)
369  raises (carma::util::UserException);
370 
385  void setOffset(in double az, in double el, in unsigned long seq)
386  raises (carma::util::UserException);
387 
395  void setAzOffset(in double az, in unsigned long seq)
396  raises (carma::util::UserException);
397 
404  void setElOffset(in double el, in unsigned long seq)
405  raises (carma::util::UserException);
406 
421  void setAperturePointingConstants(
422  in DriveControl::Aperture ap,
423  in float azOffset, in float elOffset, in float sag)
424  raises (carma::util::UserException);
425 
431  void setTiltmeterZero(in float aftForward, in float leftRight)
432  raises (carma::util::UserException);
433 
434  /*
435  * Select aperture. Sets pointing constants and refraction.
436  * An aperture is a radio receiver beam or optical telescope.
437  * @param aperture for which to select pointing constants
438  */
439  void selectAperture(in DriveControl::Aperture ap)
440  raises (carma::util::UserException);
441 
442  /*
443  * Set Tolerance for target aquisition. This is specified in
444  * [arcsec] for this antenna. An antenna indicates that it
445  * is "CLOSE" to the target once it has entered into the
446  * range of its target tolerance, and once it has settled into
447  * this range for 1-2 seconds, starts sending back the status
448  * of "TRACK". The control system wrapper for this uses an input
449  * value in Half Power Beam Widths (full width half max) since they
450  * provide a frequency independent measure of tracking.
451  * @param tolerance tracking tolerance in arcsecs!
452  */
453  void setTolerance( in float toleranceInArcsecs )
454  raises (carma::util::UserException);
455 
467  void setSafeRange( in float azLow, in float azHigh,
468  in float elLow, in float elHigh )
469  raises (carma::util::UserException);
470 
471  }; // End DriveControl interface
472 
473 }; // End module common
474 }; // End module antenna
475 }; // End module carma
476 
477 #endif // _DRIVEIDL
478 
double mjd
Modified Julian day number for the requested Ra/Dec.
Drive system control interface
const string DRIVE_NAME
DriveControl DO Name This is the name that this DO will be published with on the nameserver.
double dec
Declination (radians), -pi to pi.
Aperture
Enumerate apertures to use for selecting pointing models.
Generic Carma variant of CORBA::UserException.
AzWrapMode
The azimuth drive can operate over more than a full circle, and the wrap logic dictates how the ambig...
Don&#39;t add or subtract anything to the azimuth.
double ra
Right Ascension (radians), 0 to 2 pi.
A predefined service position.
CORBA User Exception for carma::util.
Add a turn to azimuth if result is inside physical range.
Position
Enumerate valid fixed positions for Stow.