diff --git a/slsDetectorGui/forms/form_tab_measurement.ui b/slsDetectorGui/forms/form_tab_measurement.ui index cf912b679..9290c74c9 100644 --- a/slsDetectorGui/forms/form_tab_measurement.ui +++ b/slsDetectorGui/forms/form_tab_measurement.ui @@ -538,6 +538,11 @@ Maximum value is 3. <br> Gated with Start Trigger + + + Burst Trigger + + @@ -862,7 +867,7 @@ Frame period between exposures. - -1 + 6 diff --git a/slsDetectorGui/include/qTabMeasurement.h b/slsDetectorGui/include/qTabMeasurement.h index 5f34f978a..76180933a 100644 --- a/slsDetectorGui/include/qTabMeasurement.h +++ b/slsDetectorGui/include/qTabMeasurement.h @@ -180,7 +180,7 @@ private: /** detector type */ slsDetectorDefs::detectorType detType; /** enum for the timing mode */ - enum{None, Auto, Trigger_Exp_Series, Trigger_Readout, Gated, Gated_Start, NumTimingModes}; + enum{None, Auto, Trigger_Exp_Series, Trigger_Readout, Gated, Gated_Start, Burst_Trigger, NumTimingModes}; /** timer to update the progress*/ QTimer *progressTimer; /** tool tip variables*/ diff --git a/slsDetectorGui/slsDetectorGui.pro b/slsDetectorGui/slsDetectorGui.pro index da52c63f8..641716a66 100644 --- a/slsDetectorGui/slsDetectorGui.pro +++ b/slsDetectorGui/slsDetectorGui.pro @@ -23,7 +23,7 @@ QMAKE_LIBS = -L$(QTDIR)/lib DEFINES += VERBOSE DACS_INT PRINT_LOG #VERYVERBOSE CHECKINFERROR LIBS = -L$(QWTDIR)/lib -lqwt -L$(QWT3D)/lib - +CXXFLAGS += -g QMAKE_CXXFLAGS_WARN_ON = -w diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 445ec4bab..cd1893eb8 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -137,12 +137,14 @@ void qTabMeasurement::SetupTimingMode(){ item[(int)Trigger_Readout]->setEnabled(true); item[(int)Gated]->setEnabled(true); item[(int)Gated_Start]->setEnabled(true); + item[(int)Burst_Trigger]->setEnabled(false); break; case slsDetectorDefs::EIGER: item[(int)Trigger_Exp_Series]->setEnabled(true); - item[(int)Trigger_Readout]->setEnabled(true); + item[(int)Trigger_Readout]->setEnabled(false); item[(int)Gated]->setEnabled(true); item[(int)Gated_Start]->setEnabled(false); + item[(int)Burst_Trigger]->setEnabled(true); break; case slsDetectorDefs::MOENCH: case slsDetectorDefs::PROPIX: @@ -152,6 +154,7 @@ void qTabMeasurement::SetupTimingMode(){ item[(int)Trigger_Readout]->setEnabled(false); item[(int)Gated]->setEnabled(false); item[(int)Gated_Start]->setEnabled(false); + item[(int)Burst_Trigger]->setEnabled(false); break; default: cout << "Unknown detector type." << endl; @@ -175,7 +178,7 @@ void qTabMeasurement::GetModeFromDetector(bool startup){ slsDetectorDefs::externalCommunicationMode mode = myDet->setExternalCommunicationMode(); //Setting the timing mode in gui - if(model && model->itemFromIndex(model->index(mode,comboTimingMode->modelColumn(), comboTimingMode->rootModelIndex()))->isEnabled()){ + if(model && model->itemFromIndex(model->index(mode+1,comboTimingMode->modelColumn(), comboTimingMode->rootModelIndex()))->isEnabled()){ //these are things checked in setuptimingmode @@ -229,7 +232,7 @@ void qTabMeasurement::GetModeFromDetector(bool startup){ cout << "The detector(s) " << offline << " is/are not connected. Exiting GUI." << endl; exit(-1); } - + cout << "Unknown Timing Mode " << mode << " detected from detector" << endl; qDefs::Message(qDefs::WARNING,"Unknown Timing Mode detected from detector." "\n\nSetting the following defaults:\nTiming Mode \t: None\n" "Number of Frames \t: 1\nNumber of Triggers \t: 1","qTabMeasurement::GetModeFromDetector"); @@ -655,9 +658,6 @@ void qTabMeasurement::SetTimingMode(int mode){ success = true; break; case Trigger_Readout://#Frames, ExpTime, Period, (Delay) - if(detType != slsDetectorDefs::EIGER){ - lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true); - } spinNumTriggers->setValue(1); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); @@ -685,6 +685,17 @@ void qTabMeasurement::SetTimingMode(int mode){ if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_WITH_START_TRIGGER)==slsDetectorDefs::GATE_WITH_START_TRIGGER) success = true; break; + case Burst_Trigger://#Frames, ExpTime, Period, (Delay) + spinNumTriggers->setValue(1); + if(detType != slsDetectorDefs::EIGER){ + lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true); + } + lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); + lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); + lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true); + if(myDet->setExternalCommunicationMode(slsDetectorDefs::BURST_TRIGGER)==slsDetectorDefs::BURST_TRIGGER) + success = true; + break; default: cout << "Timing mode unknown to GUI" << endl; //This should never happen