1 #ifndef SZA_UTIL_DELAYLOCATION_H
2 #define SZA_UTIL_DELAYLOCATION_H
12 #include "carma/szautil/Delay.h"
13 #include "carma/szautil/Location.h"
14 #include "carma/szautil/Source.h"
19 class DelayAntennaLocation;
22 class MonitorPointManager;
24 class DelayLocation :
public Location {
35 virtual ~DelayLocation();
40 void setFixedDelay(Delay delay);
45 void setAdjustableDelay(Delay delay);
50 inline Delay adjustableDelay() {
51 return referredAdjustableDelay_;
57 inline Delay fixedDelay() {
58 return referredFixedDelay_;
65 return (Location&) *
this;
71 virtual void locationChanged(Location* loc);
75 void useAdjustableDelay(
bool use);
76 void useFixedDelay(
bool use);
77 void useGeometricDelay(
bool use);
78 void useIonosphericDelay(
bool use);
79 void useTroposphericDelay(
bool use);
80 void useThermalDelay(
bool use);
86 DelayAntennaLocation* refDLoc,
87 bool doMotionCorrection);
92 Delay totalDelay(Angle az, Angle el,
93 DelayAntennaLocation* refDLoc);
98 Delay geometricDelay(DelayAntennaLocation* refDLoc,
99 bool doMotionCorrection);
104 Delay geometricDelay(Angle az, Angle el,
105 DelayAntennaLocation* refDLoc);
110 Delay troposphericDelay(DelayAntennaLocation* refDLoc);
115 inline bool discontinuity() {
116 return discontinuity_;
122 void markAsDiscontinuous(
bool disc) {
123 discontinuity_ = disc;
130 friend class DelayManager;
132 DelayManager* delayListener_;
134 DelayManager* locationListener_;
144 MonitorPointManager* monitor_;
146 MonitorPoint* monAdjustableDelay_;
147 MonitorPoint* monUseAdjustableDelay_;
148 MonitorPoint* monFixedDelay_;
149 MonitorPoint* monUseFixedDelay_;
150 MonitorPoint* monGeometricDelay_;
151 MonitorPoint* monUseGeometricDelay_;
152 MonitorPoint* monTroposphericDelay_;
153 MonitorPoint* monUseTroposphericDelay_;
154 MonitorPoint* monLocation_;
159 virtual void updateMonitors();
169 Delay fiducialFixedDelay_;
173 Delay fiducialAdjustableDelay_;
177 Delay referredFixedDelay_;
181 Delay referredAdjustableDelay_;
185 Delay lastGeometricDelay_;
189 Delay lastTroposphericDelay_;
193 bool useAdjustableDelay_;
195 bool useGeometricDelay_;
196 bool useIonosphericDelay_;
197 bool useTroposphericDelay_;
198 bool useThermalDelay_;
205 void registerDelayCallback(DelayManager* delayListener);
216 void referFixedDelayTo(Delay delay);
221 void referAdjustableDelayTo(Delay delay);
226 inline Delay fiducialFixedDelay() {
227 return fiducialFixedDelay_;
233 inline Delay fiducialAdjustableDelay() {
234 return fiducialAdjustableDelay_;
239 void updateUseAdjustableDelay();
240 void updateUseFixedDelay();
241 void updateUseGeometricDelay();
242 void updateUseTroposphericDelay();
244 void updateAdjustableDelay();
245 void updateFixedDelay();
246 void updateGeometricDelay();
247 void updateTroposphericDelay();
249 void updateLocation();
258 #endif // End #ifndef SZA_UTIL_DELAYLOCATION_H
void registerLocationCallback(DelayLocation *delayLocation)
Register to be called back when this object's location is updated.
Started: Wed Jan 14 11:00:24 PST 2004.
The following class is used to record details about the current source trajectory.