00001
00002
00003
00004
00005
00006
00007
00008 #include "otsdaq-core/ConfigurationDataFormats/Component.h"
00009
00010 #include <iostream>
00011
00012 using namespace ots;
00013
00014
00015 Component::Component(std::string name, std::string typeName):
00016 componentName_(name),
00017 typeName_ (typeName)
00018 {}
00019
00020 Component::~Component() {
00021
00022 }
00023
00024 void Component::addRegister (std::string name){
00025 Register tempRegister_(name);
00026 registers_.push_back(tempRegister_);
00027 }
00028
00029 void Component::addRegister (std::string name, std::string baseAddress, int size, std::string access, int globalSequencePosition, int globalValue)
00030 {
00031 Register tempRegister_(name);
00032 tempRegister_.fillRegisterInfo( baseAddress, size, access);
00033 tempRegister_.setInitialize ( std::make_pair( globalSequencePosition, globalValue));
00034 tempRegister_.setConfigure ( std::make_pair( globalSequencePosition, globalValue));
00035 tempRegister_.setStart ( std::make_pair( globalSequencePosition, globalValue));
00036 tempRegister_.setHalt ( std::make_pair( globalSequencePosition, globalValue));
00037 tempRegister_.setPause ( std::make_pair( globalSequencePosition, globalValue));
00038 tempRegister_.setResume ( std::make_pair( globalSequencePosition, globalValue));
00039 registers_.push_back(tempRegister_);
00040 }
00041
00042 void Component::addRegister (std::string name, std::string baseAddress, int size, std::string access, int initializeSequencePosition, int initializeValue, int configureSequencePosition, int configureValue)
00043 {
00044 Register tempRegister_(name);
00045 tempRegister_.fillRegisterInfo( baseAddress, size, access);
00046 tempRegister_.setInitialize ( std::make_pair( initializeSequencePosition, initializeValue));
00047 tempRegister_.setConfigure ( std::make_pair( configureSequencePosition, configureValue));
00048 tempRegister_.setStart ( std::make_pair( -1, 0));
00049 tempRegister_.setHalt ( std::make_pair( -1, 0));
00050 tempRegister_.setPause ( std::make_pair( -1, 0));
00051 tempRegister_.setResume ( std::make_pair( -1, 0));
00052 registers_.push_back(tempRegister_);
00053 }
00054
00055 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)
00056 {
00057 Register tempRegister_(name);
00058 tempRegister_.fillRegisterInfo( baseAddress, size, access);
00059 tempRegister_.setInitialize ( std::make_pair( initializeSequencePosition, initializeValue));
00060 tempRegister_.setConfigure ( std::make_pair( configureSequencePosition, configureValue));
00061 tempRegister_.setStart ( std::make_pair( startSequencePosition, startValue));
00062 tempRegister_.setHalt ( std::make_pair( haltSequencePosition, haltValue));
00063 tempRegister_.setPause ( std::make_pair( pauseSequencePosition, pauseValue));
00064 tempRegister_.setResume ( std::make_pair( resumeSequencePosition, resumeValue));
00065 registers_.push_back(tempRegister_);
00066 }
00067
00068
00069
00070 std::list<Register> Component::getRegisters(void){
00071 return registers_;
00072 }
00073
00074 std::list<Register>* Component::getRegistersPointer(void){
00075 return ®isters_;
00076 }
00077
00078 std::string Component::getComponentName(void){
00079 return componentName_;
00080 }
00081
00082 std::string Component::getTypeName(void){
00083 return typeName_;
00084 }
00085
00086 std::string Component::printPair(std::pair<int, int> in)
00087 {
00088 return "(" + std::to_string(in.first) + "," + std::to_string(in.second) + ")";
00089 }
00090
00091 void Component::printInfo(void){
00092
00093 std::cout << __COUT_HDR_FL__ << "==============================================================================" << std::endl;
00094 std::cout << __COUT_HDR_FL__ << "===============================" << componentName_ << std::endl;
00095 std::cout << __COUT_HDR_FL__ << "==============================================================================" << std::endl;
00096 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;
00097
00098 for(std::list<Register>::iterator aRegister = registers_.begin(); aRegister != registers_.end(); aRegister++)
00099 {
00100 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;
00101 }
00102
00103
00104
00105 }