10 #ifndef CARMA_ANTENNA_OVRO_DRIVEENGINE_H
11 #define CARMA_ANTENNA_OVRO_DRIVEENGINE_H
42 typedef ::std::vector< RaDecEpoch > RaDecTriplet;
43 typedef RaDecTriplet::iterator RaDecTripletIter;
44 typedef RaDecTriplet::const_iterator RaDecTripletConstIter;
58 carma::monitor::OvroSubsystem & mon );
98 float elRateInDegPerMin );
155 void setRaDec(
const RaDecTriplet & raDecTriplet,
179 double barometricPressure,
180 double relativeHumidity,
183 double windDirection );
216 ApertureType aperture,
344 void writeMonitorData( );
346 void driveLoopThread( );
348 static void driveLoopThreadEntry( DriveEngine & This );
355 class SourcePosition;
359 struct EngineeringInfo;
362 ::std::auto_ptr< Acquisition > acquisition_;
363 ::std::auto_ptr< DriveState > driveState_;
364 ::std::auto_ptr< EngineeringInfo > engineering_;
365 ::std::auto_ptr< Limits > limits_;
366 ::std::auto_ptr< Pointing > pointing_;
367 ::std::auto_ptr< Servo > azServo_;
368 ::std::auto_ptr< Servo > elServo_;
369 ::std::auto_ptr< SourcePosition > sourcePosition_;
370 ::std::auto_ptr< Timing > timing_;
371 ::std::auto_ptr< Tracking > tracking_;
372 ::pthread_t driveLoopThreadId_;
373 ::pthread_mutex_t mutex_;
void setOffset(const carma::services::Angle &azOffset, const carma::services::Angle &elOffset)
Set offset.
void stowSafe()
Stow antenna to a safe position.
void toggleBacklashCorrection(bool enable)
Toggle backlash correction.
void setAzEl(const carma::services::Angle &angle, const carma::services::Angle &elevation)
Set azimuth and elevation.
void setEl(const carma::services::Angle &elevation)
Set elevation.
10-m Antenna Encoder Module CAN Implementation (API No.
void setElOffset(const carma::services::Angle &offset)
Set elevation offset.
void setElEncoderZero(const carma::services::Angle &azEncoderZero)
Set El Encoder Zero.
void setRaDec(const RaDecTriplet &raDecTriplet, WrapType wrap=NO_TURN)
Set new Ra and Dec triplet.
void thawTilt()
Thaw tilt ( debug )
void setAzEncoderZero(const carma::services::Angle &azEncoderZero)
Set Az Encoder Zero.
void setRawDriveRates(float azRateInDegPerMin, float elRateInDegPerMin)
Engineering command to set raw drive slew rates.
void setTolerance(const carma::services::Angle &tolerance)
Set acquisition tolerance.
void setAz(const carma::services::Angle &azimuth)
Set azimuth.
void setAzMaxRate(double azMaxRateInDegPerSec)
Set azimuth maz rate on the sky.
void setSequenceNumber(unsigned long seqNo)
Set sequence number.
void snow()
Track a position 60 degrees into the wind in order to minimize snow buildup on the backing structure ...
void setAzOffset(const carma::services::Angle &offset)
Set azimuth offset.
void setAzMountOffset(const carma::services::Angle &azMountOffset)
Set Az Mount Offset.
Location specifies a location (observatory if you wish) on planet earth, as longitude, latitude, and altitude above sea-level.
void setElMaxRate(double elMaxRateInDegPerSec)
Set elevation max rate.
The Angle class can represent any angle in any units.
void setSafeRange(const carma::services::Angle &azLow, const carma::services::Angle &azHigh, const carma::services::Angle &elLow, const carma::services::Angle &elHigh)
Set anti-collision safe ranges.
void updateConfigurationData()
Update Drive module configuration data from file.
void setSource(std::string source)
Set source name.
void updateRaDec(const RaDecEpoch &raDecEpoch, WrapType wrap=NO_TURN)
Update current Ra/Dec position with a new epoch.
void stowZenith()
Stow antenna close to zenith.
void setLocation(const carma::services::Location &location)
Set antenna location.
10-m Antenna Drive Module CAN Implementation (API No.
void setMountPointingConstants(const carma::services::Angle &azEncoderZero, const carma::services::Angle &elEncoderZero, const carma::services::Angle &nonOrthogonalityOfAxes, const carma::services::Angle &azimuthVerticalityNorthSouth, const carma::services::Angle &azimuthVerticalityEastWest)
Set mount pointing constants.
void setElMountOffset(const carma::services::Angle &elMountOffset)
Set El Mount Offset.
void setTiltmeterZeros(const carma::services::Angle &aftForwardZero, const carma::services::Angle &leftRightZero)
Set Tiltmeter Zeros.
void setRawDriveVoltages(float azVoltage, float elVoltage)
Engineering command to set raw drive motor control voltages.
void setEngineeringMode(bool enable)
Set engineering mode.
void freezeTilt()
Freeze tilt ( debug )
void setMountOffsets(const carma::services::Angle &azMountOffset, const carma::services::Angle &elMountOffset)
Set both az and el mount offsets simultaneously.
Responsible for storing and maintaining drive parameters, calculating drive rate updates and regularl...
void setAperturePointingConstants(ApertureType aperture, const carma::services::Angle &azOffset, const carma::services::Angle &elOffset, const carma::services::Angle &sag)
Set aperture pointing constants These constants represent on the sky collimation errors for a particu...
void selectAperture(ApertureType aperture)
Select aperture.
void setWeather(double ambientTemp, double barometricPressure, double relativeHumidity, double dewpointTemp, double windSpeed, double windDirection)
Set weather parameters needed for refraction corrections, snow track and wind track.