My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
Backend.h
Go to the documentation of this file.
1 #ifndef BACKEND_H
2 #define BACKEND_H
3 
11 // Required C header files from the array control code
12 #include "gcp/control/code/unix/libunix_src/common/regmap.h" // RegMapBlock
13 #include "gcp/antenna/control/specific/Board.h"
14 #include <termios.h>
15 #include <string>
16 #include "gcp/util/specific/CbassBackend.h"
17 
18 #define MAX_BUFFER_LENGTH 300
19 namespace gcp {
20  namespace antenna {
21  namespace control {
22 
23  class SpecificShare;
24 
25  class Backend : public Board {
26 
27  public:
28 
32  Backend(SpecificShare* share, std::string name);
33 
37  Backend();
38 
42  ~Backend();
43 
48 
52  void connect();
53  void disconnect();
54 
59  void issueCommand(gcp::util::CbassBackend::Command command, unsigned char address);
60  void issueCommand(gcp::util::CbassBackend::Command command, unsigned char* period);
61  void issueCommand(gcp::util::CbassBackend::Command command, unsigned char address, unsigned char* period);
62  void issueCommand(gcp::util::CbassBackend::Command command, unsigned char address, unsigned char* period, unsigned char channel, unsigned char stage);
63 
67  void getData();
68  void getBurstData();
69 
73  void writeData(gcp::util::TimeVal& currTime);
74  void writeData2011(gcp::util::TimeVal& currTime);
75 
79  bool isConnected();
80 
84  bool isValid_;
85  bool connected_;
86  int currentIndex_;
87  int prevSecStart_;
88  int prevSecEnd_;
89  int thisSecStart_;
90  float prevTime_;
91 
92  int missedCommCounter_; // when this goes above 15, we're not connected
93 
94  std::vector<float> timeBuffer_;
95  std::vector<float> versionBuffer_;
96  std::vector<uint> avgSecBuffer_;
97  std::vector<std::vector<float> > dataBuffer_;
98  std::vector<std::vector<float> > regDataBuffer_;
99  std::vector<std::vector<float> > diagnosticsBuffer_;
100  std::vector<std::vector<float> > alphaBuffer_;
101  std::vector<std::vector<float> > nonlinBuffer_;
102  std::vector<unsigned short> flagBuffer_;
103 
107  RegMapBlock* rxUtc_;
108  RegMapBlock* rxData_;
109  RegMapBlock* rxFlags_;
110  RegMapBlock* rxSwitchData_;
111  RegMapBlock* rxDiagnostics_;
112  RegMapBlock* rxVersion_;
113  RegMapBlock* rxSecLength_;
114  RegMapBlock* rxNonlin_;
115  RegMapBlock* rxAlpha_;
116 
117  private:
118  // check if return value is valid.
119  bool checkValid(int retVal);
120 
121  }; // end Backend class
122  }; // end namespace control
123  }; // end namespace antenna
124 }; // end namespace gcp
125 
126 #endif
~Backend()
Definition: Backend.cc:84
void getBurstData()
Definition: Backend.cc:339
void disconnect()
Definition: Backend.cc:155
bool isValid_
Definition: Backend.h:84
Backend()
Definition: Backend.cc:69
Command
Definition: CbassBackend.h:132
Definition: Board.h:24
void connect()
Definition: Backend.cc:97
void issueCommand(gcp::util::CbassBackend::Command command)
Definition: Backend.cc:170
bool isConnected()
Definition: Backend.cc:806
RegMapBlock * rxUtc_
Definition: Backend.h:107
void writeData(gcp::util::TimeVal &currTime)
Definition: Backend.cc:431
Definition: Backend.h:25
Definition: TimeVal.h:55
gcp::util::CbassBackend cbassBackend_
Definition: Backend.h:47
void writeData2011(gcp::util::TimeVal &currTime)
Definition: Backend.cc:585
Definition: CbassBackend.h:40
void getData()
Definition: Backend.cc:230