QXRD  0.11.16
qxrddetectorpilatus.h
Go to the documentation of this file.
1 #ifndef QXRDDETECTORPILATUS_H
2 #define QXRDDETECTORPILATUS_H
3 
4 #include "qcepmacros.h"
5 #include "qxrddetector.h"
6 #include <QTcpSocket>
8 
10 {
11  Q_OBJECT
12 public:
13  explicit QxrdDetectorPilatus(QcepSettingsSaverWPtr saver, QxrdExperimentWPtr expt, QxrdAcquisitionWPtr acq, int detNum, QcepObject *parent);
14  virtual ~QxrdDetectorPilatus();
15 
18  static void pushDefaultsToProxy(QxrdDetectorProxyPtr proxy);
19 
20 signals:
21 
22 public slots:
23  void startDetector();
24  void stopDetector();
25 
26  void beginAcquisition(double exposure);
27  void endAcquisition();
28  void shutdownAcquisition();
29 
30  void beginFrame();
31 
32  void remoteConnect (QString sshCmd);
33  void remoteCommand (QString cmd);
34  void remoteCopy (QString file);
35  void remoteDelete (QString file);
36  void remoteTransfer (QString file);
37 
38  void executeCommand (QString cmd);
39 
40 private:
41  enum {
45  };
46 
47  void beginExposure(double exposure);
48  void interpretReply(QString reply);
49  void expose();
50 
51  void imagePath(QString path);
52 
53  void sendCommand(QString cmd);
54 
55  void readyRead();
56 
57 private:
58  void loadAndPush(QString f);
59 
60 private:
61  QTcpSocket m_PilatusSocket;
62  QString m_PilatusReply;
63  QByteArray m_Buffer;
64  QString m_CurrentFile;
65 
69 
71 
72 public:
73  Q_PROPERTY(QString pilatusHost READ get_PilatusHost WRITE set_PilatusHost)
74  QCEP_STRING_PROPERTY(PilatusHost)
75 
76  Q_PROPERTY(int pilatusPort READ get_PilatusPort WRITE set_PilatusPort)
77  QCEP_INTEGER_PROPERTY(PilatusPort)
78 
79  Q_PROPERTY(QString pilatusUser READ get_PilatusUser WRITE set_PilatusUser)
80  QCEP_STRING_PROPERTY(PilatusUser)
81 
82  Q_PROPERTY(QString pilatusSSH READ get_PilatusSSH WRITE set_PilatusSSH)
83  QCEP_STRING_PROPERTY(PilatusSSH)
84 
85  Q_PROPERTY(QString pilatusSCP READ get_PilatusSCP WRITE set_PilatusSCP)
86  QCEP_STRING_PROPERTY(PilatusSCP)
87 
88  Q_PROPERTY(QString pilatusDataDirectory READ get_PilatusDataDirectory WRITE set_PilatusDataDirectory)
89  QCEP_STRING_PROPERTY(PilatusDataDirectory)
90 
91  Q_PROPERTY(bool readFilesLocally READ get_ReadFilesLocally WRITE set_ReadFilesLocally)
92  QCEP_BOOLEAN_PROPERTY(ReadFilesLocally)
93 
94  Q_PROPERTY(bool deleteFilesAfterReading READ get_DeleteFilesAfterReading WRITE set_DeleteFilesAfterReading)
95  QCEP_BOOLEAN_PROPERTY(DeleteFilesAfterReading)
96 
97  Q_PROPERTY(int exposureMode READ get_ExposureMode WRITE set_ExposureMode)
98  QCEP_INTEGER_PROPERTY(ExposureMode)
99 
100  Q_PROPERTY(double enableFrequency READ get_EnableFrequency WRITE set_EnableFrequency)
101  QCEP_DOUBLE_PROPERTY(EnableFrequency)
102 
103  Q_PROPERTY(QString pilatusExtension READ get_PilatusExtension WRITE set_PilatusExtension)
104  QCEP_STRING_PROPERTY(PilatusExtension)
105 };
106 
107 #endif // QXRDDETECTORPILATUS_H
QSharedPointer< QxrdDetectorProxy > QxrdDetectorProxyPtr
QxrdDetectorPilatusRemotePtr m_Remote
void imagePath(QString path)
#define QCEP_DOUBLE_PROPERTY(propname)
Definition: qcepproperty.h:629
void pullPropertiesfromProxy(QxrdDetectorProxyPtr proxy)
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
void remoteTransfer(QString file)
void executeCommand(QString cmd)
void beginAcquisition(double exposure)
void sendCommand(QString cmd)
#define QCEP_INTEGER_PROPERTY(propname)
Definition: qcepproperty.h:698
void beginExposure(double exposure)
#define QCEP_STRING_PROPERTY(propname)
Definition: qcepproperty.h:664
QSharedPointer< QxrdDetectorPilatusRemote > QxrdDetectorPilatusRemotePtr
void interpretReply(QString reply)
#define QCEP_BOOLEAN_PROPERTY(propname)
Definition: qcepproperty.h:732
void pushPropertiesToProxy(QxrdDetectorProxyPtr proxy)
void remoteCommand(QString cmd)
QWeakPointer< QxrdAcquisition > QxrdAcquisitionWPtr
void remoteCopy(QString file)
static void pushDefaultsToProxy(QxrdDetectorProxyPtr proxy)
QxrdDetectorPilatus(QcepSettingsSaverWPtr saver, QxrdExperimentWPtr expt, QxrdAcquisitionWPtr acq, int detNum, QcepObject *parent)
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr
void remoteConnect(QString sshCmd)
void remoteDelete(QString file)