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

#include <evgAcTrig.h>

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

Public Member Functions

 evgAcTrig (const std::string &, volatile epicsUInt8 *const)
 
 ~evgAcTrig ()
 
virtual void lock () const
 
virtual void unlock () const
 
void setDivider (epicsUInt32)
 
epicsUInt32 getDivider () const
 
void setPhase (epicsFloat64)
 
epicsFloat64 getPhase () const
 
void setBypass (bool)
 
bool getBypass () const
 
void setSyncSrc (bool)
 
bool getSyncSrc () const
 
void setTrigEvtMap (epicsUInt16, bool)
 
epicsUInt32 getTrigEvtMap () const
 
- Public Member Functions inherited from mrf::ObjectInst< evgAcTrig >
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 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 mrf::ObjectInst< evgAcTrig >
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< evgAcTrig >
 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 7 of file evgAcTrig.h.

Constructor & Destructor Documentation

◆ evgAcTrig()

evgAcTrig::evgAcTrig ( const std::string &  name,
volatile epicsUInt8 * const  pReg 
)

Definition at line 18 of file evgAcTrig.cpp.

18  :
20 m_pReg(pReg) {
21 }
const std::string & name() const
Definition: object.h:393

◆ ~evgAcTrig()

evgAcTrig::~evgAcTrig ( )

Definition at line 23 of file evgAcTrig.cpp.

23  {
24 }

Member Function Documentation

◆ getBypass()

bool evgAcTrig::getBypass ( ) const

Definition at line 64 of file evgAcTrig.cpp.

64  {
65  return !!(READ32(m_pReg, AcTrigControl)&AcTrigControl_Bypass);
66 }
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
#define AcTrigControl_Bypass
Definition: evgRegMap.h:72

◆ getDivider()

epicsUInt32 evgAcTrig::getDivider ( ) const

Definition at line 36 of file evgAcTrig.cpp.

36  {
37  return (READ32(m_pReg, AcTrigControl)&AcTrigControl_Divider_MASK)>>AcTrigControl_Divider_SHIFT;
38 }
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
#define AcTrigControl_Divider_MASK
Definition: evgRegMap.h:73
#define AcTrigControl_Divider_SHIFT
Definition: evgRegMap.h:74

◆ getPhase()

epicsFloat64 evgAcTrig::getPhase ( ) const

Definition at line 51 of file evgAcTrig.cpp.

51  {
52  return (READ32(m_pReg, AcTrigControl)&AcTrigControl_Phase_MASK)>>AcTrigControl_Phase_SHIFT;
53 }
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
#define AcTrigControl_Phase_SHIFT
Definition: evgRegMap.h:76
#define AcTrigControl_Phase_MASK
Definition: evgRegMap.h:75

◆ getSyncSrc()

bool evgAcTrig::getSyncSrc ( ) const

Definition at line 78 of file evgAcTrig.cpp.

78  {
79  return !!(READ32(m_pReg, AcTrigControl)&AcTrigControl_Sync);
80 }
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
#define AcTrigControl_Sync
Definition: evgRegMap.h:71

◆ getTrigEvtMap()

epicsUInt32 evgAcTrig::getTrigEvtMap ( ) const

Definition at line 96 of file evgAcTrig.cpp.

96  {
97  return READ32(m_pReg, AcTrigMap)>>AcTrigMap_EvtSHIFT;
98 }
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
#define AcTrigMap_EvtSHIFT
Definition: evgRegMap.h:81

◆ lock()

virtual void evgAcTrig::lock ( ) const
inlinevirtual

Implements mrf::Object.

Definition at line 13 of file evgAcTrig.h.

13 {};

◆ setBypass()

void evgAcTrig::setBypass ( bool  byp)

Definition at line 56 of file evgAcTrig.cpp.

