My Project
drvemInput.h
1 /*************************************************************************\
2 * Copyright (c) 2010 Brookhaven Science Associates, as Operator of
3 * Brookhaven National Laboratory.
4 * mrfioc2 is distributed subject to a Software License Agreement found
5 * in file LICENSE that is included with this distribution.
6 \*************************************************************************/
7 /*
8  * Author: Michael Davidsaver <mdavidsaver@gmail.com>
9  */
10 
11 #ifndef EVRMRMINPUT_H_INC
12 #define EVRMRMINPUT_H_INC
13 
14 #include <cstdlib>
15 #include "evr/input.h"
16 
24 class MRMInput : public Input
25 {
26 public:
27  MRMInput(const std::string& n, volatile unsigned char *, size_t);
28  virtual ~MRMInput(){};
29 
30  /* no locking needed */
31  virtual void lock() const OVERRIDE FINAL {};
32  virtual void unlock() const OVERRIDE FINAL {};
33 
34  virtual void dbusSet(epicsUInt16) OVERRIDE FINAL;
35  virtual epicsUInt16 dbus() const OVERRIDE FINAL;
36 
37  virtual void levelHighSet(bool) OVERRIDE FINAL;
38  virtual bool levelHigh() const OVERRIDE FINAL;
39 
40  virtual bool state() const OVERRIDE FINAL;
41 
42  virtual void edgeRiseSet(bool) OVERRIDE FINAL;
43  virtual bool edgeRise() const OVERRIDE FINAL;
44 
45  virtual void extModeSet(TrigMode) OVERRIDE FINAL;
46  virtual TrigMode extMode() const OVERRIDE FINAL;
47 
48  virtual void extEvtSet(epicsUInt32) OVERRIDE FINAL;
49  virtual epicsUInt32 extEvt() const OVERRIDE FINAL;
50 
51  virtual void backModeSet(TrigMode) OVERRIDE FINAL;
52  virtual TrigMode backMode() const OVERRIDE FINAL;
53 
54  virtual void backEvtSet(epicsUInt32) OVERRIDE FINAL;
55  virtual epicsUInt32 backEvt() const OVERRIDE FINAL;
56 
57 private:
58  volatile unsigned char * const base;
59  const size_t idx;
60 };
61 
62 
63 #endif // EVRMRMINPUT_H_INC
Definition: drvemInput.h:25