My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
Site.h
1 #ifndef SITE_H
2 #define SITE_H
3 
11 #include "gcp/antenna/control/specific/PointingCorrections.h"
12 
13 // Include the C-style struct and method definitions this class is
14 // based on
15 
16 #include "gcp/control/code/unix/libunix_src/common/astrom.h"
17 
18 // Needed for cvel
19 
20 #include "gcp/control/code/unix/libunix_src/common/const.h"
21 
22 #include "gcp/util/common/Angle.h"
23 #include "gcp/util/common/Length.h"
24 
25 namespace gcp {
26  namespace antenna {
27  namespace control {
28 
29 
33  class Site {
34 
35  public:
36 
42  Site();
43 
49  void setFiducial(gcp::util::Angle longitude, gcp::util::Angle latitude,
50  double altitude);
51 
57  void setOffset(double north, double east, double up);
58 
62  void reset();
63 
67  double convertMjdUtcToLst(double utc, double ut1utc, double eqneqx);
68 
77  void applyParallax(double dist, PointingCorrections* f);
78 
85 
90 
95  void packFiducial(signed* s_elements);
96 
101  void packActual(signed* s_elements);
102 
107  void packOffset(signed* s_elements);
108 
109  inline double getLongitude() {
110  return actual_.longitude;
111  }
112 
113  inline double getLatitude() {
114  return actual_.latitude;
115  }
116 
117  inline double getAltitude() {
118  return actual_.altitude;
119  }
120 
121  inline gcp::util::Angle latitude() {
122  return gcp::util::Angle(gcp::util::Angle::Radians(), actual_.latitude);
123  }
124 
125  inline gcp::util::Length altitude() {
126  return gcp::util::Length(gcp::util::Length::Meters(), actual_.altitude);
127  }
128 
129  private:
130 
136  double wrap2pi(double angle);
137 
143  // The fiducial site. This is the location of an arbitrary
144  // (lat, long, alt) point, relative to which the actual
145  // antenna location is specified.
146 
147  gcp::control::Site fiducial_;
148 
149  // The offset location, in meters of this antenna from the
150  // fiducial position
151 
152  double north_;
153  double east_;
154  double up_;
155 
156  // The actual (lat, long, alt) of this antenna, after the
157  // above offsets have been taken into account.
158 
159  public:
160  gcp::control::Site actual_;
161 
162  }; // End class Site
163 
164  }; // End namespace control
165  }; // End namespace antenna
166 } // End namespace gcp
167 
168 #endif // End #ifndef
void packFiducial(signed *s_elements)
Definition: Site.cc:243
double convertMjdUtcToLst(double utc, double ut1utc, double eqneqx)
Definition: Site.cc:103
void applyDiurnalAberration(PointingCorrections *f)
Definition: Site.cc:141
Definition: Angle.h:23
void setFiducial(gcp::util::Angle longitude, gcp::util::Angle latitude, double altitude)
Definition: Site.cc:27
Definition: Site.h:33
Definition: Length.h:23
void packOffset(signed *s_elements)
Definition: Site.cc:262
void reset()
Definition: Site.cc:84
void packActual(signed *s_elements)
Definition: Site.cc:225
void setOffset(double north, double east, double up)
Definition: Site.cc:59
Site()
Definition: Site.cc:19
void updateLatitude(PointingCorrections *f)
Definition: Site.cc:213
Definition: Angle.h:20
Definition: PointingCorrections.h:22
Definition: Length.h:19
Definition: astrom.h:10
void applyParallax(double dist, PointingCorrections *f)
Definition: Site.cc:124