My Project
evgInput.h
1 #ifndef EVG_INPUT_H
2 #define EVG_INPUT_H
3 
4 #include <iostream>
5 #include <string>
6 #include <map>
7 
8 #include <epicsTypes.h>
9 #include "mrf/object.h"
10 #include <dbScan.h>
11 
12 
13 enum InputType {
14  NoneInp = 0,
15  FrontInp,
16  UnivInp,
17  RearInp
18 };
19 
20 class evgInput : public mrf::ObjectInst<evgInput> {
21 public:
22  evgInput(const std::string&, const epicsUInt32, const InputType,
23  volatile epicsUInt8* const);
24  ~evgInput();
25 
26  /* locking done internally */
27  virtual void lock() const{};
28  virtual void unlock() const{};
29 
30  epicsUInt32 getNum() const;
31  InputType getType() const;
32 
33  void setExtIrq(bool);
34  bool getExtIrq() const;
35 
36  void setHwMask(epicsUInt32);
37  epicsUInt32 getHwMask() const;
38 
39  void setDbusMap(epicsUInt16, bool);
40  bool getDbusMap(epicsUInt16) const;
41 
42  void setSeqTrigMap(epicsUInt32);
43  epicsUInt32 getSeqTrigMap() const;
44 
45  void setMxcReset(bool);
46  bool getMxcReset() const;
47 
48  void setTrigEvtMap(epicsUInt16, bool);
49  bool getTrigEvtMap(epicsUInt16) const;
50 
51  IOSCANPVT stateChange() const { return changed; }
52 
53 private:
54  const epicsUInt32 m_num;
55  const InputType m_type;
56  volatile epicsUInt8* const m_pInReg;
57  IOSCANPVT changed;
58 };
59 #endif //EVG_INPUT_H
User implementation hook.
Definition: object.h:460