CARMA C++
AstroBandGatherer.h
Go to the documentation of this file.
1 // $Id: AstroBandGatherer.h,v 1.1 2012/08/14 22:03:11 eml Exp $
2 
3 #ifndef SZA_ANTENNA_CORBA_ASTROBANDGATHERER_H
4 #define SZA_ANTENNA_CORBA_ASTROBANDGATHERER_H
5 
17 
21 #include "carma/szautil/RegDate.h"
22 
23 namespace sza {
24  namespace antenna {
25  namespace corba {
26 
27  class AstroBandListener;
28 
29  enum {
30  CORR_NONE = 0x0,
31  CORR_SL = 0x1,
32  CORR_WB = 0x2
33  };
34 
35  //-----------------------------------------------------------------------
36  // AstroBandGatherer class. Instantiates listeners for all AstroBands
37  // of interest
38  //-----------------------------------------------------------------------
39 
40  class AstroBandGatherer {
41  public:
42 
43  AstroBandGatherer(std::string imr, unsigned corrType, sza::util::NetMonitorFrame* nmf,
44  int serverFd, unsigned nFrameMax=8, unsigned nFrameAvg=0, double thresholdLevel=0.0, double thresholdMjd=0.0);
45 
46  void initialize(std::string imr, unsigned corrType, sza::util::NetMonitorFrame* nmf,
47  int serverFd, unsigned nFrameMax, double thresholdLevel=0.0, double thresholdMjd=0.0);
48 
49  virtual ~AstroBandGatherer();
50 
51  void createAstroBandListeners();
52  void spawnListeners();
53 
54  sza::util::ArrayDataFrameManager* getFrame(double mjd);
55 
56  void setupRegisterPointers();
57 
58  private:
59 
60  bool coherenceMonitor_;
61  unsigned nFrameAvg_;
62  double thresholdLevel_;
63  double thresholdMjd_;
64  sza::util::RegDate date_;
65  unsigned nsnap_;
66  std::vector<SzaMonitorSystemReg> regs_;
67 
68  unsigned recordNumber_;
69  unsigned char rcvd_;
70  unsigned corrType_;
71  unsigned nFrameMax_;
72  int serverFd_;
73  sza::util::NetMonitorFrame* nmf_;
74  std::vector<AstroBandListener*> listeners_;
75  std::string imr_;
76  sza::antenna::corba::SzaMonitorSystemMap szaMsMap_;
77  sza::util::ArrayFrameBuffer* frameBuffer_;
78  sza::util::AbsoluteTimer timer_;
79  unsigned astroBandNoStart_;
80  unsigned astroBandNoStop_;
81 
82  static ABSOLUTE_TIMER_HANDLER(startNewFrame);
83 
84  void startNewFrame();
85  void dispatchDataFrame();
86  void notifyServer();
87 
88  }; // End class AstroBandGatherer
89 
90  } // End namespace corba
91  } // End namespace antenna
92 } // End namespace sza
93 
94 
95 
96 #endif // End #ifndef SZA_ANTENNA_CORBA_ASTROBANDGATHERER_H
Tagged: Tue Mar 23 19:01:49 UTC 2004.
Tagged: Tue Feb 2 14:45:04 NZDT 2010.
Tagged: Fri Apr 15 16:41:55 PDT 2011.
Tagged: Mon May 23 15:48:44 PDT 2011.
Tagged: Tue Oct 12 09:13:47 PDT 2004.
Tagged: Fri Aug 12 17:24:16 PDT 2011.