added trimming checks

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorGui@222 af1100a4-978c-4157-bff7-07162d2ba061
This commit is contained in:
l_maliakal_d 2013-08-08 13:39:36 +00:00
parent 038d3c11df
commit 113ee269d4
3 changed files with 104 additions and 2 deletions

View File

@ -58,6 +58,11 @@ private:
*/
void AddROIInput(int num);
/** Checks for a few conditions before trimming
/returns OK or FAIL
*/
int validateBeforeTrimming();
private slots:
@ -192,6 +197,10 @@ private:
/** Trimming mode */
slsDetectorDefs::trimMode trimmingMode;
static const int TRIMMING_DYNAMIC_RANGE = 24;
static const int TRIMMING_FRAME_NUMBER = 1;
static const int TRIMMING_TRIGGER_NUMBER = 1;
static const int TRIMMING_PROBE_NUMBER = 0;
bool isEnergy;
bool isAngular;

View File

@ -20,7 +20,7 @@ QMAKE_LIBS = -L$(QTDIR)/lib
#LIBS = -L$(QWTDIR)/lib -lqwt -L$(QWT3D)/lib -Wl,-R$(QWTDIR)/lib -L /usr/local/epics/base/lib/$(EPICS_HOST_ARCH)/ -Wl,-R/usr/local/epics/base/lib/$(EPICS_HOST_ARCH) -lca -lCom
#default
DEFINES += VERBOSE DACS_INT PRINT_LOG THIS_PATH=\\\"$$PWD\\\" #VERYVERBOSE
DEFINES += VERBOSE DACS_INT PRINT_LOG THIS_PATH=\\\"$$PWD\\\" #VERYVERBOSE
LIBS = -L$(QWTDIR)/lib -lqwt -L$(QWT3D)/lib

View File

@ -436,8 +436,101 @@ void qTabAdvanced::SetTrimmingMethod(int mode){
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabAdvanced::StartTrimming(){
int qTabAdvanced::validateBeforeTrimming(){
#ifdef VERBOSE
cout << "Validating conditions before Trimming" << endl;
#endif
char temp[100];
switch(detType){
case slsDetectorDefs::MYTHEN:
//dynamic range
if(myDet->setDynamicRange(-1) != TRIMMING_DYNAMIC_RANGE){
sprintf(temp,"%d",TRIMMING_DYNAMIC_RANGE);
if(myDet->setDynamicRange(TRIMMING_DYNAMIC_RANGE) != TRIMMING_DYNAMIC_RANGE){
qDefs::Message(qDefs::WARNING,
string("<nobr>Trimming Pre-condition not satisfied:</nobr><br>"
"<nobr>Could not set dynamic range to ") + string(temp)+string(".</nobr><br>"
"Trimming Aborted."),"qTabAdvanced::validateBeforeTrimming");
return slsDetectorDefs::FAIL;
}
}
//frames
if((int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1) != TRIMMING_FRAME_NUMBER){
if((int)myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,TRIMMING_FRAME_NUMBER) != TRIMMING_FRAME_NUMBER){
sprintf(temp,"%d",TRIMMING_FRAME_NUMBER);
qDefs::Message(qDefs::WARNING,
string("<nobr>Trimming Pre-condition not satisfied:</nobr><br>"
"<nobr>Could not set <b>Number of Frames</b> to ") + string(temp)+string(".</nobr><br>"
"Trimming Aborted."),"qTabAdvanced::validateBeforeTrimming");
return slsDetectorDefs::FAIL;
}
}
//trigger
if((int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,-1) != TRIMMING_TRIGGER_NUMBER){
if((int)myDet->setTimer(slsDetectorDefs::CYCLES_NUMBER,TRIMMING_TRIGGER_NUMBER) != TRIMMING_TRIGGER_NUMBER){
sprintf(temp,"%d",TRIMMING_TRIGGER_NUMBER);
qDefs::Message(qDefs::WARNING,
string("<nobr>Trimming Pre-condition not satisfied:</nobr><br>"
"<nobr>Could not set <b>Number of Triggers</b> to ") + string(temp)+string(".</nobr><br>"
"Trimming Aborted."),"qTabAdvanced::validateBeforeTrimming");
return slsDetectorDefs::FAIL;
}
}
//probes
if((int)myDet->setTimer(slsDetectorDefs::PROBES_NUMBER,-1) != TRIMMING_PROBE_NUMBER){
if((int)myDet->setTimer(slsDetectorDefs::PROBES_NUMBER,TRIMMING_PROBE_NUMBER) != TRIMMING_PROBE_NUMBER){
sprintf(temp,"%d",TRIMMING_PROBE_NUMBER);
qDefs::Message(qDefs::WARNING,
string("<nobr>Trimming Pre-condition not satisfied:</nobr><br>"
"<nobr>Could not set <b>Number of Probes</b> to ") + string(temp)+string(".</nobr><br>"
"Trimming Aborted."),"qTabAdvanced::validateBeforeTrimming");
return slsDetectorDefs::FAIL;
}
}
//Setting
if((int)myDet->getSettings() == slsDetectorDefs::UNINITIALIZED){
if(qDefs::Message(qDefs::QUESTION,
string("<nobr>Trimming Pre-condition not satisfied:</nobr><br>")+
string("<nobr><b>Settings</b> cannot be <b>Uninitialized</b> to start Trimming.</nobr><br>"
"Change it to <b>Standard</b> and proceed?"),"qTabAdvanced::validateBeforeTrimming") == slsDetectorDefs::FAIL){
qDefs::Message(qDefs::INFORMATION,
"<nobr>Please change the <b>Settings</b> in the Settings tab to your choice.</nobr><br>"
"Aborting Trimming.","qTabAdvanced::validateBeforeTrimming");
return slsDetectorDefs::FAIL;
}
//user asked to change settings to standard
else{
if((int)myDet->setSettings(slsDetectorDefs::STANDARD) != slsDetectorDefs::STANDARD){
qDefs::Message(qDefs::WARNING,
string("<nobr>Trimming Pre-condition not satisfied:</nobr><br>"
"<nobr>Could not change <b>Settings</b> to <b>Standard</b></nobr><br>"
"Trimming Aborted."),"qTabAdvanced::validateBeforeTrimming");
return slsDetectorDefs::FAIL;
}
}
}
qDefs::Message(qDefs::INFORMATION,"<nobr>All conditions satisfied for Trimming.</nobr><br>"
"<nobr>Initiating Trimming...</nobr>","qTabAdvanced::validateBeforeTrimming");
return slsDetectorDefs::OK;
default:
return slsDetectorDefs::FAIL;
}
}
//-------------------------------------------------------------------------------------------------------------------------------------------------
void qTabAdvanced::StartTrimming(){
//check a few conditions before trimming
if(validateBeforeTrimming() == slsDetectorDefs::FAIL)
return;
#ifdef VERBOSE
cout << "Starting Trimming" << endl;
#endif
int parameter1=0, parameter2=0;
//optimize
bool optimize = chkOptimize->isChecked();