CARMA C++
|
AntennaControls interface. More...
#include <carma/control/AntennaControls.h>
Classes | |
struct | PersistentInfo |
Persistent Info captures data about the antenna which goes with it regardless of the subarray in which the antenna is a member. More... | |
Public Member Functions | |
AntennaControls (unsigned short carmaAntNo, const PersistentInfo &persistentInfo, monitor::MonitorSystem &monitorSystem, monitor::ControlSubsystemBase::Antenna &antenna) | |
Construct an AntennControls object. More... | |
AntennaControls (unsigned short carmaAntNo, const PersistentInfo &persistentInfo) | |
AntennaHandle * | antennaHandle () const |
void | attemptToReconnectIfNeeded () |
Reconnect to all subsystem DOs under control of this AntennaControls object if necessary. More... | |
CalibratorHandle * | calibratorHandle () const |
CryoHandle * | cryoHandle () const |
DriveHandle * | driveHandle () const |
FocusHandle * | focusHandle () const |
void | forceFullReconnect () |
Reconnect to all subsystem DOs under control of this AntennaControls object. More... | |
services::Location | getAbsoluteLocation () const |
::std::vector< services::Length > | getAntennaOffsets () const |
services::Length | getAxisMisalignment () const |
::std::string | getCarmaAntennaName () const |
unsigned short | getCarmaAntennaNo () const |
services::Pad | getPad () const |
::std::vector< services::Length > | getPadOffsets () const |
::std::vector< services::Length > | getTotalEnu () const |
::std::string | getTypedAntennaName () const |
Uvw | interpolateUVWfor (const double mjd) |
@ param mjd The modified julian day at which to interpolate the data More... | |
OpticalTelHandle * | opticalTelHandle () const |
RxSelectorHandle * | rxSelectorHandle () const |
void | setAntennaOffsets (const services::Length &eastOffset, const services::Length &northOffset, const services::Length &upOffset) |
Set additional offsets for a given antena. More... | |
void | setAxisMisalignment (const services::Length &axisMis) |
Set the axis misalignment term. More... | |
void | setPad (const services::Pad &pad) |
Set the pad for upon which this antenna rests. More... | |
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). More... | |
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. More... | |
virtual | ~AntennaControls () |
Destructor. More... | |
AntennaControls interface.
Antenna Controls is the interface to an antenna's properities and subsystems. Physical properties such the antenna's location and offsets are also set through this interface. When these properties are changed, the relevant antenna subsystems are notified. The interface also encapsulates and presents in a uniform manner all the DOs for the antenna.
Definition at line 57 of file AntennaControls.h.
carma::control::AntennaControls::AntennaControls | ( | unsigned short | carmaAntNo, |
const PersistentInfo & | persistentInfo, | ||
monitor::MonitorSystem & | monitorSystem, | ||
monitor::ControlSubsystemBase::Antenna & | antenna | ||
) |
Construct an AntennControls object.
carmaAntNo | The absolute CARMA antenna number (1-23) for this antenna. |
pad | The pad of this antenna. |
monitorSystem | The active CARMA monitor system, used to create handles to subsystems which this object controls (e.g. drive, focus, cryo). |
antenna | The control monitor subsystem antenna container for this antenna. Also used for handles. |
carma::control::AntennaControls::AntennaControls | ( | unsigned short | carmaAntNo, |
const PersistentInfo & | persistentInfo | ||
) |
|
virtual |
Destructor.
AntennaHandle* carma::control::AntennaControls::antennaHandle | ( | ) | const |
void carma::control::AntennaControls::attemptToReconnectIfNeeded | ( | ) |
Reconnect to all subsystem DOs under control of this AntennaControls object if necessary.
This is done via calls to subsystem handles to reestablish a broken connection.
CalibratorHandle* carma::control::AntennaControls::calibratorHandle | ( | ) | const |
CryoHandle* carma::control::AntennaControls::cryoHandle | ( | ) | const |
DriveHandle* carma::control::AntennaControls::driveHandle | ( | ) | const |
FocusHandle* carma::control::AntennaControls::focusHandle | ( | ) | const |
void carma::control::AntennaControls::forceFullReconnect | ( | ) |
Reconnect to all subsystem DOs under control of this AntennaControls object.
This is done via calls to subsystem handles to force a full re-lookup of the DO by name.
services::Location carma::control::AntennaControls::getAbsoluteLocation | ( | ) | const |
::std::vector< services::Length > carma::control::AntennaControls::getAntennaOffsets | ( | ) | const |
services::Length carma::control::AntennaControls::getAxisMisalignment | ( | ) | const |
::std::string carma::control::AntennaControls::getCarmaAntennaName | ( | ) | const |
unsigned short carma::control::AntennaControls::getCarmaAntennaNo | ( | ) | const |
services::Pad carma::control::AntennaControls::getPad | ( | ) | const |
::std::vector< services::Length > carma::control::AntennaControls::getPadOffsets | ( | ) | const |
::std::vector< services::Length > carma::control::AntennaControls::getTotalEnu | ( | ) | const |
::std::string carma::control::AntennaControls::getTypedAntennaName | ( | ) | const |
Uvw carma::control::AntennaControls::interpolateUVWfor | ( | const double | mjd | ) |
@ param mjd The modified julian day at which to interpolate the data
IllegalArgumentException | if the input mjd cannot be bracketed by the times in any of the U,V,W quadratic interopolation containers. |
OpticalTelHandle* carma::control::AntennaControls::opticalTelHandle | ( | ) | const |
RxSelectorHandle* carma::control::AntennaControls::rxSelectorHandle | ( | ) | const |
void carma::control::AntennaControls::setAntennaOffsets | ( | const services::Length & | eastOffset, |
const services::Length & | northOffset, | ||
const services::Length & | upOffset | ||
) |
Set additional offsets for a given antena.
These represent static properties of a particular antenna, e.g. the height of its receiver from the ground. They are given East, North, Up offsets with respect to the fiducial Pad location (lon,lat,alt), NOT with respect to (Pad + pad offsets).
The antenna's absolute location (lon,lat,alt) is (Pad + pad offset + antenna offsets).
eastOffset | The east antenna offset |
northOffset | The north antenna offset |
upOffset | The up antenna offset |
void carma::control::AntennaControls::setAxisMisalignment | ( | const services::Length & | axisMis | ) |
Set the axis misalignment term.
axisMis | A length representing the non-intersection of the elevation and azimuth axes. |
void carma::control::AntennaControls::setPad | ( | const services::Pad & | pad | ) |
Set the pad for upon which this antenna rests.
pad | The Pad object representing this antenna's pad. |
void carma::control::AntennaControls::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).
These represent how an antenna sits on a pad and are the product of the baseline solution.
The antenna's absolute location (lon,lat,alt) is (Pad + pad offset + antenna offsets).
eastOffset | The east pad offset |
northOffset | The north pad offset |
upOffset | The up pad offset |
void carma::control::AntennaControls::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.
U | The U coordinate value at time mjd |
V | The V coordinate value at time mjd |
W | The W coordinate value at time mjd |
mjd | The modified julian day for which the UVW were calculated. |
discontinuity | True if the change is discontinuous, e.g. a source change, and the interpolators should be emptied first. False, otherwise. |