10 #ifndef CARMA_SUBARRAY_TRACKER_THREAD_H
11 #define CARMA_SUBARRAY_TRACKER_THREAD_H
15 #include "carma/monitor/WeatherSubsystem.h"
60 static const unsigned long
61 TRACKER_DEFAULT_UPDATE_INTERVAL = 20;
62 static const unsigned long
63 TRACKER_DEFAULT_WEATHER_UPDATE_INTERVAL = 4 * 60;
65 static const unsigned long
66 TRACKER_DEFAULT_ANTENNA_TRACK_UPDATE_INTERVAL = 8 * 60;
94 SubarrayControlImpl & saCI,
96 const unsigned long period = TRACKER_DEFAULT_UPDATE_INTERVAL,
97 const unsigned long antennaWeatherPeriod =
98 TRACKER_DEFAULT_WEATHER_UPDATE_INTERVAL,
99 const unsigned long delayEngineWeatherPeriod =
100 TRACKER_DEFAULT_WEATHER_UPDATE_INTERVAL,
101 const unsigned long antennaTrackPeriod =
102 TRACKER_DEFAULT_ANTENNA_TRACK_UPDATE_INTERVAL );
214 struct ::timeval getNextTimerInstant()
const ;
228 const unsigned long period_;
236 const unsigned long antennaWeatherPeriod_;
244 const unsigned long delayEngineWeatherPeriod_;
253 const unsigned long antennaTrackPeriod_;
262 const unsigned long antennaWeatherCycleCount_;
271 const unsigned long delayEngineWeatherCycleCount_;
280 const unsigned long antennaTrackCycleCount_;
288 const double interpInterval_;
290 double lastAntUpdate_;
291 double lastIntferUpdate_;
297 struct ::timeval nextFiringTime_;
304 SubarrayControlImpl & saCI_;
312 void updateWeatherSafely();
330 #endif // CARMA_SUBARRAY_TRACKER_THREAD_H
double getInterpolationInterval() const
Returns interferometry interpolation interval as a fraction of a day.
Carma control interface server implementation.
long getTrackerPeriod() const
Returns tracker thread period - set during construction.
void operator()()
Thread functor method.
Representation of Pressure.
This class is used to calculate a variety of quantities related to the earth's atmosphere, such as refractivity, saturated pressure, and pathlength (refractivity integrated through the atmosphere).
~TrackerThread()
Destructor.
Implementation of SAT as thread.
double getLastAntUpdate() const
TrackerThread(SubarrayControlImpl &saCI, monitor::CarmaMonitorSystem &carmaMonitor, const unsigned long period=TRACKER_DEFAULT_UPDATE_INTERVAL, const unsigned long antennaWeatherPeriod=TRACKER_DEFAULT_WEATHER_UPDATE_INTERVAL, const unsigned long delayEngineWeatherPeriod=TRACKER_DEFAULT_WEATHER_UPDATE_INTERVAL, const unsigned long antennaTrackPeriod=TRACKER_DEFAULT_ANTENNA_TRACK_UPDATE_INTERVAL)
Constructor.
The Velocity class can represent an velocity in any units.
long getDelayEngineWeatherPeriod() const
Returns delay engine weather update period - set during construction.
void setLastIntferUpdate(double mjd)
Set time of last interferometry sky position update.
void updateTracking()
Calls updateTracking on each antenna, and then calls computeDelay on delay engine.
The Temperature class represents a temperature in any unit.
The Pressure class can represent any pressure in any units.
long getAntennaWeatherPeriod() const
Returns antenna weather update period - set during construction.
monitor::CarmaMonitorSystem & getMonitorSystem() const
Returns internal CARMA Monitor System object.
carma/services/Temperature.h Representation of Temperature
double getAntInterpolationInterval() const
Returns antenna tracking interpolation interval as a fraction of a day.
The Angle class can represent any angle in any units.
Constants and methods having to do with the earth's atmosphere (e.g.
double getLastIntferUpdate() const
Representation of Velocity in any units.
void setLastAntUpdate(double mjd)
Set time of last antenna tracking position update.
Timer object that fires at a fixed rate.
long getAntennaTrackPeriod() const
Returns antenna tracker thread period - set during construction.