1 #ifndef CARMA_MONITOR_PIPELINE_MONITOR_INPUT_H
2 #define CARMA_MONITOR_PIPELINE_MONITOR_INPUT_H
6 #include "carma/monitor/CorrDesignation.h"
8 #include "carma/monitor/SignalPathSubsystem.h"
21 class ControlBandPoints;
22 class MonitorPointFloat;
23 class NoiseStatusMonitorPointEnum;
25 typedef PolarizationMonitorPointEnum PolMPE;
26 typedef PolarizationMonitorPointEnum::POLARIZATION PolType;
27 typedef std::pair< int, PolType > AntPolPair;
28 typedef std::pair< int, PolType > BandPolPair;
29 typedef std::pair< int, int > BandInputPair;
31 class PipelineMonitorInput {
40 PipelineMonitorInput( MonitorCorrelatorDesignation corrDes );
45 ~PipelineMonitorInput( );
62 std::vector< int > getMappedAstroBandNumbers( )
const;
67 std::set< int > getMappedAntennaNumbers( )
const;
72 std::set< int > getMappedInputNumbers( )
const;
78 std::set< PolType > getMappedPols(
int astroBandNo )
const;
84 std::vector< AntPolPair > getMappedAntPolPairs(
int astroBandNo )
const;
89 std::vector< BandPolPair > getMappedBandPolPairs( )
const;
94 std::vector< BandInputPair >
95 getMappedAstroBandInputPairs(
int carmaAntNo )
const;
100 bool signalPathMapped(
int astroBandNo )
const;
105 bool signalPathMapped(
int astroBandNo,
const AntPolPair & antPol )
const;
111 AntPolPair getAntPolPair(
int astroBandNo,
int astroInputNo )
const;
117 int getAstroInputNo(
int astroBandNo,
const AntPolPair & antPol )
const;
130 std::pair< bool, bool > isRxInSideband(
int astroBandNo,
131 const AntPolPair & antPol,
141 const AntennaCommon & antennaCommon(
int carmaAntNo )
const;
142 const ControlBandPoints & controlBandPoints(
int astroBandNo )
const;
143 const MonitorPointFloat & totalPower(
int astroBandNo,
144 const AntPolPair & antPol)
const;
145 const NoiseStatusMonitorPointEnum & noiseStatus(
146 MonitorCorrelatorDesignation corrDes )
const;
147 const MonitorPointByte & blankStatus(
149 const AntPolPair & antPol )
const;
151 const WeatherSubsystem & weather( )
const;
152 const ControlSubsystem & control( )
const;
153 BandInputPair getCorrBandInputPair(
int astroBandNo,
154 const AntPolPair & antPol )
const;
161 MonitorCorrelatorDesignation getAntCorrDes(
int carmaAntNo )
const;
170 MonitorCorrelatorDesignation getAntSubarrayCorrDes(
int carmaAntNo )
const;
176 int getExpectedChannels(
int astroBandNo )
const;
182 bool astroBandOnline(
int astroBandNo )
const;
188 void getCorrInfo(
int astroBandNo,
int astroBandInput,
189 MonitorCorrelatorDesignation& corrDes,
int& corrBandNo,
int& corrBandInputNo);
191 bool isManuallyFlagged(
int astroBandNo,
int astroBandInput1,
int astroBandInput2);
203 typedef std::map< int, MapDetails > AstroInputMap;
204 typedef std::map< int, AstroInputMap > AstroBandInputMap;
208 typedef std::multimap< AntPolPair, int > AntPolInputMultimap;
209 typedef std::map< int, AntPolInputMultimap > AstroBandAntPolInputMap;
212 typedef std::map< int, std::vector< BandInputPair > > AntAstroPairs;
214 void internalSpmUpdate();
215 void internalAstrobandUpdate(
216 const SignalPathSubsystem::Astroband & astroband,
217 const int astroBandNo );
219 void flagInputs(MonitorCorrelatorDesignation corrDes,
int bandNo,
int inputNo1,
int inputNo2,
int nMaxBand);
220 void rebuildControlMap(MonitorCorrelatorDesignation corrDes) ;
221 void rebuildControlMaps() ;
222 void clearControlMap(MonitorCorrelatorDesignation corrDes);
223 void clearControlMaps() ;
224 void internalControlUpdate();
226 const MapDetails & getMapDetails(
int astroBandNo,
227 const AntPolPair & antPol )
const;
229 const MapDetails & getMapDetails(
int astroBandNo,
230 int astroInputNo )
const;
232 AstroBandInputMap astroMapping_;
233 AstroBandAntPolInputMap antPolMapping_;
234 std::map< int, std::set< PolType > > astroBandPolMapping_;
235 std::set< int > mappedAnts_;
236 std::set< int > mappedInputs_;
237 AntAstroPairs mappedAntAstroPairs_;
239 typedef std::map< int, std::set< int > > AstroBandCorrBandMap;
240 AstroBandCorrBandMap astroBandCorrBands_;
242 int lastMappingUpdate_;
244 const MonitorCorrelatorDesignation corrDes_;
248 std::map<MonitorCorrelatorDesignation, std::map<int, std::map<int, std::map<int, bool> > > > flagMap_;
The monitor system base class.
unsigned int frameType
Half second frames since Jan 1, 2000.
Various type definitions for util classes.