00001 #ifndef _ots_DetectorToFEConfiguration_h_
00002 #define _ots_DetectorToFEConfiguration_h_
00003
00004 #include "otsdaq-core/ConfigurationDataFormats/ConfigurationBase.h"
00005
00006 #include <string>
00007 #include <vector>
00008
00009 namespace ots
00010 {
00011
00012 class DetectorToFEConfiguration : public ConfigurationBase
00013 {
00014
00015 public:
00016
00017 DetectorToFEConfiguration(void);
00018 virtual ~DetectorToFEConfiguration(void);
00019
00020
00021 void init(ConfigurationManager *configManager);
00022
00023
00024 std::vector<std::string> getFEWriterDetectorList (std::string interfaceID) const;
00025 std::vector<std::string> getFEReaderDetectorList (std::string interfaceID) const;
00026
00027 unsigned int getFEWriterChannel (const std::string& detectorID) const;
00028 unsigned int getFEWriterDetectorAddress(const std::string& detectorID) const;
00029 unsigned int getFEReaderChannel (const std::string& detectorID) const;
00030
00031 private:
00032 enum{DetectorID,
00033 FEWriterID,
00034 FEWriterChannel,
00035 FEWriterDetectorAddress,
00036 FEReaderID,
00037 FEReaderChannel,
00038 FEReaderDetectorAddress};
00039 struct DetectorInfo
00040 {
00041 std::string theFEWriterID_;
00042 unsigned int theFEWriterChannel_;
00043 unsigned int theFEWriterDetectorAddress_;
00044 std::string theFEReaderID_;
00045 unsigned int theFEReaderChannel_;
00046 unsigned int theFEReaderDetectorAddress_;
00047 };
00048 std::map<std::string, DetectorInfo> nameToInfoMap_;
00049 };
00050 }
00051 #endif