qmca  0.0.20
epicspulseanalyser.cpp
Go to the documentation of this file.
1 #include "epicspulseanalyser.h"
2 
3 EpicsPulseAnalyser::EpicsPulseAnalyser(QString pvName, QObject *parent)
4  : EpicsString(pvName+QString("STATUS"), parent),
5  m_ChannelCount(3),
6  m_Enabled(pvName+"SCA_ENABLE"),
7  m_Selected(pvName+"TCA_SELECT")
8 {
9  for (int i = 1; i <= m_ChannelCount; i++) {
10  m_LowerLevels.append(new EpicsDouble(pvName+QString("SCA%1_LOW").arg(i)));
11  m_UpperLevels.append(new EpicsDouble(pvName+QString("SCA%1_HI").arg(i)));
12  m_Gated.append(new EpicsInteger(pvName+QString("SCA%1_GATE").arg(i)));
13  }
14 }
15 
17 {
18  while (!m_LowerLevels.isEmpty()) {
19  delete m_LowerLevels.takeFirst();
20  }
21 
22  while (!m_UpperLevels.isEmpty()) {
23  delete m_UpperLevels.takeFirst();
24  }
25 
26  while (!m_Gated.isEmpty()) {
27  delete m_Gated.takeFirst();
28  }
29 }
30 
31 void EpicsPulseAnalyser::setLowerLevel(int chan, double lowerlevel)
32 {
33  EpicsDouble *l = lowerLevel(chan);
34 
35  if (l) {
36  l -> caput(lowerlevel);
37  }
38 }
39 
40 void EpicsPulseAnalyser::setUpperLevel(int chan, double upperlevel)
41 {
42  EpicsDouble *u = upperLevel(chan);
43 
44  if (u) {
45  u -> caput(upperlevel);
46  }
47 }
48 
50 {
51  m_Enabled.caput(enbl);
52 }
53 
55 {
56  m_Selected.caput(slct);
57 }
58 
59 void EpicsPulseAnalyser::setGated(int chan, int gtd)
60 {
61  EpicsInteger* g = gated(chan);
62 
63  if (g) {
64  g -> caput(gtd);
65  }
66 }
67 
69 {
70  return m_ChannelCount;
71 }
72 
74 {
75  return m_LowerLevels.value(chan);
76 }
77 
79 {
80  return m_UpperLevels.value(chan);
81 }
82 
84 {
85  return &m_Enabled;
86 }
87 
89 {
90  return &m_Selected;
91 }
92 
94 {
95  return m_Gated.value(chan);
96 }
void setSelected(int slct)
EpicsInteger * gated(int chan)
QList< EpicsDouble * > m_LowerLevels
EpicsDouble * upperLevel(int chan)
EpicsDouble * lowerLevel(int chan)
EpicsInteger * enabled()
void setLowerLevel(int chan, double lowerlevel)
void setGated(int chan, int gtd)
void caput(int val)
EpicsPulseAnalyser(QString pvName, QObject *parent=0)
EpicsInteger * selected()
void caput(QString val)
Definition: epicsstring.cpp:71
QList< EpicsDouble * > m_UpperLevels
void setUpperLevel(int chan, double upperlevel)
void setEnabled(int enbl)
QList< EpicsInteger * > m_Gated