00001 #include "otsdaq-core/ConfigurationDataFormats/DACsConfigurationBase.h"
00002
00003 #include <iostream>
00004
00005 using namespace ots;
00006
00007
00008 DACsConfigurationBase::DACsConfigurationBase(std::string configurationName, unsigned int rocNameColumn, unsigned int firstDAC, unsigned int lastDAC) :
00009 ConfigurationBase(configurationName),
00010 rocNameColumn_ (rocNameColumn),
00011 firstDAC_ (firstDAC),
00012 lastDAC_ (lastDAC)
00013 {
00014 }
00015
00016
00017 DACsConfigurationBase::~DACsConfigurationBase(void)
00018 {
00019 }
00020
00021
00022 void DACsConfigurationBase::init(ConfigurationManager *configManager)
00023 {
00024 nameToROCDACsMap_.clear();
00025
00026 std::string tmpDetectorID;
00027 std::string tmpDACName;
00028 unsigned int tmpDACValue;
00029 for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
00030 {
00031 ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID,row,rocNameColumn_);
00032 nameToROCDACsMap_[tmpDetectorID] = ROCDACs();
00033 ROCDACs& aROCDACs = nameToROCDACsMap_[tmpDetectorID];
00034 for(unsigned int col=firstDAC_; col<=lastDAC_; col++)
00035 {
00036 ConfigurationBase::activeConfigurationView_->getValue(tmpDACValue,row,col);
00037 tmpDACName = ConfigurationBase::activeConfigurationView_->getColumnInfo(col).getName();
00038 aROCDACs.setDAC(tmpDACName,dacNameToDACAddress_[tmpDACName],tmpDACValue);
00039
00040 }
00041 }
00042 }
00043
00044
00045 const ROCDACs& DACsConfigurationBase::getROCDACs(std::string rocName) const
00046 {
00047
00048 if(nameToROCDACsMap_.find(rocName) == nameToROCDACsMap_.end())
00049 {
00050 std::cout << __COUT_HDR_FL__ << "ROC named " << rocName << " doesn't exist in any DAC configuration." << std::endl;
00051 assert(0);
00052 }
00053
00054
00055
00056 return nameToROCDACsMap_.find(rocName)->second;
00057 }
00058