mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-17 15:38:41 +01:00
resize works
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorGui@2 af1100a4-978c-4157-bff7-07162d2ba061
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "multiSlsDetector.h"
|
||||
#include "sls_detector_defs.h"
|
||||
/** Qt Include Headers */
|
||||
#include <QSizePolicy>
|
||||
/** C++ Include Headers */
|
||||
#include<iostream>
|
||||
#include <string>
|
||||
@@ -34,13 +35,22 @@ int main (int argc, char **argv) {
|
||||
|
||||
|
||||
|
||||
qDetectorMain::qDetectorMain(int argc, char **argv, QApplication *app, QWidget *parent) : QMainWindow(parent), theApp(app),myPlot(NULL),tabs(NULL){
|
||||
qDetectorMain::qDetectorMain(int argc, char **argv, QApplication *app, QWidget *parent) :
|
||||
QMainWindow(parent), theApp(app),myPlot(NULL),tabs(NULL){
|
||||
myDet = 0;
|
||||
setupUi(this);
|
||||
SetUpWidgetWindow();
|
||||
Initialization();
|
||||
SetDeveloperMode();
|
||||
/**need to use argc and argv to determine which slsdet or multidet to use.*/
|
||||
|
||||
if(argc>1){
|
||||
if(!strcasecmp(argv[1],"-developer"))
|
||||
tabs->setTabEnabled(Developer,true);
|
||||
else
|
||||
tabs->setTabEnabled(Developer,false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +78,8 @@ void qDetectorMain::SetUpWidgetWindow(){
|
||||
SetUpDetector();
|
||||
|
||||
/** plot setup*/
|
||||
myPlot = new qDrawPlot(framePlot,myDet);
|
||||
myPlot = new qDrawPlot(dockWidgetPlot,myDet);
|
||||
dockWidgetPlot->setWidget(myPlot);
|
||||
|
||||
/**tabs setup*/
|
||||
tabs = new QTabWidget(this);
|
||||
@@ -78,12 +89,12 @@ void qDetectorMain::SetUpWidgetWindow(){
|
||||
tab_dataoutput = new qTabDataOutput (this, myDet);
|
||||
tab_plot = new qTabPlot (this, myDet,myPlot);
|
||||
tab_actions = new qTabActions (this, myDet);
|
||||
tab_settings = new qTabSettings (this, myDet);
|
||||
tab_advanced = new qTabAdvanced (this, myDet);
|
||||
tab_Settings = new qTabSettings (this, myDet);
|
||||
tab_debugging = new qTabDebugging (this, myDet);
|
||||
tab_developer = new qTabDeveloper (this, myDet);
|
||||
/** creating the scroll area widgets for the tabs */
|
||||
for(int i=0;i<NUMBER_OF_TABS;i++){
|
||||
for(int i=0;i<NumberOfTabs;i++){
|
||||
scroll[i] = new QScrollArea;
|
||||
scroll[i]->setFrameShape(QFrame::NoFrame);
|
||||
}
|
||||
@@ -92,8 +103,8 @@ void qDetectorMain::SetUpWidgetWindow(){
|
||||
scroll[DataOutput] ->setWidget(tab_dataoutput);
|
||||
scroll[Plot] ->setWidget(tab_plot);
|
||||
scroll[Actions] ->setWidget(tab_actions);
|
||||
scroll[Settings] ->setWidget(tab_settings);
|
||||
scroll[Advanced] ->setWidget(tab_advanced);
|
||||
scroll[Settings] ->setWidget(tab_Settings);
|
||||
scroll[Debugging] ->setWidget(tab_debugging);
|
||||
scroll[Developer] ->setWidget(tab_developer);
|
||||
/** inserting all the tabs*/
|
||||
@@ -101,8 +112,8 @@ void qDetectorMain::SetUpWidgetWindow(){
|
||||
tabs->insertTab(DataOutput, scroll[DataOutput], "Data Output");
|
||||
tabs->insertTab(Plot, scroll[Plot], "Plot");
|
||||
tabs->insertTab(Actions, scroll[Actions], "Actions");
|
||||
tabs->insertTab(Advanced, scroll[Advanced], "Advanced");
|
||||
tabs->insertTab(Settings, scroll[Settings], "Settings");
|
||||
tabs->insertTab(Advanced, scroll[Advanced], "Advanced");
|
||||
tabs->insertTab(Debugging, scroll[Debugging], "Debugging");
|
||||
tabs->insertTab(Developer, scroll[Developer], "Developer");
|
||||
|
||||
@@ -117,6 +128,8 @@ void qDetectorMain::SetUpWidgetWindow(){
|
||||
|
||||
|
||||
void qDetectorMain::SetUpDetector(){
|
||||
|
||||
|
||||
/**instantiate detector and set window title*/
|
||||
myDet = new multiSlsDetector(Detector_Index);
|
||||
if(!myDet->getHostname(Detector_Index).length()){
|
||||
@@ -138,7 +151,9 @@ void qDetectorMain::SetUpDetector(){
|
||||
|
||||
|
||||
void qDetectorMain::Initialization(){
|
||||
|
||||
/** Dockable Plot*/
|
||||
connect(dockWidgetPlot,SIGNAL(topLevelChanged(bool)),this,SLOT(ResizeMainWindow(bool)));
|
||||
connect(dockWidgetTerminal,SIGNAL(topLevelChanged(bool)),this,SLOT(SetTerminalWindowSize(bool)));
|
||||
|
||||
/** tabs */
|
||||
connect(tabs,SIGNAL(currentChanged(int)),this, SLOT(refresh(int)));//( QWidget*)));
|
||||
@@ -170,6 +185,8 @@ void qDetectorMain::Initialization(){
|
||||
connect(actionAbout,SIGNAL(triggered()),this,SLOT(About()));
|
||||
connect(actionVersion,SIGNAL(triggered()),this,SLOT(Version()));
|
||||
|
||||
heightPlotWindow = dockWidgetPlot->size().height();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -200,7 +217,6 @@ void qDetectorMain::SetExpertMode(bool b){
|
||||
#endif
|
||||
//threshold part in measu is enabled
|
||||
tabs->setTabEnabled(Advanced,b);
|
||||
tabs->setTabEnabled(Settings,b);
|
||||
tab_advanced->setEnabled(b);
|
||||
}
|
||||
|
||||
@@ -217,12 +233,16 @@ void qDetectorMain::refresh(int index){
|
||||
|
||||
void qDetectorMain::SetDockableMode(bool b){
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting Dockable Plot Mode to "<<b<<endl;
|
||||
cout<<"Setting Dockable Mode to "<<b<<endl;
|
||||
#endif
|
||||
if(b)
|
||||
dockWidgetPlot->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
|
||||
else
|
||||
if(b){
|
||||
dockWidgetPlot->setFeatures(QDockWidget::DockWidgetFloatable);
|
||||
dockWidgetTerminal->setFeatures(QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetVerticalTitleBar);
|
||||
|
||||
}else{
|
||||
dockWidgetPlot->setFeatures(QDockWidget::NoDockWidgetFeatures);
|
||||
dockWidgetTerminal->setFeatures(QDockWidget::DockWidgetVerticalTitleBar);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -289,3 +309,36 @@ void qDetectorMain::About(){
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void qDetectorMain::ResizeMainWindow(bool b){
|
||||
#ifdef VERBOSE
|
||||
cout<<"Resizing Main Window: height:"<<height()<<endl;
|
||||
#endif
|
||||
if(b)/** sets the main window height to a smaller maximum to get rid of space*/
|
||||
setMaximumHeight(height()-heightPlotWindow-9);
|
||||
else
|
||||
setMaximumHeight(QWIDGETSIZE_MAX);
|
||||
|
||||
cout<<"size hint ht:"<<sizeHint().height()<<endl;
|
||||
}
|
||||
|
||||
void qDetectorMain::SetTerminalWindowSize(bool b){
|
||||
#ifdef VERBOSE
|
||||
cout<<"Resizing Terminal Window"<<endl;
|
||||
#endif
|
||||
|
||||
cout<<"min width:"<<dockWidgetTerminal->minimumWidth()<<endl;
|
||||
cout<<"min height:"<<dockWidgetTerminal->minimumHeight()<<endl;
|
||||
if(b){
|
||||
dockWidgetTerminal->setMinimumWidth(width()/2);
|
||||
}
|
||||
//dockWidgetTerminal->setFixedSize(width()/2,dockWidgetTerminal->minimumHeight());
|
||||
|
||||
else{
|
||||
dockWidgetTerminal->setMinimumWidth(38);
|
||||
QSizePolicy sizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||
dockWidgetTerminal->setSizePolicy(sizePolicy);
|
||||
//dockWidgetTerminal->setSizePolicy(new QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
|
||||
//dockWidgetTerminal->setFixedSize(dockWidgetTerminal->minimumWidth(),dockWidgetTerminal->minimumHeight());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "slsDetector.h"
|
||||
#include "multiSlsDetector.h"
|
||||
/** Qt Include Headers */
|
||||
#include <QTimer>
|
||||
#include <QFont>
|
||||
/** C++ Include Headers */
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
@@ -23,9 +23,8 @@ using namespace std;
|
||||
#define Detector_Index 0
|
||||
|
||||
|
||||
qDrawPlot::qDrawPlot(QWidget *parent,slsDetectorUtils*& detector):QWidget(parent),myDet(detector){
|
||||
qDrawPlot::qDrawPlot(QWidget *parent,slsDetectorUtils*& detector):QWidget(parent),myDet(detector),numberOfMeasurements(1){
|
||||
if(myDet) {
|
||||
setupUi(this);
|
||||
Initialization();
|
||||
SetupWidgetWindow();
|
||||
StartStopDaqToggle(); //as default
|
||||
@@ -36,15 +35,11 @@ qDrawPlot::qDrawPlot(QWidget *parent,slsDetectorUtils*& detector):QWidget(parent
|
||||
qDrawPlot::~qDrawPlot(){
|
||||
/** Clear plot*/
|
||||
Clear1DPlot();
|
||||
for(QVector<SlsQtH1D*>::iterator h = plot1D_hists.begin();h!=plot1D_hists.end();h++){
|
||||
for(QVector<SlsQtH1D*>::iterator h = plot1D_hists.begin();h!=plot1D_hists.end();h++)
|
||||
delete *h;
|
||||
}
|
||||
plot1D_hists.clear();
|
||||
|
||||
|
||||
delete[] lastImageArray; lastImageArray=0;
|
||||
StartOrStopThread(0);
|
||||
|
||||
/** delete detector object pointer*/
|
||||
delete myDet;
|
||||
}
|
||||
@@ -77,6 +72,13 @@ void qDrawPlot::Initialization(){
|
||||
|
||||
|
||||
void qDrawPlot::SetupWidgetWindow(){
|
||||
/** Setting up window*/
|
||||
setFont(QFont("Sans Serif",9));
|
||||
layout = new QGridLayout;
|
||||
boxPlot = new QGroupBox("Start Image");
|
||||
layout->addWidget(boxPlot,1,1);
|
||||
this->setLayout(layout);
|
||||
|
||||
plot_update_timer = new QTimer(this);
|
||||
connect(plot_update_timer, SIGNAL(timeout()), this, SLOT(UpdatePlot()));
|
||||
|
||||
@@ -224,6 +226,7 @@ void* qDrawPlot::AcquireImages(){
|
||||
//cout<<"filePath:"<<filePath<<endl;
|
||||
//string fileName;
|
||||
|
||||
//numberOfMeasurements
|
||||
for(int i=0;i<number_of_exposures;i++){
|
||||
|
||||
/////
|
||||
@@ -301,6 +304,9 @@ void* qDrawPlot::AcquireImages(){
|
||||
|
||||
|
||||
|
||||
void qDrawPlot::setNumMeasurements(int num){
|
||||
numberOfMeasurements = num;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
/** Project Class Headers */
|
||||
#include "slsDetector.h"
|
||||
#include "multiSlsDetector.h"
|
||||
|
||||
#include <QStandardItemModel>
|
||||
|
||||
/** C++ Include Headers */
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
@@ -22,7 +25,8 @@ using namespace std;
|
||||
|
||||
|
||||
|
||||
qTabMeasurement::qTabMeasurement(QWidget *parent,slsDetectorUtils*& detector, qDrawPlot*& plot):QWidget(parent),myDet(detector),myPlot(plot){
|
||||
qTabMeasurement::qTabMeasurement(QWidget *parent,slsDetectorUtils*& detector, qDrawPlot*& plot):
|
||||
QWidget(parent),myDet(detector),myPlot(plot){
|
||||
setupUi(this);
|
||||
if(myDet)
|
||||
{
|
||||
@@ -43,63 +47,169 @@ qTabMeasurement::~qTabMeasurement(){
|
||||
|
||||
|
||||
void qTabMeasurement::SetupWidgetWindow(){
|
||||
/** all set initially to reflect the detector's actual parameter values*/
|
||||
|
||||
/** Settings */
|
||||
comboSettings->setCurrentIndex(myDet->getSettings(Detector_Index)); //set it to default acc to detector???
|
||||
/** Number of Measurements/Frames*/
|
||||
setNumFrames(2000);
|
||||
/** Acquisition Time */
|
||||
setAcquisitionTime();
|
||||
/** Frame Period between exposures*/
|
||||
setFramePeriod();
|
||||
/** File Name*/
|
||||
setFileName("run");
|
||||
/** File Index*/
|
||||
setRunIndex(0);
|
||||
/** File Name **/
|
||||
dispFileName->setText(QString(myDet->getFileName().c_str()));
|
||||
/** File Index **/
|
||||
spinIndex->setValue(myDet->getFileIndex());
|
||||
/** only initially **/
|
||||
lblProgressIndex->setText(QString::number(myDet->getFileIndex()));
|
||||
|
||||
/** Enabling/Disabling depending on the detector type*/
|
||||
QStandardItemModel* model = qobject_cast<QStandardItemModel*>(comboTimingMode->model());
|
||||
QModelIndex index[NumTimingModes];
|
||||
QStandardItem* item[NumTimingModes];
|
||||
if (model) {
|
||||
for(int i=0;i<NumTimingModes;i++){
|
||||
index[i] = model->index(i, comboTimingMode->modelColumn(), comboTimingMode->rootModelIndex());
|
||||
item[i] = model->itemFromIndex(index[i]);
|
||||
}
|
||||
|
||||
switch(myDet->getDetectorsType()){
|
||||
case slsDetectorDefs::MYTHEN:
|
||||
item[(int)Gated]->setEnabled(true);
|
||||
item[(int)Trigger_Exp_Series]->setEnabled(true);
|
||||
item[(int)Trigger_Frame]->setEnabled(false);
|
||||
item[(int)Trigger_Readout]->setEnabled(true);
|
||||
item[(int)Gated_Start]->setEnabled(true);
|
||||
item[(int)Trigger_Window]->setEnabled(false);
|
||||
break;
|
||||
case slsDetectorDefs::EIGER:
|
||||
item[(int)Gated]->setEnabled(false);
|
||||
item[(int)Trigger_Exp_Series]->setEnabled(true);
|
||||
item[(int)Trigger_Frame]->setEnabled(true);
|
||||
item[(int)Trigger_Readout]->setEnabled(false);
|
||||
item[(int)Gated_Start]->setEnabled(false);
|
||||
item[(int)Trigger_Window]->setEnabled(true);
|
||||
break;
|
||||
case slsDetectorDefs::GOTTHARD:
|
||||
item[(int)Gated]->setEnabled(false);
|
||||
item[(int)Trigger_Exp_Series]->setEnabled(true);
|
||||
item[(int)Trigger_Frame]->setEnabled(false);
|
||||
item[(int)Trigger_Readout]->setEnabled(false);
|
||||
item[(int)Gated_Start]->setEnabled(false);
|
||||
item[(int)Trigger_Window]->setEnabled(false);
|
||||
break;
|
||||
/* case slsDetectorDefs::PICASSO:
|
||||
case slsDetectorDefs::PILATUS:
|
||||
case slsDetectorDefs::AGIPD:*/
|
||||
default:
|
||||
cout<<"ERROR: Detector Type is Generic"<<endl;
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//get timing mode from client
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::Initialization(){
|
||||
/** Settings */
|
||||
connect(comboSettings,SIGNAL(currentIndexChanged(int)),this,SLOT(setSettings(int)));
|
||||
/** Number of Measurements/Frames*/
|
||||
connect(spinNumMeasurements,SIGNAL(valueChanged(int)),this,SLOT(setNumFrames(int)));
|
||||
/** Acquisition Time */
|
||||
connect(spinExpTime,SIGNAL(valueChanged(double)),this,SLOT(setAcquisitionTime()));
|
||||
connect(comboExpUnit,SIGNAL(currentIndexChanged(int)),this,SLOT(setAcquisitionTime()));
|
||||
/** Frame Period between exposures*/
|
||||
connect(spinPeriod,SIGNAL(valueChanged(double)),this,SLOT(setFramePeriod()));
|
||||
connect(comboPeriodUnit,SIGNAL(currentIndexChanged(int)),this,SLOT(setFramePeriod()));
|
||||
/** File Name*/
|
||||
connect(dispFileName,SIGNAL(textChanged(const QString&)),this,SLOT(setFileName(const QString&)));
|
||||
/** File Index*/
|
||||
connect(spinIndex,SIGNAL(valueChanged(int)),this,SLOT(setRunIndex(int)));
|
||||
/** Start/Stop Acquisition*/
|
||||
void qTabMeasurement::Initialization(int timingChange){
|
||||
/** These signals are connected only at start up*/
|
||||
if(!timingChange){
|
||||
/** Number of Measurements**/
|
||||
connect(spinNumMeasurements,SIGNAL(valueChanged(int)), myPlot, SLOT(setNumMeasurements(int)));
|
||||
/** File Name**/
|
||||
connect(dispFileName,SIGNAL(textChanged(const QString&)), this, SLOT(setFileName(const QString&)));
|
||||
/** File Index**/
|
||||
connect(spinIndex,SIGNAL(valueChanged(int)), this, SLOT(setRunIndex(int)));
|
||||
/** Start/Stop Acquisition**/
|
||||
connect(btnStartStop,SIGNAL(clicked()), this, SLOT(startStopAcquisition()));
|
||||
/** Timing Mode **/
|
||||
connect(comboTimingMode,SIGNAL(currentIndexChanged(int)), this, SLOT(setTimingMode(int)));//
|
||||
}
|
||||
/** Number of Frames**/
|
||||
connect(spinNumFrames,SIGNAL(valueChanged(int)), this, SLOT(setNumFrames(int)));
|
||||
/** Exposure Time **/
|
||||
connect(spinExpTime,SIGNAL(valueChanged(double)), this, SLOT(setExposureTime()));//..myplot
|
||||
connect(comboExpUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setExposureTime()));
|
||||
/** Frame Period between exposures**/
|
||||
connect(spinPeriod,SIGNAL(valueChanged(double)), this, SLOT(setAcquisitionPeriod()));//..myplot
|
||||
connect(comboPeriodUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setAcquisitionPeriod()));
|
||||
/** Number of Triggers**/
|
||||
connect(spinNumTriggers,SIGNAL(valueChanged(int)), this, SLOT(setNumTriggers(int)));//
|
||||
/** Delay After Trigger **/
|
||||
connect(spinDelay,SIGNAL(valueChanged(double)), this, SLOT(setDelay()));//
|
||||
connect(comboDelayUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay()));
|
||||
/** Number of Gates**/
|
||||
connect(spinNumGates,SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int)));//
|
||||
/** Number of Probes**/
|
||||
connect(spinNumProbes,SIGNAL(valueChanged(int)), this, SLOT(setNumProbes(int)));//
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::DeInitialization(){
|
||||
/** Number of Frames**/
|
||||
disconnect(spinNumFrames,SIGNAL(valueChanged(int)), this, SLOT(setNumFrames(int)));
|
||||
/** Exposure Time **/
|
||||
disconnect(spinExpTime,SIGNAL(valueChanged(double)), this, SLOT(setExposureTime()));//..myplot
|
||||
disconnect(comboExpUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setExposureTime()));
|
||||
/** Frame Period between exposures**/
|
||||
disconnect(spinPeriod,SIGNAL(valueChanged(double)), this, SLOT(setAcquisitionPeriod()));//..myplot
|
||||
disconnect(comboPeriodUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setAcquisitionPeriod()));
|
||||
/** Number of Triggers**/
|
||||
disconnect(spinNumTriggers,SIGNAL(valueChanged(int)), this, SLOT(setNumTriggers(int)));
|
||||
/** Delay After Trigger **/
|
||||
disconnect(spinDelay,SIGNAL(valueChanged(double)), this, SLOT(setDelay()));
|
||||
disconnect(comboDelayUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setDelay()));
|
||||
/** Number of Gates**/
|
||||
disconnect(spinNumGates,SIGNAL(valueChanged(int)), this, SLOT(setNumGates(int)));
|
||||
/** Number of Probes**/
|
||||
disconnect(spinNumProbes,SIGNAL(valueChanged(int)), this, SLOT(setNumProbes(int)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::Enable(bool enable){
|
||||
gridTimeResolved->setEnabled(enable);
|
||||
gridLayout->setEnabled(enable);
|
||||
boxProgress->setEnabled(enable);
|
||||
/** Enable this always **/
|
||||
if(!enable) btnStartStop->setEnabled(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::UpdateFinished(){
|
||||
disconnect(btnStartStop,SIGNAL(clicked()),this,SLOT(startStopAcquisition()));
|
||||
btnStartStop->setText("Start");
|
||||
Enable(1);
|
||||
connect(btnStartStop,SIGNAL(clicked()),this,SLOT(startStopAcquisition()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//enabled other tabs as well??
|
||||
void qTabMeasurement::Enable(bool enable){
|
||||
//this->setEnabled(enable);
|
||||
comboSettings->setEnabled(enable);
|
||||
spinNumMeasurements->setEnabled(enable);
|
||||
spinExpTime->setEnabled(enable);
|
||||
comboExpUnit->setEnabled(enable);
|
||||
spinPeriod->setEnabled(enable);
|
||||
comboPeriodUnit->setEnabled(enable);
|
||||
dispFileName->setEnabled(enable);
|
||||
spinIndex->setEnabled(enable);
|
||||
if(!enable) btnStartStop->setEnabled(true);
|
||||
void qTabMeasurement::setFileName(const QString& fName){
|
||||
// emit fileNameChanged(fName);
|
||||
// thred-->fileName=s;myDet->setFileName(fName.ascii());
|
||||
myDet->setFileName(fName.toAscii().data());
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting File name to " << myDet->getFileName()<<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setRunIndex(int index){
|
||||
myDet->setFileIndex(index);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting File Index to " << myDet->getFileIndex()<<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::startStopAcquisition(){
|
||||
if(!btnStartStop->text().compare("Start")){
|
||||
#ifdef VERBOSE
|
||||
@@ -118,33 +228,20 @@ void qTabMeasurement::startStopAcquisition(){
|
||||
}
|
||||
|
||||
|
||||
void qTabMeasurement::UpdateFinished(){
|
||||
disconnect(btnStartStop,SIGNAL(clicked()),this,SLOT(startStopAcquisition()));
|
||||
btnStartStop->setText("Start");
|
||||
Enable(1);
|
||||
connect(btnStartStop,SIGNAL(clicked()),this,SLOT(startStopAcquisition()));
|
||||
}
|
||||
|
||||
void qTabMeasurement::setSettings(int index){
|
||||
slsDetectorDefs::detectorSettings sett = myDet->setSettings((slsDetectorDefs::detectorSettings)index,Detector_Index);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Settings have been set to "<<myDet->slsDetectorBase::getDetectorSettings(sett)<<endl;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
void qTabMeasurement::setNumFrames(int val){
|
||||
myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting Frame number to " << (int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1)<<endl;
|
||||
cout<<"Setting number of frames to " << (int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1)<<endl;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
void qTabMeasurement::setAcquisitionTime(){
|
||||
void qTabMeasurement::setExposureTime(){
|
||||
int64_t exptime64;
|
||||
/** Get the 64 bit value of timer*/
|
||||
/** Get the 64 bit value of timer**/
|
||||
exptime64 = qDefs::get64bTime((qDefs::timeUnit)comboExpUnit->currentIndex(),spinExpTime->value());
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting acquisition time to " << exptime64 << " clocks" << endl;
|
||||
@@ -157,9 +254,9 @@ void qTabMeasurement::setAcquisitionTime(){
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setFramePeriod(){
|
||||
void qTabMeasurement::setAcquisitionPeriod(){
|
||||
int64_t exptime64;
|
||||
/** Get the 64 bit value of timer*/
|
||||
/** Get the 64 bit value of timer**/
|
||||
exptime64 = qDefs::get64bTime((qDefs::timeUnit)comboPeriodUnit->currentIndex(),spinPeriod->value());
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting frame period between exposures to " << exptime64 << " clocks" << endl;
|
||||
@@ -172,24 +269,210 @@ void qTabMeasurement::setFramePeriod(){
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setFileName(const QString& fName){
|
||||
// emit fileNameChanged(fName);
|
||||
// thred-->fileName=s;myDet->setFileName(fName.ascii());
|
||||
|
||||
|
||||
void qTabMeasurement::setNumTriggers(int val){
|
||||
myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting File name to " << myDet->getFileName()<<endl;
|
||||
#endif
|
||||
myDet->setFileName(fName.toAscii().data());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setRunIndex(int index){
|
||||
myDet->setFileIndex(index);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting File Index to " << myDet->getFileIndex()<<endl;
|
||||
cout<<"Setting number of triggers to " << (int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,-1)<<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setDelay(){
|
||||
int64_t exptime64;
|
||||
/** Get the 64 bit value of timer**/
|
||||
exptime64 = qDefs::get64bTime((qDefs::timeUnit)comboDelayUnit->currentIndex(),spinDelay->value());
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting delay after trigger to " << exptime64 << " clocks" << endl;
|
||||
#endif
|
||||
myDet->setTimer(slsDetectorDefs::DELAY_AFTER_TRIGGER,exptime64);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setNumGates(int val){
|
||||
myDet->setTimer(slsDetectorDefs::GATES_NUMBER,val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting number of gates to " << (int)myDet->setTimer(slsDetectorDefs::GATES_NUMBER,-1)<<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setNumProbes(int val){
|
||||
myDet->setTimer(slsDetectorDefs::PROBES_NUMBER,val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting number of frames to " << (int)myDet->setTimer(slsDetectorDefs::PROBES_NUMBER,-1)<<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void qTabMeasurement::setTimingMode(int mode){
|
||||
#ifdef VERBOSE
|
||||
cout<<"Setting Timing mode to " << comboTimingMode->currentText().toAscii().data()<<endl;
|
||||
#endif
|
||||
//need to send to client to set the timing mode
|
||||
switch(mode){
|
||||
case None:
|
||||
lblNumFrames->setEnabled(false); spinNumFrames->setEnabled(false);
|
||||
lblExpTime->setEnabled(false); spinExpTime->setEnabled(false); comboExpUnit->setEnabled(false);
|
||||
lblPeriod->setEnabled(false); spinPeriod->setEnabled(false); comboPeriodUnit->setEnabled(false);
|
||||
lblNumTriggers->setEnabled(false); spinNumTriggers->setEnabled(false);
|
||||
lblDelay->setEnabled(false); spinDelay->setEnabled(false); comboDelayUnit->setEnabled(false);
|
||||
lblNumGates->setEnabled(false); spinNumGates->setEnabled(false);
|
||||
lblNumProbes->setEnabled(false); spinNumProbes->setEnabled(false);
|
||||
break;
|
||||
case Auto:
|
||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
||||
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
||||
lblNumTriggers->setEnabled(false); spinNumTriggers->setEnabled(false);
|
||||
lblDelay->setEnabled(false); spinDelay->setEnabled(false); comboDelayUnit->setEnabled(false);
|
||||
lblNumGates->setEnabled(false); spinNumGates->setEnabled(false);
|
||||
break;
|
||||
case Gated:
|
||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||
lblExpTime->setEnabled(false); spinExpTime->setEnabled(false); comboExpUnit->setEnabled(false);
|
||||
lblPeriod->setEnabled(false); spinPeriod->setEnabled(false); comboPeriodUnit->setEnabled(false);
|
||||
lblNumTriggers->setEnabled(false); spinNumTriggers->setEnabled(false);
|
||||
lblDelay->setEnabled(false); spinDelay->setEnabled(false); comboDelayUnit->setEnabled(false);
|
||||
lblNumGates->setEnabled(true); spinNumGates->setEnabled(true);
|
||||
break;
|
||||
case Trigger_Exp_Series:
|
||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
||||
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
||||
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
|
||||
lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true);
|
||||
lblNumGates->setEnabled(false); spinNumGates->setEnabled(false);
|
||||
break;
|
||||
case Trigger_Readout:
|
||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
||||
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
||||
lblNumTriggers->setEnabled(false); spinNumTriggers->setEnabled(false);
|
||||
lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true);
|
||||
lblNumGates->setEnabled(false); spinNumGates->setEnabled(false);
|
||||
break;
|
||||
case Gated_Start:
|
||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
||||
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
||||
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
|
||||
lblDelay->setEnabled(false); spinDelay->setEnabled(false); comboDelayUnit->setEnabled(false);
|
||||
lblNumGates->setEnabled(true); spinNumGates->setEnabled(true);
|
||||
break;
|
||||
case Trigger_Frame:
|
||||
lblNumFrames->setEnabled(false); spinNumFrames->setEnabled(false);
|
||||
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
||||
lblPeriod->setEnabled(false); spinPeriod->setEnabled(false); comboPeriodUnit->setEnabled(false);
|
||||
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
|
||||
lblDelay->setEnabled(false); spinDelay->setEnabled(false); comboDelayUnit->setEnabled(false);
|
||||
lblNumGates->setEnabled(false); spinNumGates->setEnabled(false);
|
||||
break;
|
||||
case Trigger_Window:
|
||||
lblNumFrames->setEnabled(false); spinNumFrames->setEnabled(false);
|
||||
lblExpTime->setEnabled(false); spinExpTime->setEnabled(false); comboExpUnit->setEnabled(false);
|
||||
lblPeriod->setEnabled(false); spinPeriod->setEnabled(false); comboPeriodUnit->setEnabled(false);
|
||||
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
|
||||
lblDelay->setEnabled(false); spinDelay->setEnabled(false); comboDelayUnit->setEnabled(false);
|
||||
lblNumGates->setEnabled(false); spinNumGates->setEnabled(false);
|
||||
break;
|
||||
default:
|
||||
cout<<"ERROR: Timing mode being set to other should never happen"<<endl;
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if(mode!=None){
|
||||
if(myDet->getDetectorsType()==slsDetectorDefs::MYTHEN){
|
||||
lblNumProbes->setEnabled(true); spinNumProbes->setEnabled(true);
|
||||
}else{
|
||||
lblNumProbes->setEnabled(false); spinNumProbes->setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
/** To disconnect all the signals before changing their values*/
|
||||
DeInitialization();
|
||||
|
||||
|
||||
float time;
|
||||
int val;
|
||||
/**Number of Frames */
|
||||
if(lblNumFrames->isEnabled()){
|
||||
val = (int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1);
|
||||
spinNumFrames->setValue(val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Getting number of frames : " << val <<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**Exposure Time */
|
||||
if(lblExpTime->isEnabled()){
|
||||
time = (float)(myDet->setTimer(slsDetectorDefs::ACQUISITION_TIME,-1)*(1E-9));
|
||||
#ifdef VERBOSE
|
||||
cout<<"Getting acquisition time : " << time << "s" << endl;
|
||||
#endif
|
||||
spinExpTime->setValue(time);
|
||||
comboExpUnit->setCurrentIndex(qDefs::SECONDS);
|
||||
}
|
||||
|
||||
/**Frame Period between exposures */
|
||||
if(lblPeriod->isEnabled()){
|
||||
time = (float)(myDet->setTimer(slsDetectorDefs::FRAME_PERIOD,-1)*(1E-9));
|
||||
#ifdef VERBOSE
|
||||
cout<<"Getting frame period between exposures : " << time << "s" << endl;
|
||||
#endif
|
||||
spinPeriod->setValue(time);
|
||||
comboPeriodUnit->setCurrentIndex(qDefs::SECONDS);
|
||||
}
|
||||
|
||||
/**Number of Triggers */
|
||||
if(lblNumTriggers->isEnabled()){
|
||||
val = (int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,-1);
|
||||
spinNumTriggers->setValue(val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Getting number of triggers : " << val <<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**Delay After Trigger */
|
||||
if(lblDelay->isEnabled()){
|
||||
time = (float)(myDet->setTimer(slsDetectorDefs::DELAY_AFTER_TRIGGER,-1)*(1E-9));
|
||||
#ifdef VERBOSE
|
||||
cout<<"Getting delay after trigger : " << time << "s" << endl;
|
||||
#endif
|
||||
spinDelay->setValue(time);
|
||||
comboDelayUnit->setCurrentIndex(qDefs::SECONDS);
|
||||
}
|
||||
|
||||
/**Number of Gates */
|
||||
if(lblNumGates->isEnabled()){
|
||||
val = (int)myDet->setTimer(slsDetectorDefs::GATES_NUMBER,-1);
|
||||
spinNumGates->setValue(val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Getting number of gates : " << val <<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**Number of Probes */
|
||||
if(lblNumProbes->isEnabled()){
|
||||
val = (int)myDet->setTimer(slsDetectorDefs::PROBES_NUMBER,-1);
|
||||
spinNumProbes->setValue(val);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Getting number of probes : " << val <<endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/** To reconnect all the signals after changing their values*/
|
||||
Initialization(1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -59,7 +59,8 @@ void qTabPlot::Initialization(){
|
||||
|
||||
|
||||
void qTabPlot::Enable(bool enable){
|
||||
boxPlot->setEnabled(enable);
|
||||
btnClone->setEnabled(enable);
|
||||
btnCloseClones->setEnabled(enable);
|
||||
box1D->setEnabled(enable);
|
||||
box2D->setEnabled(enable);
|
||||
boxPlotAxis->setEnabled(enable);
|
||||
|
||||
@@ -39,18 +39,29 @@ qTabSettings::~qTabSettings(){
|
||||
|
||||
|
||||
void qTabSettings::SetupWidgetWindow(){
|
||||
/** Settings */
|
||||
comboSettings->setCurrentIndex(myDet->getSettings(Detector_Index));
|
||||
}
|
||||
|
||||
|
||||
|
||||
void qTabSettings::Initialization(){
|
||||
/** Settings */
|
||||
connect(comboSettings,SIGNAL(currentIndexChanged(int)),this,SLOT(setSettings(int)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
void qTabSettings::Enable(bool enable){
|
||||
//this->setEnabled(enable);
|
||||
|
||||
comboSettings->setEnabled(enable);
|
||||
}
|
||||
|
||||
|
||||
void qTabSettings::setSettings(int index){
|
||||
slsDetectorDefs::detectorSettings sett = myDet->setSettings((slsDetectorDefs::detectorSettings)index,Detector_Index);
|
||||
#ifdef VERBOSE
|
||||
cout<<"Settings have been set to "<<myDet->slsDetectorBase::getDetectorSettings(sett)<<endl;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user