1 #ifndef SZA_UTIL_CORRELATORDATAFRAMEMANAGER_H
2 #define SZA_UTIL_CORRELATORDATAFRAMEMANAGER_H
13 #include "carma/szautil/Directives.h"
21 #include "carma/szaarrayutils/szaregs.h"
23 #include "carma/szautil/CorrelatorBand.h"
42 class CorrelatorDataFrameManager :
public RegMapDataFrameManager {
48 CorrelatorDataFrameManager(CorrelatorDataFrameManager& fm);
53 CorrelatorDataFrameManager(
bool archivedOnly=
false, DataFrame* frame=0);
59 CorrelatorDataFrameManager(
bool archivedOnly,
60 carma::correlator::lib::
61 CorrelatorData& corrData);
71 void setTo(cobra::CorrelatorBand& band,
unsigned char antMask=0xff);
78 virtual ~CorrelatorDataFrameManager();
94 std::map<unsigned int, std::map<unsigned int, unsigned int> >
97 void setAntennaBasedGain(Complex<float> gain,
98 unsigned iAnt,
unsigned iBand,
unsigned iChan);
100 void printAntennaBasedGains();
110 void setBandReceived(CorrelatorBand& iBand,
bool received);
115 void setCrossBaselineReceived(
unsigned int iBase,
bool received);
121 void initializeSources();
143 std::vector<Complex<float>::Data> usbAvg_;
144 std::vector<Complex<float>::Data> lsbAvg_;
145 std::vector<Complex<float>::Data> usbVar_;
146 std::vector<Complex<float>::Data> lsbVar_;
148 std::vector<float> usbAmplitude_;
149 std::vector<float> lsbAmplitude_;
151 std::vector<float> usbAvgAmplitude_;
152 std::vector<float> lsbAvgAmplitude_;
154 std::vector<Complex<float>::Data> usb_;
155 std::vector<Complex<float>::Data> lsb_;
157 std::vector<float> autoAvg_;
158 std::vector<float> autoVar_;
159 std::vector<float> auto_;
161 std::vector<unsigned char> baselineReceived_;
165 static std::vector<std::vector<std::vector<Complex<float> > > >
168 static bool gainsAreInitialized_;
190 unsigned int iAnt1,
unsigned int iAnt2);
204 void packCorrData(cobra::CorrelatorBand& corrBand,
unsigned char antMask=0xff);
209 void packSpectrum(cobra::CorrelatorData* spectrum,
bool reverseFreqOrder=
false,
unsigned char antMask=0xff);
214 void packAutoSpectrum(cobra::AutoSpectra* spectrum,
bool reverseFreqOrder=
false);
219 void packCrossSpectrum(cobra::CrossSpectra* spectrum,
bool reverseFreqOrder=
false,
unsigned char antMask=0xff);
224 void packAuto(
unsigned iAnt,
float* data,
bool reverseFreqOrder=
false);
229 void packLsb(
unsigned iBase, std::complex<float>* data,
bool reverseFreqOrder=
false);
234 void packUsb(
unsigned iBase, std::complex<float>* data,
bool reverseFreqOrder=
false);
239 void packCross(
unsigned iBase, std::complex<float>* data,
240 Complex<float>::Data* ptr,
241 Complex<float>::Data* avgPtr,
242 Complex<float>::Data* varPtr,
245 bool reverseFreqOrder=
false);
252 std::string bandName(
unsigned iBand);
257 void writeRegisters(std::string& bName,
bool swapSidebands);
263 void addSource(std::string& source);
272 #endif // End #ifndef SZA_UTIL_CORRELATORDATAFRAMEMANAGER_H
Class to hold a Band of Correlator Data.
Tagged: Sat Aug 14 13:12:19 UTC 2004.
Tagged: Fri Nov 14 12:39:38 UTC 2003.
Class used to represents bands of Correlator Data.
Class to hold Correlator Baseline data.
A generic interface for a data frame consisting of contiguous blocks of arbitrary-sized types...
Base class for Correlator Sideband data.