QXRD  0.11.16
qxrdacquisitioninterface.h
Go to the documentation of this file.
1 #ifndef QXRDACQUISITIONINTERFACE_H
2 #define QXRDACQUISITIONINTERFACE_H
3 
4 #include "qcepmacros.h"
5 #include "qcepobject.h"
6 #include "qcepproperty.h"
7 #include <QWaitCondition>
8 //#include <QFutureWatcher>
9 #include <QSemaphore>
10 
11 //#include <QEnableSharedFromThis>
12 #include "qcepsettingssaver-ptr.h"
13 #include "qxrdexperiment-ptr.h"
14 #include "qxrddataprocessor-ptr.h"
15 #include "qcepallocator-ptr.h"
19 
20 class QxrdAcquisitionInterface : public QcepObject, public QEnableSharedFromThis<QxrdAcquisitionInterface>
21 {
22  Q_OBJECT
23 
24 public:
28  QcepAllocatorWPtr allocator);
30 
31  virtual void initialize();
32 
33 signals:
34  void acquiredFrame(QString fileName, int iphase, int nphases, int isum, int nsum, int igroup, int ngroup);
35  void acquireStarted();
36  void acquireComplete();
37 
38 public slots:
39  void acquire();
40  void acquireDark();
41  void cancel();
42  void trigger();
43 
44  int acquisitionStatus(double time);
45 
46  virtual void doAcquire () = 0;
47  virtual void doAcquireDark() = 0;
48 
49  virtual bool sanityCheckAcquire() = 0;
50  virtual bool sanityCheckAcquireDark() = 0;
51 
52 public:
55 
56 protected:
58  QMutex m_Acquiring;
59  QWaitCondition m_StatusWaiting;
60 
61 private:
63 
64 public:
65  Q_PROPERTY(int cancelling READ get_Cancelling WRITE set_Cancelling STORED false)
66  QCEP_INTEGER_PROPERTY(Cancelling)
67 
68  Q_PROPERTY(int triggered READ get_Triggered WRITE set_Triggered STORED false)
69  QCEP_INTEGER_PROPERTY(Triggered)
70 
71  Q_PROPERTY(double exposureTime READ get_ExposureTime WRITE set_ExposureTime)
72  QCEP_DOUBLE_PROPERTY(ExposureTime)
73 
74  Q_PROPERTY(int skippedExposuresAtStart READ get_SkippedExposuresAtStart WRITE set_SkippedExposuresAtStart)
75  QCEP_INTEGER_PROPERTY(SkippedExposuresAtStart)
76 
77  Q_PROPERTY(int phasesInGroup READ get_PhasesInGroup WRITE set_PhasesInGroup)
78  QCEP_INTEGER_PROPERTY(PhasesInGroup)
79 
80  Q_PROPERTY(int currentPhase READ get_CurrentPhase WRITE set_CurrentPhase STORED false)
81  QCEP_INTEGER_PROPERTY(CurrentPhase)
82 
83  Q_PROPERTY(int summedExposures READ get_SummedExposures WRITE set_SummedExposures)
84  QCEP_INTEGER_PROPERTY(SummedExposures)
85 
86  Q_PROPERTY(int darkSummedExposures READ get_DarkSummedExposures WRITE set_DarkSummedExposures)
87  QCEP_INTEGER_PROPERTY(DarkSummedExposures)
88 
89  Q_PROPERTY(int currentSummation READ get_CurrentSummation WRITE set_CurrentSummation STORED false)
90  QCEP_INTEGER_PROPERTY(CurrentSummation)
91 
92  Q_PROPERTY(int skippedExposures READ get_SkippedExposures WRITE set_SkippedExposures)
93  QCEP_INTEGER_PROPERTY(SkippedExposures)
94 
95  Q_PROPERTY(int preTriggerFiles READ get_PreTriggerFiles WRITE set_PreTriggerFiles)
96  QCEP_INTEGER_PROPERTY(PreTriggerFiles)
97 
98  Q_PROPERTY(int postTriggerFiles READ get_PostTriggerFiles WRITE set_PostTriggerFiles)
99  QCEP_INTEGER_PROPERTY(PostTriggerFiles)
100 
101  Q_PROPERTY(int currentFile READ get_CurrentFile WRITE set_CurrentFile STORED false)
102  QCEP_INTEGER_PROPERTY(CurrentFile)
103 
104  Q_PROPERTY(QString filePattern READ get_FilePattern WRITE set_FilePattern)
105  QCEP_STRING_PROPERTY(FilePattern)
106 
107 };
108 
109 #endif // QXRDACQUISITIONINTERFACE_H
QWeakPointer< QxrdDataProcessor > QxrdDataProcessorWPtr
#define QCEP_DOUBLE_PROPERTY(propname)
Definition: qcepproperty.h:629
void acquiredFrame(QString fileName, int iphase, int nphases, int isum, int nsum, int igroup, int ngroup)
QxrdAcquisitionExecutionThreadPtr m_ExecutionThread
QxrdAcquisitionInterface(QcepSettingsSaverWPtr saver, QxrdExperimentWPtr doc, QxrdDataProcessorWPtr proc, QcepAllocatorWPtr allocator)
virtual bool sanityCheckAcquire()=0
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
QSharedPointer< QxrdAcquisitionExecutionThread > QxrdAcquisitionExecutionThreadPtr
QxrdAcquisitionParameterPackPtr acquisitionParameterPack()
#define QCEP_INTEGER_PROPERTY(propname)
Definition: qcepproperty.h:698
virtual void doAcquireDark()=0
#define QCEP_STRING_PROPERTY(propname)
Definition: qcepproperty.h:664
QxrdDarkAcquisitionParameterPackPtr darkAcquisitionParameterPack()
QWeakPointer< QcepAllocator > QcepAllocatorWPtr
QSharedPointer< QxrdDarkAcquisitionParameterPack > QxrdDarkAcquisitionParameterPackPtr
virtual void doAcquire()=0
virtual bool sanityCheckAcquireDark()=0
QSharedPointer< QxrdAcquisitionParameterPack > QxrdAcquisitionParameterPackPtr
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr