mrfioc2  2.3.0
evgTrigEvt.cpp
Go to the documentation of this file.
1 #include "evgTrigEvt.h"
2 
3 #include <iostream>
4 #include <stdexcept>
5 
6 #include <errlog.h>
7 
8 #include <mrfCommonIO.h>
9 #include <mrfCommon.h>
10 
11 #include "evgRegMap.h"
12 
13 evgTrigEvt::evgTrigEvt(const std::string& name, const epicsUInt32 id,
14  volatile epicsUInt8* const pReg):
15 mrf::ObjectInst<evgTrigEvt>(name),
16 m_id(id),
17 m_pReg(pReg) {
18 }
19 
21 }
22 
23 epicsUInt32
25  epicsUInt32 temp = READ32(m_pReg, TrigEventCtrl(m_id));
27  return temp>>TrigEventCtrl_Code_SHIFT;
28 }
29 
30 void
31 evgTrigEvt::setEvtCode(epicsUInt32 evtCode) {
32  if(evtCode > 255)
33  throw std::runtime_error("Event Code out of range. Valid range: 0 - 255");
34 
35  if(evtCode!=0)
36  evtCode |= TrigEventCtrl_Ena;
37 
38  WRITE32(m_pReg, TrigEventCtrl(m_id), evtCode);
39 }
epicsUInt32 getEvtCode() const
Definition: evgTrigEvt.cpp:24
#define READ32(base, offset)
Definition: mrfCommonIO.h:114
evgTrigEvt(const std::string &, const epicsUInt32, volatile epicsUInt8 *const)
Definition: evgTrigEvt.cpp:13
#define TrigEventCtrl_Ena
Definition: evgRegMap.h:167
void setEvtCode(epicsUInt32)
Definition: evgTrigEvt.cpp:31
#define TrigEventCtrl_Code_MASK
Definition: evgRegMap.h:168
#define TrigEventCtrl_Code_SHIFT
Definition: evgRegMap.h:169
Definition: flash.cpp:23
#define WRITE32(base, offset, value)
Definition: mrfCommonIO.h:119