From f0217ce9b1b2d2505232b77a60fadae188c44550 Mon Sep 17 00:00:00 2001 From: l_maliakal_d Date: Mon, 3 Sep 2012 09:25:09 +0000 Subject: [PATCH] loading and saving trimbits and calibration file works now git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorGui@46 af1100a4-978c-4157-bff7-07162d2ba061 --- slsDetectorGui/forms/form_tab_advanced.ui | 202 +++++++++++++--------- slsDetectorGui/src/qDetectorMain.cpp | 83 ++------- 2 files changed, 137 insertions(+), 148 deletions(-) diff --git a/slsDetectorGui/forms/form_tab_advanced.ui b/slsDetectorGui/forms/form_tab_advanced.ui index 38987ac72..56142c7ac 100644 --- a/slsDetectorGui/forms/form_tab_advanced.ui +++ b/slsDetectorGui/forms/form_tab_advanced.ui @@ -31,86 +31,6 @@ Form - - - - 25 - 200 - 726 - 58 - - - - Trimming Method - - - - - 10 - 20 - 711 - 31 - - - - - 15 - - - - - - 0 - 0 - - - - None - - - - - - - - 0 - 0 - - - - Adjust to Fix Count Level - - - - - - - - 0 - 0 - - - - Equalize to Median - - - - - - - - 0 - 0 - - - - Optimize Settings - - - - - - @@ -152,8 +72,126 @@ - horizontalLayoutWidget_2 - checkBox_3 + + + + true + + + + 20 + 150 + 731 + 156 + + + + Trimming + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + + + 15 + 20 + 701 + 126 + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 45 + 10 + + + + + + + + + 0 + 0 + + + + Trimming Method: + + + + + + + + 0 + 0 + + + + + None + + + + + Adjust to Fix Count Level + + + + + Equalize to Median + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 75 + 10 + + + + + + + + true + + + + 0 + 0 + + + + Optimize Settings + + + + + diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp index cc5255196..d9d0f5de0 100644 --- a/slsDetectorGui/src/qDetectorMain.cpp +++ b/slsDetectorGui/src/qDetectorMain.cpp @@ -327,7 +327,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action){ if (!fName.isEmpty()){ if(myDet->retrieveDetectorSetup(string(fName.toAscii().constData()))!=slsDetectorDefs::FAIL) qDefs::InfoMessage("The Setup Parameters have been loaded successfully.","Main"); - else qDefs::WarningMessage("The Loading of Setup Parameters has failed.","Main"); + else qDefs::WarningMessage(string("Could not load the Setup Parameters from file:\n")+fName.toAscii().constData(),"Main"); } } else if(action==actionSaveSetup){ @@ -342,7 +342,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action){ if (!fName.isEmpty()){ if(myDet->dumpDetectorSetup(string(fName.toAscii().constData()))!=slsDetectorDefs::FAIL) qDefs::InfoMessage("The Setup Parameters have been saved successfully.","Main"); - else qDefs::WarningMessage("The Saving of Setup Parameters has failed.","Main"); + else qDefs::WarningMessage(string("Could not save the Setup Parameters from file:\n")+fName.toAscii().constData(),"Main"); } } else if(action==actionMeasurementWizard){ @@ -362,7 +362,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action){ if (!fName.isEmpty()){ if(myDet->readConfigurationFile(string(fName.toAscii().constData()))!=slsDetectorDefs::FAIL) qDefs::InfoMessage("The Configuration Parameters have been configured successfully.","Main"); - else qDefs::WarningMessage("The Loading of Configuration Parameters has failed.","Main"); + else qDefs::WarningMessage(string("Could not load the Configuration Parameters from file:\n")+fName.toAscii().constData(),"Main"); } } else if(action==actionSaveConfiguration){ @@ -377,14 +377,14 @@ void qDetectorMain::ExecuteUtilities(QAction *action){ if (!fName.isEmpty()){ if(myDet->writeConfigurationFile(string(fName.toAscii().constData()))!=slsDetectorDefs::FAIL) qDefs::InfoMessage("The Configuration Parameters have been saved successfully.","Main"); - else qDefs::WarningMessage("The Saving of Configuration Parameters has failed.","Main"); + else qDefs::WarningMessage(string("Could not save the Configuration Parameters from file:\n")+fName.toAscii().constData(),"Main"); } } else if(action==actionLoadTrimbits){ #ifdef VERBOSE cout << "Loading Trimbits" << endl; #endif - QString fName = QString(myDet->getFilePath().c_str()); + QString fName = QString(myDet->getSettingsDir()); fName = QFileDialog::getOpenFileName(this, tr("Load Detector Trimbits"),fName, tr("Trimbit files (*.trim *.sn*)")); @@ -392,14 +392,14 @@ void qDetectorMain::ExecuteUtilities(QAction *action){ if (!fName.isEmpty()){ if(myDet->loadSettingsFile(string(fName.toAscii().constData()),-1)!=slsDetectorDefs::FAIL) qDefs::InfoMessage("The Trimbits have been loaded successfully.","Main"); - else qDefs::WarningMessage("The Loading of Trimbits has failed.","Main"); + else qDefs::WarningMessage(string("Could not load the Trimbits from file:\n")+fName.toAscii().constData(),"Main"); } } else if(action==actionSaveTrimbits){ #ifdef VERBOSE cout << "Saving Trimbits" << endl; #endif - QString fName = QString(myDet->getFilePath().c_str()); + QString fName = QString(myDet->getSettingsDir()); fName = QFileDialog::getSaveFileName(this, tr("Save Current Detector Trimbits"),fName, tr("Trimbit files (*.trim *.sn*) ")); @@ -407,87 +407,38 @@ void qDetectorMain::ExecuteUtilities(QAction *action){ if (!fName.isEmpty()){ if(myDet->saveSettingsFile(string(fName.toAscii().constData()),-1)!=slsDetectorDefs::FAIL) qDefs::InfoMessage("The Trimbits have been saved successfully.","Main"); - else qDefs::WarningMessage("The Saving of Trimbits has failed.","Main"); + else qDefs::WarningMessage(string("Could not save the Trimbits to file:\n")+fName.toAscii().constData(),"Main"); } } else if(action==actionLoadCalibration){ #ifdef VERBOSE cout << "Loading Calibration Data" << endl; #endif - QString fName = QString(myDet->getFilePath().c_str()); + QString fName = QString(myDet->getCalDir()); fName = QFileDialog::getOpenFileName(this, tr("Load Detector Calibration Data"),fName, tr("Calibration files (*.cal *.sn*)")); // Gets called when cancelled as well if (!fName.isEmpty()){ - int nMod = myDet->setNumberOfModules(); - slsDetector *detector; - slsDetectorDefs::sls_detector_module *myMod=NULL; - string sFname= fName.toAscii().constData(); - double gain,offset; - for(int i=0;igetSlsDetector(i); - if(detector){ - if (sFname.find(".cal")==string::npos) { - if (sFname.find(".sn")==string::npos && sFname.find(".cal")) { - ostringstream ostfn; - ostfn << sFname << ".sn" << setfill('0') << setw(3) << hex << myDet->getId(slsDetectorDefs::MODULE_SERIAL_NUMBER, i); - fn=ostfn.str(); - }} - if(detector->readCalibrationFile(fn,gain,offset)==-1) - qDefs::WarningMessage(string("Could not open Calibration File.\n")+ fn,"Main"); - else{ - if(myMod = detector->getModule(i)){ - myMod->gain = gain; - myMod->offset = offset; - detector->setModule(*myMod); - detector->deleteModule(myMod); - } - } - } - detector = NULL; - } - - //if(energyConversion::readCalibrationFile(string(fName.toAscii().constData()),-1)!=slsDetectorDefs::FAIL) - // qDefs::InfoMessage("The Calibration Data have been loaded successfully.","Main"); - //else qDefs::WarningMessage("The Loading of Calibration Data has failed.","Main"); + if(myDet->loadCalibrationFile(string(fName.toAscii().constData()),-1)!=slsDetectorDefs::FAIL) + qDefs::InfoMessage("The Calibration Data have been loaded successfully.","Main"); + else qDefs::WarningMessage(string("Could not load the Calibration data from file:\n")+ fName.toAscii().constData(),"Main"); } } else if(action==actionSaveCalibration){ #ifdef VERBOSE cout << "Saving Calibration Data" << endl; #endif - QString fName = QString(myDet->getFilePath().c_str()); + QString fName = QString(myDet->getCalDir()); fName = QFileDialog::getSaveFileName(this, tr("Save Current Detector Calibration Data"),fName, tr("Calibration files (*.cal *.sn*) ")); // Gets called when cancelled as well if (!fName.isEmpty()){ - int nMod = myDet->setNumberOfModules(); - cout<<"nmode:"<getSlsDetector(i); - if(detector){ - ostringstream ostfn; - ostfn << sFname << ".sn" << setfill('0') << setw(3) << hex << myDet->getId(slsDetectorDefs::MODULE_SERIAL_NUMBER, i); - fn=ostfn.str(); - if(myMod = detector->getModule(i)){ - if(detector->writeCalibrationFile(fn,myMod->gain,myMod->offset)==-1) - qDefs::WarningMessage(string("Could not open Calibration File.\n")+ fn,"Main"); - detector->deleteModule(myMod); - } - } - detector = NULL; - } - //if(energyConversion::writeCalibrationFile(string(fName.toAscii().constData()),-1)!=slsDetectorDefs::FAIL) - // qDefs::InfoMessage("The Calibration Data have been saved successfully.","Main"); - //else qDefs::WarningMessage("The Saving of Calibration Data has failed.","Main"); + if(myDet->saveCalibrationFile(string(fName.toAscii().constData()),-1)!=slsDetectorDefs::FAIL) + qDefs::InfoMessage("The Calibration Data have been saved successfully.","Main"); + else qDefs::WarningMessage(string("Could not save the Calibration data to file:\n")+fName.toAscii().constData(),"Main"); + } }