VieSched++
VieVS VLBI Scheduling Software
VieVS::AbstractAntenna Class Referenceabstract

representation of a VLBI antenna More...

#include <AbstractAntenna.h>

Inheritance diagram for VieVS::AbstractAntenna:
Collaboration diagram for VieVS::AbstractAntenna:

Public Member Functions

 AbstractAntenna (double offset_m, double diam_m, double rate1_deg_per_min, unsigned int constantOverhead1_s, double rate2_deg_per_min, unsigned int constantOverhead2_s)
 constructor More...
 
double getDiam () const
 getter for antenna diameter More...
 
double getOffset () const
 getter for antenna offset More...
 
double getRate1 () const
 slew rate of first axis in rad/seconds More...
 
double getCon1 () const
 getter for constant overhead for first axis slew time in seconds More...
 
double getRate2 () const
 slew rate of second axis in rad/seconds More...
 
double getCon2 () const
 getter for constant overhead for second axis slew time in seconds More...
 
virtual unsigned int slewTime (const PointingVector &old_pointingVector, const PointingVector &new_pointingVector) const noexcept=0
 calculates the slewtime between azimuth and elevation of two pointing vectors More...
 
virtual unsigned int slewTimeTracking (const PointingVector &old_pointingVector, const PointingVector &new_pointingVector) const noexcept=0
 calculates the slewtime between azimuth and elevation of two pointing vectors in tracking mode More...
 
virtual std::string getMount () const noexcept=0
 get mount name More...
 
- Public Member Functions inherited from VieVS::VieVS_Object
 VieVS_Object (unsigned long id)
 constructor More...
 
const unsigned long getId () const
 get object id More...
 
bool hasValidId () const
 check if id is valid More...
 
bool hasId (unsigned long id) const
 check if object has specific id More...
 
void setId (unsigned long id)
 set object id More...
 
std::string printId () const
 object id string More...
 

Protected Types

enum  Axis { Axis::axis1, Axis::axis2 }
 enum to distinguish antenna axis More...
 

Protected Member Functions

unsigned int slewTimePerAxis (double delta, Axis axis) const noexcept
 calculates slew time per axis More...
 

Private Attributes

double offset_
 offset of the antenna axis intersection in meters More...
 
double diam_
 diameter of the antenna dish in meters More...
 
double rate1_
 slew rate of first axis in radians/second More...
 
unsigned int con1_
 constant overhead for first axis slew in seconds More...
 
double rate2_
 slew rate of second axis in radians/second More...
 
unsigned int con2_
 constant overhead for second axis slew in seconds More...
 

Static Private Attributes

static unsigned long nextId = 0
 next id for this object type More...
 

Detailed Description

representation of a VLBI antenna

Author
Matthias Schartner
Date
27.06.2017

Member Enumeration Documentation

enum VieVS::AbstractAntenna::Axis
strongprotected

enum to distinguish antenna axis

Author
Matthias Schartner
Enumerator
axis1 

first antenna axis

axis2 

second antenna axis

Constructor & Destructor Documentation

AbstractAntenna::AbstractAntenna ( double  offset_m,
double  diam_m,
double  rate1_deg_per_min,
unsigned int  constantOverhead1_s,
double  rate2_deg_per_min,
unsigned int  constantOverhead2_s 
)

constructor

Author
Matthias Schartner
Parameters
offset_moffset of antenna axis intersection in meters
diam_mdiameter of antenna dish in meters
rate1_deg_per_minslew rate of first axis in degrees/seconds
constantOverhead1_sconstant overhead for first axis slew time in seconds
rate2_deg_per_minslew rate of second axis in degrees/secondds
constantOverhead2_sconstant overhead for second axis slew time in seconds

Member Function Documentation

double VieVS::AbstractAntenna::getCon1 ( ) const
inline

getter for constant overhead for first axis slew time in seconds

Author
Matthias Schartner
Returns
constant overhead for first axis slew in seconds

