$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 /* 00002 * Component.cpp 00003 * 00004 * Created on: Jul 29, 2015 00005 * Author: parilla 00006 */ 00007 00008 #include "otsdaq-core/ConfigurationDataFormats/Component.h" 00009 00010 #include <iostream> 00011 00012 using namespace ots; 00013 00014 Component::Component(std::string name, std::string typeName) 00015 : componentName_(name), typeName_(typeName) 00016 { 00017 } 00018 00019 Component::~Component() 00020 { 00021 // TODO Auto-generated destructor stub 00022 } 00023 //============================================================================== 00024 void Component::addRegister(std::string name) 00025 { 00026 Register tempRegister_(name); 00027 registers_.push_back(tempRegister_); 00028 } 00029 //============================================================================== 00030 void Component::addRegister(std::string name, 00031 std::string baseAddress, 00032 int size, 00033 std::string access, 00034 int globalSequencePosition, 00035 int globalValue) 00036 { 00037 Register tempRegister_(name); 00038 tempRegister_.fillRegisterInfo(baseAddress, size, access); 00039 tempRegister_.setInitialize(std::make_pair(globalSequencePosition, globalValue)); 00040 tempRegister_.setConfigure(std::make_pair(globalSequencePosition, globalValue)); 00041 tempRegister_.setStart(std::make_pair(globalSequencePosition, globalValue)); 00042 tempRegister_.setHalt(std::make_pair(globalSequencePosition, globalValue)); 00043 tempRegister_.setPause(std::make_pair(globalSequencePosition, globalValue)); 00044 tempRegister_.setResume(std::make_pair(globalSequencePosition, globalValue)); 00045 registers_.push_back(tempRegister_); 00046 } 00047 //============================================================================== 00048 void Component::addRegister(std::string name, 00049 std::string baseAddress, 00050 int size, 00051 std::string access, 00052 int initializeSequencePosition, 00053 int initializeValue, 00054 int configureSequencePosition, 00055 int configureValue) 00056 { 00057 Register tempRegister_(name); 00058 tempRegister_.fillRegisterInfo(baseAddress, size, access); 00059 tempRegister_.setInitialize( 00060 std::make_pair(initializeSequencePosition, initializeValue)); 00061 tempRegister_.setConfigure(std::make_pair(configureSequencePosition, configureValue)); 00062 tempRegister_.setStart(std::make_pair(-1, 0)); 00063 tempRegister_.setHalt(std::make_pair(-1, 0)); 00064 tempRegister_.setPause(std::make_pair(-1, 0)); 00065 tempRegister_.setResume(std::make_pair(-1, 0)); 00066 registers_.push_back(tempRegister_); 00067 } 00068 //============================================================================== 00069 void Component::addRegister(std::string name, 00070 std::string baseAddress, 00071 int size, 00072 std::string access, 00073 int initializeSequencePosition, 00074 int initializeValue, 00075 int configureSequencePosition, 00076 int configureValue, 00077 int startSequencePosition, 00078 int startValue, 00079 int haltSequencePosition, 00080 int haltValue, 00081 int pauseSequencePosition, 00082 int pauseValue, 00083 int resumeSequencePosition, 00084 int resumeValue) 00085 { 00086 Register tempRegister_(name); 00087 tempRegister_.fillRegisterInfo(baseAddress, size, access); 00088 tempRegister_.setInitialize( 00089 std::make_pair(initializeSequencePosition, initializeValue)); 00090 tempRegister_.setConfigure(std::make_pair(configureSequencePosition, configureValue)); 00091 tempRegister_.setStart(std::make_pair(startSequencePosition, startValue)); 00092 tempRegister_.setHalt(std::make_pair(haltSequencePosition, haltValue)); 00093 tempRegister_.setPause(std::make_pair(pauseSequencePosition, pauseValue)); 00094 tempRegister_.setResume(std::make_pair(resumeSequencePosition, resumeValue)); 00095 registers_.push_back(tempRegister_); 00096 } 00097 00098 // Getters 00099 //============================================================================== 00100 std::list<Register> Component::getRegisters(void) { return registers_; } 00101 //============================================================================== 00102 std::list<Register>* Component::getRegistersPointer(void) { return ®isters_; } 00103 //============================================================================== 00104 std::string Component::getComponentName(void) { return componentName_; } 00105 //============================================================================== 00106 std::string Component::getTypeName(void) { return typeName_; } 00107 //============================================================================== 00108 std::string Component::printPair(std::pair<int, int> in) 00109 { 00110 return "(" + std::to_string(in.first) + "," + std::to_string(in.second) + ")"; 00111 } 00112 00113 void Component::printInfo(void) 00114 { 00115 std::cout << __COUT_HDR_FL__ 00116 << "=======================================================================" 00117 "=======" 00118 << std::endl; 00119 std::cout << __COUT_HDR_FL__ << "===============================" << componentName_ 00120 << std::endl; 00121 std::cout << __COUT_HDR_FL__ 00122 << "=======================================================================" 00123 "=======" 00124 << std::endl; 00125 std::cout << __COUT_HDR_FL__ 00126 << "REGISTER \t\t BASE ADDRESS \t\t SIZE \t\t ACCESS \t\t||\t INIT \t " 00127 "CONFIG \t START \t STOP \t PAUSE \t RESUME " 00128 << std::endl; 00129 00130 for(std::list<Register>::iterator aRegister = registers_.begin(); 00131 aRegister != registers_.end(); 00132 aRegister++) 00133 { 00134 std::cout << __COUT_HDR_FL__ << aRegister->getName() << "\t\t" 00135 << aRegister->getBaseAddress() << "\t\t" 00136 << std::to_string(aRegister->getSize()) << "\t\t" 00137 << aRegister->getAccess() << "\t\t||\t" 00138 << printPair(aRegister->getInitialize()) << "/t" 00139 << printPair(aRegister->getStart()) << "\t" 00140 << printPair(aRegister->getHalt()) << "\t" 00141 << printPair(aRegister->getPause()) << "\t" 00142 << printPair(aRegister->getResume()) << std::endl; 00143 } 00144 }