|
CARMA C++
|
Implementation of SAT as thread. More...
#include <carma/control/SubarrayTrackerThread.h>
Public Member Functions | |
| long | getAntennaTrackPeriod () const |
| Returns antenna tracker thread period - set during construction. More... | |
| long | getAntennaWeatherPeriod () const |
| Returns antenna weather update period - set during construction. More... | |
| double | getAntInterpolationInterval () const |
| Returns antenna tracking interpolation interval as a fraction of a day. More... | |
| long | getDelayEngineWeatherPeriod () const |
| Returns delay engine weather update period - set during construction. More... | |
| double | getInterpolationInterval () const |
| Returns interferometry interpolation interval as a fraction of a day. More... | |
| double | getLastAntUpdate () const |
| double | getLastIntferUpdate () const |
| monitor::CarmaMonitorSystem & | getMonitorSystem () const |
| Returns internal CARMA Monitor System object. More... | |
| long | getTrackerPeriod () const |
| Returns tracker thread period - set during construction. More... | |
| void | operator() () |
| Thread functor method. More... | |
| void | setLastAntUpdate (double mjd) |
| Set time of last antenna tracking position update. More... | |
| void | setLastIntferUpdate (double mjd) |
| Set time of last interferometry sky position update. More... | |
| 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. More... | |
| void | updateTracking () |
| Calls updateTracking on each antenna, and then calls computeDelay on delay engine. More... | |
| ~TrackerThread () | |
| Destructor. More... | |
Implementation of SAT as thread.
See design document for CARMA Control package for details.
Critical method is updateTracking - all the work is done there, invoked periodically by action. Period is deteremined by TRACKER_UPDATE_INTERVAL which is currently set to 20 seconds. The update is synchronized to aboslute ,kd time, an integral number of TRACKER_UPDATE_INTERVALS. The quadratic interpolator will be filled with 3 samples that are -0.5T, +0.5T, and 1.5T from the current time, allowing interpolation from 0T to 1.0T without ever being near the boundary where precision could cause an error.
TrackerThread::updateTracking sends topocentric RA/Dec to antennas for RA/Dec specified sources, and Az/El for Az/El specified targets, in addition to Ut1-Utc corrections. It also sends geocentric Ra/Dec for each antenna) to delay engine for RA/Dec specified sources and Az/El for each antenna to delay engine for Az/El specified targets.
Definition at line 56 of file SubarrayTrackerThread.h.
|
explicit |
Constructor.
Constructs tracker thread for a set of antennas, a specified delay engine and (possibly) an initial source.
| carmaMonitor,reference | to full CARMA monitor system - used to read in fresh values from the monitor stream. |
| period,const | long periodicity of tracker thread firing set to TRACKER_DEFAULT_UPDATE_INTERVAL. Measured in seconds. |
| antennaWeatherPeriod,const | long periodicity of weather update to antennas, set to TRACKER_DEFAULT_WEATHER_UPDATE_INTERVAL. Measured in seconds. |
| delayEngineWeatherPeriod,const | long periodicity of weather update to delay engine, set to TRACKER_DEFAULT_WEATHER_UPDATE_INTERVAL. Measured in seconds. |
| antennaTrackPeriod,const | long periodicity of tracking update to antennas, set to TRACKER_DEFAULT_ANTENNA_TRACK_UPDATE_INTERVAL. Measured in seconds. |
| carma::control::SubarrayControlImpl::TrackerThread::~TrackerThread | ( | ) |
Destructor.
| long carma::control::SubarrayControlImpl::TrackerThread::getAntennaTrackPeriod | ( | ) | const |
Returns antenna tracker thread period - set during construction.
Value is returned in seconds.
| long carma::control::SubarrayControlImpl::TrackerThread::getAntennaWeatherPeriod | ( | ) | const |
Returns antenna weather update period - set during construction.
Value is returned in seconds.
| double carma::control::SubarrayControlImpl::TrackerThread::getAntInterpolationInterval | ( | ) | const |
Returns antenna tracking interpolation interval as a fraction of a day.
| long carma::control::SubarrayControlImpl::TrackerThread::getDelayEngineWeatherPeriod | ( | ) | const |
Returns delay engine weather update period - set during construction.
Value is returned in seconds.
| double carma::control::SubarrayControlImpl::TrackerThread::getInterpolationInterval | ( | ) | const |
Returns interferometry interpolation interval as a fraction of a day.
| double carma::control::SubarrayControlImpl::TrackerThread::getLastAntUpdate | ( | ) | const |
| double carma::control::SubarrayControlImpl::TrackerThread::getLastIntferUpdate | ( | ) | const |
| monitor::CarmaMonitorSystem& carma::control::SubarrayControlImpl::TrackerThread::getMonitorSystem | ( | ) | const |
Returns internal CARMA Monitor System object.
| long carma::control::SubarrayControlImpl::TrackerThread::getTrackerPeriod | ( | ) | const |
Returns tracker thread period - set during construction.
Value is returned in seconds.
| void carma::control::SubarrayControlImpl::TrackerThread::operator() | ( | ) |
Thread functor method.
To be passed in to boost::thread constructor.
| void carma::control::SubarrayControlImpl::TrackerThread::setLastAntUpdate | ( | double | mjd | ) |
Set time of last antenna tracking position update.
Input truncated to align with the effective interval.
| mjd | The time to set the ant track update to. |
| void carma::control::SubarrayControlImpl::TrackerThread::setLastIntferUpdate | ( | double | mjd | ) |
Set time of last interferometry sky position update.
Input truncated to align with the effective interval.
| mjd | The time to set the interferometry update to. |
| void carma::control::SubarrayControlImpl::TrackerThread::updateTracking | ( | ) |
Calls updateTracking on each antenna, and then calls computeDelay on delay engine.
setAntennaLOFreq should already have been called by constructor of SubarrayControlImpl.