tdaq-develop-2025-02-12
FrontEndFirmwareBase.h
1 #ifndef _ots_FrontEndFirmwareBase_h_
2 #define _ots_FrontEndFirmwareBase_h_
3 
4 #include <iostream>
5 #include <string>
6 #include <vector>
7 #include "otsdaq/Macros/CoutMacros.h"
8 #include "otsdaq/MessageFacility/MessageFacility.h"
9 
10 namespace ots
11 {
13 {
14  public:
18  FrontEndFirmwareBase(unsigned int version = -1) : version_(version) { ; }
19  virtual ~FrontEndFirmwareBase(void) { ; }
20  virtual void init(void) { ; }
21 
22  unsigned int getVersion() { return version_; }
23 
29  virtual std::string read(char* /*address*/)
30  {
31  __SS__;
32  __THROW__(ss.str() + "Illegal call to undefined base class member function");
33  return "";
34  };
35  virtual void read(std::string& /*buffer*/,
36  char* /*address*/,
37  bool /*clearBuffer*/ = true)
38  {
39  __SS__;
40  __THROW__(ss.str() + "Illegal call to undefined base class member function");
41  return;
42  };
43  virtual void read(std::string& /*buffer*/,
44  uint64_t /*address*/,
45  bool /*clearBuffer*/ = true)
46  {
47  __SS__;
48  __THROW__(ss.str() + "Illegal call to undefined base class member function");
49  return;
50  };
51  virtual void read(std::string& /*buffer*/,
52  uint32_t /*address*/,
53  bool /*clearBuffer*/ = true)
54  {
55  __SS__;
56  __THROW__(ss.str() + "Illegal call to undefined base class member function");
57  return;
58  };
59 
60  virtual std::string write(char* /*address*/, char* /*data*/)
61  {
62  __SS__;
63  __THROW__(ss.str() + "Illegal call to undefined base class member function");
64  return "";
65  };
66  virtual void write(std::string& /*buffer*/,
67  char* /*address*/,
68  char* /*data*/,
69  bool /*clearBuffer*/ = true)
70  {
71  __SS__;
72  __THROW__(ss.str() + "Illegal call to undefined base class member function");
73  return;
74  };
75 
76  virtual void setDataDestination(std::string& /*buffer*/,
77  const std::string& /*ip*/,
78  const uint16_t /*port*/,
79  bool /*clearBuffer*/ = true)
80  {
81  __SS__;
82  __THROW__(ss.str() + "Illegal call to undefined base class member function");
83  return;
84  };
85  virtual void write(std::string& /*buffer*/,
86  uint64_t /*address*/,
87  uint64_t /*data*/,
88  bool /*clearBuffer*/ = true)
89  {
90  __SS__;
91  __THROW__(ss.str() + "Illegal call to undefined base class member function");
92  return;
93  };
94  virtual void write(std::string& /*buffer*/,
95  uint32_t /*address*/,
96  uint32_t /*data*/,
97  bool /*clearBuffer*/ = true)
98  {
99  __SS__;
100  __THROW__(ss.str() + "Illegal call to undefined base class member function");
101  return;
102  };
103  virtual void waitSet(std::string& /*buffer*/,
104  uint32_t /*address*/,
105  uint32_t /*data*/,
106  uint32_t /*timeout*/ = 255,
107  bool /*clearBuffer*/ = true)
108  {
109  __SS__;
110  __THROW__(ss.str() + "Illegal call to undefined base class member function");
111  return;
112  };
113  virtual void waitClear(std::string& /*buffer*/,
114  uint32_t /*address*/,
115  uint32_t /*data*/,
116  uint32_t /*timeout*/ = 255,
117  bool /*clearBuffer*/ = true)
118  {
119  __SS__;
120  __THROW__(ss.str() + "Illegal call to undefined base class member function");
121  return;
122  };
123  virtual unsigned int getNumberOfBufferedCommands(std::string& /*buffer*/)
124  {
125  __SS__;
126  __THROW__(ss.str() + "Illegal call to undefined base class member function");
127  return 0;
128  };
132  virtual uint32_t createRegisterFromValue(std::string& /*readBuffer*/,
133  std::string& /*receivedValue*/)
134  {
135  __SS__;
136  __THROW__(ss.str() + "Illegal call to undefined base class member function");
137  return 0;
138  };
170  /*these functions have to be in FirmwareBase because the FEWOtsGenericInterface wants
171  *to access them through a pointer to FirmwareBase. Might want to change how that
172  *works.
173  */
189  const unsigned int version_;
190 };
191 } // namespace ots
192 
193 #endif
virtual std::string read(char *)
virtual uint32_t createRegisterFromValue(std::string &, std::string &)
FrontEndFirmwareBase(unsigned int version=-1)