otsdaq  v1_01_02
 All Classes Namespaces Functions
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 
15 Component::Component(std::string name, std::string typeName):
16  componentName_(name),
17  typeName_ (typeName)
18 {}
19 
20 Component::~Component() {
21  // TODO Auto-generated destructor stub
22 }
23 //==============================================================================
24 void Component::addRegister (std::string name){
25  Register tempRegister_(name);
26  registers_.push_back(tempRegister_);
27 }
28 //==============================================================================
29 void Component::addRegister (std::string name, std::string baseAddress, int size, std::string access, int globalSequencePosition, int globalValue)
30 {
31  Register tempRegister_(name);
32  tempRegister_.fillRegisterInfo( baseAddress, size, access);
33  tempRegister_.setInitialize ( std::make_pair( globalSequencePosition, globalValue));
34  tempRegister_.setConfigure ( std::make_pair( globalSequencePosition, globalValue));
35  tempRegister_.setStart ( std::make_pair( globalSequencePosition, globalValue));
36  tempRegister_.setHalt ( std::make_pair( globalSequencePosition, globalValue));
37  tempRegister_.setPause ( std::make_pair( globalSequencePosition, globalValue));
38  tempRegister_.setResume ( std::make_pair( globalSequencePosition, globalValue));
39  registers_.push_back(tempRegister_);
40 }
41 //==============================================================================
42 void Component::addRegister (std::string name, std::string baseAddress, int size, std::string access, int initializeSequencePosition, int initializeValue, int configureSequencePosition, int configureValue)
43 {
44  Register tempRegister_(name);
45  tempRegister_.fillRegisterInfo( baseAddress, size, access);
46  tempRegister_.setInitialize ( std::make_pair( initializeSequencePosition, initializeValue));
47  tempRegister_.setConfigure ( std::make_pair( configureSequencePosition, configureValue));
48  tempRegister_.setStart ( std::make_pair( -1, 0));
49  tempRegister_.setHalt ( std::make_pair( -1, 0));
50  tempRegister_.setPause ( std::make_pair( -1, 0));
51  tempRegister_.setResume ( std::make_pair( -1, 0));
52  registers_.push_back(tempRegister_);
53 }
54 //==============================================================================
55 void Component::addRegister (std::string name, std::string baseAddress, int size, std::string access, int initializeSequencePosition, int initializeValue, int configureSequencePosition, int configureValue, int startSequencePosition, int startValue, int haltSequencePosition, int haltValue, int pauseSequencePosition, int pauseValue, int resumeSequencePosition, int resumeValue)
56 {
57  Register tempRegister_(name);
58  tempRegister_.fillRegisterInfo( baseAddress, size, access);
59  tempRegister_.setInitialize ( std::make_pair( initializeSequencePosition, initializeValue));
60  tempRegister_.setConfigure ( std::make_pair( configureSequencePosition, configureValue));
61  tempRegister_.setStart ( std::make_pair( startSequencePosition, startValue));
62  tempRegister_.setHalt ( std::make_pair( haltSequencePosition, haltValue));
63  tempRegister_.setPause ( std::make_pair( pauseSequencePosition, pauseValue));
64  tempRegister_.setResume ( std::make_pair( resumeSequencePosition, resumeValue));
65  registers_.push_back(tempRegister_);
66 }
67 
68 //Getters
69 //==============================================================================
70 std::list<Register> Component::getRegisters(void){
71  return registers_;
72 }
73 //==============================================================================
74 std::list<Register>* Component::getRegistersPointer(void){
75  return &registers_;
76 }
77 //==============================================================================
78 std::string Component::getComponentName(void){
79  return componentName_;
80 }
81 //==============================================================================
82 std::string Component::getTypeName(void){
83  return typeName_;
84 }
85 //==============================================================================
86 std::string Component::printPair(std::pair<int, int> in)
87 {
88  return "(" + std::to_string(in.first) + "," + std::to_string(in.second) + ")";
89 }
90 
91 void Component::printInfo(void){
92 
93  std::cout << __COUT_HDR_FL__ << "==============================================================================" << std::endl;
94  std::cout << __COUT_HDR_FL__ << "===============================" << componentName_ << std::endl;
95  std::cout << __COUT_HDR_FL__ << "==============================================================================" << std::endl;
96  std::cout << __COUT_HDR_FL__ << "REGISTER \t\t BASE ADDRESS \t\t SIZE \t\t ACCESS \t\t||\t INIT \t CONFIG \t START \t STOP \t PAUSE \t RESUME " << std::endl;
97 
98  for(std::list<Register>::iterator aRegister = registers_.begin(); aRegister != registers_.end(); aRegister++)
99  {
100  std::cout << __COUT_HDR_FL__ << aRegister->getName() << "\t\t" << aRegister->getBaseAddress() << "\t\t" << std::to_string(aRegister->getSize()) << "\t\t" << aRegister->getAccess() << "\t\t||\t" << printPair(aRegister->getInitialize()) << "/t" << printPair(aRegister->getStart()) << "\t" << printPair(aRegister->getHalt()) << "\t" << printPair(aRegister->getPause()) << "\t" << printPair(aRegister->getResume()) << std::endl;
101  }
102 
103 
104 
105 }