NSCL DDAS 12.2-009
Support for XIA DDAS at FRIB
Configuration.h
Go to the documentation of this file.
1
6#ifndef CONFIGURATION_H
7#define CONFIGURATION_H
8
9#include <iosfwd>
10#include <map>
11#include <memory>
12#include <string>
13#include <vector>
14
15#include "HardwareRegistry.h"
16
18namespace DAQ {
20namespace DDAS {
21
45 std::string s_SPFPGAConfigFile;
46 std::string s_DSPCodeFile;
47 std::string s_DSPVarFile;
48};
49
55typedef std::map<int, FirmwareConfiguration> FirmwareMap;
56
89private:
90 int m_crateId{0};
91 size_t m_numModules{0};
92 std::vector<unsigned short> m_slotMap;
93 std::vector<unsigned short> m_channelMap;
94 std::string m_settingsFilePath;
95 std::vector<int> m_modEvtLengths;
96 FirmwareMap m_fwMap;
97 std::vector<int> m_hardwareMap;
98
99 // These additions support per module firmware maps and set files:
100
102 std::map<int, FirmwareMap> m_moduleFirmwareMaps;
104 std::map<int, std::string> m_moduleSetFileMap;
105
106public:
108 Configuration() = default;
110 ~Configuration() = default;
111
116 void setCrateId(int id) { m_crateId = id; };
121 int getCrateId() const { return m_crateId; };
126 void setNumberOfModules(size_t size);
131 size_t getNumberOfModules() const { return m_numModules; };
138 void setSlotMap(const std::vector<unsigned short> &map);
144 std::vector<unsigned short> getSlotMap() const { return m_slotMap; };
149 void setChannelMap(const std::vector<unsigned short> &map);
154 std::vector<unsigned short> getChannelMap() { return m_channelMap; };
161 unsigned short getModuleChannelCount(size_t mod);
166 void setSettingsFilePath(const std::string &path) {
167 m_settingsFilePath = path;
168 };
173 std::string getSettingsFilePath() const { return m_settingsFilePath; };
179 void setModuleSettingsFilePath(int modnum, const std::string &path);
186 std::string getModuleSettingsFilePath(int modNum);
196 void setFirmwareConfiguration(int specifier,
197 const FirmwareConfiguration &config) {
198 m_fwMap[specifier] = config;
199 };
215 void setModuleFirmwareMap(int module, const FirmwareMap &mapping);
225 int modnum);
230 FirmwareMap &getDefaultFirmwareMap() { return m_fwMap; }
237 void setModuleEventLengths(const std::vector<int> &lengths);
242 std::vector<int> getModuleEventLengths() const { return m_modEvtLengths; };
249 void setHardwareMap(const std::vector<int> &map);
254 std::vector<int> getHardwareMap() const { return m_hardwareMap; };
259 std::map<int, FirmwareMap> getModuleFirmwareMaps() const {
260 return m_moduleFirmwareMaps;
261 };
266 std::map<int, std::string> getModuleSetFileMap() const {
267 return m_moduleSetFileMap;
268 };
273 void print(std::ostream &stream);
281 static std::unique_ptr<Configuration>
282 generate(const std::string &cfgPixiePath);
292 static std::unique_ptr<Configuration>
293 generate(const std::string &fwVsnPath, const std::string &cfgPixiePath);
303 static std::unique_ptr<Configuration>
304 generate(const std::string &fwVsnPath, const std::string &cfgPixiePath,
305 const std::string &modEvtLenPath);
314 static std::unique_ptr<Configuration>
315 generateManagedFW(const std::string &cfgPixiePath,
316 const std::string &modEvtLenPath);
317};
318
321} // namespace DDAS
322} // namespace DAQ
323
324#endif // CONFIGURATION_H
Defines a namespace used to store information about known DDAS modules.
Store the system configuration information needed by Readout.
Definition: Configuration.h:88
std::string getSettingsFilePath() const
Return the path to the .set file.
Definition: Configuration.h:173
void print(std::ostream &stream)
Print brief line of information for cfgPixie16.txt.
Definition: Configuration.cpp:229
void setModuleFirmwareMap(int module, const FirmwareMap &mapping)
Sets a firmware map specific to a module.
Definition: Configuration.cpp:143
void setFirmwareConfiguration(int specifier, const FirmwareConfiguration &config)
Set the firmware configuration for a hardware type.
Definition: Configuration.h:196
void setSettingsFilePath(const std::string &path)
Set the path to the DSP settings file.
Definition: Configuration.h:166
unsigned short getModuleChannelCount(size_t mod)
Get the number of channels in a module.
Definition: Configuration.cpp:92
~Configuration()=default
Destructor.
FirmwareConfiguration & getModuleFirmwareConfiguration(int hdwrType, int modnum)
Get the module firmware configuration information.
Definition: Configuration.cpp:155
size_t getNumberOfModules() const
Return the number of modules in the crate.
Definition: Configuration.h:131
void setChannelMap(const std::vector< unsigned short > &map)
Assign a new channel map (number of channels per module).
Definition: Configuration.cpp:80
std::vector< int > getModuleEventLengths() const
Return a copy of the module event length vector.
Definition: Configuration.h:242
std::map< int, std::string > getModuleSetFileMap() const
Get the per-module settings file map.
Definition: Configuration.h:266
FirmwareConfiguration & getFirmwareConfiguration(int hdwrType)
Retrieve the current firmware specifier for a particular hardware type.
Definition: Configuration.cpp:129
static std::unique_ptr< Configuration > generate(const std::string &cfgPixiePath)
Generate a Configuration class object from cfgPixie16.txt.
Definition: Configuration.cpp:243
void setHardwareMap(const std::vector< int > &map)
Set the hardware map for each module.
Definition: Configuration.cpp:212
void setNumberOfModules(size_t size)
Set the number of modules in the crate.
Definition: Configuration.cpp:30
std::string getModuleSettingsFilePath(int modNum)
Returns the DSP settings file path specific to a single module.
Definition: Configuration.cpp:117
void setModuleSettingsFilePath(int modnum, const std::string &path)
Set a per-module DSP settings file.
Definition: Configuration.cpp:107
void setModuleEventLengths(const std::vector< int > &lengths)
Set the lengths of events for each module.
Definition: Configuration.cpp:185
void setSlotMap(const std::vector< unsigned short > &map)
Assign a new slot map.
Definition: Configuration.cpp:53
Configuration()=default
Constructor.
std::vector< int > getHardwareMap() const
Return a copy of the hardware map vector.
Definition: Configuration.h:254
void setCrateId(int id)
Set the crate id for the module.
Definition: Configuration.h:116
static std::unique_ptr< Configuration > generateManagedFW(const std::string &cfgPixiePath, const std::string &modEvtLenPath)
Generate a Configuration class object from cfgPixie16.txt and modevtlen.txt files (managed FW).
Definition: Configuration.cpp:319
int getCrateId() const
Return the crate id value.
Definition: Configuration.h:121
std::vector< unsigned short > getChannelMap()
Return the channel map.
Definition: Configuration.h:154
FirmwareMap & getDefaultFirmwareMap()
Return the default map of firmware information.
Definition: Configuration.h:230
std::vector< unsigned short > getSlotMap() const
Return the vector containing the filled slots.
Definition: Configuration.h:144
std::map< int, FirmwareMap > getModuleFirmwareMaps() const
Get the per-module FW maps.
Definition: Configuration.h:259
std::map< int, FirmwareConfiguration > FirmwareMap
A map of firmware configurations keyed by the hardware type defined in HardwareRegistry....
Definition: Configuration.h:55
Storage for hardware-type firmware/settings paths.
Definition: Configuration.h:41
std::string s_SPFPGAConfigFile
Definition: Configuration.h:45
std::string s_DSPCodeFile
Name of executable DSP code file.
Definition: Configuration.h:46
std::string s_ComFPGAConfigFile
Definition: Configuration.h:43
std::string s_DSPVarFile
Name of DSP variable names file.
Definition: Configuration.h:47