otsdaq  v2_00_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 public:
16  Register(std::string name);
17  virtual ~Register();
18 
19  //Setters
20  void setState (std::string state, std::pair<int, int > valueSequencePair);
21  void fillRegisterInfo(std::string registerBaseAddress, int registerSize, std::string registerAccess);
22  void setInitialize (std::pair< int, int> initialize );
23  void setConfigure (std::pair< int, int> configure );
24  void setStart (std::pair< int, int> start );
25  void setHalt (std::pair< int, int> halt );
26  void setPause (std::pair< int, int> pause );
27  void setResume (std::pair< int, int> resume );
28 
29  //Getters
30  std::string getName (void);
31  std::string getBaseAddress (void);
32  int getSize (void);
33  std::string getAccess (void);
34  std::pair< int, int> getInitialize (void);
35  std::pair< int, int> getConfigure (void);
36  std::pair< int, int> getStart (void);
37  std::pair< int, int> getHalt (void);
38  std::pair< int, int> getPause (void);
39  std::pair< int, int> getResume (void);
40 
41 
42 protected:
43  std::string registerName_ ;
44  std::string registerBaseAddress_ ;
45  int registerSize_ ;
46  std::string registerAccess_ ;
47 
48  //pair sequenced position : value
49  // position of -1 translates to off
50  std::pair< int, int> initialize_ ;
51  std::pair< int, int> configuration_ ;
52  std::pair< int, int> start_ ;
53  std::pair< int, int> halt_ ;
54  std::pair< int, int> pause_ ;
55  std::pair< int, int> resume_ ;
56 };
57 
58 }
59 
60 #endif /* REGISTER_H_ */