NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Namespaces Files Functions Variables Macros Pages
Configuration.h
1 #ifndef CONFIGURATION_H
2 #define CONFIGURATION_H
3 
4 #include "HardwareRegistry.h"
5 
6 #include <string>
7 #include <vector>
8 #include <map>
9 #include <iosfwd>
10 #include <memory>
11 
12 namespace DAQ {
13 namespace DDAS {
14 
23 {
24  std::string s_ComFPGAConfigFile;
25  std::string s_SPFPGAConfigFile;
26  std::string s_DSPCodeFile;
27  std::string s_DSPVarFile;
28 };
29 
30 
51 {
52 
53  // docs for methods are provided in the source file. Doxygen output should be made
54  // available to users.
55 
56 private:
57  int m_crateId;
58  std::vector<unsigned short> m_slotMap;
59  std::string m_settingsFilePath;
60  std::vector<int> m_modEvtLengths;
61 
62  std::map<int, FirmwareConfiguration> m_fwMap;
63  std::vector<int> m_hardwareMap;
64 
65 public:
66  Configuration() = default;
67  Configuration(const Configuration&) = default;
68  ~Configuration() = default;
69 
70  void setCrateId(int id);
71  int getCrateId() const;
72 
73  void setNumberOfModules(size_t size);
74  size_t getNumberOfModules() const;
75 
76  void setSlotMap(const std::vector<unsigned short>& map);
77  std::vector<unsigned short> getSlotMap() const;
78 
79  void setSettingsFilePath(const std::string& path);
80  std::string getSettingsFilePath() const;
81 
82  void setFirmwareConfiguration(int specifier,
83  const FirmwareConfiguration &config);
85 
86  void setModuleEventLengths(const std::vector<int>& lengths);
87  std::vector<int> getModuleEventLengths() const;
88 
89  void setHardwareMap(const std::vector<int>& map);
90  std::vector<int> getHardwareMap() const;
91 
92  void print(std::ostream& stream);
93 
94  static std::unique_ptr<Configuration>
95  generate(const std::string& fwVsnPath, const std::string& cfgPixiePath);
96 
97  static std::unique_ptr<Configuration>
98  generate(const std::string& fwVsnPath, const std::string& cfgPixiePath,
99  const std::string& modEvtLenPath);
100 
101 };
102 
103 
104 
105 } // end DDAS namespace
106 } // end DAQ namesapce
107 
108 #endif // CONFIGURATION_H
The FirmwareConfiguration struct.
Definition: Configuration.h:22
FirmwareConfiguration & getFirmwareConfiguration(int hdwrType)
Retrieve the current firmware specifier for the.
Definition: Configuration.cpp:143
void setSlotMap(const std::vector< unsigned short > &map)
Assign a new slot map.
Definition: Configuration.cpp:77
void setFirmwareConfiguration(int specifier, const FirmwareConfiguration &config)
Set the firmware configuration for a hardware type.
Definition: Configuration.cpp:127
void print(std::ostream &stream)
Print brief line of information for cfgPixie16.txt.
Definition: Configuration.cpp:215
int getCrateId() const
Definition: Configuration.cpp:28
std::string getSettingsFilePath() const
Definition: Configuration.cpp:112
size_t getNumberOfModules() const
Definition: Configuration.cpp:52
void setSettingsFilePath(const std::string &path)
Set the path to the .set file.
Definition: Configuration.cpp:104
void setModuleEventLengths(const std::vector< int > &lengths)
Set the lengths of events for each module.
Definition: Configuration.cpp:165
The Configuration class.
Definition: Configuration.h:50
Definition: functions.h:26
void setCrateId(int id)
Set the crate id for the module.
Definition: Configuration.cpp:20
Definition: SystemBooter.cpp:16
void setNumberOfModules(size_t size)
Set the number of modules in the crate.
Definition: Configuration.cpp:42
std::vector< unsigned short > getSlotMap() const
Definition: Configuration.cpp:94
std::vector< int > getModuleEventLengths() const
Definition: Configuration.cpp:181