My Project
fct.h
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  bool getDcUpMode() const;
36  void setDcUpMode(bool ena);
37  double getDcUpTarget() const;
38  void setDcUpTarget(double target);
39 
40  epicsUInt32 topoId() const;
41 
42  double dcPortN(unsigned port) const;
43 
44  template<int port>
45  double dcPort() const {
46  return dcPortN(port);
47  }
48 };
49 
50 #endif // EVG_FCT_H
User implementation hook.
Definition: object.h:460