finished getting dacs and adcs..need to set it

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorGui@26 af1100a4-978c-4157-bff7-07162d2ba061
This commit is contained in:
l_maliakal_d 2012-08-07 19:11:54 +00:00
parent 72c52de2fe
commit a47d0a57f6
7 changed files with 404 additions and 153 deletions

View File

@ -8,15 +8,27 @@
#ifndef QTABDEVELOPER_H_ #ifndef QTABDEVELOPER_H_
#define QTABDEVELOPER_H_ #define QTABDEVELOPER_H_
/** Form Header */
#include "ui_form_tab_developer.h"
/** Project Class Headers */ /** Project Class Headers */
class multiSlsDetector; class multiSlsDetector;
#include "sls_detector_defs.h"
/** Qt Include Headers */
#include <QWidget>
#include <QGridLayout>
#include <QGroupBox>
#include <QLabel>
#include <QDoubleSpinBox>
#include <QScrollArea>
#include <QTimer>
/** C++ Include Headers */
#include <string>
#include <vector>
using namespace std;
/** /**
*@short sets up the Developer parameters *@short sets up the Developer parameters
*/ */
class qTabDeveloper:public QWidget, private Ui::TabDeveloperObject{ class qTabDeveloper:public QWidget{
Q_OBJECT Q_OBJECT
public: public:
@ -37,6 +49,29 @@ public:
private: private:
/** The sls detector object */ /** The sls detector object */
multiSlsDetector *myDet; multiSlsDetector *myDet;
/** detector type */
slsDetectorDefs::detectorType detType;
/**number of dac widgets*/
static int NUM_DAC_WIDGETS;
/**number of adc widgets*/
static int NUM_ADC_WIDGETS;
static const int ADC_TIMEOUT = 5000;
vector<string>dacNames;
vector<string>adcNames;
/**widgets needed*/
QGridLayout *layout;
QScrollArea *scroll;
QGroupBox *boxDacs;
QGroupBox *boxAdcs;
QLabel *lblDacs[20];
QLabel *lblAdcs[20];
QDoubleSpinBox *spinDacs[20];
QDoubleSpinBox *spinAdcs[20];
QTimer *adcTimer;
/** Sets up the widget /** Sets up the widget
*/ */
@ -46,6 +81,26 @@ private:
*/ */
void Initialization(); void Initialization();
/** Sets up the DAC Widgets
*/
void CreateDACWidgets();
/** Sets up the ADC Widgets
*/
void CreateADCWidgets();
/** Gets the sls index to set/get dac/adc
* @param index is the gui dac/adc index
* returns the sls index
*/
slsDetectorDefs::dacIndex getSLSIndex(int index);
private slots:
/** Refreshes the adcs
*/
void RefreshAdcs();
}; };

View File

@ -99,7 +99,7 @@ FORMS = \
forms/form_tab_advanced.ui\ forms/form_tab_advanced.ui\
forms/form_tab_settings.ui\ forms/form_tab_settings.ui\
forms/form_tab_debugging.ui\ forms/form_tab_debugging.ui\
forms/form_tab_developer.ui\ # forms/form_tab_developer.ui\
# forms/form_tab_messages.ui # forms/form_tab_messages.ui
forms/form_action.ui\ forms/form_action.ui\
forms/form_scan.ui forms/form_scan.ui

View File

@ -484,26 +484,19 @@ void qDrawPlot::UpdatePlot(){
}else{ }else{
h=plot1D_hists.at(hist_num); h=plot1D_hists.at(hist_num);
h->SetData(histNBins,histXAxis,GetHistYAxis(hist_num)); h->SetData(histNBins,histXAxis,GetHistYAxis(hist_num));
h->SetDotStyle(plotDotted);
} }
h->SetDotStyle(plotDotted);
h->setTitle(GetHistTitle(hist_num)); h->setTitle(GetHistTitle(hist_num));
h->Attach(plot1D); h->Attach(plot1D);
} }
// update range if required // update range if required
if(XYRangeChanged){ if(XYRangeChanged){
if(!IsXYRange[qDefs::XMINIMUM]) if(!IsXYRange[qDefs::XMINIMUM]) XYRangeValues[qDefs::XMINIMUM]= plot1D->GetXMinimum();
XYRangeValues[qDefs::XMINIMUM]= plot1D->GetXMinimum(); if(!IsXYRange[qDefs::XMAXIMUM]) XYRangeValues[qDefs::XMAXIMUM]= plot1D->GetXMaximum();
if(!IsXYRange[qDefs::XMAXIMUM]) if(!IsXYRange[qDefs::YMINIMUM]) XYRangeValues[qDefs::YMINIMUM]= plot1D->GetYMinimum();
XYRangeValues[qDefs::XMAXIMUM]= plot1D->GetXMaximum(); if(!IsXYRange[qDefs::YMAXIMUM]) XYRangeValues[qDefs::YMAXIMUM]= plot1D->GetYMaximum();
if(!IsXYRange[qDefs::YMINIMUM])
XYRangeValues[qDefs::YMINIMUM]= plot1D->GetYMinimum();
if(!IsXYRange[qDefs::YMAXIMUM])
XYRangeValues[qDefs::YMAXIMUM]= plot1D->GetYMaximum();
plot1D->SetXMinMax(XYRangeValues[qDefs::XMINIMUM],XYRangeValues[qDefs::XMAXIMUM]); plot1D->SetXMinMax(XYRangeValues[qDefs::XMINIMUM],XYRangeValues[qDefs::XMAXIMUM]);
plot1D->SetYMinMax(XYRangeValues[qDefs::YMINIMUM],XYRangeValues[qDefs::YMAXIMUM]); plot1D->SetYMinMax(XYRangeValues[qDefs::YMINIMUM],XYRangeValues[qDefs::YMAXIMUM]);
XYRangeChanged = false; XYRangeChanged = false;
} }
} }
@ -521,18 +514,12 @@ void qDrawPlot::UpdatePlot(){
} }
// update range if required // update range if required
if(XYRangeChanged){ if(XYRangeChanged){
if(!IsXYRange[qDefs::XMINIMUM]) if(!IsXYRange[qDefs::XMINIMUM]) XYRangeValues[qDefs::XMINIMUM]= plot2D->GetPlot()->GetXMinimum();
XYRangeValues[qDefs::XMINIMUM]= plot2D->GetPlot()->GetXMinimum(); if(!IsXYRange[qDefs::XMAXIMUM]) XYRangeValues[qDefs::XMAXIMUM]= plot2D->GetPlot()->GetXMaximum();
if(!IsXYRange[qDefs::XMAXIMUM]) if(!IsXYRange[qDefs::YMINIMUM]) XYRangeValues[qDefs::YMINIMUM]= plot2D->GetPlot()->GetYMinimum();
XYRangeValues[qDefs::XMAXIMUM]= plot2D->GetPlot()->GetXMaximum(); if(!IsXYRange[qDefs::YMAXIMUM]) XYRangeValues[qDefs::YMAXIMUM]= plot2D->GetPlot()->GetYMaximum();
if(!IsXYRange[qDefs::YMINIMUM])
XYRangeValues[qDefs::YMINIMUM]= plot2D->GetPlot()->GetYMinimum();
if(!IsXYRange[qDefs::YMAXIMUM])
XYRangeValues[qDefs::YMAXIMUM]= plot2D->GetPlot()->GetYMaximum();
plot2D->GetPlot()->SetXMinMax(XYRangeValues[qDefs::XMINIMUM],XYRangeValues[qDefs::XMAXIMUM]); plot2D->GetPlot()->SetXMinMax(XYRangeValues[qDefs::XMINIMUM],XYRangeValues[qDefs::XMAXIMUM]);
plot2D->GetPlot()->SetYMinMax(XYRangeValues[qDefs::YMINIMUM],XYRangeValues[qDefs::YMAXIMUM]); plot2D->GetPlot()->SetYMinMax(XYRangeValues[qDefs::YMINIMUM],XYRangeValues[qDefs::YMAXIMUM]);
XYRangeChanged = false; XYRangeChanged = false;
} }
} }

