mrfioc2  2.3.0
Public Types | Public Member Functions | List of all members
EVR Class Referenceabstract

Base interface for EVRs. More...

#include <evr.h>

Inheritance diagram for EVR:
Inheritance graph
[legend]
Collaboration diagram for EVR:
Collaboration graph
[legend]

Public Types

typedef void(* eventCallback) (void *userarg, epicsUInt32 event)
 
- Public Types inherited from mrf::Object
typedef m_obj_children_t::const_iterator child_iterator
 
typedef std::map< std::string, std::string > create_args_t
 
typedef Object *(* create_factory_t) (const std::string &name, const std::string &klass, const create_args_t &args)
 

Public Member Functions

 EVR (const std::string &n, bus_configuration &busConfig)
 
virtual ~EVR ()=0
 
virtual std::string model () const =0
 Hardware model. More...
 
virtual MRFVersion version () const =0
 Firmware Version. More...
 
std::string versionStr () const
 
virtual std::string versionSw () const
 Software Version. More...
 
virtual std::string position () const
 Position of EVR device in enclosure. More...
 
bus_configurationgetBusConfiguration ()
 
virtual bool enabled () const =0
 
virtual void enable (bool)=0
 
virtual bool mappedOutputState () const =0
 
virtual bool specialMapped (epicsUInt32 code, epicsUInt32 func) const =0
 
virtual void specialSetMap (epicsUInt32 code, epicsUInt32 func, bool set)=0
 
virtual double clock () const =0
 
virtual void clockSet (double clk)=0
 
virtual bool pllLocked () const =0
 Internal PLL Status. More...
 
virtual epicsUInt32 uSecDiv () const =0
 Approximate divider from event clock period to 1us. More...
 
virtual bool extInhib () const =0
 Using external hardware input for inhibit? More...
 
virtual void setExtInhib (bool)=0
 
virtual void setSourceTS (TSSource)=0
 Select source which increments TS counter. More...
 
virtual TSSource SourceTS () const =0
 
virtual double clockTS () const =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. More...
 
virtual bool interestedInEvent (epicsUInt32 event, bool set)=0
 
virtual bool TimeStampValid () const =0
 
virtual IOSCANPVT TimeStampValidEvent () const =0
 
virtual bool getTimeStamp (epicsTimeStamp *ts, epicsUInt32 event)=0
 
virtual bool getTicks (epicsUInt32 *tks)=0
 
virtual IOSCANPVT eventOccurred (epicsUInt32 event) const =0
 
virtual void eventNotifyAdd (epicsUInt32 event, eventCallback, void *)=0
 
virtual void eventNotifyDel (epicsUInt32 event, eventCallback, void *)=0
 
virtual epicsUInt32 irqCount () const =0
 
virtual bool linkStatus () const =0
 
virtual IOSCANPVT linkChanged () const =0
 
virtual epicsUInt32 recvErrorCount () const =0
 
virtual epicsUInt16 dbus () const =0
 
virtual epicsUInt32 heartbeatTIMOCount () const =0
 
virtual IOSCANPVT heartbeatTIMOOccured () const =0
 
virtual epicsUInt32 FIFOFullCount () const =0
 
virtual epicsUInt32 FIFOOverRate () const =0
 
virtual epicsUInt32 FIFOEvtCount () const =0
 
virtual epicsUInt32 FIFOLoopCount () const =0
 
void setSourceTSraw (epicsUInt32 r)
 
epicsUInt32 SourceTSraw () const
 
- Public Member Functions inherited from mrf::ObjectInst< EVR >
virtual propertyBasegetPropertyBase (const char *pname, const std::type_info &ptype)
 
virtual void visitProperties (bool(*cb)(propertyBase *, void *), void *arg)
 
- Public Member Functions inherited from mrf::Object
const std::string & name () const
 
const Objectparent () const
 
virtual void lock () const =0
 
virtual void unlock () const =0
 
child_iterator beginChild () const
 
child_iterator endChild () const
 
template<typename P >
mrf::auto_ptr< property< P > > getProperty (const char *pname)
 

Additional Inherited Members

- Static Public Member Functions inherited from mrf::ObjectInst< EVR >
static int initObject ()
 
- Static Public Member Functions inherited from mrf::Object
static ObjectgetObject (const std::string &name)
 
static ObjectgetCreateObject (const std::string &name, const std::string &klass, const create_args_t &args=create_args_t())
 
static void addFactory (const std::string &klass, create_factory_t fn)
 
static void visitObjects (bool(*)(Object *, void *), void *)
 
- Protected Member Functions inherited from mrf::ObjectInst< EVR >
 ObjectInst (const std::string &n)
 
 ObjectInst (const std::string &n, A a)
 
virtual ~ObjectInst ()
 
- Protected Member Functions inherited from mrf::Object
 Object (const std::string &n, const Object *par=0)
 
