QXRD  0.11.16
Public Slots | Signals | Public Member Functions | Protected Attributes | Properties | Private Attributes | List of all members
QxrdAcquisitionInterface Class Referenceabstract

#include <qxrdacquisitioninterface.h>

Inheritance diagram for QxrdAcquisitionInterface:
Inheritance graph
[legend]
Collaboration diagram for QxrdAcquisitionInterface:
Collaboration graph
[legend]

Public Slots

void acquire ()
 
void acquireDark ()
 
void cancel ()
 
void trigger ()
 
int acquisitionStatus (double time)
 
virtual void doAcquire ()=0
 
virtual void doAcquireDark ()=0
 
virtual bool sanityCheckAcquire ()=0
 
virtual bool sanityCheckAcquireDark ()=0
 
- Public Slots inherited from QcepObject
virtual void printLine (QString line)
 
virtual void printMessage (QString msg, QDateTime dt=QDateTime::currentDateTime()) const
 
virtual void criticalMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual void statusMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual QString settingsScript ()
 
QString scriptValueLiteral (QVariant v)
 

Signals

void acquiredFrame (QString fileName, int iphase, int nphases, int isum, int nsum, int igroup, int ngroup)
 
void acquireStarted ()
 
void acquireComplete ()
 

Public Member Functions

 QxrdAcquisitionInterface (QcepSettingsSaverWPtr saver, QxrdExperimentWPtr doc, QxrdDataProcessorWPtr proc, QcepAllocatorWPtr allocator)
 
 ~QxrdAcquisitionInterface ()
 
virtual void initialize ()
 
QxrdAcquisitionParameterPackPtr acquisitionParameterPack ()
 
QxrdDarkAcquisitionParameterPackPtr darkAcquisitionParameterPack ()
 
- Public Member Functions inherited from QcepObject
 QcepObject (QString name, QcepObject *parent)
 
virtual ~QcepObject ()
 
virtual void writeSettings (QSettings *set, QString section)
 
virtual void readSettings (QSettings *set, QString section)
 
QString get_Name () const
 
void set_Name (QString name)
 

Protected Attributes

QcepSettingsSaverWPtr m_Saver
 
QMutex m_Acquiring
 
QWaitCondition m_StatusWaiting
 

Properties

int cancelling
 
int triggered
 
double exposureTime
 
int skippedExposuresAtStart
 
int phasesInGroup
 
int currentPhase
 
int summedExposures
 
int darkSummedExposures
 
int currentSummation
 
int skippedExposures
 
int preTriggerFiles
 
int postTriggerFiles
 
int currentFile
 
QString filePattern
 
- Properties inherited from QcepObject
QString name
 

Private Attributes

QxrdAcquisitionExecutionThreadPtr m_ExecutionThread
 

Additional Inherited Members

- Static Public Member Functions inherited from QcepObject
static int allocatedObjects ()
 
static int deletedObjects ()
 
static QSet< QcepObject * > allocatedObjectsSet ()
 
static QString addSlashes (QString str)
 

Detailed Description

Definition at line 20 of file qxrdacquisitioninterface.h.

Constructor & Destructor Documentation

QxrdAcquisitionInterface::QxrdAcquisitionInterface ( QcepSettingsSaverWPtr  saver,
QxrdExperimentWPtr  doc,
QxrdDataProcessorWPtr  proc,
QcepAllocatorWPtr  allocator 
)

Definition at line 10 of file qxrdacquisitioninterface.cpp.

14  : QcepObject("acquistion", NULL),
15  m_Saver(saver),
17  m_Cancelling(QcepSettingsSaverWPtr(), this, "cancelling", 0, "Cancel Acquisition?"),
18  m_Triggered(QcepSettingsSaverWPtr(), this, "triggered", 0, "Trigger Acquisition"),
19  m_ExposureTime(saver, this,"exposureTime",0.1, "Exposure Time (in sec)"),
20  m_SkippedExposuresAtStart(saver, this,"skippedExposuresAtStart",0, "Exposures to Skip at Start"),
21  m_PhasesInGroup(saver, this,"phasesInGroup",1, "Number of Image Phases"),
22  m_CurrentPhase(QcepSettingsSaverWPtr(), this, "currentPhase", 0, "Current Acquisition Phase"),
23  m_SummedExposures(saver, this,"summedExposures",1, "Summed Exposures per Image"),
24  m_DarkSummedExposures(saver, this,"darkSummedExposures",1, "Summed Exposures in Dark Image"),
25  m_CurrentSummation(QcepSettingsSaverWPtr(), this, "currentSumation", 0, "Current Acquisition Summation"),
26  m_SkippedExposures(saver, this,"skippedExposures",0, "Skipped Exposures between Images"),
27  m_PreTriggerFiles(saver, this,"preTriggerFiles",0, "Number of pre-Trigger Images"),
28  m_PostTriggerFiles(saver, this,"postTriggerFiles",1, "Number of post-Trigger Images"),
29  m_CurrentFile(QcepSettingsSaverWPtr(), this, "currentFile", 0, "File Index of Current File"),
30  m_FilePattern(saver, this,"filePattern","", "File Name Pattern")
31 {
32 }
QxrdAcquisitionExecutionThreadPtr m_ExecutionThread
QcepObject(QString name, QcepObject *parent)
Definition: qcepobject.cpp:16
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr
QxrdAcquisitionInterface::~QxrdAcquisitionInterface ( )

