CARMA C++
PhaseMonitorWorker.h
1 #ifndef CARMA_PHASEMONITOR_PHASEMONITORWORKER_H
2 #define CARMA_PHASEMONITOR_PHASEMONITORWORKER_H
3 
4 #include <fstream>
5 #include <iostream>
6 #include <string>
7 #include <vector>
8 
9 namespace log4cpp {
10  class Category;
11 }
12 
13 namespace carma {
14 
15 namespace monitor {
16  class PhaseMonitorSubsystem;
17 }
18 
19 namespace phasemonitor {
20 
21  class AntennaParameters;
22  class PhaseMonitorDevice;
23  class PhaseMonitorSamples;
24 
25  class PhaseMonitorWorker {
26  public:
27 
28  PhaseMonitorWorker( std::string outDir,
29  carma::monitor::PhaseMonitorSubsystem * mon,
30  PhaseMonitorDevice & dev,
31  const AntennaParameters & params,
32  PhaseMonitorSamples & samples );
33 
34  void replay();
35 
36  void operator()();
37 
38  void getPhases( float *diffPhase, float *sumPhase,
39  float *ampSW, float *ampNE,
40  float *compORS, float *rawVolts,
41  float & swPhaseDegrees, float & nePhaseDegrees );
42 
43  void phaseJumpCheck( float &phase, float &lastPhase );
44 
45  static const int _totalPhaseSamples = 600;
46 
47  private:
48 
49  void writeOneSecDataToFile( double mjd,
50  float skyPhase,
51  float groundPhase,
52  const float * const calibratedVolts,
53  int skipped,
54  int errors );
55 
56  void writeSampleTimeToFile( );
57 
58  std::string _outDir;
59  log4cpp::Category & _log;
60  carma::monitor::PhaseMonitorSubsystem * _mon;
61  PhaseMonitorDevice & _phdev;
62  const AntennaParameters & _phparams;
63  PhaseMonitorSamples & _phsamples;
64  bool _firstPoint;
65  float _lastGoodPhaseSW, _lastGoodPhaseNE;
66  const std::vector< float > _offV, _rotCos, _rotSin, _scale;
67 
68  std::ofstream _oneSecData;
69 
70  }; // class PhaseMonitorWorker
71 
72 } } // carma::phasemonitor
73 
74 ::std::ostream& operator<<( ::std::ostream & os,
75  ::carma::phasemonitor::PhaseMonitorWorker &worker );
76 
77 #endif // CARMA_PHASEMONITOR_PHASEMONITORWORKER_H
std::ostream & operator<<(::std::ostream &os, const carma::dbms::Table &table)