VieSched++
VieVS VLBI Scheduling Software
VieVS::CableWrap_HaDc Class Reference

hour angle, declination cable wrap More...

#include <CableWrap_HaDc.h>

Inheritance diagram for VieVS::CableWrap_HaDc:
Collaboration diagram for VieVS::CableWrap_HaDc:

Public Member Functions

 CableWrap_HaDc (double axis1_low_deg, double axis1_up_deg, double axis2_low_deg, double axis2_up_deg)
 constructor More...
 
bool anglesInside (const PointingVector &p) const noexceptoverride
 checks if this pointing vectors azimuth and elevation are inside the axis limits More...
 
void unwrapAzNearAz (PointingVector &new_pointingVector, double az_old) const noexceptoverride
 unwraps the current azimuth of pointing vector More...
 
bool unwrapAzInSection (PointingVector &pv, char section) const noexceptoverride
 unwraps the current azimuth of pointing vector in specific cable wrap section More...
 
AbstractCableWrap::CableWrapFlag cableWrapFlag (double unaz) const noexceptoverride
 cable wrap section based on unwrapped azimuth More...
 
std::pair< std::string, std::string > getMotions () const noexceptoverride
 antenna motion names in .vex format More...
 
std::string vexPointingSectors () const noexceptoverride
 cable wrap sections in .vex format More...
 
- Public Member Functions inherited from VieVS::AbstractCableWrap
 AbstractCableWrap (double axis1_low_deg, double axis1_up_deg, double axis2_low_deg, double axis2_up_deg)
 constructor More...
 
void setMinimumOffsets (double axis1_low_offset, double axis1_up_offset, double axis2_low_offset, double axis2_up_offset) noexcept
 sets safety margins for axis limits More...
 
double getNLow () const
 getter for lower neutral cable wrap limit in radians More...
 
double getNUp () const
 getter for upper neutral cable wrap limit in radians More...
 
double getCLow () const
 getter for lower clock wise cable wrap limit in radians More...
 
double getCUp () const
 getter for upper clock wise cable wrap limit in radians More...
 
double getWLow () const
 getter for lower counter clock wise cable wrap limit in radians More...
 
double getWUp () const
 getter for upper counter clock wise cable wrap limit in radians More...
 
std::pair< double, double > getLimits (char section) const
 getter for limits of cable wrap section in radians More...
 
void calcUnwrappedAz (const PointingVector &old_pointingVector, PointingVector &new_pointingVector) const noexcept
 unwraps the current azimuth of pointing vector More...
 
CableWrapFlag cableWrapFlag (const PointingVector &pointingVector) const noexcept
 cable wrap section based on unwrapped azimuth from pointing vector More...
 
double getAxis2Low () const
 getter for lowest possible value of 2nd axis More...
 
double getAxis2Up () const
 getter for highest possible value of 2nd axis 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...
 

Additional Inherited Members

- Public Types inherited from VieVS::AbstractCableWrap
enum  CableWrapFlag { CableWrapFlag::ccw, CableWrapFlag::n, CableWrapFlag::cw }
 enum to distinguish cable wraps More...
 
- Protected Types inherited from VieVS::AbstractCableWrap
enum  Axis { Axis::axis1, Axis::axis2 }
 enum to distinguish antenna axis More...
 
- Protected Member Functions inherited from VieVS::AbstractCableWrap
bool axisInsideCableWrap (double ax1, double ax2) const noexcept
 checks if axis values are inside of possible value range More...
 
std::string pointingSector (const std::string &motion1, const std::string &motion2, char section) const noexcept
 pointing sector in vex format for one axis More...
 
double minLow (Axis axis) const
 getter for lowest possible value for this antenna axis More...
 
double maxUp (Axis axis) const
 getter for uppermost possible value for this antenna axis More...
 

Detailed Description

hour angle, declination cable wrap

Author
Matthias Schartner
Date
12.04.2018

Constructor & Destructor Documentation

CableWrap_HaDc::CableWrap_HaDc ( double  axis1_low_deg,
double  axis1_up_deg,
double  axis2_low_deg,
double  axis2_up_deg 
)

constructor

Author
Matthias Schartner
Parameters
axis1_low_deghour angle lower limit in degrees
axis1_up_deghour angle upper limit in degrees
axis2_low_degdeclination lower limit in degrees
axis2_up_degdeclination upper limit in degrees

Member Function Documentation

bool CableWrap_HaDc::anglesInside ( const PointingVector p) const
overridevirtualnoexcept

checks if this pointing vectors azimuth and elevation are inside the axis limits

Author
Matthias Schartner
Parameters
ppointing vector which should be tested
Returns
true if inside, otherwise false

Implements VieVS::AbstractCableWrap.

Here is the call graph for this function:

AbstractCableWrap::CableWrapFlag CableWrap_HaDc::cableWrapFlag ( double  unaz) const
overridevirtualnoexcept

cable wrap section based on unwrapped azimuth

Author
Matthias Schartner
Parameters
unazunwrapped azimuth in radians
Returns
cable wrap section

Implements VieVS::AbstractCableWrap.

std::pair< std::string, std::string > CableWrap_HaDc::getMotions ( ) const
overridevirtualnoexcept

antenna motion names in .vex format

Author
Matthias Schartner
Returns
antenna motion name for first and second axis (e.g.: {"ha", "dec"})

Implements VieVS::AbstractCableWrap.

bool CableWrap_HaDc::unwrapAzInSection ( PointingVector pv,
char  section 
) const
overridevirtualnoexcept

unwraps the current azimuth of pointing vector in specific cable wrap section

Author
Matthias Schartner

The azimuth of one pointing vector is first calculated in the range between [-pi,pi]. This function adds an factor of 2*pi so that the azimuth is inside the cable wrap section limits.

This function takes cable wrap section in sked format.

  • 'C': clock wise
  • '-': neutral
  • 'W': counter clock wise
Parameters
pvpointing vector whose azimuth should be unwrapped
sectioncable wrap section in sked format
Returns
true if unwrapping was possible, otherwise false

Implements VieVS::AbstractCableWrap.

void CableWrap_HaDc::unwrapAzNearAz ( PointingVector new_pointingVector,
double  az_old 
) const
overridevirtualnoexcept

unwraps the current azimuth of pointing vector

Author
Matthias Schartner

The azimuth of one pointing vector is first calculated in the range between [-pi,pi]. This function adds an factor of 2*pi so that the azimuth is inside the axis limits. If there are possible ambiguities, for example if the azimuth axis range is bigger than 360 degrees, the value, which is closest to the second input parameter value (az_old) is used.

Parameters
new_pointingVectorpointing vector whose azimuth should be unwrapped
az_oldclosest target antenna azimuth in radians

Implements VieVS::AbstractCableWrap.

std::string CableWrap_HaDc::vexPointingSectors ( ) const
overridevirtualnoexcept

cable wrap sections in .vex format

Author
Matthias Schartner
Returns
all cable wrap sections in .vex format

Implements VieVS::AbstractCableWrap.

Here is the call graph for this function:


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