mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-24 15:20:02 +02:00
gui WIP
This commit is contained in:
parent
8973ef1aaa
commit
3ebb1fca02
@ -89,6 +89,7 @@ target_include_directories(slsDetectorGui PUBLIC
|
|||||||
|
|
||||||
target_link_libraries(slsDetectorGui PUBLIC
|
target_link_libraries(slsDetectorGui PUBLIC
|
||||||
slsDetectorShared
|
slsDetectorShared
|
||||||
|
slsSupportLib
|
||||||
${QT_QTCORE_LIBRARIES}
|
${QT_QTCORE_LIBRARIES}
|
||||||
${QT_QTGUI_LIBRARIES}
|
${QT_QTGUI_LIBRARIES}
|
||||||
${QWT_LIBRARIES}
|
${QWT_LIBRARIES}
|
||||||
|
@ -409,7 +409,7 @@
|
|||||||
<widget class="QFrame" name="frameTimeResolved">
|
<widget class="QFrame" name="frameTimeResolved">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>400</width>
|
<width>410</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -432,6 +432,77 @@
|
|||||||
<property name="verticalSpacing">
|
<property name="verticalSpacing">
|
||||||
<number>4</number>
|
<number>4</number>
|
||||||
</property>
|
</property>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QStackedWidget" name="stackedLblTriggerBurst">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>171</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>171</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="pageLblTrigger">
|
||||||
|
<layout class="QGridLayout" name="gridLblTrigger">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lblNumTriggers">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Number of Triggers:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="pageLblBurst">
|
||||||
|
<layout class="QGridLayout" name="gridLblBurst">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lblNumBursts">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Number of Bursts:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="4" column="3">
|
<item row="4" column="3">
|
||||||
<widget class="QComboBox" name="comboPeriodUnit">
|
<widget class="QComboBox" name="comboPeriodUnit">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
@ -501,53 +572,6 @@ Frame period between exposures.
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="2" colspan="2">
|
|
||||||
<widget class="QSpinBox" name="spinNumSamples">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>25</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Number of Triggers to be expected.
|
|
||||||
#triggers#</string>
|
|
||||||
</property>
|
|
||||||
<property name="statusTip">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="whatsThis">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
<property name="keyboardTracking">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="suffix">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>-1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>2000000000</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2" colspan="2">
|
<item row="1" column="2" colspan="2">
|
||||||
<widget class="QSpinBox" name="spinNumMeasurements">
|
<widget class="QSpinBox" name="spinNumMeasurements">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -594,25 +618,17 @@ Frame period between exposures.
|
|||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>175</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Number of Measurements:</string>
|
<string>Number of Measurements:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="0">
|
|
||||||
<widget class="QLabel" name="lblNumSamples">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Number of Triggers to be expected.
|
|
||||||
#triggers#</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Number of Samples:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2" colspan="2">
|
<item row="0" column="2" colspan="2">
|
||||||
<widget class="QComboBox" name="comboTimingMode">
|
<widget class="QComboBox" name="comboTimingMode">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -651,6 +667,11 @@ Frame period between exposures.
|
|||||||
<string>Burst Trigger</string>
|
<string>Burst Trigger</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Trigger Gated</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="2">
|
<item row="3" column="2">
|
||||||
@ -910,77 +931,6 @@ Frame period between exposures.
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
|
||||||
<widget class="QStackedWidget" name="stackedLblTriggerBurst">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>171</width>
|
|
||||||
<height>32</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>171</width>
|
|
||||||
<height>32</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="currentIndex">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="pageLblTrigger">
|
|
||||||
<layout class="QGridLayout" name="gridLblTrigger">
|
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="lblNumTriggers">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Number of Triggers:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="pageLblBurst">
|
|
||||||
<layout class="QGridLayout" name="gridLblBurst">
|
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="lblNumBursts">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Number of Bursts:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="2">
|
<item row="5" column="2">
|
||||||
<widget class="QStackedWidget" name="stackedSpinTriggerBurst">
|
<widget class="QStackedWidget" name="stackedSpinTriggerBurst">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -1481,6 +1431,214 @@ Frame period between exposures.
|
|||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QStackedWidget" name="stackedLblSamplesGates">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>171</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>171</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="pageLblSamples">
|
||||||
|
<layout class="QGridLayout" name="gridLblTrigger_2">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lblNumSamples">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Number of analog samples.</p><p>#asamples#</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Number of Samples:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="pageLblGates">
|
||||||
|
<layout class="QGridLayout" name="gridLblBurst_2">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lblNumGates">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Number of external gates.</p><p>#gates#</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Number of Gates:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="2">
|
||||||
|
<widget class="QStackedWidget" name="stackedSpinSamplesGates">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>208</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>208</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="pageSpinSamples">
|
||||||
|
<layout class="QGridLayout" name="gridSpinTrigger_2">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinNumSamples">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Number of analog samples.</p><p>#asamples#</p><p><br/></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="statusTip">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="whatsThis">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="keyboardTracking">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>2000000000</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="pageSpinGates">
|
||||||
|
<layout class="QGridLayout" name="gridSpinBurst_2">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinNumGates">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Number of external gates.</p><p>#gates#</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="statusTip">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="whatsThis">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="keyboardTracking">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>2000000000</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -1513,7 +1671,6 @@ Frame period between exposures.
|
|||||||
<tabstop>comboExpUnit</tabstop>
|
<tabstop>comboExpUnit</tabstop>
|
||||||
<tabstop>spinPeriod</tabstop>
|
<tabstop>spinPeriod</tabstop>
|
||||||
<tabstop>comboPeriodUnit</tabstop>
|
<tabstop>comboPeriodUnit</tabstop>
|
||||||
<tabstop>spinNumSamples</tabstop>
|
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../include/icons.qrc"/>
|
<include location="../include/icons.qrc"/>
|
||||||
|
@ -45,6 +45,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject {
|
|||||||
* show bursts and burst period
|
* show bursts and burst period
|
||||||
*/
|
*/
|
||||||
void ShowTriggerDelay();
|
void ShowTriggerDelay();
|
||||||
|
void ShowGates();
|
||||||
void SetupTimingMode();
|
void SetupTimingMode();
|
||||||
void EnableWidgetsforTimingMode();
|
void EnableWidgetsforTimingMode();
|
||||||
|
|
||||||
@ -53,6 +54,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject {
|
|||||||
void GetNumTriggers();
|
void GetNumTriggers();
|
||||||
void GetNumBursts();
|
void GetNumBursts();
|
||||||
void GetNumSamples();
|
void GetNumSamples();
|
||||||
|
void GetNumGates();
|
||||||
void GetExposureTime();
|
void GetExposureTime();
|
||||||
void GetAcquisitionPeriod();
|
void GetAcquisitionPeriod();
|
||||||
void CheckAcqPeriodGreaterThanExp();
|
void CheckAcqPeriodGreaterThanExp();
|
||||||
@ -76,7 +78,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject {
|
|||||||
sls::Detector *det;
|
sls::Detector *det;
|
||||||
qDrawPlot *plot;
|
qDrawPlot *plot;
|
||||||
// enum for the timing mode
|
// enum for the timing mode
|
||||||
enum { AUTO, TRIGGER, GATED, BURST_TRIGGER, NUMTIMINGMODES };
|
enum { AUTO, TRIGGER, GATED, BURST_TRIGGER, TRIGGER_GATED, NUMTIMINGMODES };
|
||||||
QTimer *progressTimer;
|
QTimer *progressTimer;
|
||||||
// tool tip variables
|
// tool tip variables
|
||||||
QString acqPeriodTip;
|
QString acqPeriodTip;
|
||||||
@ -84,6 +86,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject {
|
|||||||
QPalette red;
|
QPalette red;
|
||||||
bool delayImplemented;
|
bool delayImplemented;
|
||||||
bool sampleImplemented;
|
bool sampleImplemented;
|
||||||
|
bool gateImplemented;
|
||||||
bool startingFnumImplemented;
|
bool startingFnumImplemented;
|
||||||
bool isAcquisitionStopped{false};
|
bool isAcquisitionStopped{false};
|
||||||
int numMeasurements{1};
|
int numMeasurements{1};
|
||||||
|
@ -31,6 +31,7 @@ void qTabMeasurement::SetupWidgetWindow() {
|
|||||||
progressTimer = new QTimer(this);
|
progressTimer = new QTimer(this);
|
||||||
|
|
||||||
sampleImplemented = false;
|
sampleImplemented = false;
|
||||||
|
gateImplemented = false;
|
||||||
delayImplemented = true;
|
delayImplemented = true;
|
||||||
startingFnumImplemented = false;
|
startingFnumImplemented = false;
|
||||||
// by default, delay and starting fnum is disabled in form
|
// by default, delay and starting fnum is disabled in form
|
||||||
@ -41,6 +42,8 @@ void qTabMeasurement::SetupWidgetWindow() {
|
|||||||
// default is triggers and delay (not #bursts and burst period for gotthard2
|
// default is triggers and delay (not #bursts and burst period for gotthard2
|
||||||
// in auto mode)
|
// in auto mode)
|
||||||
ShowTriggerDelay();
|
ShowTriggerDelay();
|
||||||
|
// default is to show samples, mythen3, show gates
|
||||||
|
ShowGates();
|
||||||
|
|
||||||
// enabling according to det type
|
// enabling according to det type
|
||||||
switch (det->getDetectorType().squash()) {
|
switch (det->getDetectorType().squash()) {
|
||||||
@ -67,6 +70,9 @@ void qTabMeasurement::SetupWidgetWindow() {
|
|||||||
spinBurstPeriod->setEnabled(true);
|
spinBurstPeriod->setEnabled(true);
|
||||||
comboBurstPeriodUnit->setEnabled(true);
|
comboBurstPeriodUnit->setEnabled(true);
|
||||||
break;
|
break;
|
||||||
|
case slsDetectorDefs::MYTHEN3:
|
||||||
|
gateImplemented = true;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -97,6 +103,10 @@ void qTabMeasurement::Initialization() {
|
|||||||
connect(spinNumSamples, SIGNAL(valueChanged(int)), this,
|
connect(spinNumSamples, SIGNAL(valueChanged(int)), this,
|
||||||
SLOT(SetNumSamples(int)));
|
SLOT(SetNumSamples(int)));
|
||||||
}
|
}
|
||||||
|
if (gateImplemented) {
|
||||||
|
connect(spinNumGates, SIGNAL(valueChanged(int)), this,
|
||||||
|
SLOT(SetNumGates(int)));
|
||||||
|
}
|
||||||
connect(spinExpTime, SIGNAL(valueChanged(double)), this,
|
connect(spinExpTime, SIGNAL(valueChanged(double)), this,
|
||||||
SLOT(SetExposureTime()));
|
SLOT(SetExposureTime()));
|
||||||
connect(comboExpUnit, SIGNAL(currentIndexChanged(int)), this,
|
connect(comboExpUnit, SIGNAL(currentIndexChanged(int)), this,
|
||||||
@ -161,6 +171,16 @@ void qTabMeasurement::ShowTriggerDelay() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qTabMeasurement::ShowGates() {
|
||||||
|
if (det->getDetectorType().squash() == slsDetectorDefs::MYTHEN3) {
|
||||||
|
stackedLblSamplesGates->setCurrentWidget(pageLblGates);
|
||||||
|
stackedSpinSamplesGates->setCurrentWidget(pageSpinGates);
|
||||||
|
} else {
|
||||||
|
stackedLblSamplesGates->setCurrentWidget(pageLblSamples);
|
||||||
|
stackedSpinSamplesGates->setCurrentWidget(pageSpinSamples);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void qTabMeasurement::SetupTimingMode() {
|
void qTabMeasurement::SetupTimingMode() {
|
||||||
QStandardItemModel *model =
|
QStandardItemModel *model =
|
||||||
qobject_cast<QStandardItemModel *>(comboTimingMode->model());
|
qobject_cast<QStandardItemModel *>(comboTimingMode->model());
|
||||||
@ -173,9 +193,18 @@ void qTabMeasurement::SetupTimingMode() {
|
|||||||
item[i] = model->itemFromIndex(index[i]);
|
item[i] = model->itemFromIndex(index[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (det->getDetectorType().squash() != slsDetectorDefs::EIGER) {
|
item[(int)GATED]->setEnabled(false);
|
||||||
item[(int)GATED]->setEnabled(false);
|
item[(int)BURST_TRIGGER]->setEnabled(false);
|
||||||
item[(int)BURST_TRIGGER]->setEnabled(false);
|
item[(int)TRIGGER_GATED]->setEnabled(false);
|
||||||
|
switch (det->getDetectorType().squash()) {
|
||||||
|
case EIGER:
|
||||||
|
item[(int)GATED]->setEnabled(true);
|
||||||
|
item[(int)BURST_TRIGGER]->setEnabled(true);
|
||||||
|
break;
|
||||||
|
case MYTHEN3:
|
||||||
|
item[(int)GATED]->setEnabled(true);
|
||||||
|
item[(int)TRIGGER_GATED]->setEnabled(true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -197,6 +226,8 @@ void qTabMeasurement::EnableWidgetsforTimingMode() {
|
|||||||
lblDelay->setEnabled(false);
|
lblDelay->setEnabled(false);
|
||||||
spinDelay->setEnabled(false);
|
spinDelay->setEnabled(false);
|
||||||
comboDelayUnit->setEnabled(false);
|
comboDelayUnit->setEnabled(false);
|
||||||
|
lblNumGates->setEnabled(false);
|
||||||
|
spinNumGates->setEnabled(false);
|
||||||
|
|
||||||
switch (comboTimingMode->currentIndex()) {
|
switch (comboTimingMode->currentIndex()) {
|
||||||
case AUTO:
|
case AUTO:
|
||||||
@ -223,6 +254,7 @@ void qTabMeasurement::EnableWidgetsforTimingMode() {
|
|||||||
lblExpTime->setEnabled(true);
|
lblExpTime->setEnabled(true);
|
||||||
spinExpTime->setEnabled(true);
|
spinExpTime->setEnabled(true);
|
||||||
comboExpUnit->setEnabled(true);
|
comboExpUnit->setEnabled(true);
|
||||||
|
// not implemented in FW to have multiple frames for eiger
|
||||||
if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) {
|
if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) {
|
||||||
spinNumFrames->setValue(1);
|
spinNumFrames->setValue(1);
|
||||||
} else {
|
} else {
|
||||||
@ -241,10 +273,17 @@ void qTabMeasurement::EnableWidgetsforTimingMode() {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GATED:
|
case GATED:
|
||||||
// #frames
|
// #frames, #gates(mythen3)
|
||||||
spinNumTriggers->setValue(1);
|
spinNumTriggers->setValue(1);
|
||||||
|
if (det->getDetectorType().squash() == slsDetectorDefs::MYTHEN3) {
|
||||||
|
lblNumGates->setEnabled(true);
|
||||||
|
spinNumGates->setEnabled(true);
|
||||||
|
}
|
||||||
lblNumFrames->setEnabled(true);
|
lblNumFrames->setEnabled(true);
|
||||||
spinNumFrames->setEnabled(true);
|
spinNumFrames->setEnabled(true);
|
||||||
|
if (det->getDetectorType().squash() == slsDetectorDefs::GOTTHARD2) {
|
||||||
|
ShowTriggerDelay();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case BURST_TRIGGER:
|
case BURST_TRIGGER:
|
||||||
// #frames, exptime, period
|
// #frames, exptime, period
|
||||||
@ -258,6 +297,18 @@ void qTabMeasurement::EnableWidgetsforTimingMode() {
|
|||||||
spinPeriod->setEnabled(true);
|
spinPeriod->setEnabled(true);
|
||||||
comboPeriodUnit->setEnabled(true);
|
comboPeriodUnit->setEnabled(true);
|
||||||
break;
|
break;
|
||||||
|
case TRIGGER_GATED:
|
||||||
|
// #triggers, delay, #frames, #gates
|
||||||
|
lblNumTriggers->setEnabled(true);
|
||||||
|
spinNumTriggers->setEnabled(true);
|
||||||
|
lblDelay->setEnabled(true);
|
||||||
|
spinDelay->setEnabled(true);
|
||||||
|
comboDelayUnit->setEnabled(true);
|
||||||
|
lblNumFrames->setEnabled(true);
|
||||||
|
spinNumFrames->setEnabled(true);
|
||||||
|
lblNumGates->setEnabled(true);
|
||||||
|
spinNumGates->setEnabled(true);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -278,6 +329,7 @@ void qTabMeasurement::GetTimingMode() {
|
|||||||
case slsDetectorDefs::TRIGGER_EXPOSURE:
|
case slsDetectorDefs::TRIGGER_EXPOSURE:
|
||||||
case slsDetectorDefs::GATED:
|
case slsDetectorDefs::GATED:
|
||||||
case slsDetectorDefs::BURST_TRIGGER:
|
case slsDetectorDefs::BURST_TRIGGER:
|
||||||
|
case slsDetectorDefs::TRIGGER_GATED:
|
||||||
comboTimingMode->setCurrentIndex((int)retval);
|
comboTimingMode->setCurrentIndex((int)retval);
|
||||||
// update widget enable only if different
|
// update widget enable only if different
|
||||||
if (oldMode != comboTimingMode->currentIndex()) {
|
if (oldMode != comboTimingMode->currentIndex()) {
|
||||||
@ -402,7 +454,7 @@ void qTabMeasurement::GetNumSamples() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void qTabMeasurement::SetNumSamples(int val) {
|
void qTabMeasurement::SetNumSamples(int val) {
|
||||||
LOG(logINFO) << "Setting number of samples to " << val;
|
LOG(logINFO) << "Getting number of external gates to " << val;
|
||||||
try {
|
try {
|
||||||
det->setNumberOfAnalogSamples(val);
|
det->setNumberOfAnalogSamples(val);
|
||||||
}
|
}
|
||||||
@ -411,6 +463,31 @@ void qTabMeasurement::SetNumSamples(int val) {
|
|||||||
&qTabMeasurement::GetNumSamples)
|
&qTabMeasurement::GetNumSamples)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qTabMeasurement::GetNumGates() {
|
||||||
|
LOG(logDEBUG) << "Getting number of gates";
|
||||||
|
disconnect(spinNumGates, SIGNAL(valueChanged(int)), this,
|
||||||
|
SLOT(SetNumGates(int)));
|
||||||
|
try {
|
||||||
|
auto retval = det->getNumberOfGates().tsquash(
|
||||||
|
"Inconsistent number of gates for all detectors.");
|
||||||
|
spinNumGates->setValue(retval);
|
||||||
|
}
|
||||||
|
CATCH_DISPLAY("Could not get number of gates.",
|
||||||
|
"qTabMeasurement::GetNumGates")
|
||||||
|
connect(spinNumGates, SIGNAL(valueChanged(int)), this,
|
||||||
|
SLOT(SetNumGates(int)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void qTabMeasurement::SetNumGates(int val) {
|
||||||
|
LOG(logINFO) << "Setting number of gates to " << val;
|
||||||
|
try {
|
||||||
|
det->setNumberOfGates(val);
|
||||||
|
}
|
||||||
|
CATCH_HANDLE("Could not set number of gates.",
|
||||||
|
"qTabMeasurement::SetNumGates", this,
|
||||||
|
&qTabMeasurement::GetNumGates)
|
||||||
|
}
|
||||||
|
|
||||||
void qTabMeasurement::GetExposureTime() {
|
void qTabMeasurement::GetExposureTime() {
|
||||||
LOG(logDEBUG) << "Getting exposure time";
|
LOG(logDEBUG) << "Getting exposure time";
|
||||||
disconnect(spinExpTime, SIGNAL(valueChanged(double)), this,
|
disconnect(spinExpTime, SIGNAL(valueChanged(double)), this,
|
||||||
@ -419,12 +496,30 @@ void qTabMeasurement::GetExposureTime() {
|
|||||||
SLOT(SetExposureTime()));
|
SLOT(SetExposureTime()));
|
||||||
try {
|
try {
|
||||||
spinExpTime->setValue(-1);
|
spinExpTime->setValue(-1);
|
||||||
auto retval = det->getExptime().tsquash(
|
|
||||||
"Inconsistent exposure time for all detectors.");
|
bool inconsistentGateValues = false;
|
||||||
auto time = qDefs::getUserFriendlyTime(retval);
|
Result<ns> retval;
|
||||||
spinExpTime->setValue(time.first);
|
if (det->getDetectorType().squash() == MYTHEN3) {
|
||||||
comboExpUnit->setCurrentIndex(static_cast<int>(time.second));
|
auto retvals = det->getExptimeForAllGates().tsquash(
|
||||||
CheckAcqPeriodGreaterThanExp();
|
"Inconsistent exposure time for all detectors.");
|
||||||
|
// all gates have same value
|
||||||
|
if (retvals[0] == retvals[1] && retvals[1] == retvals[2]) {
|
||||||
|
retval = retvals[0];
|
||||||
|
} else {
|
||||||
|
// dont throw, just leave it as -1
|
||||||
|
inconsistentGateValues = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
retval = det->getExptime().tsquash(
|
||||||
|
"Inconsistent exposure time for all detectors.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!inconsistentGateValues) {
|
||||||
|
auto time = qDefs::getUserFriendlyTime(retval);
|
||||||
|
spinExpTime->setValue(time.first);
|
||||||
|
comboExpUnit->setCurrentIndex(static_cast<int>(time.second));
|
||||||
|
CheckAcqPeriodGreaterThanExp();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
CATCH_DISPLAY("Could not get exposure time.",
|
CATCH_DISPLAY("Could not get exposure time.",
|
||||||
"qTabMeasurement::GetExposureTime")
|
"qTabMeasurement::GetExposureTime")
|
||||||
@ -826,6 +921,9 @@ void qTabMeasurement::Refresh() {
|
|||||||
if (sampleImplemented) {
|
if (sampleImplemented) {
|
||||||
GetNumSamples();
|
GetNumSamples();
|
||||||
}
|
}
|
||||||
|
if (gateImplemented) {
|
||||||
|
GetNumGates();
|
||||||
|
}
|
||||||
GetFileWrite();
|
GetFileWrite();
|
||||||
GetFileName();
|
GetFileName();
|
||||||
GetRunIndex();
|
GetRunIndex();
|
||||||
|
@ -1300,6 +1300,10 @@ void Implementation::updateTotalNumberOfFrames() {
|
|||||||
repeats = 1;
|
repeats = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (myDetectorType == MYTHEN3 &&
|
||||||
|
(timingMode == AUTO_TIMING || timingMode == GATED)) {
|
||||||
|
repeats = 1;
|
||||||
|
}
|
||||||
numberOfTotalFrames = numberOfFrames * repeats *
|
numberOfTotalFrames = numberOfFrames * repeats *
|
||||||
(int64_t)(numberOfAdditionalStorageCells + 1);
|
(int64_t)(numberOfAdditionalStorageCells + 1);
|
||||||
if (numberOfTotalFrames == 0) {
|
if (numberOfTotalFrames == 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user