otsdaq_components  v2_02_00
DACsConfigurationBase.cc
1 #include "otsdaq-core/ConfigurationDataFormats/DACsConfigurationBase.h"
2 
3 #include <iostream>
4 
5 using namespace ots;
6 
7 //==============================================================================
8 DACsConfigurationBase::DACsConfigurationBase(std::string configurationName, unsigned int rocNameColumn, unsigned int firstDAC, unsigned int lastDAC) :
9  ConfigurationBase(configurationName),
10  rocNameColumn_ (rocNameColumn),
11  firstDAC_ (firstDAC),
12  lastDAC_ (lastDAC)
13 {
14 }
15 
16 //==============================================================================
17 DACsConfigurationBase::~DACsConfigurationBase(void)
18 {
19 }
20 
21 //==============================================================================
22 void DACsConfigurationBase::init(ConfigurationManager *configManager)
23 {
24  nameToROCDACsMap_.clear();
25 
26  std::string tmpDetectorID;
27  std::string tmpDACName;
28  unsigned int tmpDACValue;
29  for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
30  {
31  ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID,row,rocNameColumn_);
32  nameToROCDACsMap_[tmpDetectorID] = ROCDACs();
33  ROCDACs& aROCDACs = nameToROCDACsMap_[tmpDetectorID];
34  for(unsigned int col=firstDAC_; col<=lastDAC_; col++)
35  {
36  ConfigurationBase::activeConfigurationView_->getValue(tmpDACValue,row,col);
37  tmpDACName = ConfigurationBase::activeConfigurationView_->getColumnInfo(col).getName();
38  aROCDACs.setDAC(tmpDACName,dacNameToDACAddress_[tmpDACName],tmpDACValue);
39  //std::cout << __COUT_HDR_FL__ << "DAC. Name: " << tmpDACName << " addr: " << dacNameToDACAddress_[tmpDACName] << " val: " << tmpDACValue << std::endl;
40  }
41  }
42 }
43 
44 //==============================================================================
45 const ROCDACs& DACsConfigurationBase::getROCDACs(std::string rocName) const
46 {
47  //FIXME This check should be removed when you are sure you don't have inconsistencies between configurations
48  if(nameToROCDACsMap_.find(rocName) == nameToROCDACsMap_.end())
49  {
50  std::cout << __COUT_HDR_FL__ << "ROC named " << rocName << " doesn't exist in any DAC configuration." << std::endl;
51  assert(0);
52  }
53  //
54  //for(ots::DACList::const_iterator it = nameToROCDACsMap_.find(rocName)->second.getDACList().begin(); it != nameToROCDACsMap_.find(rocName)->second.getDACList().end(); ++it)
55  // std::cout << __COUT_HDR_FL__ << "DAC Name :" << it->first << ", value: " << it->second.second << std::endl;
56  return nameToROCDACsMap_.find(rocName)->second;
57 }
58