QXRD  0.11.16
qxrdacquisitionextrainputs.h
Go to the documentation of this file.
1 #ifndef QXRDACQUISITIONEXTRAINPUTS_H
2 #define QXRDACQUISITIONEXTRAINPUTS_H
3 
4 #include "qcepobject.h"
5 #include "qcepproperty.h"
7 #include "qxrdexperiment-ptr.h"
8 #include "qxrdacquisition-ptr.h"
11 #include "qcepimagedata.h"
12 #include "qcepimagedata-ptr.h"
15 #include <QSettings>
16 #include <QMutex>
18 
19 class QxrdAcquisitionExtraInputs : public QcepObject, public QEnableSharedFromThis<QxrdAcquisitionExtraInputs>
20 {
21  Q_OBJECT
22 public:
26  void initialize();
28 
29 public:
32 
33  void readSettings(QSettings *settings, QString section);
34  void writeSettings(QSettings *settings, QString section);
35 
36  void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const;
37  void criticalMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const;
38  void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const;
39 
40 signals:
41  void newDataAvailable();
42  void channelCountChanged();
43 
44 public slots:
46  void initiate();
47  void reinitiate();
48  void acquire();
50  void finish();
51  void timerDone();
52  void appendChannel(int ch = -1);
53  void removeChannel(int ch = -1);
54 
55  QVector<double> evaluateChannels();
56  double evaluateChannel(int ch);
57  QVector<double> readChannel(int ch);
58  QVector<double> readXChannel();
59  double averageChannel(int ch);
60  double sumChannel(int ch);
61  QVector<QxrdAcquisitionExtraInputsChannelPtr> channels() const;
63 
64 public:
65  Q_PROPERTY(bool enabled READ get_Enabled WRITE set_Enabled STORED false)
66  QCEP_BOOLEAN_PROPERTY(Enabled)
67 
68  Q_PROPERTY(bool skipping READ get_Skipping WRITE set_Skipping STORED false)
69  QCEP_BOOLEAN_PROPERTY(Skipping)
70 
71  Q_PROPERTY(double sampleRate READ get_SampleRate WRITE set_SampleRate)
72  QCEP_DOUBLE_PROPERTY(SampleRate)
73 
74  Q_PROPERTY(double acquireDelay READ get_AcquireDelay WRITE set_AcquireDelay)
75  QCEP_DOUBLE_PROPERTY(AcquireDelay)
76 
77  Q_PROPERTY(double exposureTime READ get_ExposureTime WRITE set_ExposureTime STORED false)
78  QCEP_DOUBLE_PROPERTY(ExposureTime)
79 
80  Q_PROPERTY(QString deviceName READ get_DeviceName WRITE set_DeviceName)
81  QCEP_STRING_PROPERTY(DeviceName)
82 
83 private:
84  mutable QMutex m_Mutex;
90  QVector< QVector<double> > m_ChannelData;
91 };
92 
93 #endif // QXRDACQUISITIONEXTRAINPUTS_H
void readSettings(QSettings *settings, QString section)
QxrdAcquisitionExtraInputsChannelPtr channel(int chan) const
QxrdAcquisitionExtraInputs(QcepSettingsSaverWPtr saver, QxrdExperimentWPtr doc, QxrdAcquisitionWPtr acq)
QVector< QxrdAcquisitionExtraInputsChannelPtr > m_Channels
QxrdNIDAQPluginInterfacePtr nidaqPlugin() const
#define QCEP_DOUBLE_PROPERTY(propname)
Definition: qcepproperty.h:629
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
void setNIDAQPlugin(QxrdNIDAQPluginInterfacePtr nidaqPlugin)
void writeSettings(QSettings *settings, QString section)
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
void logToImage(QcepInt16ImageDataPtr img)
QVector< double > readChannel(int ch)
QSharedPointer< QxrdAcquisitionExtraInputsChannel > QxrdAcquisitionExtraInputsChannelPtr
void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
#define QCEP_STRING_PROPERTY(propname)
Definition: qcepproperty.h:664
QxrdNIDAQPluginInterfacePtr m_NIDAQPlugin
QVector< QVector< double > > m_ChannelData
QSharedPointer< QxrdNIDAQPluginInterface > QxrdNIDAQPluginInterfacePtr
#define QCEP_BOOLEAN_PROPERTY(propname)
Definition: qcepproperty.h:732
QWeakPointer< QxrdAcquisition > QxrdAcquisitionWPtr
QWeakPointer< QxrdAcquisitionParameterPack > QxrdAcquisitionParameterPackWPtr
void prepareForAcquisition(QxrdAcquisitionParameterPackWPtr parms)
QVector< QxrdAcquisitionExtraInputsChannelPtr > channels() const
QSharedPointer< QcepInt16ImageData > QcepInt16ImageDataPtr
void criticalMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr