otsdaq_components  v2_02_00
FEPurdueFSSRInterfaceConfiguration_configuration.cc
1 #include "otsdaq-core/ConfigurationPluginDataFormats/DataManagerConfiguration.h"
2 #include "otsdaq-core/Macros/ConfigurationPluginMacros.h"
3 
4 #include <iostream>
5 #include "otsdaq-components/UserConfigurationDataFormats/FEPurdueFSSRInterfaceConfiguration.h"
6 
7 using namespace ots;
8 
9 //==============================================================================
10 FEPurdueFSSRInterfaceConfiguration::FEPurdueFSSRInterfaceConfiguration(void)
11 : FEInterfaceConfigurationBase("FEPurdueFSSRInterfaceConfiguration")
12 {
14  //WARNING: the names and the order MUST match the ones in the enum //
16  //FEPurdueFSSRInterfaceConfigurationInfo.xml
17  //<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
18  //<ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ConfigurationInfo.xsd">
19  // <CONFIGURATION Name="FEPurdueFSSRInterfaceConfiguration">
20  // <VIEW Name="FEWR_OTS_UDP_FSSR_INTERFACE_CONFIGURATION" Type="File,Database,DatabaseTest">
21  // <COLUMN NAME="InterfaceID" StorageName="INTERFACE_ID" DataType="VARCHAR2" />
22  // <COLUMN Name="Status" StorageName="STATUS" DataType="VARCHAR2"/>
23  // <COLUMN Name="FirmwareVersion" StorageName="FIRMWARE_VERSION" DataType="NUMBER" />
24  // <COLUMN Name="IPAddress" StorageName="IP_ADDRESS" DataType="VARCHAR2"/>
25  // <COLUMN Name="Port" StorageName="PORT" DataType="NUMBER" />
26  // <COLUMN Name="InterfaceIPAddress" StorageName="INTERFACE_IP_ADDRESS" DataType="VARCHAR2"/>
27  // <COLUMN Name="InterfacePort" StorageName="INTERFACE_PORT" DataType="NUMBER" />
28  // <COLUMN Name="StreamingIPAddress" StorageName="STREAMING_IP_ADDRESS" DataType="VARCHAR2"/>
29  // <COLUMN Name="StreamingPort" StorageName="STREAMING_PORT" DataType="NUMBER" />
30  // <COLUMN Name="ClockSelect" StorageName="CLOCK_SELECT" DataType="VARCHAR2"/>
31  // <COLUMN Name="ClockSpeedMHz" StorageName="CLOCK_SPEED_MHZ" DataType="NUMBER" />
32  // </VIEW>
33  // </CONFIGURATION>
34  //</ROOT>
35 
36 }
37 
38 //==============================================================================
39 FEPurdueFSSRInterfaceConfiguration::~FEPurdueFSSRInterfaceConfiguration(void)
40 {}
41 
42 //==============================================================================
43 void FEPurdueFSSRInterfaceConfiguration::init(ConfigurationManager *configManager)
44 {
45  /*
46  std::string enumValue1;
47  unsigned int enumValue2;
48  for(unsigned int row=0; row<ConfigurationBase::configurationData_.getNumberOfRows(); row++)
49  {
50  ConfigurationBase::configurationData_.getValue(enumValue1,row,Enum1);
51  ConfigurationBase::configurationData_.getValue(enumValue2,row,Enum2);
52  }
53  */
54 }
55 
56 //==============================================================================
57 bool FEPurdueFSSRInterfaceConfiguration::getStatus(std::string interfaceID) const
58 {
59  bool tmpStatus;
60  ConfigurationBase::activeConfigurationView_->getValue(tmpStatus, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), Status);
61  return tmpStatus;
62 }
63 
64 //==============================================================================
65 unsigned int FEPurdueFSSRInterfaceConfiguration::getFirmwareVersion(std::string interfaceID) const
66 {
67  unsigned int tmpFirmwareVersion;
68  ConfigurationBase::activeConfigurationView_->getValue(tmpFirmwareVersion, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), FirmwareVersion);
69  return tmpFirmwareVersion;
70 }
71 
72 //==============================================================================
73 std::string FEPurdueFSSRInterfaceConfiguration::getIPAddress(std::string interfaceID) const
74 {
75  std::string tmpIPAddress;
76  ConfigurationBase::activeConfigurationView_->getValue(tmpIPAddress, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), IPAddress);
77  return tmpIPAddress;
78 }
79 
80 //==============================================================================
81 unsigned int FEPurdueFSSRInterfaceConfiguration::getPort(std::string interfaceID) const
82 {
83  unsigned int tmpPort;
84  ConfigurationBase::activeConfigurationView_->getValue(tmpPort, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), Port);
85  return tmpPort;
86 }
87 
88 //==============================================================================
89 std::string FEPurdueFSSRInterfaceConfiguration::getInterfaceIPAddress(std::string interfaceID) const
90 {
91  std::string tmpInterfaceIPAddress;
92  ConfigurationBase::activeConfigurationView_->getValue(tmpInterfaceIPAddress, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), InterfaceIPAddress);
93  return tmpInterfaceIPAddress;
94 }
95 
96 //==============================================================================
97 unsigned int FEPurdueFSSRInterfaceConfiguration::getInterfacePort(std::string interfaceID) const
98 {
99  unsigned int tmpInterfacePort;
100  ConfigurationBase::activeConfigurationView_->getValue(tmpInterfacePort, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), InterfacePort);
101  return tmpInterfacePort;
102 }
103 
104 //==============================================================================
105 std::string FEPurdueFSSRInterfaceConfiguration::getStreamingIPAddress(std::string interfaceID) const
106 {
107  std::string tmpStreamingIPAddress;
108  ConfigurationBase::activeConfigurationView_->getValue(tmpStreamingIPAddress, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), StreamingIPAddress);
109  return tmpStreamingIPAddress;
110 }
111 
112 //==============================================================================
113 unsigned int FEPurdueFSSRInterfaceConfiguration::getStreamingPort(std::string interfaceID) const
114 {
115  unsigned int tmpStreamingPort;
116  ConfigurationBase::activeConfigurationView_->getValue(tmpStreamingPort, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), StreamingPort);
117  return tmpStreamingPort;
118 }
119 
120 //==============================================================================
121 std::string FEPurdueFSSRInterfaceConfiguration::getClockSelect(std::string interfaceID) const
122 {
123  std::string tmpClockSelect;
124  ConfigurationBase::activeConfigurationView_->getValue(tmpClockSelect, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ClockSelect);
125  return tmpClockSelect;
126 }
127 
128 //==============================================================================
129 double FEPurdueFSSRInterfaceConfiguration::getClockSpeedMHz(std::string interfaceID) const
130 {
131  double tmpClockSpeedMHz;
132  ConfigurationBase::activeConfigurationView_->getValue(tmpClockSpeedMHz, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ClockSpeedMHz);
133  return tmpClockSpeedMHz;
134 }
135 
136 //==============================================================================
137 bool FEPurdueFSSRInterfaceConfiguration::getChannelStatus(std::string interfaceID, unsigned int channel) const
138 {
139  bool tmpStatus;
140  switch(channel)
141  {
142  case 0:
143  ConfigurationBase::activeConfigurationView_->getValue(tmpStatus, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ChannelStatus0);
144  break;
145  case 1:
146  ConfigurationBase::activeConfigurationView_->getValue(tmpStatus, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ChannelStatus1);
147  break;
148  case 2:
149  ConfigurationBase::activeConfigurationView_->getValue(tmpStatus, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ChannelStatus2);
150  break;
151  case 3:
152  ConfigurationBase::activeConfigurationView_->getValue(tmpStatus, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ChannelStatus3);
153  break;
154  case 4:
155  ConfigurationBase::activeConfigurationView_->getValue(tmpStatus, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ChannelStatus4);
156  break;
157  case 5:
158  ConfigurationBase::activeConfigurationView_->getValue(tmpStatus, ConfigurationBase::activeConfigurationView_->findRow(InterfaceID,interfaceID), ChannelStatus5);
159  break;
160  default: //There are only 6 channels on OtsUDPHardware board
161  __SS__ << "Configuration Error:\t" << "OtsUDPHardware FER Channel " << std::dec << channel << " does not exist" << std::endl;
162  __COUT_ERR__ << "\n" << ss.str();
163  __SS_THROW__;
164  }
165  return tmpStatus;
166 }
167 
168 DEFINE_OTS_CONFIGURATION(FEPurdueFSSRInterfaceConfiguration)