otsdaq  v1_01_02
 All Classes Namespaces Functions
Component.h
1 /*
2  * Component.h
3  *
4  * Created on: Aug 3, 2015
5  * Author: parilla
6  */
7 
8 #ifndef HARDWARE_H_
9 #define HARDWARE_H_
10 #include "Register.h"
11 #include <string>
12 #include <map>
13 #include <list>
14 
15 namespace ots {
16 
17 class Component {
18 public:
19  Component(std::string name, std::string typeName = "");
20  virtual ~Component();
21  void addRegister (std::string name);
22  void addRegister (std::string name, std::string baseAddress, int size, std::string access, int globalSequencePosition, int globalValue );
23  void addRegister (std::string name, std::string baseAddress, int size, std::string access, int initializeSequencePosition, int initializeValue,
24  int configureSequencePosition, int configureValue );
25  void addRegister (std::string name, std::string baseAddress, int size, std::string access, int initializeSequencePosition, int initializeValue,
26  int configureSequencePosition, int configureValue,
27  int startSequencePosition, int startValue,
28  int haltSequencePosition, int haltValue,
29  int pauseSequencePosition, int pauseValue,
30  int resumeSequencePosition, int resumeValue );
31  void setState (std::string state, std::pair<int, int> sequenceValuePair );
32  //Getters
33  std::list<Register> getRegisters (void);
34  std::list<Register>* getRegistersPointer (void);
35  std::string getComponentName (void);
36  std::string getTypeName (void);
37 
38 
39  //Print
40  std::string printPair(std::pair<int, int>);
41  void printInfo (void);
42 
43 
44 protected:
45  std::list<Register> registers_ ;
46  std::string componentName_ ;
47  std::string typeName_ ;
48  //Register* tempRegister_ ;
49 
50 
51 };
52 
53 }
54 
55 #endif /* HARDWARE_H_ */