otsdaq  v2_03_00
Register.h
1 /*
2  * Register.h
3  *
4  * Created on: Jul 29, 2015
5  * Author: parilla
6  */
7 
8 #ifndef _ots_Register_h_
9 #define _ots_Register_h_
10 #include <string>
11 
12 namespace ots
13 {
14 class Register
15 {
16  public:
17  Register(std::string name);
18  virtual ~Register();
19 
20  // Setters
21  void setState(std::string state, std::pair<int, int> valueSequencePair);
22  void fillRegisterInfo(std::string registerBaseAddress,
23  int registerSize,
24  std::string registerAccess);
25  void setInitialize(std::pair<int, int> initialize);
26  void setConfigure(std::pair<int, int> configure);
27  void setStart(std::pair<int, int> start);
28  void setHalt(std::pair<int, int> halt);
29  void setPause(std::pair<int, int> pause);
30  void setResume(std::pair<int, int> resume);
31 
32  // Getters
33  std::string getName(void);
34  std::string getBaseAddress(void);
35  int getSize(void);
36  std::string getAccess(void);
37  std::pair<int, int> getInitialize(void);
38  std::pair<int, int> getConfigure(void);
39  std::pair<int, int> getStart(void);
40  std::pair<int, int> getHalt(void);
41  std::pair<int, int> getPause(void);
42  std::pair<int, int> getResume(void);
43 
44  protected:
45  std::string registerName_;
46  std::string registerBaseAddress_;
47  int registerSize_;
48  std::string registerAccess_;
49 
50  // pair sequenced position : value
51  // position of -1 translates to off
52  std::pair<int, int> initialize_;
53  std::pair<int, int> configuration_;
54  std::pair<int, int> start_;
55  std::pair<int, int> halt_;
56  std::pair<int, int> pause_;
57  std::pair<int, int> resume_;
58 };
59 
60 } // namespace ots
61 
62 #endif /* REGISTER_H_ */