mrfioc2  2.3.0
fct.h
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2018 Michael Davidsaver
3 * mrfioc2 is distributed subject to a Software License Agreement found
4 * in file LICENSE that is included with this distribution.
5 \*************************************************************************/
6 
7 #ifndef EVG_FCT_H
8 #define EVG_FCT_H
9 
10 #include <vector>
11 
12 #include "mrfCommon.h"
13 #include "mrf/object.h"
14 
15 class evgMrm;
16 class SFP;
17 
18 // Fanout/ConcenTrator
19 class FCT : public mrf::ObjectInst<FCT>
20 {
21  evgMrm *evg;
22  volatile epicsUInt8* const base;
23  std::vector<SFP*> sfp;
24 public:
25  FCT(evgMrm *evg, const std::string& id, volatile epicsUInt8* const base);
26  virtual ~FCT();
27 
28  virtual void lock() const OVERRIDE FINAL {}
29  virtual void unlock() const OVERRIDE FINAL {}
30 
31  epicsUInt16 statusRaw() const;
32  double dcUpstream() const;
33  double dcFIFO() const;
34  double dcInternal() const;
35 
36  epicsUInt32 topoId() const;
37 
38  double dcPortN(unsigned port) const;
39 
40  template<int port>
41  double dcPort() const {
42  return dcPortN(port);
43  }
44 };
45 
46 #endif // EVG_FCT_H
epicsUInt16 statusRaw() const
Definition: fct.cpp:36
virtual ~FCT()
Definition: fct.cpp:34
double dcInternal() const
Definition: fct.cpp:56
double dcFIFO() const
Definition: fct.cpp:50
Definition: fct.h:19
double dcUpstream() const
Definition: fct.cpp:44
virtual void unlock() const OVERRIDE FINAL
Definition: fct.h:29
double dcPortN(unsigned port) const
Definition: fct.cpp:67
User implementation hook.
Definition: object.h:459
double dcPort() const
Definition: fct.h:41
virtual void lock() const OVERRIDE FINAL
Definition: fct.h:28
FCT(evgMrm *evg, const std::string &id, volatile epicsUInt8 *const base)
Definition: fct.cpp:21
Definition: sfp.h:16
epicsUInt32 topoId() const
Definition: fct.cpp:62
Definition: evgMrm.h:56