Definition at line 42 of file qxrdacquisitioninterface.cpp.

43 {
44 }

Member Function Documentation

void QxrdAcquisitionInterface::acquire ( )
slot

Definition at line 46 of file qxrdacquisitioninterface.cpp.

References acquireStarted(), INVOKE_CHECK, m_Acquiring, m_ExecutionThread, sanityCheckAcquire(), and QcepObject::statusMessage().

47 {
48  if (QThread::currentThread() != thread()) {
49  INVOKE_CHECK(QMetaObject::invokeMethod(this, "acquire", Qt::BlockingQueuedConnection));
50  } else if (sanityCheckAcquire()) {
51  if (m_Acquiring.tryLock()) {
52  set_Cancelling(false);
53  set_Triggered(false);
54 
55  statusMessage("Starting acquisition");
56  emit acquireStarted();
57 
58  // QtConcurrent::run(this, &QxrdAcquisitionInterface::doAcquire, acquisitionParameterPack());
59 
60  if (m_ExecutionThread) {
61  m_ExecutionThread->doAcquire();
62  }
63  } else {
64  statusMessage("Acquisition is already in progress");
65  }
66  }
67 }
QxrdAcquisitionExecutionThreadPtr m_ExecutionThread
virtual bool sanityCheckAcquire()=0
#define INVOKE_CHECK(res)
Definition: qcepmacros.h:13
virtual void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:104

Here is the call graph for this function:

void QxrdAcquisitionInterface::acquireComplete ( )
signal
void QxrdAcquisitionInterface::acquireDark ( )
slot

Definition at line 69 of file qxrdacquisitioninterface.cpp.

References acquireStarted(), INVOKE_CHECK, m_Acquiring, m_ExecutionThread, sanityCheckAcquireDark(), and QcepObject::statusMessage().

70 {
71  if (QThread::currentThread() != thread()) {
72  INVOKE_CHECK(QMetaObject::invokeMethod(this, "acquireDark", Qt::BlockingQueuedConnection));
73  } else if (sanityCheckAcquireDark()) {
74  if (m_Acquiring.tryLock()) {
75  set_Cancelling(false);
76  set_Triggered(true);
77 
78  statusMessage("Starting dark acquisition");
79  emit acquireStarted();
80 
81  // QtConcurrent::run(this, &QxrdAcquisitionInterface::doAcquireDark, darkAcquisitionParameterPack());
82 
83  if (m_ExecutionThread) {
84  m_ExecutionThread->doAcquireDark();
85  }
86  } else {
87  statusMessage("Acquisition is already in progress");
88  }
89  }
90 }
QxrdAcquisitionExecutionThreadPtr m_ExecutionThread
#define INVOKE_CHECK(res)
Definition: qcepmacros.h:13
virtual bool sanityCheckAcquireDark()=0
virtual void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:104

Here is the call graph for this function:

void QxrdAcquisitionInterface::acquiredFrame ( QString  fileName,
int  iphase,
int  nphases,
int  isum,
int  nsum,
int  igroup,
int  ngroup 
)
signal

Referenced by QxrdAcquisition::doAcquire(), and QxrdAcquisition::doAcquireDark().

Here is the caller graph for this function:

void QxrdAcquisitionInterface::acquireStarted ( )
signal

Referenced by acquire(), acquireDark(), QxrdWindow::initialize(), and QxrdAcquisitionDialog::QxrdAcquisitionDialog().

Here is the caller graph for this function:

QxrdAcquisitionParameterPackPtr QxrdAcquisitionInterface::acquisitionParameterPack ( )

Definition at line 133 of file qxrdacquisitioninterface.cpp.

Referenced by QxrdAcquisition::doAcquire().

134 {
136  new QxrdAcquisitionParameterPack (get_FilePattern(),
137  get_ExposureTime(),
138  get_SummedExposures(),
139  get_PreTriggerFiles(),
140  get_PostTriggerFiles(),
141  get_PhasesInGroup(),
142  get_SkippedExposuresAtStart(),
143  get_SkippedExposures()));
144 }
QSharedPointer< QxrdAcquisitionParameterPack > QxrdAcquisitionParameterPackPtr

Here is the caller graph for this function:

int QxrdAcquisitionInterface::acquisitionStatus ( double  time)
slot

