mrfioc2  2.3.0
Public Member Functions | List of all members
EvrSeqManager Class Reference

#include <mrmevrseq.h>

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

Public Member Functions

 EvrSeqManager (EVRMRM *owner)
 
virtual ~EvrSeqManager ()
 
virtual double getClkFreq () const
 
virtual void mapTriggerSrc (unsigned i, unsigned src)
 Called from ISR. More...
 
virtual epicsUInt32 testStartOfSeq ()
 Called from ISR. More...
 
- Public Member Functions inherited from SeqManager
 SeqManager (const std::string &name, Type t)
 
virtual ~SeqManager ()
 
virtual void lock () const OVERRIDE FINAL
 
virtual void unlock () const OVERRIDE FINAL
 
void doStartOfSequence (unsigned i)
 Call from ISR. More...
 
void doEndOfSequence (unsigned i)
 Call from ISR. More...
 
- Public Member Functions inherited from mrf::ObjectInst< SeqManager >
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
 
child_iterator beginChild () const
 
child_iterator endChild () const
 
template<typename P >
mrf::auto_ptr< property< P > > getProperty (const char *pname)
 

Additional Inherited Members

- Public Types inherited from SeqManager
enum  Type { TypeEVG, TypeEVR }
 
- 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)
 
- Static Public Member Functions inherited from SeqManager
static mrf::ObjectbuildSW (const std::string &name, const std::string &klass, const mrf::Object::create_args_t &args)
 
- Static Public Member Functions inherited from mrf::ObjectInst< SeqManager >
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 *)
 
- Public Attributes inherited from SeqManager
const Type type
 
- Protected Member Functions inherited from SeqManager
void addHW (unsigned i, volatile void *ctrl, volatile void *ram)
 
- Protected Member Functions inherited from mrf::ObjectInst< SeqManager >
 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

Definition at line 13 of file mrmevrseq.h.

Constructor & Destructor Documentation

◆ EvrSeqManager()

EvrSeqManager::EvrSeqManager ( EVRMRM owner)

Definition at line 24 of file mrmevrseq.cpp.

25  :SeqManager(owner->name()+":SEQMGR", TypeEVR)
26  ,owner(owner)
27 {
28  addHW(0, owner->base + U32_SeqControl(0) , owner->base + U32_SeqRamTS(0,0));
29 }
volatile unsigned char *const base
Definition: drvem.h:223
#define U32_SeqControl(n)
Definition: evgRegMap.h:142
#define U32_SeqRamTS(n, m)
Definition: evgRegMap.h:231
const std::string & name() const
Definition: object.h:393
void addHW(unsigned i, volatile void *ctrl, volatile void *ram)
Definition: mrmSeq.cpp:765
SeqManager(const std::string &name, Type t)
Definition: mrmSeq.cpp:687

◆ ~EvrSeqManager()

EvrSeqManager::~EvrSeqManager ( )
virtual

Definition at line 31 of file mrmevrseq.cpp.

31 {}

Member Function Documentation

◆ getClkFreq()

double EvrSeqManager::getClkFreq ( ) const
virtual

sub-class implement to provide scaling between time and frequency. Units of Hz called with a SoftSeq mutex held.

Implements SeqManager.

Definition at line 33 of file mrmevrseq.cpp.

34 {
35  return owner->clock();
36 }
virtual double clock() const OVERRIDE FINAL
Definition: drvem.h:141

◆ mapTriggerSrc()

void EvrSeqManager::mapTriggerSrc ( unsigned  i,
unsigned  src 
)
virtual

Called from ISR.

Implements SeqManager.

Definition at line 39 of file mrmevrseq.cpp.

40 {
41  assert(i==0);
42  if((src&0xff000000)!=0x02000000) {
43  DEBUG(0, ("EvrSeqManager::mapTriggerSrc unsupported %x\n", src));
44  return;
45  }
46 }
#define DEBUG(LVL, ARGS)
Definition: mrmevrseq.cpp:21

◆ testStartOfSeq()

epicsUInt32 EvrSeqManager::testStartOfSeq ( )
virtual

Called from ISR.

Implements SeqManager.

Definition at line 49 of file mrmevrseq.cpp.

50 {
51  // SoS for sequencer 0 is bit 8
52  return (NAT_READ32(owner->base, IRQFlag)>>8)&0x1;
53 }
volatile unsigned char *const base
Definition: drvem.h:223
#define NAT_READ32(base, offset)
Definition: mrfCommonIO.h:145
#define IRQFlag
Definition: mrf.h:106

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