View File

@ -6,24 +6,33 @@
*/ */
#include "qTabDeveloper.h" #include "qTabDeveloper.h"
#include "qDefs.h" #include "qDefs.h"
/** Project Class Headers */ //Project Class Headers
#include "slsDetector.h" #include "slsDetector.h"
#include "multiSlsDetector.h" #include "multiSlsDetector.h"
/** C++ Include Headers */ //Qt Include Headers
#include <QSpacerItem>
#include <QString>
#include <QDoubleValidator>
//C++ Include Headers
#include<iostream> #include<iostream>
using namespace std; using namespace std;
//-------------------------------------------------------------------------------------------------------------------------------------------------
int qTabDeveloper::NUM_DAC_WIDGETS(0);
int qTabDeveloper::NUM_ADC_WIDGETS(0);
//-------------------------------------------------------------------------------------------------------------------------------------------------
qTabDeveloper::qTabDeveloper(QWidget *parent,multiSlsDetector*& detector):QWidget(parent),myDet(detector){ qTabDeveloper::qTabDeveloper(QWidget *parent,multiSlsDetector*& detector):QWidget(parent),myDet(detector){
setupUi(this);
SetupWidgetWindow(); SetupWidgetWindow();
Initialization(); Initialization();
} }
//-------------------------------------------------------------------------------------------------------------------------------------------------
qTabDeveloper::~qTabDeveloper(){ qTabDeveloper::~qTabDeveloper(){
@ -31,21 +40,218 @@ qTabDeveloper::~qTabDeveloper(){
} }
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabDeveloper::SetupWidgetWindow(){ void qTabDeveloper::SetupWidgetWindow(){
//Detector Type
detType=myDet->getDetectorsType();
//the nu
switch(detType){
case slsDetectorDefs::MYTHEN:
NUM_DAC_WIDGETS = 6;
NUM_ADC_WIDGETS = 0;
dacNames.push_back("v Trimbit:");
dacNames.push_back("v Threshold:");
dacNames.push_back("v Shaper1:");
dacNames.push_back("v Shaper2:");
dacNames.push_back("v Calibration:");
dacNames.push_back("v Preamp:");
break;
case slsDetectorDefs::EIGER:
NUM_DAC_WIDGETS = 16;
NUM_ADC_WIDGETS = 0;
break;
case slsDetectorDefs::GOTTHARD:
NUM_DAC_WIDGETS = 8;
NUM_ADC_WIDGETS = 2;
dacNames.push_back("Reference Voltage:");
dacNames.push_back("Cascade n Voltage:");
dacNames.push_back("Cascade p Voltage:");
dacNames.push_back("Comp. Output Voltage:");
dacNames.push_back("Cascade out Voltage:");
dacNames.push_back("Comp. Input Voltage:");
dacNames.push_back("Comp. Ref Voltage:");
dacNames.push_back("Base Test Current:");
adcNames.push_back("Temperature ADC:");
adcNames.push_back("Temperature FPGA:");
break;
default:
qDefs::ErrorMessage(string("Unknown detector type:")+myDet->slsDetectorBase::getDetectorType(detType),"Developer");
exit(-1);
break;
} }
//layout
setFixedWidth(765);
setFixedHeight(50+(NUM_DAC_WIDGETS/2)*35);
//setHeight(340);
scroll = new QScrollArea;
scroll->setFrameShape(QFrame::NoFrame);
scroll->setWidget(this);
scroll->setWidgetResizable(true);
layout = new QGridLayout(scroll);
layout->setContentsMargins(20,10,10,5);
setLayout(layout);
//dacs
boxDacs = new QGroupBox("Dacs",this);
boxDacs->setFixedHeight(25+(NUM_DAC_WIDGETS/2)*35);
layout->addWidget(boxDacs,0,0);
CreateDACWidgets();
//adcs
if((detType==slsDetectorDefs::GOTTHARD)||(detType==slsDetectorDefs::AGIPD)){
setFixedHeight((50+(NUM_DAC_WIDGETS/2)*35)+(50+(NUM_ADC_WIDGETS/2)*35));
boxAdcs = new QGroupBox("ADCs",this);
boxAdcs->setFixedHeight(25+(NUM_ADC_WIDGETS/2)*35);
layout->addWidget(boxAdcs,1,0);
CreateADCWidgets();
//to make the adcs at the bottom most
int diff = 340-height();
setFixedHeight(340);
layout->setVerticalSpacing(diff);
//timer to check adcs
adcTimer = new QTimer(this);
}
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabDeveloper::Initialization(){ void qTabDeveloper::Initialization(){
connect(adcTimer, SIGNAL(timeout()), this, SLOT(RefreshAdcs()));
//for(int i=0;i<NUM_DAC_WIDGETS;i++){
//connect(spinDacs[i], SIGNAL(editingFinished()), this, SLOT(SetFileSteps()));
} }
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabDeveloper::CreateDACWidgets(){
QGridLayout *dacLayout = new QGridLayout(boxDacs);
for(int i=0;i<NUM_DAC_WIDGETS;i++){
lblDacs[i] = new QLabel(QString(dacNames[i].c_str()),boxDacs);
spinDacs[i] = new QDoubleSpinBox(boxDacs);
spinDacs[i]->setMaximum(10000);
dacLayout->addWidget(lblDacs[i],(int)(i/2),((i%2)==0)?1:4);
dacLayout->addWidget(spinDacs[i],(int)(i/2),((i%2)==0)?2:5);
if(!(i%2)){
dacLayout->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),0);
dacLayout->addItem(new QSpacerItem(60,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),3);
dacLayout->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),6);
}
}
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabDeveloper::CreateADCWidgets(){
QGridLayout *adcLayout = new QGridLayout(boxAdcs);
for(int i=0;i<NUM_ADC_WIDGETS;i++){
lblAdcs[i] = new QLabel(QString(adcNames[i].c_str()),boxAdcs);
spinAdcs[i] = new QDoubleSpinBox(boxAdcs);
spinAdcs[i]->setMaximum(10000);
adcLayout->addWidget(lblAdcs[i],(int)(i/2),((i%2)==0)?1:4);
adcLayout->addWidget(spinAdcs[i],(int)(i/2),((i%2)==0)?2:5);
if(!(i%2)){
adcLayout->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),0);
adcLayout->addItem(new QSpacerItem(60,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),3);
adcLayout->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),6);
}
}
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(int index){
switch(detType){
case slsDetectorDefs::MYTHEN:
switch(index){
case 0: return slsDetectorDefs::TRIMBIT_SIZE;
case 1: return slsDetectorDefs::THRESHOLD;
case 2: return slsDetectorDefs::SHAPER1;
case 3: return slsDetectorDefs::SHAPER2;
case 4: return slsDetectorDefs::CALIBRATION_PULSE;
case 5: return slsDetectorDefs::PREAMP;
default:
qDefs::ErrorMessage("Unknown DAC/ADC Index. Weird Error","Developer");
Refresh();
break;
}
case slsDetectorDefs::EIGER:
return slsDetectorDefs::HUMIDITY;
/**fill in here*/
break;
case slsDetectorDefs::GOTTHARD:
switch(index){
case 0: return slsDetectorDefs::G_VREF_DS;
case 1: return slsDetectorDefs::G_VCASCN_PB;
case 2: return slsDetectorDefs::G_VCASCP_PB;
case 3: return slsDetectorDefs::G_VOUT_CM;
case 4: return slsDetectorDefs::G_VCASC_OUT;
case 5: return slsDetectorDefs::G_VIN_CM;
case 6: return slsDetectorDefs::G_VREF_COMP;
case 7: return slsDetectorDefs::G_IB_TESTC;
case 8: return slsDetectorDefs::TEMPERATURE_ADC;
case 9: return slsDetectorDefs::TEMPERATURE_FPGA;
default:
qDefs::ErrorMessage("Unknown DAC/ADC Index. Weird Error","Developer");
Refresh();
break;
}
default:
qDefs::ErrorMessage(string("Unknown detector type:")+myDet->slsDetectorBase::getDetectorType(detType),"Developer");
exit(-1);
break;
}
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabDeveloper::RefreshAdcs(){
#ifdef VERYVERBOSE
cout << "Updating ADCs" <<endl;
#endif
adcTimer->stop();
for(int i=0;i<NUM_ADC_WIDGETS;i++)
spinAdcs[i]->setValue(myDet->getADC(getSLSIndex(i+NUM_DAC_WIDGETS)));
adcTimer->start(ADC_TIMEOUT);
}
//------------------------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabDeveloper::Refresh(){ void qTabDeveloper::Refresh(){
#ifdef VERBOSE
cout << "Updating Dacs and Adcs" <<endl;
#endif
//dacs
for(int i=0;i<NUM_DAC_WIDGETS;i++)
spinDacs[i]->setValue(myDet->setDAC(-1,getSLSIndex(i)));
//adcs
RefreshAdcs();
} }

