15 #include <epicsTypes.h>
16 #include <epicsTime.h>
20 #include "evr/output.h"
21 #include "mrf/object.h"
23 #include "configurationInfo.h"
48 EVR(
const std::string& n, bus_configuration& busConfig) :
mrf::ObjectInst<EVR>(n), busConfiguration(busConfig) {}
53 virtual std::string
model()
const=0;
57 std::string versionStr()
const;
59 virtual std::string versionSw()
const;
60 virtual std::string getCommitHash()
const;
63 virtual std::string position()
const;
64 bus_configuration* getBusConfiguration();
69 virtual bool enabled()
const=0;
70 virtual void enable(
bool)=0;
73 virtual bool mappedOutputState()
const=0;
83 virtual void specialSetMap(epicsUInt32 code, epicsUInt32 func,
bool set)=0;
110 virtual void setExtInhib(
bool)=0;
119 virtual TSSource SourceTS()
const=0;
131 virtual epicsUInt32
tsDiv()
const=0;
139 virtual bool TimeStampValid()
const=0;
140 virtual IOSCANPVT TimeStampValidEvent()
const=0;
157 virtual IOSCANPVT eventOccurred(epicsUInt32 event)
const=0;
159 typedef void (*eventCallback)(
void* userarg, epicsUInt32 event);
160 virtual void eventNotifyAdd(epicsUInt32 event, eventCallback,
void*)=0;
161 virtual void eventNotifyDel(epicsUInt32 event, eventCallback,
void*)=0;
164 virtual epicsUInt32 irqCount()
const=0;
169 virtual bool linkStatus()
const=0;
170 virtual IOSCANPVT linkChanged()
const=0;
171 virtual epicsUInt32 recvErrorCount()
const=0;
174 virtual epicsUInt16 dbus()
const=0;
176 virtual epicsUInt32 heartbeatTIMOCount()
const=0;
177 virtual IOSCANPVT heartbeatTIMOOccured()
const=0;
179 virtual epicsUInt32 FIFOFullCount()
const=0;
180 virtual epicsUInt32 FIFOOverRate()
const=0;
181 virtual epicsUInt32 FIFOEvtCount()
const=0;
182 virtual epicsUInt32 FIFOLoopCount()
const=0;
190 void setSourceTSraw(epicsUInt32 r){setSourceTS((TSSource)r);};
191 epicsUInt32 SourceTSraw()
const{
return (TSSource)SourceTS();};
200 virtual epicsUTag getUtag(
const epicsUInt32 event)
const {
return 0;};
201 virtual void setUtag(epicsUTag tag,
const epicsUInt32 event) {};
206 bus_configuration busConfiguration;
Base interface for EVRs.
Definition: evr.h:46
virtual bool pllLocked() const =0
Internal PLL Status.
virtual double clock() const =0
virtual epicsUInt32 uSecDiv() const =0
Approximate divider from event clock period to 1us.
virtual bool getTimeStamp(epicsTimeStamp *ts, epicsUInt32 event)=0
virtual std::string model() const =0
Hardware model.
virtual bool specialMapped(epicsUInt32 code, epicsUInt32 func) const =0
virtual void clockSet(double clk)=0
virtual void clockTSSet(double)=0
virtual epicsUInt32 tsDiv() const =0
When using internal TS source gives the divider from event clock period to TS period.
virtual bool getTicks(epicsUInt32 *tks)=0
virtual MRFVersion version() const =0
Firmware Version.
virtual bool extInhib() const =0
Using external hardware input for inhibit?
virtual bool interestedInEvent(epicsUInt32 event, bool set)=0
virtual void setSourceTS(TSSource)=0
Select source which increments TS counter.
virtual double clockTS() const =0
A programmable delay unit.
Definition: pulser.h:40
User implementation hook.
Definition: object.h:460