00001 #include "otsdaq-core/ConfigurationPluginDataFormats/DetectorToFEConfiguration.h"
00002 #include "otsdaq-core/Macros/ConfigurationPluginMacros.h"
00003
00004 #include <iostream>
00005
00006 using namespace ots;
00007
00008
00009 DetectorToFEConfiguration::DetectorToFEConfiguration(void)
00010 : ConfigurationBase("DetectorToFEConfiguration")
00011 {
00013
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 }
00031
00032
00033 DetectorToFEConfiguration::~DetectorToFEConfiguration(void)
00034 {}
00035
00036
00037 void DetectorToFEConfiguration::init(ConfigurationManager *configManager)
00038 {
00039 std::string tmpDetectorName;
00040 for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
00041 {
00042 ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorName , row, DetectorID);
00043 nameToInfoMap_[tmpDetectorName] = DetectorInfo();
00044 DetectorInfo& aDetectorInfo = nameToInfoMap_[tmpDetectorName];
00045 ConfigurationBase::activeConfigurationView_->getValue(aDetectorInfo.theFEWriterID_ , row, FEWriterID);
00046 ConfigurationBase::activeConfigurationView_->getValue(aDetectorInfo.theFEWriterChannel_ , row, FEWriterChannel);
00047 ConfigurationBase::activeConfigurationView_->getValue(aDetectorInfo.theFEWriterDetectorAddress_, row, FEWriterDetectorAddress);
00048 ConfigurationBase::activeConfigurationView_->getValue(aDetectorInfo.theFEReaderID_ , row, FEReaderID);
00049 ConfigurationBase::activeConfigurationView_->getValue(aDetectorInfo.theFEReaderChannel_ , row, FEReaderChannel);
00050 ConfigurationBase::activeConfigurationView_->getValue(aDetectorInfo.theFEReaderDetectorAddress_, row, FEReaderDetectorAddress);
00051 }
00052 }
00053
00054
00055 std::vector<std::string> DetectorToFEConfiguration::getFEWriterDetectorList(std::string interfaceID) const
00056 {
00057 std::string tmpDetectorID;
00058 std::string tmpFEWriterID;
00059 std::vector<std::string> list;
00060 for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
00061 {
00062 ConfigurationBase::activeConfigurationView_->getValue(tmpFEWriterID, row, FEWriterID);
00063 if(tmpFEWriterID == interfaceID)
00064 {
00065 ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID, row, DetectorID);
00066 list.push_back(tmpDetectorID);
00067 }
00068 }
00069 return list;
00070 }
00071
00072
00073 std::vector<std::string> DetectorToFEConfiguration::getFEReaderDetectorList(std::string interfaceID) const
00074 {
00075 std::string tmpDetectorID;
00076 std::string tmpFEReaderID;
00077 std::vector<std::string> list;
00078 for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
00079 {
00080 ConfigurationBase::activeConfigurationView_->getValue(tmpFEReaderID,row,FEReaderID);
00081 if(tmpFEReaderID == interfaceID)
00082 {
00083 ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID, row, DetectorID);
00084 list.push_back(tmpDetectorID);
00085 }
00086 }
00087 return list;
00088 }
00089
00090
00091 unsigned int DetectorToFEConfiguration::getFEWriterChannel(const std::string& detectorID) const
00092 {
00093 return nameToInfoMap_.find(detectorID)->second.theFEWriterChannel_;
00094 }
00095
00096
00097 unsigned int DetectorToFEConfiguration::getFEWriterDetectorAddress(const std::string& detectorID) const
00098 {
00099 return nameToInfoMap_.find(detectorID)->second.theFEWriterDetectorAddress_;
00100 }
00101
00102
00103 unsigned int DetectorToFEConfiguration::getFEReaderChannel(const std::string& detectorID) const
00104 {
00105 return nameToInfoMap_.find(detectorID)->second.theFEReaderChannel_;
00106 }
00107
00108 DEFINE_OTS_CONFIGURATION(DetectorToFEConfiguration)