CARMA C++
MpFileReader.h
Go to the documentation of this file.
1 // $Id: MpFileReader.h,v 1.2 2010/12/13 20:52:26 eml Exp $
2 
3 #ifndef SZA_ANTENNA_CORBA_MPFILEREADER_H
4 #define SZA_ANTENNA_CORBA_MPFILEREADER_H
5 
15 #include "carma/szaarrayutils/arraytemplate.h"
16 #include "carma/szaarrayutils/regtemplate.h"
17 
18 #include <fstream>
19 #include <map>
20 #include <string>
21 
23 
24 namespace sza {
25  namespace util {
26  class ArrayDataFrameManager;
27  }
28 };
29 namespace sza {
30  namespace antenna {
31  namespace corba {
32 
33  class MpFileReader {
34  public:
35 
36  struct MpRecord {
37  unsigned frameCount_;
38  unsigned tagId_;
39  unsigned blanking_;
40  unsigned validity_;
41  double avg_;
42  double max_;
43  double min_;
44  unsigned avgIndex_;
45  unsigned numTotalSamps_;
46  unsigned numValidSamps_;
47 
48  unsigned char strVal_[100];
49 
50  std::string str_;
51 
52  friend std::ostream& operator<<(std::ostream& os, MpRecord& record);
53  };
54 
58  MpFileReader();
59 
63  virtual ~MpFileReader();
64 
65  void loadFile(std::string fileName);
66  void closeFile();
67  void readNextLine();;
68  void packNextRecord(sza::util::ArrayDataFrameManager* fm, std::map<unsigned, SzaRegister>& tagIdToSzaRegisterMap);
69  SzaRegister* findSzaRegister(std::map<unsigned, SzaRegister>& tagIdToSzaRegisterMap, unsigned tagId);
70  bool atEnd();
71 
72  MpRecord record_;
73  void writeCarmaReg(sza::util::ArrayDataFrameManager* frame, SzaRegister* reg);
74 
75  void setNumeric(bool isNumeric);
76 
77  private:
78 
79  std::ifstream ifStr_;
80  unsigned lastFrameCount_;
81  unsigned currentFrameCount_;
82  bool finished_;
83  bool isNumeric_;
84 
85  }; // End class MpFileReader
86 
87  std::ostream& operator<<(std::ostream& os, MpFileReader::MpRecord& record);
88 
89  } // End namespace corba
90  } // End namespace antenna
91 } // End namespace sza
92 
93 
94 
95 #endif // End #ifndef SZA_ANTENNA_CORBA_MPFILEREADER_H
Tagged: Mon Sep 14 11:27:13 PDT 2009.