Here is the caller graph for this function:

double VieVS::AbstractAntenna::getCon2 ( ) const
inline

getter for constant overhead for second axis slew time in seconds

Author
Matthias Schartner
Returns
constant overhead for first axis slew in seconds

Here is the call graph for this function:

Here is the caller graph for this function:

double VieVS::AbstractAntenna::getDiam ( ) const
inline

getter for antenna diameter

Author
Matthias Schartner
Returns
diameter of antenna dish in meters

Here is the caller graph for this function:

virtual std::string VieVS::AbstractAntenna::getMount ( ) const
pure virtualnoexcept

get mount name

Author
Matthias Schartner
Returns
mount name

Implemented in VieVS::Antenna_AzEl, VieVS::Antenna_HaDc, VieVS::Antenna_XYew, and VieVS::Antenna_GGAO.

Here is the caller graph for this function:

double VieVS::AbstractAntenna::getOffset ( ) const
inline

getter for antenna offset

Author
Matthias Schartner
Returns
offset of antenna axis intersection in meters
double VieVS::AbstractAntenna::getRate1 ( ) const
inline

slew rate of first axis in rad/seconds

Author
Matthias Schartner
Returns
slew rate of first antenna axis in rad/seconds

Here is the caller graph for this function:

double VieVS::AbstractAntenna::getRate2 ( ) const
inline

slew rate of second axis in rad/seconds

Author
Matthias Schartner
Returns
slew rate of first antenna axis in rad/seconds

Here is the caller graph for this function:

virtual unsigned int VieVS::AbstractAntenna::slewTime ( const PointingVector old_pointingVector,
const PointingVector new_pointingVector 
) const
pure virtualnoexcept

calculates the slewtime between azimuth and elevation of two pointing vectors

Author
Matthias Schartner
Parameters
old_pointingVectorstart pointing vector
new_pointingVectorend pointing vector
Returns
slewtime between start pointing vector and end pointing vector in seconds

Implemented in VieVS::Antenna_AzEl, VieVS::Antenna_HaDc, VieVS::Antenna_XYew, and VieVS::Antenna_GGAO.

Here is the caller graph for this function:

unsigned int AbstractAntenna::slewTimePerAxis ( double  delta,
Axis  axis 
) const
protectednoexcept

calculates slew time per axis

Author
Matthias Schartner
Parameters
deltadistance to slew in radians
axisantenna axis
Returns
slew time in seconds

Here is the caller graph for this function:

virtual unsigned int VieVS::AbstractAntenna::slewTimeTracking ( const PointingVector old_pointingVector,
const PointingVector new_pointingVector 
) const
pure virtualnoexcept

calculates the slewtime between azimuth and elevation of two pointing vectors in tracking mode

Author
Matthias Schartner

tracking mode means that the constant overhead time is not added

Parameters
old_pointingVectorstart pointing vector
new_pointingVectorend pointing vector
Returns
slewtime between start pointing vector and end pointing vector in seconds

Implemented in VieVS::Antenna_GGAO, VieVS::Antenna_AzEl, VieVS::Antenna_HaDc, and VieVS::Antenna_XYew.

Here is the caller graph for this function:

Member Data Documentation

unsigned int VieVS::AbstractAntenna::con1_
private

constant overhead for first axis slew in seconds

unsigned int VieVS::AbstractAntenna::con2_
private

constant overhead for second axis slew in seconds

double VieVS::AbstractAntenna::diam_
private

diameter of the antenna dish in meters

unsigned long AbstractAntenna::nextId = 0
staticprivate

next id for this object type

double VieVS::AbstractAntenna::offset_
private

offset of the antenna axis intersection in meters

double VieVS::AbstractAntenna::rate1_
private

slew rate of first axis in radians/second

double VieVS::AbstractAntenna::rate2_
private

slew rate of second axis in radians/second


The documentation for this class was generated from the following files: