otsdaq_prepmodernization  v2_04_01
FENIMPlusInterface.h
1 #ifndef _ots_FENIMPlusInterface_h_
2 #define _ots_FENIMPlusInterface_h_
3 
4 //#include "otsdaq-components/FEInterfaces/FEOtsUDPHardwareBaseInterface.h"
5 #include <bitset>
6 #include "otsdaq-components/FEInterfaces/FEOtsUDPTemplateInterface.h"
7 
8 namespace ots
9 {
10 class FEInterfaceTableBase;
11 class FENIMPlusInterfaceConfiguration;
12 
13 class FENIMPlusInterface : public FEOtsUDPTemplateInterface
14 {
15  public:
16  FENIMPlusInterface(const std::string& interfaceUID,
17  const ConfigurationTree& theXDAQContextConfigree,
18  const std::string& interfaceConfigurationPath);
19  virtual ~FENIMPlusInterface(void);
20 
21  void configure(void) override;
22  void halt(void) override;
23  void pause(void) override;
24  void resume(void) override;
25  void start(std::string runNumber) override;
26  bool running(void) override;
27  void stop(void) override;
28 
29  void changeDACLevel(const std::string& channelName, unsigned int value);
30 
32  // start declaration of FE Macros
33 
34  void FEMacroGenerateTriggers(__ARGS__);
35 
36  // end declaration of FE Macros
38 
39  private:
40  std::string runNumber_;
41  uint64_t sel_ctl_register_;
42 
43  // bitsets for enables and resets
44  std::bitset<16> nimResets_, nimEnables_;
45 };
46 }
47 
48 #endif