NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Namespaces Files Functions Variables Macros Pages
CrateManager.h
1 /*
2  This software is Copyright by the Board of Trustees of Michigan
3  State University (c) Copyright 2017.
4 
5  You may use this software under the terms of the GNU public license
6  (GPL). The terms of this license are described at:
7 
8  http://www.gnu.org/licenses/gpl.txt
9 
10  Authors:
11  Ron Fox
12  Giordano Cerriza
13  NSCL
14  Michigan State University
15  East Lansing, MI 48824-1321
16 */
17 
21 #ifndef CRATEMANAGER_H
22 #define CRATEMANAGER_H
23 #include <vector>
24 #include <string>
25 namespace DAQ {
26 namespace DDAS {
27  class Configuration;
28  struct FirmwareConfiguration;
29 }}
30 namespace DDAS {
40  class CrateManager {
41  DAQ::DDAS::Configuration* m_pConfiguration;
42  std::vector<unsigned short> m_slots;
43  public:
44  CrateManager(const std::vector<unsigned short>& slots);
45  virtual ~CrateManager();
46  //
47  // Illegal canonical methods. We could write them but its' not
48  // really worth it and there are no use cases.
49  //
50  private:
51  CrateManager(const CrateManager&);
52  CrateManager& operator=(const CrateManager& );
53  int operator==(const CrateManager&) const;
54  int operator!=(const CrateManager&) const;
55  public:
56  // Slot translation
57 
58  unsigned short moduleId(unsigned short slot);
59  unsigned short slot(unsigned short id);
60 
61  // Configuration:
62 
63  void loadDSPAddressMap(unsigned short id);
64  void fullBoot(unsigned short id);
65  void fullBoot(unsigned short id, const char* setFile);
66  static std::string getVarFile(unsigned short speed);
67  private:
68  void initApi(unsigned nSlots, unsigned short* slots);
69  void bootModule(
70  unsigned short modId, unsigned short mask,
71  const char* ComFirmware,
72  const char* SPFPGAFirmware,
73  const char* DSPFirmware,
74  const char* DSPVarMap,
75  const char* SetFile = nullptr
76  );
77  void getModuleInfo(
78  unsigned short modId, unsigned short* rev,
79  unsigned int* serial, unsigned short* bits,
80  unsigned short* MHz
81  );
82  void getConfiguration(
84  unsigned short id
85  );
86 
87  };
88 
89 
90 } // DDAS Namespace
91 
92 
93 #endif
The FirmwareConfiguration struct.
Definition: Configuration.h:22
Definition: CrateManager.h:40
virtual ~CrateManager()
Definition: CrateManager.cpp:87
Definition: SetFile.h:132
static std::string getVarFile(unsigned short speed)
Definition: CrateManager.cpp:213
CrateManager(const std::vector< unsigned short > &slots)
Definition: CrateManager.cpp:49
void loadDSPAddressMap(unsigned short id)
Definition: CrateManager.cpp:138
void fullBoot(unsigned short id)
Definition: CrateManager.cpp:166
The Configuration class.
Definition: Configuration.h:50
Definition: functions.h:26
unsigned short moduleId(unsigned short slot)
Definition: CrateManager.cpp:101
Definition: SystemBooter.cpp:16
unsigned short slot(unsigned short id)
Definition: CrateManager.cpp:120