12 #ifndef EVRMRMPULSER_H_INC
13 #define EVRMRMPULSER_H_INC
15 #include <epicsMutex.h>
17 #include <evr/pulser.h>
28 MRMPulser(
const std::string& n, epicsUInt32,
EVRMRM&);
29 virtual ~MRMPulser(){};
31 virtual void lock() const OVERRIDE FINAL;
32 virtual
void unlock() const OVERRIDE FINAL;
34 virtual
bool enabled() const OVERRIDE FINAL;
35 virtual
void enable(
bool) OVERRIDE FINAL;
37 virtual
void softSet() OVERRIDE FINAL;
38 virtual
void softReset() OVERRIDE FINAL;
40 virtual
void setDelayRaw(epicsUInt32) OVERRIDE FINAL;
41 virtual
void setDelay(
double) OVERRIDE FINAL;
42 virtual epicsUInt32 delayRaw() const OVERRIDE FINAL;
43 virtual
double delay() const OVERRIDE FINAL;
45 virtual
void setWidthRaw(epicsUInt32) OVERRIDE FINAL;
46 virtual
void setWidth(
double) OVERRIDE FINAL;
47 virtual epicsUInt32 widthRaw() const OVERRIDE FINAL;
48 virtual
double width() const OVERRIDE FINAL;
50 virtual epicsUInt32 prescaler() const OVERRIDE FINAL;
51 virtual
void setPrescaler(epicsUInt32) OVERRIDE FINAL;
53 virtual epicsUInt32 psTrig() const OVERRIDE FINAL;
54 virtual
void setPSTrig(epicsUInt32) OVERRIDE FINAL;
56 virtual epicsUInt32 dbusTrig() const OVERRIDE FINAL;
57 virtual
void setDBusTrig(epicsUInt32) OVERRIDE FINAL;
59 virtual
bool polarityInvert() const OVERRIDE FINAL;
60 virtual
void setPolarityInvert(
bool) OVERRIDE FINAL;
62 epicsUInt32 enables() const;
63 void setEnables(epicsUInt32 inps);
64 epicsUInt32 masks() const;
65 void setMasks(epicsUInt32 inps);
67 virtual MapType::type mappedSource(epicsUInt32 src) const OVERRIDE FINAL;
68 virtual
void sourceSetMap(epicsUInt32 src,MapType::type action) OVERRIDE FINAL;
73 unsigned char mapped[256/8];
75 void _map(epicsUInt8 evt) { mapped[evt/8] |= 1<<(evt%8); }
76 void _unmap(epicsUInt8 evt) { mapped[evt/8] &= ~( 1<<(evt%8) );}
77 bool _ismap(epicsUInt8 evt)
const {
return (mapped[evt/8] & 1<<(evt%8)) != 0; }
Modular Register Map Event Receivers.
Definition: drvem.h:97
User implementation hook.
Definition: object.h:460