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