1 #ifndef CARMA_CONTROL_CORRELATOR_HANDLE_H
2 #define CARMA_CONTROL_CORRELATOR_HANDLE_H
16 #include "carma/corba/corba.h"
18 #include "carma/control/CorrelatorInfo.h"
19 #include "carma/control/CorrDefs.h"
21 #include "carma/monitor/ControlSubsystem.h"
22 #include "carma/monitor/NoiseSource.h"
23 #include "carma/correlator/obsRecord2/CorDataBase.h"
25 #include "carma/util/corrUtils.h"
32 typedef RemoteObjHandleT< correlator::obsRecord2::Correlator_I >
33 CorrelatorControlRemoteObjHandle;
50 unsigned int astroBandNo,
51 carma::util::CorrelatorType corrType,
53 monitor::ControlSubsystemBase::Reachable & reachable,
54 bool defaultLogIfNotReach );
63 ::std::vector< correlator::obsRecord2::DelayTriplet > triplets );
89 const int preferredSeqNo,
90 const unsigned int astroBandNo = 0 );
101 ::std::vector<carma::correlator::obsRecord2::BandWidthType> bw,
102 ::std::vector<carma::correlator::obsRecord2::FpgaModeType> fm,
103 const int preferredSeqNo,
104 ::std::vector<unsigned int> astroBandNo );
140 const int preferredSeqNo
165 int monDataErrorLimit );
176 unsigned int correlatorBandNo()
const {
return bandNo_;}
177 unsigned int astroBandNo()
const {
return astroBandNo_ ;}
191 ::std::vector<int> cols90,
192 ::std::vector<int> cols180,
194 const int nStates180,
195 const bool noiseEnabled);
231 bool isNoiseSourceEnabled(
void );
232 bool isNoiseSourceDisabled(
void );
234 monitor::NoiseStatusMonitorPointEnum::NOISESTATUS status
236 void setNextSequenceNo(
int preferredSequenceNo );
240 int consecutiveErrors_;
243 unsigned int bandNo_;
244 unsigned int astroBandNo_;
246 carma::util::CorrelatorType corrType_;
void enableCorrelation(const bool enable)
Enable or disable correlations (COBRA boards only).
Helper routines for, e.g.
Carma control interface server implementation.
void setWalshColumns(::std::vector< int > cols90,::std::vector< int > cols180, const int nStates90, const int nStates180, const bool noiseEnabled)
Sets correlator input Walsh column indices.
void setAstroBandMode(util::CorrelatorFpgaModeType astroBandMode)
Set the Astroband (FPGA) mode of this band.
CorrelatorFpgaModeType
FPGA configuration modes.
void flattenPhases(const int preferredSeqNo)
Flatten phases on the band.
util::CorrelatorFpgaModeType getFpgaMode() const
Get the FPGA mode of this band.
CARMA 3rd generation correlator hardware.
void setDownconverterSettings(::std::vector< float > dcFreqGHz)
Vectorized version of call to set the downconverter settings.
enum carma::util::hardwareTypeEnum hardwareType
The type of board hardware in a given band.
void setOnline(const bool online)
Mark a band offline or online.
void calibrateSpectra(const bool noiseEnabled, const float intTime, const bool cache, const bool enable, const int preferredSeqNo)
Calibrate spectra (bandpass) on the band.
carma::util::hardwareType hardwareType() const
@ return the underlying hardware type of correlator that this handle controls
Manages correlator control DO connections.
CorrelatorHandle(unsigned int astroBandNo, carma::util::CorrelatorType corrType, monitor::MonitorSystem &monitorSys, monitor::ControlSubsystemBase::Reachable &reachable, bool defaultLogIfNotReach)
Constructor.
Manages connection to remote DO.
Typed class for managing connections to DOs.
Monitor system base class.
BandWidthType
Supported spectral correlator bandwidths.
void setBandwidth(carma::correlator::obsRecord2::BandWidthType bw, const int preferredSeqNo, const unsigned int astroBandNo=0)
Set bandwidth with a preferred sequence number.
void setInputDelayTriplets(::std::vector< correlator::obsRecord2::DelayTriplet > triplets)
set input delay triplets for a single polarization.
hardwareType hwType(unsigned int astroBandNo)
void optimizeThresholds(const int preferredSeqNo)
Optimize thresholds on the band.
bool isActionComplete(const monitor::MonitorSystem &monsys, int monDataErrorLimit)
Compare next sequence number with one returned from monitor system.