View File

@ -5,16 +5,16 @@
* Author: l_maliakal_d * Author: l_maliakal_d
*/ */
/** Qt Project Class Headers */ //Qt Project Class Headers
#include "qTabMeasurement.h" #include "qTabMeasurement.h"
#include "qDefs.h" #include "qDefs.h"
#include "qDrawPlot.h" #include "qDrawPlot.h"
/** Project Class Headers */ //Project Class Headers
#include "slsDetector.h" #include "slsDetector.h"
#include "multiSlsDetector.h" #include "multiSlsDetector.h"
/** Qt Include Headers */ //Qt Include Headers
#include <QStandardItemModel> #include <QStandardItemModel>
/** C++ Include Headers */ //C++ Include Headers
#include<iostream> #include<iostream>
using namespace std; using namespace std;
@ -47,18 +47,18 @@ qTabMeasurement::~qTabMeasurement(){
void qTabMeasurement::SetupWidgetWindow(){ void qTabMeasurement::SetupWidgetWindow(){
/** Number of measurements */ //Number of measurements
numMeasurement=1; numMeasurement=1;
/** Timer to update the progress bar **/ //Timer to update the progress bar
progressTimer = new QTimer(this); progressTimer = new QTimer(this);
//btnStartStop->setStyleSheet("color:green"); //btnStartStop->setStyleSheet("color:green");
/** Exp Time **/ //Exp Time
qDefs::timeUnit unit; qDefs::timeUnit unit;
double time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::ACQUISITION_TIME,-1)*(1E-9)))); double time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::ACQUISITION_TIME,-1)*(1E-9))));
spinExpTime->setValue(time); spinExpTime->setValue(time);
comboExpUnit->setCurrentIndex((int)unit); comboExpUnit->setCurrentIndex((int)unit);
/** Hide the error message **/ //Hide the error message
red = QPalette(); red = QPalette();
red.setColor(QPalette::Active,QPalette::WindowText,Qt::red); red.setColor(QPalette::Active,QPalette::WindowText,Qt::red);
acqPeriodTip = spinPeriod->toolTip(); acqPeriodTip = spinPeriod->toolTip();
@ -66,20 +66,20 @@ void qTabMeasurement::SetupWidgetWindow(){
"<nobr> #period#</nobr><br><br>")+ "<nobr> #period#</nobr><br><br>")+
QString("<nobr><font color=\"red\"><b>Acquisition Period</b> should be" QString("<nobr><font color=\"red\"><b>Acquisition Period</b> should be"
" greater than or equal to <b>Exposure Time</b>.</font></nobr>"); " greater than or equal to <b>Exposure Time</b>.</font></nobr>");
/** File Name **/ //File Name
dispFileName->setText(QString(myDet->getFileName().c_str())); dispFileName->setText(QString(myDet->getFileName().c_str()));
/** File Index **/ //File Index
spinIndex->setValue(myDet->getFileIndex()); spinIndex->setValue(myDet->getFileIndex());
/** only initially **/ //only initially
lblProgressIndex->setText(QString::number(myDet->getFileIndex())); lblProgressIndex->setText(QString::number(myDet->getFileIndex()));
/** only initially **/ //ly initially
progressBar->setValue(0); progressBar->setValue(0);
currentMeasurement = 0; currentMeasurement = 0;
/** timing mode*/ //timing mode
SetupTimingMode(); SetupTimingMode();
/**file write enabled/disabled*/ //file write enabled/disabled
myDet->enableWriteToFile(true); myDet->enableWriteToFile(true);
//check if file enabled //check if file enabled
} }
@ -89,10 +89,10 @@ void qTabMeasurement::SetupWidgetWindow(){
void qTabMeasurement::SetupTimingMode(){ void qTabMeasurement::SetupTimingMode(){
/** Get timing mode from detector*/ //Get timing mode from detector
slsDetectorDefs::externalCommunicationMode mode = myDet->setExternalCommunicationMode(); slsDetectorDefs::externalCommunicationMode mode = myDet->setExternalCommunicationMode();
/** To be able to index items on a combo box */ //To be able to index items on a combo box
QStandardItemModel* model = qobject_cast<QStandardItemModel*>(comboTimingMode->model()); QStandardItemModel* model = qobject_cast<QStandardItemModel*>(comboTimingMode->model());
QModelIndex index[NumTimingModes]; QModelIndex index[NumTimingModes];
QStandardItem* item[NumTimingModes]; QStandardItem* item[NumTimingModes];
@ -101,7 +101,7 @@ void qTabMeasurement::SetupTimingMode(){
index[i] = model->index(i, comboTimingMode->modelColumn(), comboTimingMode->rootModelIndex()); index[i] = model->index(i, comboTimingMode->modelColumn(), comboTimingMode->rootModelIndex());
item[i] = model->itemFromIndex(index[i]); item[i] = model->itemFromIndex(index[i]);
} }
/** Enabling/Disabling depending on the detector type */ //Enabling/Disabling depending on the detector type
switch(myDet->getDetectorsType()){ switch(myDet->getDetectorsType()){
case slsDetectorDefs::MYTHEN: case slsDetectorDefs::MYTHEN:
item[(int)Trigger_Exp_Series]->setEnabled(true); item[(int)Trigger_Exp_Series]->setEnabled(true);
@ -132,12 +132,12 @@ void qTabMeasurement::SetupTimingMode(){
exit(-1); exit(-1);
break; break;
} }
/** Setting the timing mode */ //Setting the timing mode
if(item[mode]->isEnabled()){ if(item[mode]->isEnabled()){
/**if the timing mode is Auto and //if the timing mode is Auto and
* number of Frames and number of triggers is 1, // number of Frames and number of triggers is 1,
* then the timing mode is 'None'. // then the timing mode is 'None'.
* This is for the inexperienced user */ // This is for the inexperienced user
if(mode==slsDetectorDefs::AUTO_TIMING){ if(mode==slsDetectorDefs::AUTO_TIMING){
int frames = (int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1); int frames = (int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1);
int triggers = (int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,-1); int triggers = (int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,-1);
@ -149,14 +149,14 @@ void qTabMeasurement::SetupTimingMode(){
setTimingMode((int)Auto); setTimingMode((int)Auto);
} }
}else{ }else{
/** mode +1 since the detector class has no timingmode as "None" */ //mode +1 since the detector class has no timingmode as "None"
comboTimingMode->setCurrentIndex((int)mode+1); comboTimingMode->setCurrentIndex((int)mode+1);
setTimingMode((int)mode+1); setTimingMode((int)mode+1);
} }
} }
/** Mode NOT ENABLED. // Mode NOT ENABLED.
* This should not happen -only if the server and gui has a mismatch // This should not happen -only if the server and gui has a mismatch
* on which all modes are allowed in detectors */ // on which all modes are allowed in detectors
else{ else{
qDefs::WarningMessage("Unknown Timing Mode detected from detector." qDefs::WarningMessage("Unknown Timing Mode detected from detector."
"\n\nSetting the following defaults:\nTiming Mode \t: None\n" "\n\nSetting the following defaults:\nTiming Mode \t: None\n"
@ -172,39 +172,39 @@ void qTabMeasurement::SetupTimingMode(){
void qTabMeasurement::Initialization(int timingChange){ void qTabMeasurement::Initialization(int timingChange){
/** These signals are connected only at start up. The others are reinitialized when changing timing mode*/ //These signals are connected only at start up. The others are reinitialized when changing timing mode
if(!timingChange){ if(!timingChange){
/** Number of Measurements**/ //Number of Measurements
connect(spinNumMeasurements,SIGNAL(valueChanged(int)), this, SLOT(setNumMeasurements(int))); connect(spinNumMeasurements,SIGNAL(valueChanged(int)), this, SLOT(setNumMeasurements(int)));
/** File Name**/ //File Name
connect(dispFileName, SIGNAL(textChanged(const QString&)),this, SLOT(setFileName(const QString&))); connect(dispFileName, SIGNAL(textChanged(const QString&)),this, SLOT(setFileName(const QString&)));
/** File Index**/ //File Index
connect(spinIndex, SIGNAL(valueChanged(int)), this, SLOT(setRunIndex(int))); connect(spinIndex, SIGNAL(valueChanged(int)), this, SLOT(setRunIndex(int)));
/** Start/Stop Acquisition**/ //Start/Stop Acquisition
connect(btnStartStop, SIGNAL(clicked()), this, SLOT(startStopAcquisition())); connect(btnStartStop, SIGNAL(clicked()), this, SLOT(startStopAcquisition()));
/** Timing Mode **/ //Timing Mode
connect(comboTimingMode, SIGNAL(currentIndexChanged(int)), this, SLOT(setTimingMode(int)));// connect(comboTimingMode, SIGNAL(currentIndexChanged(int)), this, SLOT(setTimingMode(int)));//
/** progress bar */ //progress bar
connect(progressTimer, SIGNAL(timeout()), this, SLOT(UpdateProgress())); connect(progressTimer, SIGNAL(timeout()), this, SLOT(UpdateProgress()));
/** enable write to file */ //enable write to file
connect(chkFile, SIGNAL(toggled(bool)), this, SLOT(EnableFileWrite(bool))); connect(chkFile, SIGNAL(toggled(bool)), this, SLOT(EnableFileWrite(bool)));
} }
/** Number of Frames**/ //Number of Frames
connect(spinNumFrames,SIGNAL(valueChanged(int)), this, SLOT(setNumFrames(int))); connect(spinNumFrames,SIGNAL(valueChanged(int)), this, SLOT(setNumFrames(int)));
/** Exposure Time **/ //Exposure Time
connect(spinExpTime,SIGNAL(valueChanged(double)), this, SLOT(setExposureTime()));//..myplot connect(spinExpTime,SIGNAL(valueChanged(double)), this, SLOT(setExposureTime()));//..myplot
connect(comboExpUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setExposureTime())); connect(comboExpUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setExposureTime()));
/** Frame Period between exposures**/ //Frame Period between exposures
connect(spinPeriod,SIGNAL(valueChanged(double)), this, SLOT(setAcquisitionPeriod()));//..myplot connect(spinPeriod,SIGNAL(valueChanged(double)), this, SLOT(setAcquisitionPeriod()));//..myplot
connect(comboPeriodUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setAcquisitionPeriod())); connect(comboPeriodUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setAcquisitionPeriod()));
/** Number of Triggers**/ //Number of Triggers
connect(spinNumTriggers,SIGNAL(valueChanged(int)), this, SLOT(setNumTriggers(int)));// connect(spinNumTriggers,SIGNAL(valueChanged(int)), this, SLOT(setNumTriggers(int)));//
/** Delay After Trigger **/ //Delay After Trigger
connect(spinDelay,SIGNAL(valueChanged(double)), this, SLOT(setDelay()));// connect(spinDelay,SIGNAL(valueChanged(double)), this, SLOT(setDelay()));//
connect(comboDelayUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay())); connect(comboDelayUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay()));
/** Number of Gates**/ //Number of Gates
connect(spinNumGates,SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int)));// connect(spinNumGates,SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int)));//
/** Number of Probes**/ //Number of Probes
connect(spinNumProbes,SIGNAL(valueChanged(int)), this, SLOT(setNumProbes(int)));// connect(spinNumProbes,SIGNAL(valueChanged(int)), this, SLOT(setNumProbes(int)));//
} }
@ -213,22 +213,22 @@ void qTabMeasurement::Initialization(int timingChange){
void qTabMeasurement::DeInitialization(){ void qTabMeasurement::DeInitialization(){
/** Number of Frames**/ //Number of Frames
disconnect(spinNumFrames,SIGNAL(valueChanged(int)), this, SLOT(setNumFrames(int))); disconnect(spinNumFrames,SIGNAL(valueChanged(int)), this, SLOT(setNumFrames(int)));
/** Exposure Time **/ //Exposure Time
disconnect(spinExpTime,SIGNAL(valueChanged(double)), this, SLOT(setExposureTime()));//..myplot disconnect(spinExpTime,SIGNAL(valueChanged(double)), this, SLOT(setExposureTime()));//..myplot
disconnect(comboExpUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setExposureTime())); disconnect(comboExpUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setExposureTime()));
/** Frame Period between exposures**/ //Frame Period between exposures
disconnect(spinPeriod,SIGNAL(valueChanged(double)), this, SLOT(setAcquisitionPeriod()));//..myplot disconnect(spinPeriod,SIGNAL(valueChanged(double)), this, SLOT(setAcquisitionPeriod()));//..myplot
disconnect(comboPeriodUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setAcquisitionPeriod())); disconnect(comboPeriodUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setAcquisitionPeriod()));
/** Number of Triggers**/ //Number of Triggers
disconnect(spinNumTriggers,SIGNAL(valueChanged(int)), this, SLOT(setNumTriggers(int))); disconnect(spinNumTriggers,SIGNAL(valueChanged(int)), this, SLOT(setNumTriggers(int)));
/** Delay After Trigger **/ //Delay After Trigger
disconnect(spinDelay,SIGNAL(valueChanged(double)), this, SLOT(setDelay())); disconnect(spinDelay,SIGNAL(valueChanged(double)), this, SLOT(setDelay()));
disconnect(comboDelayUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay())); disconnect(comboDelayUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay()));
/** Number of Gates**/ //Number of Gates
disconnect(spinNumGates,SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int))); disconnect(spinNumGates,SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int)));
/** Number of Probes**/ //Number of Probes
disconnect(spinNumProbes,SIGNAL(valueChanged(int)), this, SLOT(setNumProbes(int))); disconnect(spinNumProbes,SIGNAL(valueChanged(int)), this, SLOT(setNumProbes(int)));
} }
@ -239,7 +239,7 @@ void qTabMeasurement::DeInitialization(){
void qTabMeasurement::Enable(bool enable){ void qTabMeasurement::Enable(bool enable){
frameTimeResolved->setEnabled(enable); frameTimeResolved->setEnabled(enable);
frameNotTimeResolved->setEnabled(enable); frameNotTimeResolved->setEnabled(enable);
/** Enable this always **/ //Enable this always
if(!enable) btnStartStop->setEnabled(true); if(!enable) btnStartStop->setEnabled(true);
} }
@ -287,7 +287,7 @@ void qTabMeasurement::startStopAcquisition(){
btnStartStop->setText("Stop"); btnStartStop->setText("Stop");
Enable(0); Enable(0);
progressBar->setValue(0); progressBar->setValue(0);
/** the progress which keeps adding up for all the measurements*/ //the progress which keeps adding up for all the measurements
currentMeasurement = 0; currentMeasurement = 0;
progressTimer->start(100); progressTimer->start(100);
@ -359,7 +359,7 @@ void qTabMeasurement::setNumFrames(int val){
void qTabMeasurement::setExposureTime(){ void qTabMeasurement::setExposureTime(){
double exptimeNS; double exptimeNS;
/** Get the value of timer in ns **/ //Get the value of timer in ns
exptimeNS = qDefs::getNSTime((qDefs::timeUnit)comboExpUnit->currentIndex(),spinExpTime->value()); exptimeNS = qDefs::getNSTime((qDefs::timeUnit)comboExpUnit->currentIndex(),spinExpTime->value());
#ifdef VERBOSE #ifdef VERBOSE
cout << "Setting acquisition time to " << exptimeNS << " clocks" << "/" << spinExpTime->value() << qDefs::getUnitString((qDefs::timeUnit)comboExpUnit->currentIndex()) << endl; cout << "Setting acquisition time to " << exptimeNS << " clocks" << "/" << spinExpTime->value() << qDefs::getUnitString((qDefs::timeUnit)comboExpUnit->currentIndex()) << endl;
@ -390,7 +390,7 @@ void qTabMeasurement::setExposureTime(){
void qTabMeasurement::setAcquisitionPeriod(){ void qTabMeasurement::setAcquisitionPeriod(){
double acqtimeNS; double acqtimeNS;
/** Get the value of timer in ns **/ //Get the value of timer in ns
acqtimeNS = qDefs::getNSTime((qDefs::timeUnit)comboPeriodUnit->currentIndex(),spinPeriod->value()); acqtimeNS = qDefs::getNSTime((qDefs::timeUnit)comboPeriodUnit->currentIndex(),spinPeriod->value());
#ifdef VERBOSE #ifdef VERBOSE
cout << "Setting frame period between exposures to " << acqtimeNS << " clocks"<< "/" << spinPeriod->value() << qDefs::getUnitString((qDefs::timeUnit)comboPeriodUnit->currentIndex()) << endl; cout << "Setting frame period between exposures to " << acqtimeNS << " clocks"<< "/" << spinPeriod->value() << qDefs::getUnitString((qDefs::timeUnit)comboPeriodUnit->currentIndex()) << endl;
@ -412,7 +412,7 @@ void qTabMeasurement::setAcquisitionPeriod(){
lblPeriod->setText("Acquisition Period:"); lblPeriod->setText("Acquisition Period:");
} }
/** Check if the interval between plots is ok */ //Check if the interval between plots is ok
emit CheckPlotIntervalSignal(); emit CheckPlotIntervalSignal();
} }
@ -433,7 +433,7 @@ void qTabMeasurement::setNumTriggers(int val){
void qTabMeasurement::setDelay(){ void qTabMeasurement::setDelay(){
double exptimeNS; double exptimeNS;
/** Get the value of timer in ns **/ //Get the value of timer in ns
exptimeNS = qDefs::getNSTime((qDefs::timeUnit)comboDelayUnit->currentIndex(),spinDelay->value()); exptimeNS = qDefs::getNSTime((qDefs::timeUnit)comboDelayUnit->currentIndex(),spinDelay->value());
#ifdef VERBOSE #ifdef VERBOSE
cout << "Setting delay after trigger to " << exptimeNS << " clocks" << "/" << spinDelay->value() << qDefs::getUnitString((qDefs::timeUnit)comboDelayUnit->currentIndex()) << endl; cout << "Setting delay after trigger to " << exptimeNS << " clocks" << "/" << spinDelay->value() << qDefs::getUnitString((qDefs::timeUnit)comboDelayUnit->currentIndex()) << endl;
@ -471,7 +471,7 @@ void qTabMeasurement::setTimingMode(int mode){
#ifdef VERBOSE #ifdef VERBOSE
cout << "Setting Timing mode to " << comboTimingMode->currentText().toAscii().data() << endl; cout << "Setting Timing mode to " << comboTimingMode->currentText().toAscii().data() << endl;
#endif #endif
/** Default settings */ //Default settings
lblNumFrames->setEnabled(false); spinNumFrames->setEnabled(false); lblNumFrames->setEnabled(false); spinNumFrames->setEnabled(false);
lblExpTime->setEnabled(false); spinExpTime->setEnabled(false); comboExpUnit->setEnabled(false); lblExpTime->setEnabled(false); spinExpTime->setEnabled(false); comboExpUnit->setEnabled(false);
lblPeriod->setEnabled(false); spinPeriod->setEnabled(false); comboPeriodUnit->setEnabled(false); lblPeriod->setEnabled(false); spinPeriod->setEnabled(false); comboPeriodUnit->setEnabled(false);
@ -482,21 +482,21 @@ void qTabMeasurement::setTimingMode(int mode){
bool success = false; bool success = false;
switch(mode){ switch(mode){
case None:/** Exposure Time */ case None://Exposure Time
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
setNumFrames(1); setNumFrames(1);
setNumTriggers(1); setNumTriggers(1);
if(myDet->setExternalCommunicationMode(slsDetectorDefs::AUTO_TIMING)==slsDetectorDefs::AUTO_TIMING) if(myDet->setExternalCommunicationMode(slsDetectorDefs::AUTO_TIMING)==slsDetectorDefs::AUTO_TIMING)
success = true; success = true;
break; break;
case Auto:/** Number of Frames, Exposure Time, Acquisition Period */ case Auto://Number of Frames, Exposure Time, Acquisition Period
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true); lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
if(myDet->setExternalCommunicationMode(slsDetectorDefs::AUTO_TIMING)==slsDetectorDefs::AUTO_TIMING) if(myDet->setExternalCommunicationMode(slsDetectorDefs::AUTO_TIMING)==slsDetectorDefs::AUTO_TIMING)
success = true; success = true;
break; break;
case Trigger_Exp_Series:/** Number of Frames, Exposure Time, Acquisition Period, Number of Triggers, Delay */ case Trigger_Exp_Series://Number of Frames, Exposure Time, Acquisition Period, Number of Triggers, Delay
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true); lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
@ -505,13 +505,13 @@ void qTabMeasurement::setTimingMode(int mode){
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_EXPOSURE)==slsDetectorDefs::TRIGGER_EXPOSURE) if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_EXPOSURE)==slsDetectorDefs::TRIGGER_EXPOSURE)
success = true; success = true;
break; break;
case Trigger_Frame:/** Exposure Time, Number of Triggers */ case Trigger_Frame://Exposure Time, Number of Triggers
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true); lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_FRAME)==slsDetectorDefs::TRIGGER_FRAME) if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_FRAME)==slsDetectorDefs::TRIGGER_FRAME)
success = true; success = true;
break; break;
case Trigger_Readout:/** Number of Frames, Exposure Time, Acquisition Period, Delay */ case Trigger_Readout://Number of Frames, Exposure Time, Acquisition Period, Delay
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true); lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
@ -519,13 +519,13 @@ void qTabMeasurement::setTimingMode(int mode){
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_READOUT)==slsDetectorDefs::TRIGGER_READOUT) if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_READOUT)==slsDetectorDefs::TRIGGER_READOUT)
success = true; success = true;
break; break;
case Gated:/** Number of Frames, Number of Gates */ case Gated://Number of Frames, Number of Gates
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
lblNumGates->setEnabled(true); spinNumGates->setEnabled(true); lblNumGates->setEnabled(true); spinNumGates->setEnabled(true);
if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_FIX_NUMBER)==slsDetectorDefs::GATE_FIX_NUMBER) if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_FIX_NUMBER)==slsDetectorDefs::GATE_FIX_NUMBER)
success = true; success = true;
break; break;
case Gated_Start:/** Number of Frames, Exposure Time, Acquisition Period, Number of Triggers, Number of Gates */ case Gated_Start://Number of Frames, Exposure Time, Acquisition Period, Number of Triggers, Number of Gates
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true); lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
@ -534,13 +534,13 @@ void qTabMeasurement::setTimingMode(int mode){
if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_WITH_START_TRIGGER)==slsDetectorDefs::GATE_WITH_START_TRIGGER) if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_WITH_START_TRIGGER)==slsDetectorDefs::GATE_WITH_START_TRIGGER)
success = true; success = true;
break; break;
case Trigger_Window:/** Number of Triggers */ case Trigger_Window://Number of Triggers
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true); lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_WINDOW)==slsDetectorDefs::TRIGGER_WINDOW) if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_WINDOW)==slsDetectorDefs::TRIGGER_WINDOW)
success = true; success = true;
break; break;
default: default:
/** This should never happen */ //This should never happen
qDefs::ErrorMessage("Timing mode unknown to GUI","Measurement"); qDefs::ErrorMessage("Timing mode unknown to GUI","Measurement");
exit(-1); exit(-1);
} }
@ -553,20 +553,20 @@ void qTabMeasurement::setTimingMode(int mode){
return; return;
} }
if(mode!=None){/** Number of Probes */ if(mode!=None){//Number of Probes
if(myDet->getDetectorsType()==slsDetectorDefs::MYTHEN){ if(myDet->getDetectorsType()==slsDetectorDefs::MYTHEN){
lblNumProbes->setEnabled(true); spinNumProbes->setEnabled(true); lblNumProbes->setEnabled(true); spinNumProbes->setEnabled(true);
} }
} }
/** To disconnect all the signals before changing their values*/ //To disconnect all the signals before changing their values
DeInitialization(); DeInitialization();
double time; double time;
int val; int val;
qDefs::timeUnit unit; qDefs::timeUnit unit;
/**Number of Frames */ //Number of Frames
if(lblNumFrames->isEnabled()){ if(lblNumFrames->isEnabled()){
val = (int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1); val = (int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1);
spinNumFrames->setValue(val); spinNumFrames->setValue(val);
@ -575,7 +575,7 @@ void qTabMeasurement::setTimingMode(int mode){
#endif #endif
} }
/**Exposure Time */ //Exposure Time
if(lblExpTime->isEnabled()){ if(lblExpTime->isEnabled()){
time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::ACQUISITION_TIME,-1)*(1E-9)))); time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::ACQUISITION_TIME,-1)*(1E-9))));
#ifdef VERBOSE #ifdef VERBOSE
@ -585,7 +585,7 @@ void qTabMeasurement::setTimingMode(int mode){
comboExpUnit->setCurrentIndex((int)unit); comboExpUnit->setCurrentIndex((int)unit);
} }
/**Frame Period between exposures */ //Frame Period between exposures
if(lblPeriod->isEnabled()){ if(lblPeriod->isEnabled()){
time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::FRAME_PERIOD,-1)*(1E-9)))); time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::FRAME_PERIOD,-1)*(1E-9))));
#ifdef VERBOSE #ifdef VERBOSE
@ -618,7 +618,7 @@ void qTabMeasurement::setTimingMode(int mode){
lblPeriod->setText("Acquisition Period:"); lblPeriod->setText("Acquisition Period:");
} }
/**Number of Triggers */ //Number of Triggers
if(lblNumTriggers->isEnabled()){ if(lblNumTriggers->isEnabled()){
val = (int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,-1); val = (int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,-1);
spinNumTriggers->setValue(val); spinNumTriggers->setValue(val);
@ -627,7 +627,7 @@ void qTabMeasurement::setTimingMode(int mode){
#endif #endif
} }
/**Delay After Trigger */ //Delay After Trigger
if(lblDelay->isEnabled()){ if(lblDelay->isEnabled()){
time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::DELAY_AFTER_TRIGGER,-1)*(1E-9)))); time = qDefs::getCorrectTime(unit,((double)(myDet->setTimer(slsDetectorDefs::DELAY_AFTER_TRIGGER,-1)*(1E-9))));
#ifdef VERBOSE #ifdef VERBOSE
@ -637,7 +637,7 @@ void qTabMeasurement::setTimingMode(int mode){
comboDelayUnit->setCurrentIndex((int)unit); comboDelayUnit->setCurrentIndex((int)unit);
} }
/**Number of Gates */ //Number of Gates
if(lblNumGates->isEnabled()){ if(lblNumGates->isEnabled()){
val = (int)myDet->setTimer(slsDetectorDefs::GATES_NUMBER,-1); val = (int)myDet->setTimer(slsDetectorDefs::GATES_NUMBER,-1);
spinNumGates->setValue(val); spinNumGates->setValue(val);
@ -646,7 +646,7 @@ void qTabMeasurement::setTimingMode(int mode){
#endif #endif
} }
/**Number of Probes */ // Number of Probes
if(lblNumProbes->isEnabled()){ if(lblNumProbes->isEnabled()){
val = (int)myDet->setTimer(slsDetectorDefs::PROBES_NUMBER,-1); val = (int)myDet->setTimer(slsDetectorDefs::PROBES_NUMBER,-1);
spinNumProbes->setValue(val); spinNumProbes->setValue(val);
@ -655,7 +655,7 @@ void qTabMeasurement::setTimingMode(int mode){
#endif #endif
} }
/** To reconnect all the signals after changing their values*/ //To reconnect all the signals after changing their values
Initialization(1); Initialization(1);
@ -679,13 +679,13 @@ void qTabMeasurement::EnableFileWrite(bool enable){
void qTabMeasurement::Refresh(){ void qTabMeasurement::Refresh(){
/** File Name **/ //File Name
dispFileName->setText(QString(myDet->getFileName().c_str())); dispFileName->setText(QString(myDet->getFileName().c_str()));
/** File Index **/ //File Index
spinIndex->setValue(myDet->getFileIndex()); spinIndex->setValue(myDet->getFileIndex());
/** progress label index **/ //progress label index
lblProgressIndex->setText(QString::number(myDet->getFileIndex())); lblProgressIndex->setText(QString::number(myDet->getFileIndex()));
/** Timing mode**/ //Timing mode*
SetupTimingMode(); SetupTimingMode();
// to let qdrawplot know that triggers or frames are used // to let qdrawplot know that triggers or frames are used

View File

@ -482,6 +482,9 @@ void qTabPlot::EnableScanBox(bool enable,int id){
radioLevel1->setChecked(!enable); radioLevel1->setChecked(!enable);
} }
} }
/**if(boxScan->isEnabled()){
myDet->setPlotType(i);
}*/
} }