56  {
57  if(byp)
58  BITSET32(m_pReg, AcTrigControl, AcTrigControl_Bypass);
59  else
60  BITCLR32(m_pReg, AcTrigControl, AcTrigControl_Bypass);
61 }
#define BITSET32(base, offset, mask)
Definition: mrfCommonIO.h:124
#define BITCLR32(base, offset, mask)
Definition: mrfCommonIO.h:129
#define AcTrigControl_Bypass
Definition: evgRegMap.h:72

◆ setDivider()

void evgAcTrig::setDivider ( epicsUInt32  divider)

Definition at line 27 of file evgAcTrig.cpp.

27  {
28  if(divider > 255)
29  throw std::runtime_error("EVG AC Trigger divider out of range. Range: 0 - 255"); // 0: divide by 1, 1: divide by 2, ... 255: divide by 256
30 
31  epicsUInt32 temp = READ32(m_pReg, AcTrigControl)&~AcTrigControl_Divider_MASK;
32  WRITE32(m_pReg, AcTrigControl, temp|(divider<<AcTrigControl_Divider_SHIFT));
33 }
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
#define AcTrigControl_Divider_MASK
Definition: evgRegMap.h:73
#define AcTrigControl_Divider_SHIFT
Definition: evgRegMap.h:74
#define WRITE32(base, offset, value)
Definition: mrfCommonIO.h:119

◆ setPhase()

void evgAcTrig::setPhase ( epicsFloat64  phase)

Definition at line 41 of file evgAcTrig.cpp.

41  {
42  if(phase < 0 || phase > 25.5)
43  throw std::runtime_error("EVG AC Trigger phase out of range. Delay range 0 ms - 25.5 ms in 0.1 ms steps");
44  epicsUInt32 iphase = phase;
45 
46  epicsUInt32 temp = READ32(m_pReg, AcTrigControl)&~AcTrigControl_Phase_MASK;
47  WRITE32(m_pReg, AcTrigControl, temp|(iphase<<AcTrigControl_Phase_SHIFT));
48 }
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
#define AcTrigControl_Phase_SHIFT
Definition: evgRegMap.h:76
#define WRITE32(base, offset, value)
Definition: mrfCommonIO.h:119
#define AcTrigControl_Phase_MASK
Definition: evgRegMap.h:75

◆ setSyncSrc()

void evgAcTrig::setSyncSrc ( bool  syncSrc)

Definition at line 70 of file evgAcTrig.cpp.

70  {
71  if(syncSrc)
72  BITSET32(m_pReg, AcTrigControl, AcTrigControl_Sync);
73  else
74  BITCLR32(m_pReg, AcTrigControl, AcTrigControl_Sync);
75 }
#define BITSET32(base, offset, mask)
Definition: mrfCommonIO.h:124
#define AcTrigControl_Sync
Definition: evgRegMap.h:71
#define BITCLR32(base, offset, mask)
Definition: mrfCommonIO.h:129

◆ setTrigEvtMap()

void evgAcTrig::setTrigEvtMap ( epicsUInt16  trigEvt,
bool  ena 
)

Definition at line 83 of file evgAcTrig.cpp.

83  {
84  if(trigEvt > 7)
85  throw std::runtime_error("EVG Trig Event ID too large. Max : 7");
86 
87  epicsUInt32 mask = 1 << (trigEvt+AcTrigMap_EvtSHIFT);
88 
89  if(ena)
90  BITSET32(m_pReg, AcTrigMap, mask);
91  else
92  BITCLR32(m_pReg, AcTrigMap, mask);
93 }
#define BITSET32(base, offset, mask)
Definition: mrfCommonIO.h:124
#define BITCLR32(base, offset, mask)
Definition: mrfCommonIO.h:129
#define AcTrigMap_EvtSHIFT
Definition: evgRegMap.h:81

◆ unlock()

virtual void evgAcTrig::unlock ( ) const
inlinevirtual

Implements mrf::Object.

Definition at line 14 of file evgAcTrig.h.

14 {};

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