virtual ~Object ()=0
 

Detailed Description

Base interface for EVRs.

This is the interface which the generic EVR device support will use to interact with an EVR.

Device support can use one of the functions returning IOSCANPVT to impliment get_ioint_info().

Definition at line 45 of file evr.h.

Constructor & Destructor Documentation

◆ EVR()

EVR::EVR ( const std::string &  n,
bus_configuration busConfig 
)
inline

Definition at line 48 of file evr.h.

48 : mrf::ObjectInst<EVR>(n), busConfiguration(busConfig) {}

◆ ~EVR()

EVR::~EVR ( )
pure virtual

Definition at line 34 of file evr.cpp.

35 {
36 }

Member Function Documentation

◆ dbus()

virtual epicsUInt16 EVR::dbus ( ) const
pure virtual

Implemented in EVRMRM.

◆ extInhib()

virtual bool EVR::extInhib ( ) const
pure virtual

Using external hardware input for inhibit?

Implemented in EVRMRM.

◆ FIFOEvtCount()

virtual epicsUInt32 EVR::FIFOEvtCount ( ) const
pure virtual

Implemented in EVRMRM.

◆ FIFOFullCount()

virtual epicsUInt32 EVR::FIFOFullCount ( ) const
pure virtual

Implemented in EVRMRM.

◆ FIFOLoopCount()

virtual epicsUInt32 EVR::FIFOLoopCount ( ) const
pure virtual

Implemented in EVRMRM.

◆ FIFOOverRate()

virtual epicsUInt32 EVR::FIFOOverRate ( ) const
pure virtual

Implemented in EVRMRM.

◆ getBusConfiguration()

bus_configuration * EVR::getBusConfiguration ( )

Definition at line 49 of file evr.cpp.

49  {
50  return &busConfiguration;
51 }

◆ heartbeatTIMOCount()

virtual epicsUInt32 EVR::heartbeatTIMOCount ( ) const
pure virtual

Implemented in EVRMRM.

◆ heartbeatTIMOOccured()

virtual IOSCANPVT EVR::heartbeatTIMOOccured ( ) const
pure virtual

Implemented in EVRMRM.

◆ irqCount()

virtual epicsUInt32 EVR::irqCount ( ) const
pure virtual

Implemented in EVRMRM.

◆ mappedOutputState()

virtual bool EVR::mappedOutputState ( ) const
pure virtual

Implemented in EVRMRM.

◆ model()

virtual std::string EVR::model ( ) const
pure virtual

Hardware model.

Implemented in EVRMRM.

◆ position()

std::string EVR::position ( ) const
virtual

Position of EVR device in enclosure.

Definition at line 53 of file evr.cpp.

54 {
55  std::ostringstream position;
56 
57  if(busConfiguration.busType == busType_pci) {
58  position << std::hex << busConfiguration.pci.dev->bus << ":"
59  << std::hex << busConfiguration.pci.dev->device << "."
60  << std::hex << busConfiguration.pci.dev->function;
61  if(busConfiguration.pci.dev->slot)
62  position << " slot=" << busConfiguration.pci.dev->slot;
63  } else if(busConfiguration.busType == busType_vme) {
64  position << "Slot #" << busConfiguration.vme.slot;
65  } else {
66  position << "Unknown position";
67  }
68 
69  return position.str();
70 }
struct configuration_vme vme
enum busType busType
virtual std::string position() const
Position of EVR device in enclosure.
Definition: evr.cpp:53
struct configuration_pci pci
const epicsPCIDevice * dev

◆ setExtInhib()

virtual void EVR::setExtInhib ( bool  )
pure virtual

Implemented in EVRMRM.

◆ specialMapped()

virtual bool EVR::specialMapped ( epicsUInt32  code,
epicsUInt32  func 
) const
pure virtual

Hook to handle general event mapping table manipulation. Allows 'special' events only (ie heartbeat, log, led, etc) Normal mappings (pulsers, outputs) must be made through the appropriate class (Pulser, Output).

Note: this is one place where Device Support will have some depth.

Implemented in EVRMRM.

◆ specialSetMap()

virtual void EVR::specialSetMap ( epicsUInt32  code,
epicsUInt32  func,
bool  set 
)
pure virtual

Implemented in EVRMRM.

◆ version()

virtual MRFVersion EVR::version ( ) const
pure virtual

Firmware Version.

Implemented in EVRMRM.

◆ versionStr()

std::string EVR::versionStr ( ) const

Definition at line 38 of file evr.cpp.

39 {
40  return version().str();
41 }
virtual MRFVersion version() const =0
Firmware Version.

◆ versionSw()

std::string EVR::versionSw ( ) const
virtual

Software Version.

Definition at line 43 of file evr.cpp.

44 {
45  return MRF_VERSION;
46 }
#define MRF_VERSION

The documentation for this class was generated from the following files: