mrfioc2  2.3.0
Public Member Functions | Public Attributes | List of all members
SeqHW Struct Reference
Collaboration diagram for SeqHW:
Collaboration graph
[legend]

Public Member Functions

 SeqHW (SeqManager *o, unsigned i, volatile void *ctrl, volatile void *ram)
 
void arm ()
 
bool disarm ()
 

Public Attributes

SeqManager *const owner
 
const unsigned idx
 
volatile void *const ctrlreg
 
volatile void *const *const rambase
 
SoftSequenceloaded
 current association. may be NULL More...
 
bool running
 between SoS and EoS More...
 
epicsUInt32 ctrlreg_user
 user requested (based on commited sequence) More...
 
epicsUInt32 ctrlreg_hw
 current in HW. either same as _user or trigger disabled More...
 

Detailed Description

Definition at line 56 of file mrmSeq.cpp.

Constructor & Destructor Documentation

◆ SeqHW()

SeqHW::SeqHW ( SeqManager o,
unsigned  i,
volatile void *  ctrl,
volatile void *  ram 
)
inline

Definition at line 73 of file mrmSeq.cpp.

77  :owner(o)
78  ,idx(i)
79  ,ctrlreg(ctrl)
80  ,rambase(ram)
81  ,loaded(0)
82  ,running(false)
83  ,ctrlreg_user(0u)
84  ,ctrlreg_hw(0u)
85  {
86  switch(owner->type) {
88  ctrlreg_user |= 31;
89  break;
91  ctrlreg_user |= 63;
92  break;
93  default:
94  return;
95  }
97 
99  }
const Type type
Definition: mrmSeq.h:36
#define EVG_SEQ_RAM_RESET
Definition: mrmSeq.cpp:28
INLINE void nat_iowrite32(volatile void *addr, epicsUInt32 val)
Definition: mrfIoOpsDef.h:55
SeqManager *const owner
Definition: mrmSeq.cpp:58
bool running
between SoS and EoS
Definition: mrmSeq.cpp:68
volatile void *const ctrlreg
Definition: mrmSeq.cpp:60
volatile void *const *const rambase
Definition: mrmSeq.cpp:60
const unsigned idx
Definition: mrmSeq.cpp:59
SoftSequence * loaded
current association. may be NULL
Definition: mrmSeq.cpp:66
epicsUInt32 ctrlreg_hw
current in HW. either same as _user or trigger disabled
Definition: mrmSeq.cpp:70
epicsUInt32 ctrlreg_user
user requested (based on commited sequence)
Definition: mrmSeq.cpp:70

Member Function Documentation

◆ arm()

void SeqHW::arm ( )
inline

Definition at line 102 of file mrmSeq.cpp.

103  {
106  }
INLINE void nat_iowrite32(volatile void *addr, epicsUInt32 val)
Definition: mrfIoOpsDef.h:55
#define EVG_SEQ_RAM_ARM
Definition: mrmSeq.cpp:30
volatile void *const ctrlreg
Definition: mrmSeq.cpp:60
epicsUInt32 ctrlreg_hw
current in HW. either same as _user or trigger disabled
Definition: mrmSeq.cpp:70
epicsUInt32 ctrlreg_user
user requested (based on commited sequence)
Definition: mrmSeq.cpp:70

◆ disarm()

bool SeqHW::disarm ( )
inline

Definition at line 109 of file mrmSeq.cpp.

110  {
111 
112  // EVG_SEQ_RAM_DISABLE is really "stop"
113  // to avoid aborting a potentially running sequencer, switch the trigger source to disable
114 
116 
117  switch(owner->type) {
118  case SeqManager::TypeEVG:
119  ctrlreg_hw |= 31;
120  break;
121  case SeqManager::TypeEVR:
122  ctrlreg_hw |= 63;
123  break;
124  }
125 
127  bool isrun = nat_ioread32(ctrlreg) & EVG_SEQ_RAM_RUNNING;
128 
129  return isrun;
130  }
const Type type
Definition: mrmSeq.h:36
INLINE void nat_iowrite32(volatile void *addr, epicsUInt32 val)
Definition: mrfIoOpsDef.h:55
#define EVG_SEQ_RAM_RUNNING
Definition: mrmSeq.cpp:23
INLINE epicsUInt32 nat_ioread32(volatile void *addr)
Definition: mrfIoOpsDef.h:48
SeqManager *const owner
Definition: mrmSeq.cpp:58
#define EVG_SEQ_RAM_SRC_MASK
Definition: mrmSeq.cpp:38
volatile void *const ctrlreg
Definition: mrmSeq.cpp:60
epicsUInt32 ctrlreg_hw
current in HW. either same as _user or trigger disabled
Definition: mrmSeq.cpp:70

Member Data Documentation

◆ ctrlreg

volatile void* const SeqHW::ctrlreg

Definition at line 60 of file mrmSeq.cpp.

◆ ctrlreg_hw

epicsUInt32 SeqHW::ctrlreg_hw

current in HW. either same as _user or trigger disabled

Definition at line 70 of file mrmSeq.cpp.

◆ ctrlreg_user

epicsUInt32 SeqHW::ctrlreg_user

user requested (based on commited sequence)

Definition at line 70 of file mrmSeq.cpp.

◆ idx

const unsigned SeqHW::idx

Definition at line 59 of file mrmSeq.cpp.

◆ loaded

SoftSequence* SeqHW::loaded

current association. may be NULL

Definition at line 66 of file mrmSeq.cpp.

◆ owner

SeqManager* const SeqHW::owner

Definition at line 58 of file mrmSeq.cpp.

◆ rambase

volatile void* const * const SeqHW::rambase

Definition at line 60 of file mrmSeq.cpp.

◆ running

bool SeqHW::running

between SoS and EoS

Definition at line 68 of file mrmSeq.cpp.


The documentation for this struct was generated from the following file: