QXRD  0.11.16
qxrddetectorperkinelmer.h
Go to the documentation of this file.
1 #ifndef QXRDDETECTORPERKINELMER_H
2 #define QXRDDETECTORPERKINELMER_H
3 
4 #include <QMutex>
5 #include <QDateTime>
6 #include "qcepmacros.h"
7 #include "qxrddetector.h"
9 
10 #ifdef Q_OS_WIN32
11 #include <windows.h>
12 #endif
13 
14 #include "Acq.h"
15 
17 {
18  Q_OBJECT
19 public:
21  virtual ~QxrdDetectorPerkinElmer();
22 
23  int detectorNumber() const;
24  int detectorSubType() const;
25  QString detectorAddress() const;
26 
29  static void pushDefaultsToProxy(QxrdDetectorProxyPtr proxy);
30 
31 public slots:
32  void onExposureTimeChanged();
33  void onBinningModeChanged();
34  void onCameraGainChanged();
35 
36 public slots:
37  void startDetector();
38  void stopDetector();
39  void onEndFrame(int counter, unsigned int n1, unsigned int n2);
40  void onEndFrameCallback();
41 
42  void dumpHeaderInfo();
43 
44  QString acquisitionErrorString(int n);
45 
46 protected:
47  void beginAcquisition(double exposure);
48  void endAcquisition();
49  void shutdownAcquisition();
50 
51 private:
52  void acquisitionError(const char *fn, int ln, int n);
53 
54  void startupAcquisition();
55 // void setupCameraGainMenu(QComboBox *cb, int initialGain);
56 // void setupCameraBinningModeMenu(QComboBox *cb, int initialBinning);
57  bool checkPluginAvailable();
58 
59  void acquisitionInitError(const char *fn, int ln, int n);
60  void acquisitionNSensorsError(const char *fn, int ln, int n);
61 
62 private:
63  mutable QMutex m_Mutex;
66  QVector<quint16> m_Buffer;
67  QVector<double> m_ReadoutTimes;
68 
69  HACQDESC m_AcqDesc;
71 
72  int m_PROMID;
75  QString m_CameraModel;
78 
79  QAtomicInt m_Counter;
80 
81  CHwHeaderInfo m_HwHeaderInfo;
82  CHwHeaderInfoEx m_HwHeaderInfoEx;
83 
85 
86 public:
87  Q_PROPERTY(int detectorNumber READ get_DetectorNumber WRITE set_DetectorNumber)
88  QCEP_INTEGER_PROPERTY(DetectorNumber)
89 
90  Q_PROPERTY(int detectorSubType READ get_DetectorSubType WRITE set_DetectorSubType)
91  QCEP_INTEGER_PROPERTY(DetectorSubType)
92 
93  Q_PROPERTY(QString detectorAddress READ get_DetectorAddress WRITE set_DetectorAddress)
94  QCEP_STRING_PROPERTY(DetectorAddress)
95 
96  Q_PROPERTY(int detectorGain READ get_DetectorGain WRITE set_DetectorGain)
97  QCEP_INTEGER_PROPERTY(DetectorGain)
98 
99  Q_PROPERTY(int detectorBinning READ get_DetectorBinning WRITE set_DetectorBinning)
100  QCEP_INTEGER_PROPERTY(DetectorBinning)
101 };
102 
103 #endif // QXRDDETECTORPERKINELMER_H
void onEndFrame(int counter, unsigned int n1, unsigned int n2)
QSharedPointer< QxrdDetectorProxy > QxrdDetectorProxyPtr
int detectorSubType() const
void pushPropertiesToProxy(QxrdDetectorProxyPtr proxy)
int detectorNumber() const
void acquisitionNSensorsError(const char *fn, int ln, int n)
void beginAcquisition(double exposure)
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
void pullPropertiesfromProxy(QxrdDetectorProxyPtr proxy)
#define QCEP_INTEGER_PROPERTY(propname)
Definition: qcepproperty.h:698
static void pushDefaultsToProxy(QxrdDetectorProxyPtr proxy)
#define QCEP_STRING_PROPERTY(propname)
Definition: qcepproperty.h:664
QWeakPointer< QxrdPerkinElmerPluginInterface > QxrdPerkinElmerPluginInterfaceWPtr
void acquisitionInitError(const char *fn, int ln, int n)
void acquisitionError(const char *fn, int ln, int n)
QxrdPerkinElmerPluginInterfaceWPtr m_PerkinElmer
QString detectorAddress() const
QWeakPointer< QxrdAcquisition > QxrdAcquisitionWPtr
QxrdDetectorPerkinElmer(QcepSettingsSaverWPtr saver, QxrdExperimentWPtr expt, QxrdAcquisitionWPtr acq, int detNum, QcepObject *parent)
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr