CARMA C++
Antenna.h
Go to the documentation of this file.
1 
13 #ifndef CARMA_MONITOR_CARMA_ANTENNA_H
14 #define CARMA_MONITOR_CARMA_ANTENNA_H
15 
16 #include <string>
17 
18 
19 namespace carma {
20  namespace monitor {
21 
22 typedef enum AntTypeEnum {
23  ANTENNA_OVRO,
24  ANTENNA_BIMA,
25  ANTENNA_SZA,
26  // Always at the end
27  ANTENNA_NUM_TYPES
28  } AntennaType;
29 
30 typedef struct AntennaInfoStruct {
31  AntennaType antennaType;
32  std::string antennaTypeName;
33  long maxNumAntennas; // max. # of antennas of this
34  // type
35 } AntennaInfo;
36 
37 class Antenna {
38  public:
50  Antenna (const AntennaType type, const int antennaNumber);
51 
61  Antenna (const int carmaAntennaNumber);
62 
73  Antenna (const std::string antennaName);
74 
79  ~Antenna();
80 
89  static int numAntennaTypes () ;
90 
100  static AntennaType antennaType (const int ithType);
101 
110  static const std::string antennaTypeName (const int ithType) ;
111 
120  AntennaType antennaType () const ;
121 
127  std::string name () const ;
128 
137  const std::string antennaTypeName () const ;
138 
146  int antennaNumber () const ;
147 
156  static int numberOfAntennasOfType (const AntennaType antennaType);
157 
166  static int numberOfAntennasOfType (const std::string& antennaType);
167 
178  static std::string antennaName (const std::string& antennaType,
179  const int antennaNumber) ;
180 
181  protected:
182 
191  static int getAntennaNumber( int carmaAntennaNumber );
192 
204  static int getAntennaNumber( const AntennaInfo & antennaInfo,
205  const ::std::string & antennaName );
215  static int getAntennaInfoIndex (const int carmaAntennaNumber);
216 
226  static int getAntennaInfoIndex (const std::string& antennaName);
227 
236  static const AntennaInfo* getAntennaInfoEntry (const int index) ;
237 
245  static const AntennaInfo* getAntennaInfoEntry (const AntennaType type) ;
246 
254  static const long maxNumAntennaTypes;
255 
263  static const AntennaInfo * const antennaInfoTab;
264 
265  private:
266 
267  const AntennaInfo& antennaInfo_;
268 
269  const int antennaNumber_;
270 
271 }; // class Antenna
272 
273 } } // namespace carma::monitor
274 
275 #endif // CARMA_MONITOR_CARMA_ANTENNA_H
AntennaType
Enumeration of possible types for antennas.