Definition at line 111 of file qxrdacquisitioninterface.cpp.

References m_Acquiring, and m_StatusWaiting.

112 {
113  if (m_Acquiring.tryLock()) {
114  m_Acquiring.unlock();
115 
116  // printf("m_Acquiring.tryLock() succeeded\n");
117 
118  return 1;
119  }
120 
121  QMutex mutex;
122  QcepMutexLocker lock(__FILE__, __LINE__, &mutex);
123 
124  if (m_StatusWaiting.wait(&mutex, (int)(time*1000))) {
125  // printf("m_StatusWaiting.wait succeeded\n");
126  return 1;
127  } else {
128  // printf("m_StatusWaiting.wait failed\n");
129  return 0;
130  }
131 }
void QxrdAcquisitionInterface::cancel ( )
slot

Definition at line 97 of file qxrdacquisitioninterface.cpp.

Referenced by QxrdAcquisition::doAcquire(), and QxrdAcquisition::doAcquireDark().

98 {
99  set_Cancelling(true);
100 
101 // m_NAcquiredImages.release(1);
102 }

Here is the caller graph for this function:

QxrdDarkAcquisitionParameterPackPtr QxrdAcquisitionInterface::darkAcquisitionParameterPack ( )

Definition at line 146 of file qxrdacquisitioninterface.cpp.

Referenced by QxrdAcquisition::doAcquireDark().

147 {
149  new QxrdDarkAcquisitionParameterPack(get_FilePattern(),
150  get_ExposureTime(),
151  get_DarkSummedExposures(),
152  get_SkippedExposuresAtStart()));
153 
154 }
QSharedPointer< QxrdDarkAcquisitionParameterPack > QxrdDarkAcquisitionParameterPackPtr

Here is the caller graph for this function:

virtual void QxrdAcquisitionInterface::doAcquire ( )
pure virtualslot
virtual void QxrdAcquisitionInterface::doAcquireDark ( )
pure virtualslot
void QxrdAcquisitionInterface::initialize ( )
virtual

Reimplemented in QxrdAcquisition.

Definition at line 34 of file qxrdacquisitioninterface.cpp.

References m_ExecutionThread.

Referenced by QxrdAcquisition::initialize().

35 {
38 
39  m_ExecutionThread->start();
40 }
QxrdAcquisitionExecutionThreadPtr m_ExecutionThread
QSharedPointer< QxrdAcquisitionExecutionThread > QxrdAcquisitionExecutionThreadPtr

Here is the caller graph for this function:

virtual bool QxrdAcquisitionInterface::sanityCheckAcquire ( )
pure virtualslot

Referenced by acquire().

Here is the caller graph for this function:

virtual bool QxrdAcquisitionInterface::sanityCheckAcquireDark ( )
pure virtualslot

Referenced by acquireDark().

Here is the caller graph for this function:

void QxrdAcquisitionInterface::trigger ( )
slot

Definition at line 92 of file qxrdacquisitioninterface.cpp.

Referenced by QxrdAcquisitionDialog::QxrdAcquisitionDialog().

93 {
94  set_Triggered(true);
95 }

Here is the caller graph for this function:

Member Data Documentation

QMutex QxrdAcquisitionInterface::m_Acquiring
protected
QxrdAcquisitionExecutionThreadPtr QxrdAcquisitionInterface::m_ExecutionThread
private

Definition at line 62 of file qxrdacquisitioninterface.h.

Referenced by acquire(), acquireDark(), and initialize().

QcepSettingsSaverWPtr QxrdAcquisitionInterface::m_Saver
protected
QWaitCondition QxrdAcquisitionInterface::m_StatusWaiting
protected

Definition at line 59 of file qxrdacquisitioninterface.h.

Referenced by acquisitionStatus().

Property Documentation

int QxrdAcquisitionInterface::cancelling
readwrite

Definition at line 65 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::currentFile
readwrite

Definition at line 101 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::currentPhase
readwrite

Definition at line 80 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::currentSummation
readwrite

Definition at line 89 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::darkSummedExposures
readwrite

Definition at line 86 of file qxrdacquisitioninterface.h.

double QxrdAcquisitionInterface::exposureTime
readwrite

Definition at line 71 of file qxrdacquisitioninterface.h.

QString QxrdAcquisitionInterface::filePattern
readwrite

Definition at line 104 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::phasesInGroup
readwrite

Definition at line 77 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::postTriggerFiles
readwrite

Definition at line 98 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::preTriggerFiles
readwrite

Definition at line 95 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::skippedExposures
readwrite

Definition at line 92 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::skippedExposuresAtStart
readwrite

Definition at line 74 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::summedExposures
readwrite

Definition at line 83 of file qxrdacquisitioninterface.h.

int QxrdAcquisitionInterface::triggered
readwrite

Definition at line 68 of file qxrdacquisitioninterface.h.


The documentation for this class was generated from the following files: