CARMA C++
CarmaDataMapper.h
Go to the documentation of this file.
1 // $Id: CarmaDataMapper.h,v 1.2 2010/12/13 20:52:26 eml Exp $
2 
3 #ifndef SZA_ANTENNA_CORBA_CARMADATAMAPPER_H
4 #define SZA_ANTENNA_CORBA_CARMADATAMAPPER_H
5 
15 #include "carma/szaarrayutils/arraytemplate.h"
16 #include "carma/szaarrayutils/regtemplate.h"
17 
18 #include "carma/szautil/String.h"
19 
20 #include <map>
21 
22 namespace sza {
23  namespace util {
24  class ArrayDataFrameManager;
25  }
26 }
27 
28 namespace sza {
29  namespace antenna {
30  namespace corba {
31 
32  struct SzaRegister {
33  ArrRegMap* arrRegMap_;
34  RegMapBlock* block_;
35  int index_;
36 
37  SzaRegister() {
38  arrRegMap_ = 0;
39  block_ = 0;
40  index_ = -1;
41  }
42 
43  SzaRegister(const SzaRegister& reg) {
44  *this = reg;
45  }
46 
47  SzaRegister(SzaRegister& reg) {
48  *this = reg;
49  }
50 
51  void operator=(const SzaRegister& reg) {
52  *this = (SzaRegister&)reg;
53  }
54 
55 
56  void operator=(SzaRegister& reg) {
57  arrRegMap_ = reg.arrRegMap_;
58  block_ = reg.block_;
59  index_ = reg.index_;
60  }
61 
62  friend std::ostream& operator<<(std::ostream& os, SzaRegister& reg);
63  };
64 
65  class CarmaDataMapper {
66  public:
67 
71  CarmaDataMapper();
72 
76  virtual ~CarmaDataMapper();
77 
78  static const unsigned nSlAnt_;
79  static const unsigned nSlBase_;
80  static const unsigned nBandMax_;
81  static const unsigned nChan_;
82  static const unsigned nSlInput_;
83  static const unsigned nWbInput_;
84  static const unsigned nAntTotal_;
85 
86  ArrayTemplate* getCarmaTemplate();
87  ArrayMap* newCarmaArrayMap(void);
88  void printArrayMap();
89  std::map<std::string, std::string> getCarmaToSzaMap();
90  void constructCarmaToSzaMap();
91  void constructCarmaToTagIdMap(std::string file);
92  std::map<unsigned, SzaRegister> getTagIdToSzaRegisterMap(sza::util::ArrayDataFrameManager* fm);
93 
94  void addIndexedRegs(sza::util::ArrayDataFrameManager* fm,
95  std::map<unsigned, SzaRegister>& retMap);
96 
97  void addFullyQualifiedRegs(sza::util::ArrayDataFrameManager* fm,
98  std::map<unsigned, SzaRegister>& retMap);
99 
100  void addPartiallyQualifiedRegs(sza::util::ArrayDataFrameManager* fm,
101  std::map<unsigned, SzaRegister>& retMap);
102 
103  void addTemplatizedRegs(sza::util::ArrayDataFrameManager* fm,
104  std::map<unsigned, SzaRegister>& retMap);
105 
106  void addBlock(std::string carmaName, std::string szaName, unsigned index,
107  sza::util::ArrayDataFrameManager* fm,
108  std::map<unsigned, SzaRegister>& retMap);
109 
110  void getRanges(std::string str, bool& oneRange,
111  sza::util::String& pref1, unsigned& start1, unsigned& stop1,
112  sza::util::String& pref2, unsigned& start2, unsigned& stop2,
113  sza::util::String& remainder);
114 
115  public:
116 
117  std::map<std::string, std::string> carmaToSzaMap_;
118 
119  bool tagIdToCarmaMapInitialized_;
120  std::map<unsigned, std::string> tagIdToCarmaMap_;
121  std::map<std::string, unsigned> carmaToTagIdMap_;
122 
123  // Antenna template
124 
125  static RegBlockTemp carmaCommonDrive_[];
126  static RegBlockTemp carmaCommonLimit_[];
127  static RegBlockTemp carmaCommonLo_[];
128  static RegBlockTemp carmaCommonLocation_[];
129  static RegBlockTemp carmaCommonPoint_[];
130  static RegBlockTemp carmaCommonTrack_[];
131  static RegBlockTemp carmaCommonRx_[];
132  static RegBlockTemp carmaAntennaIf_[];
133 
134  static RegBlockTemp szaTracker_[];
135  static RegBlockTemp szaCaltert_[];
136  static RegBlockTemp szaThermal_[];
137  static RegBlockTemp szaIfmod_[];
138  static RegBlockTemp szaYig_[];
139  static RegBlockTemp szaVaractor_[];
140  static RegBlockTemp szaRx_[];
141  static RegBlockTemp szaPmac_[];
142 
143  static RegBoardTemp szaAntennaBoards_[];
144  static RegBoardTemp bimaAntennaBoards_[];
145  static RegBoardTemp ovroAntennaBoards_[];
146 
147  static RegTemplate szaAntennaTemplate_;
148  static RegTemplate bimaAntennaTemplate_;
149  static RegTemplate ovroAntennaTemplate_;
150 
151  // Array Info template
152 
153  static RegBlockTemp carmaInfo_[];
154  static RegBlockTemp carmaWeather_[];
155  static RegBlockTemp carmaDelays_[];
156 
157  static RegBoardTemp carmaArrayBoards_[];
158  static RegTemplate carmaArrayTemplate_;
159 
160  // Sldc template
161 
162  static RegBlockTemp carmaSldcBand_[];
163  static RegBoardTemp carmaSldcBoards_[];
164  static RegTemplate carmaSldcTemplate_;
165 
166  // Wbdc template
167 
168  static RegBlockTemp carmaWbdcBand_[];
169  static RegBoardTemp carmaWbdcBoards_[];
170  static RegTemplate carmaWbdcTemplate_;
171 
172  // Correlator template
173 
174  static RegBlockTemp carmaCorrBand_[];
175  static RegBlockTemp carmaCorrInfo_[];
176  static RegBoardTemp carmaCorrBoards_[];
177  static RegTemplate carmaCorrTemplate_;
178 
179  // Subarray template
180 
181  static RegBlockTemp carmaSubarrayInfo_[];
182  static RegBoardTemp carmaSubarrayBoards_[];
183  static RegTemplate carmaSubarrayTemplate_;
184 
185  // AntennaInfo template
186 
187  static RegBlockTemp carmaAntennaInfo_[];
188  static RegBoardTemp carmaControlBoards_[];
189  static RegTemplate carmaControlTemplate_;
190 
191  // The whole thing
192 
193  static RegTemp carmaRegTemplates_[];
194  static ArrayTemplate carmaTemplate_;
195 
196  }; // End class CarmaDataMapper
197 
198  std::ostream& operator<<(std::ostream& os, SzaRegister& reg);
199 
200  } // End namespace corba
201  } // End namespace antenna
202 } // End namespace sza
203 
204 
205 
206 #endif // End #ifndef SZA_ANTENNA_CORBA_CARMADATAMAPPER_H
......................................................................
Definition: regtemplate.h:139
......................................................................
Definition: arraytemplate.h:27
......................................................................
Definition: arraytemplate.h:17
Tagged: Wed May 12 09:30:13 PDT 2004.