CARMA C++
IntegratorStage.h
1 // $Id: IntegratorStage.h,v 1.4 2014/05/15 17:11:13 scott Exp $
2 
3 #ifndef CARMA_PIPELINE_INTEGRATORSTAGE_H
4 #define CARMA_PIPELINE_INTEGRATORSTAGE_H
5 
7 #include "carma/pipeline/Stage.h"
8 
9 #include <string>
10 
11 namespace carma {
12 
13 namespace monitor {
14  class PipelineMonitorInput;
15  class PipelineSubsystem;
16 } // namespace monitor
17 
18 namespace pipeline {
19 
20  class Integrator : public Stage {
21  public:
22 
26  Integrator( carma::monitor::PipelineSubsystem& monitor,
27  const carma::monitor::PipelineMonitorInput & plmi );
28 
32  virtual ~Integrator();
33 
41  void startIntegration( double intTime,
42  int numRecords,
43  double gapTime,
44  int seqNo );
45 
49  void stopIntegration();
50 
54  void resetTimeSinceLastIntegration( );
55 
56  private:
57 
58  void stopIntegrationHoldingLock();
59 
60  void preprocess( const carma::correlator::lib::CorrelatorDataPtr cd );
61 
62  void processBand( carma::correlator::lib::CorrelatorBand * cb );
63 
64  carma::correlator::lib::CorrelatorDataPtr
65  postprocess( carma::correlator::lib::CorrelatorDataPtr cd );
66 
67  void fillMonitorData();
68 
69  void reserveExpectedBands();
70 
71  carma::correlator::lib::CorrelatorDataPtr cdThisFrame_; // This frame
72  carma::correlator::lib::CorrelatorDataPtr cdAccumulator_; // Accumulator
73 
74  std::string bfMode_; // blank/flag mode is retrieved from data
75  carma::monitor::PipelineSubsystem & monitorData_;
76 
77  struct SharedIntegratorInfo;
78  ::std::auto_ptr<SharedIntegratorInfo> shared_;
79  bool integrateThisFrame_;
80  bool firstFrameInRecord_;
81  bool lastFrameInRecord_;
82  bool noData_;
83  const carma::monitor::PipelineMonitorInput & plmi_;
84 
85  }; // class Integrator
86 
87 } } // namespace carma::pipeline
88 #endif // End #ifndef CARMA_PIPELINE_INTEGRATORSTAGE_H
Class to hold a Band of Correlator Data.
Tagged: Wed Jun 29 11:00:27 PDT 2005.
Abstract base class for retrieving pipeline monitor system components common between the spectral lin...