$treeview $search $mathjax $extrastylesheet
otsdaq_components
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #include "otsdaq-components/DetectorConfiguration/FSSRDACsConfiguration.h" 00002 #include "otsdaq-core/ConfigurationInterface/ConfigurationTree.h" 00003 00004 #include <iostream> 00005 00006 using namespace ots; 00007 00008 //============================================================================== 00009 FSSRDACsConfiguration::FSSRDACsConfiguration(void) 00010 { 00012 // WARNING: the names and the order MUST match the ones in the enum // 00014 // FSSRDACsConfigurationInfo.xml 00015 //<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 00016 //<ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 00017 // xsi:noNamespaceSchemaLocation="TableInfo.xsd"> 00018 // <CONFIGURATION Name="FSSRDACsConfiguration"> 00019 // <VIEW Name="FSSR_DACS_CONFIGURATION" Type="File,Database,DatabaseTest"> 00020 // <COLUMN Name="ROCName" StorageName="ROC_NAME" DataType="VARCHAR2" 00021 // /> <COLUMN Name="PulserData" StorageName="PULSER_DATA" DataType="NUMBER" 00022 // /> <COLUMN Name="PulserControl" StorageName="PULSER_CONTROL" DataType="NUMBER" 00023 // /> <COLUMN Name="IntegratorVbn" StorageName="INTEGRATOR_VBN" DataType="NUMBER" 00024 // /> <COLUMN Name="ShaperVbp2" StorageName="SHAPER_VBP2" DataType="NUMBER" 00025 // /> <COLUMN Name="ShaperVbp1" StorageName="SHAPER_VBP1" DataType="NUMBER" 00026 // /> <COLUMN Name="BLRestorer" StorageName="BL_RESTORER" DataType="NUMBER" 00027 // /> 00028 // <COLUMN Name="VTn" StorageName="VTN" DataType="NUMBER" /> 00029 // <COLUMN Name="VTp0" StorageName="VTP0" DataType="NUMBER" /> 00030 // <COLUMN Name="VTp1" StorageName="VTP1" DataType="NUMBER" /> 00031 // <COLUMN Name="VTp2" StorageName="VTP2" DataType="NUMBER" /> 00032 // <COLUMN Name="VTp3" StorageName="VTP3" DataType="NUMBER" /> 00033 // <COLUMN Name="VTp4" StorageName="VTP4" DataType="NUMBER" /> 00034 // <COLUMN Name="VTp5" StorageName="VTP5" DataType="NUMBER" /> 00035 // <COLUMN Name="VTp6" StorageName="VTP6" DataType="NUMBER" /> 00036 // <COLUMN Name="VTp7" StorageName="VTP7" DataType="NUMBER" /> 00037 // <COLUMN Name="ActiveLines" StorageName="ACTIVE_LINES" DataType="NUMBER" /> 00038 // <COLUMN Name="SendData" StorageName="SEND_DATA" DataType="NUMBER" /> 00039 // <COLUMN Name="RejectHits" StorageName="REJECT_HITS" DataType="NUMBER" /> 00040 // <COLUMN Name="DigContrReg" StorageNanameToROCDACsMap_me="DIG_CONTR_REG" 00041 // DataType="NUMBER" /> <COLUMN Name="AqBCO" StorageName="AQ_BCO" 00042 // DataType="NUMBER" /> 00043 // </VIEW> 00044 // </CONFIGURATION> 00045 //</ROOT> 00046 00047 // FIXME We need a FSSRDefinitions class and use it to get the registers addresses 00048 dacNameToDACAddress_["PulserData"] = 1; 00049 dacNameToDACAddress_["PulserControl"] = 2; 00050 dacNameToDACAddress_["IntegratorVbn"] = 3; 00051 dacNameToDACAddress_["ShaperVbp2"] = 4; 00052 dacNameToDACAddress_["ShaperVbp1"] = 5; 00053 dacNameToDACAddress_["BLRestorer"] = 6; 00054 dacNameToDACAddress_["VTn"] = 7; 00055 dacNameToDACAddress_["VTp0"] = 8; 00056 dacNameToDACAddress_["VTp1"] = 9; 00057 dacNameToDACAddress_["VTp2"] = 10; 00058 dacNameToDACAddress_["VTp3"] = 11; 00059 dacNameToDACAddress_["VTp4"] = 12; 00060 dacNameToDACAddress_["VTp5"] = 13; 00061 dacNameToDACAddress_["VTp6"] = 14; 00062 dacNameToDACAddress_["VTp7"] = 15; 00063 dacNameToDACAddress_["ActiveLines"] = 16; 00064 dacNameToDACAddress_["SendData"] = 19; 00065 dacNameToDACAddress_["RejectHits"] = 20; 00066 dacNameToDACAddress_["DigContrReg"] = 27; 00067 dacNameToDACAddress_["AqBCO"] = 30; 00068 } 00069 00070 //============================================================================== 00071 FSSRDACsConfiguration::~FSSRDACsConfiguration(void) {} 00072 00073 //============================================================================== 00074 const ROCDACs FSSRDACsConfiguration::getROCDACs( 00075 const ConfigurationTree& dacsConfiguration) 00076 { 00077 ROCDACs rocDACs; 00078 for(auto& it : dacNameToDACAddress_) 00079 { 00080 rocDACs.setDAC(it.first, 00081 it.second, 00082 dacsConfiguration.getNode(it.first).getValue<unsigned int>()); 00083 // __COUT__ << "DAC. Name: " << it.first << " addr: " << it.second << " val: " << 00084 // dacsConfiguration.getNode(it.first).getValue<unsigned int>() << " size: " << 00085 // rocDACs.getDACList().size()<< std::endl; 00086 } 00087 //__COUT__ << "Size: " << rocDACs.getDACList().size()<< std::endl; 00088 return rocDACs; 00089 }