QXRD  0.11.16
qxrdsynchronizedacquisitiondialog.cpp
Go to the documentation of this file.
3 #include "ui_qxrdsynchronizedacquisitiondialog.h"
5 #include "qxrdacquisition.h"
6 #include "qxrddebug.h"
8 
11  QWidget *parent,
12  QxrdAcquisitionWPtr acqw) :
13 
14  QDockWidget(parent),
15  m_DialogSettings(settings),
16  m_Acquisition(acqw),
18 {
20  printf("QxrdSynchronizedAcquisitionDialog::QxrdSynchronizedAcquisitionDialog(%p)\n", this);
21  }
22 
23  setupUi(this);
24 
26 
27  if (set) {
28  m_WaveformPlot->init(set->synchronizedAcquisitionPlotSettings());
29  }
30 
31  QxrdAcquisitionPtr acq(acqw);
32 
33  if (acq) {
34  m_SynchronizedAcquisition = acq->synchronizedAcquisition();
35 
36  m_SyncAcqMode -> addItem("None");
37  m_SyncAcqMode -> addItem("Stepped Output");
38  m_SyncAcqMode -> addItem("Continuous Output");
39 
40  m_SyncAcqWfm -> addItem("Square");
41  m_SyncAcqWfm -> addItem("Sine");
42  m_SyncAcqWfm -> addItem("Triangle");
43  m_SyncAcqWfm -> addItem("Sawtooth");
44  m_SyncAcqWfm -> addItem("Bipolar Triangle");
45 
46  m_SyncAcqMinimum -> setMinimum(-10.0);
47  m_SyncAcqMinimum -> setMaximum(10.0);
48  m_SyncAcqMinimum -> setSingleStep(0.1);
49 
50  m_SyncAcqMaximum -> setMinimum(-10.0);
51  m_SyncAcqMaximum -> setMaximum(10.0);
52  m_SyncAcqMaximum -> setSingleStep(0.1);
53 
54  m_SyncAcqSymmetry -> setMinimum(-1.0);
55  m_SyncAcqSymmetry -> setMaximum(1.0);
56  m_SyncAcqSymmetry -> setSingleStep(0.1);
57 
58  m_SyncAcqPhaseShift -> setMinimum(-100.0);
59  m_SyncAcqPhaseShift -> setMaximum(100.0);
60  m_SyncAcqPhaseShift -> setSingleStep(1);
61 
63 
64  if (sync) {
65  QxrdNIDAQPluginInterfacePtr nidaq = sync->nidaqPlugin();
66 
67  if (nidaq) {
68  QStringList devices = nidaq->deviceNames();
69 
70  foreach(QString device, devices) {
71  QString desc = nidaq->deviceType(device);
72  int isSim = nidaq->deviceIsSimulated(device);
73 
74  QString item = device+" : "+desc;
75 
76  if (isSim) {
77  item += " [simulated]";
78  }
79 
80  m_SyncAcqOutDevice->addItem(item, device);
81  }
82  }
83 
84  sync -> prop_SyncAcquisitionMode() -> linkTo(m_SyncAcqMode);
85  sync -> prop_SyncAcquisitionWaveform() -> linkTo(m_SyncAcqWfm);
86  sync -> prop_SyncAcquisitionOutputDevice() -> linkTo(m_SyncAcqOutDevice);
87  sync -> prop_SyncAcquisitionOutputChannel() -> linkTo(m_SyncAcqOutChan);
88 
89  sync -> prop_SyncAcquisitionMinimum() -> linkTo(m_SyncAcqMinimum);
90  sync -> prop_SyncAcquisitionMaximum() -> linkTo(m_SyncAcqMaximum);
91  sync -> prop_SyncAcquisitionSymmetry() -> linkTo(m_SyncAcqSymmetry);
92  sync -> prop_SyncAcquisitionPhaseShift() -> linkTo(m_SyncAcqPhaseShift);
93  sync -> prop_SyncAcquisitionManualValue() -> linkTo(m_ManualOutputVolts);
94 
95  connect(sync -> prop_SyncAcquisitionOutputDevice(), &QcepStringProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::deviceChanged);
96  connect(sync -> prop_SyncAcquisitionOutputChannel(), &QcepStringProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
97  connect(sync -> prop_SyncAcquisitionMode(), &QcepIntProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
98  connect(sync -> prop_SyncAcquisitionWaveform(), &QcepIntProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
99  connect(sync -> prop_SyncAcquisitionMinimum(), &QcepDoubleProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
100  connect(sync -> prop_SyncAcquisitionMaximum(), &QcepDoubleProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
101  connect(sync -> prop_SyncAcquisitionSymmetry(), &QcepDoubleProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
102  connect(sync -> prop_SyncAcquisitionPhaseShift(), &QcepDoubleProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
103 
104  connect(m_ManualOutput, &QAbstractButton::clicked, sync.data(), &QxrdSynchronizedAcquisition::setManualOutput);
105  connect(m_ManualTrigger, &QAbstractButton::clicked, sync.data(), &QxrdSynchronizedAcquisition::triggerOnce);
106  }
107 
109  connect(acq->prop_PhasesInGroup(), &QcepIntProperty::valueChanged, this, &QxrdSynchronizedAcquisitionDialog::waveformChanged);
110 
111  deviceChanged();
112  waveformChanged();
113  }
114 }
115 
117 {
119  printf("QxrdSynchronizedAcquisitionDialog::~QxrdSynchronizedAcquisitionDialog(%p)\n", this);
120  }
121 }
122 
124 {
125  QDockWidget::changeEvent(e);
126  switch (e->type()) {
127  case QEvent::LanguageChange:
128  retranslateUi(this);
129  break;
130  default:
131  break;
132  }
133 }
134 
136 {
138 
139  if (sync) {
140  QxrdNIDAQPluginInterfacePtr nidaq = sync->nidaqPlugin();
141 
142  if (nidaq) {
143  QStringList aoChannels = nidaq->deviceAOChannels(sync->get_SyncAcquisitionOutputDevice());
144 
145  bool blocked = m_SyncAcqOutChan->blockSignals(true);
146  m_SyncAcqOutChan->clear();
147 
148  foreach(QString chan, aoChannels) {
149  m_SyncAcqOutChan->addItem(chan, chan);
150  }
151 
152  m_SyncAcqOutChan->blockSignals(blocked);
153  }
154  }
155 }
156 
158 {
161 
162  if (acq && sync) {
163  QxrdAcquisitionParameterPackPtr parms(acq->acquisitionParameterPack());
164 
165  if (parms) {
166  sync->prepareForAcquisition(parms);
167 
168  m_WaveformPlot->detachItems(QwtPlotItem::Rtti_PlotCurve);
169  m_WaveformPlot->detachItems(QwtPlotItem::Rtti_PlotMarker);
170 
171  if (sync -> get_SyncAcquisitionMode() && (parms->nphases() >= 1)) {
172  QwtPlotCurve *pc = new QwtPlotPiecewiseCurve(m_WaveformPlot, "Output Waveform");
173 
174  pc->setSamples(sync->outputTimes(), sync->outputVoltage());
175 
176  pc->attach(m_WaveformPlot);
177  }
178 
179  m_WaveformPlot->updateZoomer();
180  m_WaveformPlot->replot();
181 
182  sync->finishedAcquisition();
183  }
184  }
185 }
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
void valueChanged(QString val, int index)
QSharedPointer< QxrdAcquisition > QxrdAcquisitionPtr
QxrdSynchronizedAcquisitionDialog(QxrdSynchronizedAcquisitionDialogSettingsWPtr settings, QWidget *parent, QxrdAcquisitionWPtr acq)
QWeakPointer< QxrdSynchronizedAcquisitionDialogSettings > QxrdSynchronizedAcquisitionDialogSettingsWPtr
QSharedPointer< QxrdSynchronizedAcquisition > QxrdSynchronizedAcquisitionPtr
A class which draws piecewise curves.
QxrdSynchronizedAcquisitionWPtr m_SynchronizedAcquisition
QxrdSynchronizedAcquisitionDialogSettingsWPtr m_DialogSettings
QSharedPointer< QxrdNIDAQPluginInterface > QxrdNIDAQPluginInterfacePtr
QWeakPointer< QxrdAcquisition > QxrdAcquisitionWPtr
QSharedPointer< QxrdSynchronizedAcquisitionDialogSettings > QxrdSynchronizedAcquisitionDialogSettingsPtr
void valueChanged(double val, int index)
QSharedPointer< QxrdAcquisitionParameterPack > QxrdAcquisitionParameterPackPtr
void valueChanged(int val, int index)