1 #ifndef CARMA_CONTROL_ANTENNA_CONTROLS_H
2 #define CARMA_CONTROL_ANTENNA_CONTROLS_H
16 #include "carma/corba/corba.h"
17 #include "carma/control/SubarrayControl.h"
18 #include "carma/monitor/ControlSubsystem.h"
21 #include "carma/util/QuadraticInterpolatorNormal.h"
39 class CalibratorHandle;
42 class OpticalTelHandle;
43 class RxSelectorHandle;
119 unsigned short carmaAntNo,
122 monitor::ControlSubsystemBase::Antenna & antenna );
126 unsigned short carmaAntNo,
255 ::std::vector< services::Length >
getTotalEnu( )
const;
311 const bool discontinuity );
330 void computeNewLocation();
333 const unsigned short carmaAntNo_;
335 const ::std::auto_ptr< AntennaHandle > antennaHandle_;
336 const ::std::auto_ptr< CalibratorHandle > calibratorHandle_;
337 const ::std::auto_ptr< CryoHandle > cryoHandle_;
338 const ::std::auto_ptr< DriveHandle > driveHandle_;
339 const ::std::auto_ptr< FocusHandle > focusHandle_;
340 const ::std::auto_ptr< OpticalTelHandle > opticalTelHandle_;
341 const ::std::auto_ptr< RxSelectorHandle > rxSelectorHandle_;
353 PersistentInfo persistentInfo_;
363 carma::control::AntennaControls::Uvw::Uvw( ) :
372 carma::control::AntennaControls::Uvw::Uvw(
void forceFullReconnect()
Reconnect to all subsystem DOs under control of this AntennaControls object.
This class specifies an antenna pad or station with coordinates, name, and array configuration member...
Uvw interpolateUVWfor(const double mjd)
@ param mjd The modified julian day at which to interpolate the data
unsigned short getCarmaAntennaNo() const
Persistent Info captures data about the antenna which goes with it regardless of the subarray in whic...
void setPad(const services::Pad &pad)
Set the pad for upon which this antenna rests.
services::Location getAbsoluteLocation() const
services::Length getAxisMisalignment() const
Class for interpolating normal (non-angle) ordinates.
Manages antenna focus control DO connections.
CryoHandle * cryoHandle() const
AntennaHandle * antennaHandle() const
void setAntennaOffsets(const services::Length &eastOffset, const services::Length &northOffset, const services::Length &upOffset)
Set additional offsets for a given antena.
AntennaControls interface.
CalibratorHandle * calibratorHandle() const
RxSelectorHandle * rxSelectorHandle() const
::std::vector< services::Length > getTotalEnu() const
Location specifies a location (observatory if you wish) on planet earth, as longitude, latitude, and altitude above sea-level.
void setPadOffsets(const services::Length &eastOffset, const services::Length &northOffset, const services::Length &upOffset)
Set The East, North, Up offsets with respect to the nominal Pad location (lon,lat,alt).
OpticalTelHandle * opticalTelHandle() const
::std::vector< services::Length > getAntennaOffsets() const
Manages antenna optical telescope control DO connections.
FocusHandle * focusHandle() const
::std::vector< services::Length > getPadOffsets() const
Manages antenna cryo control DO connections.
Monitor system base class.
virtual ~AntennaControls()
Destructor.
void updateUVWInterpolators(const float U, const float V, const float W, const double mjd, const bool discontinuity)
Push new UVW values on to the quadratic interpolators for these data items.
Manages antenna drive control DO connections.
Manages antenna Antenna control DO connections.
DriveHandle * driveHandle() const
::std::string getTypedAntennaName() const
The Length class can represent a length in any units.
Manages antenna calibrator control DO connections.
::std::string getCarmaAntennaName() const
void attemptToReconnectIfNeeded()
Reconnect to all subsystem DOs under control of this AntennaControls object if necessary.
AntennaControls(unsigned short carmaAntNo, const PersistentInfo &persistentInfo, monitor::MonitorSystem &monitorSystem, monitor::ControlSubsystemBase::Antenna &antenna)
Construct an AntennControls object.
Manages antenna Rx selector control DO connections.
void setAxisMisalignment(const services::Length &axisMis)
Set the axis misalignment term.
services::Pad getPad() const