1 #ifndef SZA_UTIL_REGMAPDATAFRAMEMANAGER_H
2 #define SZA_UTIL_REGMAPDATAFRAMEMANAGER_H
13 #include "carma/szaarrayutils/szaregs.h"
22 class ArrayMapDataFrameManager;
25 class RegMapDataFrameManager :
public DataFrameManager {
31 virtual ~RegMapDataFrameManager();
36 void operator=(DataFrameManager& manager);
41 virtual void operator=(RegMapDataFrameManager& manager);
47 void writeReg(std::string board, std::string name,
48 unsigned char* data, CoordRange* range=0);
50 void writeReg(std::string board, std::string name,
51 signed char* data, CoordRange* range=0);
53 void writeReg(std::string board, std::string name,
54 bool* data, CoordRange* range=0);
56 void writeReg(std::string board, std::string name,
57 unsigned short* data, CoordRange* range=0);
59 void writeReg(std::string board, std::string name,
60 signed short* data, CoordRange* range=0);
62 void writeReg(std::string board, std::string name,
63 unsigned int* data, CoordRange* range=0);
65 void writeReg(std::string board, std::string name,
66 signed int* data, CoordRange* range=0);
68 void writeReg(std::string board, std::string name,
69 float* data, CoordRange* range=0);
71 void writeReg(std::string board, std::string name,
72 double* data, CoordRange* range=0);
74 void writeReg(std::string board, std::string name,
75 RegDate::Data* data, CoordRange* range=0);
77 void writeReg(std::string board, std::string name,
78 Complex<float>::Data* data, CoordRange* range=0);
84 void writeReg(std::string board, std::string name,
85 unsigned char data, CoordRange* range=0);
87 void writeReg(std::string board, std::string name,
88 signed char data, CoordRange* range=0);
90 void writeReg(std::string board, std::string name,
91 bool data, CoordRange* range=0);
93 void writeReg(std::string board, std::string name,
94 unsigned short data, CoordRange* range=0);
96 void writeReg(std::string board, std::string name,
97 signed short data, CoordRange* range=0);
99 void writeReg(std::string board, std::string name,
100 unsigned int data, CoordRange* range=0);
102 void writeReg(std::string board, std::string name,
103 signed int data, CoordRange* range=0);
105 void writeReg(std::string board, std::string name,
106 float data, CoordRange* range=0);
108 void writeReg(std::string board, std::string name,
109 double data, CoordRange* range=0);
111 void writeReg(std::string board, std::string name,
112 RegDate::Data data, CoordRange* range=0);
114 void writeReg(std::string board, std::string name,
115 Complex<float>::Data data, CoordRange* range=0);
121 void writeRegNoLock(std::string board, std::string name,
122 unsigned char* data, CoordRange* range=0);
124 void writeRegNoLock(std::string board, std::string name,
125 signed char* data, CoordRange* range=0);
127 void writeRegNoLock(std::string board, std::string name,
128 bool* data, CoordRange* range=0);
130 void writeRegNoLock(std::string board, std::string name,
131 unsigned short* data, CoordRange* range=0);
133 void writeRegNoLock(std::string board, std::string name,
134 signed short* data, CoordRange* range=0);
136 void writeRegNoLock(std::string board, std::string name,
137 unsigned int* data, CoordRange* range=0);
139 void writeRegNoLock(std::string board, std::string name,
140 signed int* data, CoordRange* range=0);
142 void writeRegNoLock(std::string board, std::string name,
143 float* data, CoordRange* range=0);
145 void writeRegNoLock(std::string board, std::string name,
146 double* data, CoordRange* range=0);
148 void writeRegNoLock(std::string board, std::string name,
149 RegDate::Data* data, CoordRange* range=0);
151 void writeRegNoLock(std::string board, std::string name,
152 Complex<float>::Data* data, CoordRange* range=0);
158 void writeRegNoLock(std::string board, std::string name,
159 unsigned char data, CoordRange* range=0);
161 void writeRegNoLock(std::string board, std::string name,
162 signed char data, CoordRange* range=0);
164 void writeRegNoLock(std::string board, std::string name,
165 bool data, CoordRange* range=0);
167 void writeRegNoLock(std::string board, std::string name,
168 unsigned short data, CoordRange* range=0);
170 void writeRegNoLock(std::string board, std::string name,
171 signed short data, CoordRange* range=0);
173 void writeRegNoLock(std::string board, std::string name,
174 unsigned int data, CoordRange* range=0);
176 void writeRegNoLock(std::string board, std::string name,
177 signed int data, CoordRange* range=0);
179 void writeRegNoLock(std::string board, std::string name,
180 float data, CoordRange* range=0);
182 void writeRegNoLock(std::string board, std::string name,
183 double data, CoordRange* range=0);
185 void writeRegNoLock(std::string board, std::string name,
186 RegDate::Data data, CoordRange* range=0);
188 void writeRegNoLock(std::string board, std::string name,
189 Complex<float>::Data data, CoordRange* range=0);
195 void writeReg(RegMapBlock* blk,
196 unsigned char* data, CoordRange* range=0);
198 void writeReg(RegMapBlock* blk,
199 signed char* data, CoordRange* range=0);
201 void writeReg(RegMapBlock* blk,
202 bool* data, CoordRange* range=0);
204 void writeReg(RegMapBlock* blk,
205 unsigned short* data, CoordRange* range=0);
207 void writeReg(RegMapBlock* blk,
208 signed short* data, CoordRange* range=0);
210 void writeReg(RegMapBlock* blk,
211 unsigned int* data, CoordRange* range=0);
213 void writeReg(RegMapBlock* blk,
214 signed int* data, CoordRange* range=0);
216 void writeReg(RegMapBlock* blk,
217 float* data, CoordRange* range=0);
219 void writeReg(RegMapBlock* blk,
220 double* data, CoordRange* range=0);
222 void writeReg(RegMapBlock* blk,
223 RegDate::Data* data, CoordRange* range=0);
225 void writeReg(RegMapBlock* blk,
226 Complex<float>::Data* data, CoordRange* range=0);
232 void writeReg(RegMapBlock* blk,
233 unsigned char data, CoordRange* range=0);
235 void writeReg(RegMapBlock* blk,
236 signed char data, CoordRange* range=0);
238 void writeReg(RegMapBlock* blk,
239 bool data, CoordRange* range=0);
241 void writeReg(RegMapBlock* blk,
242 unsigned short data, CoordRange* range=0);
244 void writeReg(RegMapBlock* blk,
245 signed short data, CoordRange* range=0);
247 void writeReg(RegMapBlock* blk,
248 unsigned int data, CoordRange* range=0);
250 void writeReg(RegMapBlock* blk,
251 signed int data, CoordRange* range=0);
253 void writeReg(RegMapBlock* blk,
254 float data, CoordRange* range=0);
256 void writeReg(RegMapBlock* blk,
257 double data, CoordRange* range=0);
259 void writeReg(RegMapBlock* blk,
260 RegDate::Data data, CoordRange* range=0);
262 void writeReg(RegMapBlock* blk,
263 Complex<float>::Data data, CoordRange* range=0);
269 void writeRegNoLock(RegMapBlock* blk,
270 unsigned char* data, CoordRange* range=0);
272 void writeRegNoLock(RegMapBlock* blk,
273 signed char* data, CoordRange* range=0);
275 void writeRegNoLock(RegMapBlock* blk,
276 bool* data, CoordRange* range=0);
278 void writeRegNoLock(RegMapBlock* blk,
279 unsigned short* data, CoordRange* range=0);
281 void writeRegNoLock(RegMapBlock* blk,
282 signed short* data, CoordRange* range=0);
284 void writeRegNoLock(RegMapBlock* blk,
285 unsigned int* data, CoordRange* range=0);
287 void writeRegNoLock(RegMapBlock* blk,
288 signed int* data, CoordRange* range=0);
290 void writeRegNoLock(RegMapBlock* blk,
291 float* data, CoordRange* range=0);
293 void writeRegNoLock(RegMapBlock* blk,
294 double* data, CoordRange* range=0);
296 void writeRegNoLock(RegMapBlock* blk,
297 RegDate::Data* data, CoordRange* range=0);
299 void writeRegNoLock(RegMapBlock* blk,
300 Complex<float>::Data* data, CoordRange* range=0);
306 void writeRegNoLock(RegMapBlock* blk,
307 unsigned char data, CoordRange* range=0);
309 void writeRegNoLock(RegMapBlock* blk,
310 signed char data, CoordRange* range=0);
312 void writeRegNoLock(RegMapBlock* blk,
313 bool data, CoordRange* range=0);
315 void writeRegNoLock(RegMapBlock* blk,
316 unsigned short data, CoordRange* range=0);
318 void writeRegNoLock(RegMapBlock* blk,
319 signed short data, CoordRange* range=0);
321 void writeRegNoLock(RegMapBlock* blk,
322 unsigned int data, CoordRange* range=0);
324 void writeRegNoLock(RegMapBlock* blk,
325 signed int data, CoordRange* range=0);
327 void writeRegNoLock(RegMapBlock* blk,
328 float data, CoordRange* range=0);
330 void writeRegNoLock(RegMapBlock* blk,
331 double data, CoordRange* range=0);
333 void writeRegNoLock(RegMapBlock* blk,
334 RegDate::Data data, CoordRange* range=0);
336 void writeRegNoLock(RegMapBlock* blk,
337 Complex<float>::Data data, CoordRange* range=0);
343 void readReg(std::string board, std::string name,
344 unsigned char* data, CoordRange* range=0);
346 void readReg(std::string board, std::string name,
347 signed char* data, CoordRange* range=0);
349 void readReg(std::string board, std::string name,
350 bool* data, CoordRange* range=0);
352 void readReg(std::string board, std::string name,
353 unsigned short* data, CoordRange* range=0);
355 void readReg(std::string board, std::string name,
356 signed short* data, CoordRange* range=0);
358 void readReg(std::string board, std::string name,
359 unsigned int* data, CoordRange* range=0);
361 void readReg(std::string board, std::string name,
362 signed int* data, CoordRange* range=0);
364 void readReg(std::string board, std::string name,
365 float* data, CoordRange* range=0);
367 void readReg(std::string board, std::string name,
368 double* data, CoordRange* range=0);
370 void readReg(std::string board, std::string name,
371 RegDate::Data* data, CoordRange* range=0);
373 void readReg(std::string board, std::string name,
374 Complex<float>::Data* data, CoordRange* range=0);
380 void readRegNoLock(std::string board, std::string name,
381 unsigned char* data, CoordRange* range=0);
383 void readRegNoLock(std::string board, std::string name,
384 signed char* data, CoordRange* range=0);
386 void readRegNoLock(std::string board, std::string name,
387 bool* data, CoordRange* range=0);
389 void readRegNoLock(std::string board, std::string name,
390 unsigned short* data, CoordRange* range=0);
392 void readRegNoLock(std::string board, std::string name,
393 signed short* data, CoordRange* range=0);
395 void readRegNoLock(std::string board, std::string name,
396 unsigned int* data, CoordRange* range=0);
398 void readRegNoLock(std::string board, std::string name,
399 signed int* data, CoordRange* range=0);
401 void readRegNoLock(std::string board, std::string name,
402 float* data, CoordRange* range=0);
404 void readRegNoLock(std::string board, std::string name,
405 double* data, CoordRange* range=0);
407 void readRegNoLock(std::string board, std::string name,
408 RegDate::Data* data, CoordRange* range=0);
410 void readRegNoLock(std::string board, std::string name,
411 Complex<float>::Data* data, CoordRange* range=0);
417 void readReg(RegMapBlock* blk,
418 unsigned char* data, CoordRange* range=0);
420 void readReg(RegMapBlock* blk,
421 signed char* data, CoordRange* range=0);
423 void readReg(RegMapBlock* blk,
424 bool* data, CoordRange* range=0);
426 void readReg(RegMapBlock* blk,
427 unsigned short* data, CoordRange* range=0);
429 void readReg(RegMapBlock* blk,
430 signed short* data, CoordRange* range=0);
432 void readReg(RegMapBlock* blk,
433 unsigned int* data, CoordRange* range=0);
435 void readReg(RegMapBlock* blk,
436 signed int* data, CoordRange* range=0);
438 void readReg(RegMapBlock* blk,
439 float* data, CoordRange* range=0);
441 void readReg(RegMapBlock* blk,
442 double* data, CoordRange* range=0);
444 void readReg(RegMapBlock* blk,
445 RegDate::Data* data, CoordRange* range=0);
447 void readReg(RegMapBlock* blk,
448 Complex<float>::Data* data, CoordRange* range=0);
454 void readRegNoLock(RegMapBlock* blk,
455 unsigned char* data, CoordRange* range=0);
457 void readRegNoLock(RegMapBlock* blk,
458 signed char* data, CoordRange* range=0);
460 void readRegNoLock(RegMapBlock* blk,
461 bool* data, CoordRange* range=0);
463 void readRegNoLock(RegMapBlock* blk,
464 unsigned short* data, CoordRange* range=0);
466 void readRegNoLock(RegMapBlock* blk,
467 signed short* data, CoordRange* range=0);
469 void readRegNoLock(RegMapBlock* blk,
470 unsigned int* data, CoordRange* range=0);
472 void readRegNoLock(RegMapBlock* blk,
473 signed int* data, CoordRange* range=0);
475 void readRegNoLock(RegMapBlock* blk,
476 float* data, CoordRange* range=0);
478 void readRegNoLock(RegMapBlock* blk,
479 double* data, CoordRange* range=0);
481 void readRegNoLock(RegMapBlock* blk,
482 RegDate::Data* data, CoordRange* range=0);
484 void readRegNoLock(RegMapBlock* blk,
485 Complex<float>::Data* data, CoordRange* range=0);
489 inline bool archivedOnly() {
return archivedOnly_;};
494 unsigned int getId(
unsigned nanoSecondInterval);
499 void setMjd(TimeVal& mjd);
500 void setMjd(
double mjd);
502 RegMapBlock* findReg(
char* boardName,
char* blockName);
504 RegMapBoard* findRegMapBoard(std::string boardName);
510 int byteOffsetInFrameOf(RegMapBlock* blk, Coord* coord=0);
511 int byteOffsetInFrameOf(std::string board, std::string block,
514 int byteOffsetInFrameOf(RegMapBlock* blk, CoordRange* range);
515 int byteOffsetInFrameOf(std::string board, std::string block,
520 friend class ArrayMapDataFrameManager;
534 int byteOffsetInRegMapOf(RegMapBlock* blk, Coord* coord=0);
535 int byteOffsetInRegMapOf(std::string board, std::string block,
537 int byteOffsetInRegMapOf(RegMapBlock* blk, CoordRange* range);
538 int byteOffsetInRegMapOf(std::string board, std::string block,
544 virtual void packData(RegMapBlock* blk,
void* data, CoordRange* range,
545 DataType::Type type,
bool lock=
true);
547 virtual void packData(std::string board, std::string block,
void* data,
548 CoordRange* range, DataType::Type type,
bool lock=
true);
550 virtual void packValue(RegMapBlock* blk,
void* data, CoordRange* range,
551 DataType::Type type,
bool lock=
true);
553 virtual void packValue(std::string board, std::string block,
void* data,
554 CoordRange* range, DataType::Type type,
bool lock=
true);
559 void unpackData(RegMapBlock* blk,
void* data, CoordRange* range,
560 DataType::Type type,
bool lock=
true);
562 void unpackData(std::string board, std::string block,
void* data,
563 CoordRange* range, DataType::Type type,
bool lock=
true);
568 RegMapDataFrameManager(
bool archivedOnly=
false);
573 void checkType(std::string board, std::string block, DataType::Type type,
576 void checkType(RegMapBlock* blk, DataType::Type type,
583 RegMapBlock* getReg(std::string board, std::string block);
589 bool boardIsPresent(RegMapBoard* brd);
594 bool blockIsPresent(RegMapBlock* blk);
599 bool boardIsFlagged(RegMapBoard* brd);
603 AxisRange axisRange_;
612 #endif // End #ifndef SZA_UTIL_REGMAPDATAFRAMEMANAGER_H
virtual unsigned int getId()
Get a unique frame id based on integral MJD half-seconds.
Tagged: Tue Oct 12 10:25:49 PDT 2004.
Tagged: Fri Nov 14 12:37:53 UTC 2003.