View File

@ -7,10 +7,10 @@
#include "qTabSettings.h" #include "qTabSettings.h"
#include "qDefs.h" #include "qDefs.h"
/** Project Class Headers */ // Project Class Headers
#include "slsDetector.h" #include "slsDetector.h"
#include "multiSlsDetector.h" #include "multiSlsDetector.h"
/** C++ Include Headers */ // C++ Include Headers
#include<iostream> #include<iostream>
using namespace std; using namespace std;
@ -34,22 +34,22 @@ qTabSettings::~qTabSettings(){
//------------------------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabSettings::SetupWidgetWindow(){ void qTabSettings::SetupWidgetWindow(){
/** Detector Type*/ // Detector Type
detType=myDet->getDetectorsType(); detType=myDet->getDetectorsType();
/** Settings */ // Settings
SetupDetectorSettings(); SetupDetectorSettings();
comboSettings->setCurrentIndex(myDet->getSettings(detID)); comboSettings->setCurrentIndex(myDet->getSettings(detID));
/**expert mode is not enabled initially*/ //expert mode is not enabled initially
lblThreshold->setEnabled(false); lblThreshold->setEnabled(false);
spinThreshold->setEnabled(false); spinThreshold->setEnabled(false);
/** Number of Modules */ // Number of Modules
spinNumModules->setMaximum(myDet->getMaxNumberOfModules()); spinNumModules->setMaximum(myDet->getMaxNumberOfModules());
spinNumModules->setValue(myDet->setNumberOfModules()); spinNumModules->setValue(myDet->setNumberOfModules());
/** Dynamic Range */ // Dynamic Range
switch(myDet->setDynamicRange(-1)){ switch(myDet->setDynamicRange(-1)){
case 32: comboDynamicRange->setCurrentIndex(0); break; case 32: comboDynamicRange->setCurrentIndex(0); break;
case 16: comboDynamicRange->setCurrentIndex(1); break; case 16: comboDynamicRange->setCurrentIndex(1); break;
@ -63,18 +63,18 @@ void qTabSettings::SetupWidgetWindow(){
//------------------------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabSettings::SetupDetectorSettings(){ void qTabSettings::SetupDetectorSettings(){
/** Get detector settings from detector*/ // Get detector settings from detector
slsDetectorDefs::detectorSettings sett = myDet->getSettings(detID); slsDetectorDefs::detectorSettings sett = myDet->getSettings(detID);
/** To be able to index items on a combo box */ // To be able to index items on a combo box
model = qobject_cast<QStandardItemModel*>(comboSettings->model()); model = qobject_cast<QStandardItemModel*>(comboSettings->model());
if (model) { if (model) {
for(int i=0;i<NumSettings;i++){ for(int i=0;i<NumSettings;i++){
index[i] = model->index(i, comboSettings->modelColumn(), comboSettings->rootModelIndex()); index[i] = model->index(i, comboSettings->modelColumn(), comboSettings->rootModelIndex());
item[i] = model->itemFromIndex(index[i]); item[i] = model->itemFromIndex(index[i]);
} }
/** Enabling/Disabling depending on the detector type // Enabling/Disabling depending on the detector type
Undefined and uninitialized are enabled for all detectors*/ // Undefined and uninitialized are enabled for all detectors
if(sett==slsDetectorDefs::UNDEFINED) if(sett==slsDetectorDefs::UNDEFINED)
item[(int)Uninitialized]->setEnabled(false); item[(int)Uninitialized]->setEnabled(false);
else if(sett==slsDetectorDefs::UNINITIALIZED) else if(sett==slsDetectorDefs::UNINITIALIZED)
@ -116,9 +116,9 @@ void qTabSettings::SetupDetectorSettings(){
exit(-1); exit(-1);
break; break;
} }
/** detector settings selected NOT ENABLED. // detector settings selected NOT ENABLED.
* This should not happen -only if the server and gui has a mismatch // This should not happen -only if the server and gui has a mismatch
* on which all modes are allowed in detectors */ // on which all modes are allowed in detectors
if(!(item[(int)sett]->isEnabled())){ if(!(item[(int)sett]->isEnabled())){
qDefs::ErrorMessage("Unknown Detector Settings retrieved from detector. " qDefs::ErrorMessage("Unknown Detector Settings retrieved from detector. "
"Exiting GUI.","Settings"); "Exiting GUI.","Settings");
@ -127,7 +127,7 @@ void qTabSettings::SetupDetectorSettings(){
#endif #endif
exit(-1); exit(-1);
} }
/** Setting the detector settings */ // Setting the detector settings
else comboSettings->setCurrentIndex((int)sett); else comboSettings->setCurrentIndex((int)sett);
} }
} }
@ -135,27 +135,27 @@ void qTabSettings::SetupDetectorSettings(){
//------------------------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabSettings::Initialization(){ void qTabSettings::Initialization(){
/** Settings */ // Settings
connect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(int))); connect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(int)));
/** Number of Modules */ // Number of Modules
connect(spinNumModules, SIGNAL(valueChanged(int)), this, SLOT(SetNumberOfModules(int))); connect(spinNumModules, SIGNAL(valueChanged(int)), this, SLOT(SetNumberOfModules(int)));
/** Dynamic Range */ // Dynamic Range
connect(comboDynamicRange, SIGNAL(activated(int)), this, SLOT(SetDynamicRange(int))); connect(comboDynamicRange, SIGNAL(activated(int)), this, SLOT(SetDynamicRange(int)));
/** Threshold */ // Threshold
connect(spinThreshold, SIGNAL(valueChanged(int)), this, SLOT(SetEnergy())); connect(spinThreshold, SIGNAL(valueChanged(int)), this, SLOT(SetEnergy()));
} }
//------------------------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabSettings::setSettings(int index){ void qTabSettings::setSettings(int index){
/** The first time settings is changed from undefined or uninitialized to a proper setting, // The first time settings is changed from undefined or uninitialized to a proper setting,
* then undefined/uninitialized should be disabled */ // then undefined/uninitialized should be disabled
if(item[(int)Undefined]->isEnabled()){ if(item[(int)Undefined]->isEnabled()){
/**Do not disable it if this wasnt selected again by mistake*/ //Do not disable it if this wasnt selected again by mistake
if(index!=(int)Undefined) if(index!=(int)Undefined)
item[(int)Undefined]->setEnabled(false); item[(int)Undefined]->setEnabled(false);
}else if(item[(int)Uninitialized]->isEnabled()){ }else if(item[(int)Uninitialized]->isEnabled()){
/**Do not disable it if this wasnt selected again by mistake*/ //Do not disable it if this wasnt selected again by mistake
if(index!=(int)Uninitialized) if(index!=(int)Uninitialized)
item[(int)Uninitialized]->setEnabled(false); item[(int)Uninitialized]->setEnabled(false);
} }
@ -250,13 +250,13 @@ void qTabSettings::SetEnergy(){
void qTabSettings::Refresh(){ void qTabSettings::Refresh(){
/** Settings */ // Settings
SetupDetectorSettings(); SetupDetectorSettings();
comboSettings->setCurrentIndex(myDet->getSettings(detID)); comboSettings->setCurrentIndex(myDet->getSettings(detID));
/** Number of Modules */ // Number of Modules
spinNumModules->setValue(myDet->setNumberOfModules()); spinNumModules->setValue(myDet->setNumberOfModules());
/** Dynamic Range */ // Dynamic Range
switch(myDet->setDynamicRange(-1)){ switch(myDet->setDynamicRange(-1)){
case 32: comboDynamicRange->setCurrentIndex(0); break; case 32: comboDynamicRange->setCurrentIndex(0); break;
case 16: comboDynamicRange->setCurrentIndex(1); break; case 16: comboDynamicRange->setCurrentIndex(1); break;