otsdaq  v2_04_01
Component.cpp
1 /*
2  * Component.cpp
3  *
4  * Created on: Jul 29, 2015
5  * Author: parilla
6  */
7 
8 #include "otsdaq-core/ConfigurationDataFormats/Component.h"
9 
10 #include <iostream>
11 
12 using namespace ots;
13 
14 Component::Component(std::string name, std::string typeName)
15  : componentName_(name), typeName_(typeName)
16 {
17 }
18 
19 Component::~Component()
20 {
21  // TODO Auto-generated destructor stub
22 }
23 //==============================================================================
24 void Component::addRegister(std::string name)
25 {
26  Register tempRegister_(name);
27  registers_.push_back(tempRegister_);
28 }
29 //==============================================================================
30 void Component::addRegister(std::string name,
31  std::string baseAddress,
32  int size,
33  std::string access,
34  int globalSequencePosition,
35  int globalValue)
36 {
37  Register tempRegister_(name);
38  tempRegister_.fillRegisterInfo(baseAddress, size, access);
39  tempRegister_.setInitialize(std::make_pair(globalSequencePosition, globalValue));
40  tempRegister_.setConfigure(std::make_pair(globalSequencePosition, globalValue));
41  tempRegister_.setStart(std::make_pair(globalSequencePosition, globalValue));
42  tempRegister_.setHalt(std::make_pair(globalSequencePosition, globalValue));
43  tempRegister_.setPause(std::make_pair(globalSequencePosition, globalValue));
44  tempRegister_.setResume(std::make_pair(globalSequencePosition, globalValue));
45  registers_.push_back(tempRegister_);
46 }
47 //==============================================================================
48 void Component::addRegister(std::string name,
49  std::string baseAddress,
50  int size,
51  std::string access,
52  int initializeSequencePosition,
53  int initializeValue,
54  int configureSequencePosition,
55  int configureValue)
56 {
57  Register tempRegister_(name);
58  tempRegister_.fillRegisterInfo(baseAddress, size, access);
59  tempRegister_.setInitialize(
60  std::make_pair(initializeSequencePosition, initializeValue));
61  tempRegister_.setConfigure(std::make_pair(configureSequencePosition, configureValue));
62  tempRegister_.setStart(std::make_pair(-1, 0));
63  tempRegister_.setHalt(std::make_pair(-1, 0));
64  tempRegister_.setPause(std::make_pair(-1, 0));
65  tempRegister_.setResume(std::make_pair(-1, 0));
66  registers_.push_back(tempRegister_);
67 }
68 //==============================================================================
69 void Component::addRegister(std::string name,
70  std::string baseAddress,
71  int size,
72  std::string access,
73  int initializeSequencePosition,
74  int initializeValue,
75  int configureSequencePosition,
76  int configureValue,
77  int startSequencePosition,
78  int startValue,
79  int haltSequencePosition,
80  int haltValue,
81  int pauseSequencePosition,
82  int pauseValue,
83  int resumeSequencePosition,
84  int resumeValue)
85 {
86  Register tempRegister_(name);
87  tempRegister_.fillRegisterInfo(baseAddress, size, access);
88  tempRegister_.setInitialize(
89  std::make_pair(initializeSequencePosition, initializeValue));
90  tempRegister_.setConfigure(std::make_pair(configureSequencePosition, configureValue));
91  tempRegister_.setStart(std::make_pair(startSequencePosition, startValue));
92  tempRegister_.setHalt(std::make_pair(haltSequencePosition, haltValue));
93  tempRegister_.setPause(std::make_pair(pauseSequencePosition, pauseValue));
94  tempRegister_.setResume(std::make_pair(resumeSequencePosition, resumeValue));
95  registers_.push_back(tempRegister_);
96 }
97 
98 // Getters
99 //==============================================================================
100 std::list<Register> Component::getRegisters(void) { return registers_; }
101 //==============================================================================
102 std::list<Register>* Component::getRegistersPointer(void) { return &registers_; }
103 //==============================================================================
104 std::string Component::getComponentName(void) { return componentName_; }
105 //==============================================================================
106 std::string Component::getTypeName(void) { return typeName_; }
107 //==============================================================================
108 std::string Component::printPair(std::pair<int, int> in)
109 {
110  return "(" + std::to_string(in.first) + "," + std::to_string(in.second) + ")";
111 }
112 
113 void Component::printInfo(void)
114 {
115  std::cout << __COUT_HDR_FL__
116  << "======================================================================="
117  "======="
118  << std::endl;
119  std::cout << __COUT_HDR_FL__ << "===============================" << componentName_
120  << std::endl;
121  std::cout << __COUT_HDR_FL__
122  << "======================================================================="
123  "======="
124  << std::endl;
125  std::cout << __COUT_HDR_FL__
126  << "REGISTER \t\t BASE ADDRESS \t\t SIZE \t\t ACCESS \t\t||\t INIT \t "
127  "CONFIG \t START \t STOP \t PAUSE \t RESUME "
128  << std::endl;
129 
130  for(std::list<Register>::iterator aRegister = registers_.begin();
131  aRegister != registers_.end();
132  aRegister++)
133  {
134  std::cout << __COUT_HDR_FL__ << aRegister->getName() << "\t\t"
135  << aRegister->getBaseAddress() << "\t\t"
136  << std::to_string(aRegister->getSize()) << "\t\t"
137  << aRegister->getAccess() << "\t\t||\t"
138  << printPair(aRegister->getInitialize()) << "/t"
139  << printPair(aRegister->getStart()) << "\t"
140  << printPair(aRegister->getHalt()) << "\t"
141  << printPair(aRegister->getPause()) << "\t"
142  << printPair(aRegister->getResume()) << std::endl;
143  }
144 }