From b803f3a32a1ca86b7ea70ffb1fe1d4c1e41ad08f Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 27 Nov 2015 17:30:45 +0100 Subject: [PATCH] works for jungfrau --- slsDetectorGui/src/qDetectorMain.cpp | 9 +- slsDetectorGui/src/qDrawPlot.cpp | 1 + slsDetectorGui/src/qTabActions.cpp | 1 + slsDetectorGui/src/qTabAdvanced.cpp | 13 +- slsDetectorGui/src/qTabDebugging.cpp | 24 +++- slsDetectorGui/src/qTabDeveloper.cpp | 175 ++++++++++++++++--------- slsDetectorGui/src/qTabMeasurement.cpp | 1 + slsDetectorGui/src/qTabPlot.cpp | 2 + slsDetectorGui/src/qTabSettings.cpp | 12 +- 9 files changed, 170 insertions(+), 68 deletions(-) diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp index efffa5b96..c3d39928b 100644 --- a/slsDetectorGui/src/qDetectorMain.cpp +++ b/slsDetectorGui/src/qDetectorMain.cpp @@ -276,7 +276,10 @@ void qDetectorMain::SetUpDetector(const string fName){ case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::AGIPD: case slsDetectorDefs::PROPIX: - case slsDetectorDefs::MOENCH: actionLoadTrimbits->setText("Load Settings"); actionSaveTrimbits->setText("Save Settings"); break; + case slsDetectorDefs::MOENCH: + case slsDetectorDefs::JUNGFRAU: + actionLoadTrimbits->setText("Load Settings"); actionSaveTrimbits->setText("Save Settings"); + break; default: string detName = myDet->slsDetectorBase::getDetectorType(detType); qDefs::checkErrorMessage(myDet,"qDetectorMain::SetUpDetector"); @@ -647,7 +650,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action){ void qDetectorMain::ExecuteHelp(QAction *action){ if(action==actionAbout){ #ifdef VERBOSE - cout << "About: Common GUI for Mythen, Eiger, Gotthard and Propix detectors" << endl; + cout << "About: Common GUI for Mythen, Eiger, Gotthard, Jungfrau, Moench and Propix detectors" << endl; #endif char version[200]; int64_t retval= SVNREV; @@ -664,7 +667,7 @@ void qDetectorMain::ExecuteHelp(QAction *action){ "SLS Detector GUI version:   " + thisGUIVersion+"
" "SLS Detector Client version: "+thisClientVersion+"

" "Common GUI to control the SLS Detectors: " - "Mythen, Eiger, Gotthard and Propix.

" + "Mythen, Eiger, Gotthard, Jungfrau, Moench and Propix.

" "It can be operated in parallel with the command line interface:
" "sls_detector_put,
sls_detector_get,
sls_detector_acquire and
sls_detector_help.

" "The GUI Software is still in progress. " diff --git a/slsDetectorGui/src/qDrawPlot.cpp b/slsDetectorGui/src/qDrawPlot.cpp index 326deba11..67f3ed720 100644 --- a/slsDetectorGui/src/qDrawPlot.cpp +++ b/slsDetectorGui/src/qDrawPlot.cpp @@ -69,6 +69,7 @@ void qDrawPlot::SetupWidgetWindow(){ case slsDetectorDefs::GOTTHARD: originally2D = false; break; case slsDetectorDefs::PROPIX: originally2D = true; break; case slsDetectorDefs::MOENCH: originally2D = true; break; + case slsDetectorDefs::JUNGFRAU: originally2D = true; break; default: cout << "ERROR: Detector Type is Generic" << endl; exit(-1); diff --git a/slsDetectorGui/src/qTabActions.cpp b/slsDetectorGui/src/qTabActions.cpp index ad450dbed..c53c93499 100644 --- a/slsDetectorGui/src/qTabActions.cpp +++ b/slsDetectorGui/src/qTabActions.cpp @@ -184,6 +184,7 @@ void qTabActions::SetupWidgetWindow(){ if((detType == slsDetectorDefs::EIGER) || (detType == slsDetectorDefs::AGIPD) || (detType == slsDetectorDefs::PROPIX) || + (detType == slsDetectorDefs::JUNGFRAU) || (detType == slsDetectorDefs::MOENCH)) { lblName[NumPositions]->setEnabled(false); btnExpand[NumPositions]->setEnabled(false); diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp index 2e141bfe5..6c4f290b5 100644 --- a/slsDetectorGui/src/qTabAdvanced.cpp +++ b/slsDetectorGui/src/qTabAdvanced.cpp @@ -106,6 +106,15 @@ void qTabAdvanced::SetupWidgetWindow(){ dispMAC->setEnabled(true); boxRxr->setEnabled(true); break; + case slsDetectorDefs::JUNGFRAU: + isEnergy = false; + isAngular = false; + lblIP->setEnabled(true); + lblMAC->setEnabled(true); + dispIP->setEnabled(true); + dispMAC->setEnabled(true); + boxRxr->setEnabled(true); + break; default: break; } @@ -249,7 +258,8 @@ void qTabAdvanced::Initialization(){ if((detType==slsDetectorDefs::GOTTHARD) || (detType==slsDetectorDefs::MOENCH) || (detType==slsDetectorDefs::PROPIX) || - (detType==slsDetectorDefs::EIGER)){ + (detType==slsDetectorDefs::PROPIX) || + (detType==slsDetectorDefs::JUNGFRAU)){ //network connect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int))); @@ -1238,6 +1248,7 @@ void qTabAdvanced::Refresh(){ if ((detType==slsDetectorDefs::GOTTHARD) || (detType==slsDetectorDefs::MOENCH)|| (detType==slsDetectorDefs::PROPIX)|| + (detType==slsDetectorDefs::JUNGFRAU)|| (detType==slsDetectorDefs::EIGER)){ //disconnect disconnect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int))); diff --git a/slsDetectorGui/src/qTabDebugging.cpp b/slsDetectorGui/src/qTabDebugging.cpp index 80c0125e0..150f8dbe7 100644 --- a/slsDetectorGui/src/qTabDebugging.cpp +++ b/slsDetectorGui/src/qTabDebugging.cpp @@ -73,6 +73,7 @@ void qTabDebugging::SetupWidgetWindow(){ chkChip->setEnabled(false); chkModuleFirmware->setEnabled(false); break; + case slsDetectorDefs::JUNGFRAU: case slsDetectorDefs::PROPIX: case slsDetectorDefs::GOTTHARD: lblDetector->setText("Module:"); @@ -341,6 +342,26 @@ void qTabDebugging::GetInfo(){ break; + case slsDetectorDefs::JUNGFRAU: + + //display widget + formLayout->addWidget(new QLabel("Module:"),0,0); + formLayout->addItem(new QSpacerItem(15,20,QSizePolicy::Fixed,QSizePolicy::Fixed),0,1); + formLayout->addWidget(lblDetectorId,0,2); + formLayout->addWidget(new QLabel("Module MAC Address:"),1,0); + formLayout->addWidget(lblDetectorSerial,1,2); + formLayout->addWidget(new QLabel("Module Firmware Version:"),2,0); + formLayout->addWidget(lblDetectorFirmware,2,2); + formLayout->addWidget(new QLabel("Module Software Version:"),3,0); + formLayout->addWidget(lblDetectorSoftware,3,2); + //tree widget + treeDet->setHeaderLabel("JungFrau Detector"); + //gets det names + for (int i=0;icount();i++) + items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Module (%1)").arg(comboDetector->itemText(i))))); + treeDet->insertTopLevelItems(0, items); + + break; default: @@ -448,7 +469,7 @@ void qTabDebugging::SetParameters(QTreeWidgetItem *item){ break; - + case slsDetectorDefs::JUNGFRAU: case slsDetectorDefs::PROPIX: case slsDetectorDefs::MOENCH: case slsDetectorDefs::GOTTHARD: @@ -497,6 +518,7 @@ void qTabDebugging::TestDetector(){ message = QString("Test Results for %1 and %2:

").arg(comboDetector->currentText(),comboModule->currentText()); break; case slsDetectorDefs::EIGER: Detector = "Half Module"; break; + case slsDetectorDefs::JUNGFRAU: case slsDetectorDefs::MOENCH: case slsDetectorDefs::PROPIX: case slsDetectorDefs::GOTTHARD: Detector = "Module"; break; diff --git a/slsDetectorGui/src/qTabDeveloper.cpp b/slsDetectorGui/src/qTabDeveloper.cpp index 5c17c04ed..56e46b47b 100644 --- a/slsDetectorGui/src/qTabDeveloper.cpp +++ b/slsDetectorGui/src/qTabDeveloper.cpp @@ -137,6 +137,31 @@ void qTabDeveloper::SetupWidgetWindow(){ adcNames.push_back("Temperature FPGA:"); break; + + + case slsDetectorDefs::JUNGFRAU: + NUM_DAC_WIDGETS = 16; + NUM_ADC_WIDGETS = 0; + dacNames.push_back("v Dac 0:"); + dacNames.push_back("v Dac 1:"); + dacNames.push_back("v Dac 2:"); + dacNames.push_back("v Dac 3:"); + dacNames.push_back("v Dac 4:"); + dacNames.push_back("v Dac 5:"); + dacNames.push_back("v Dac 6:"); + dacNames.push_back("i Dac 7:"); + dacNames.push_back("v Dac 8:"); + dacNames.push_back("v Dac 9:"); + dacNames.push_back("v Dac 10:"); + dacNames.push_back("v Dac 11:"); + dacNames.push_back("v Dac 12:"); + dacNames.push_back("v Dac 13:"); + dacNames.push_back("v Dac 14:"); + dacNames.push_back("i Dac 15:"); + + + break; + default: cout << "ERROR: Unknown detector type: " + myDet->slsDetectorBase::getDetectorType(detType) << endl; qDefs::Message(qDefs::CRITICAL,string("Unknown detector type:")+myDet->slsDetectorBase::getDetectorType(detType),"qTabDeveloper::SetupWidgetWindow"); @@ -378,72 +403,98 @@ slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(int index){ break; } break; - case slsDetectorDefs::EIGER: - switch(index){ - case 0: return slsDetectorDefs::E_SvP; - case 1: return slsDetectorDefs::E_SvN; - case 2: return slsDetectorDefs::E_Vrf; - case 3: return slsDetectorDefs::E_Vrs; - case 4: return slsDetectorDefs::E_Vtr; - case 5: return slsDetectorDefs::E_Vtgstv; - case 6: return slsDetectorDefs::E_cal; - case 7: return slsDetectorDefs::E_Vcp; - case 8: return slsDetectorDefs::E_Vcn; - case 9: return slsDetectorDefs::E_Vis; - case 10:return slsDetectorDefs::E_rxb_lb; - case 11:return slsDetectorDefs::E_rxb_rb; - case 12:return slsDetectorDefs::E_Vcmp_ll; - case 13:return slsDetectorDefs::E_Vcmp_lr; - case 14:return slsDetectorDefs::E_Vcmp_rl; - case 15:return slsDetectorDefs::E_Vcmp_rr; - case 16:return slsDetectorDefs::THRESHOLD; + case slsDetectorDefs::EIGER: + switch(index){ + case 0: return slsDetectorDefs::E_SvP; + case 1: return slsDetectorDefs::E_SvN; + case 2: return slsDetectorDefs::E_Vrf; + case 3: return slsDetectorDefs::E_Vrs; + case 4: return slsDetectorDefs::E_Vtr; + case 5: return slsDetectorDefs::E_Vtgstv; + case 6: return slsDetectorDefs::E_cal; + case 7: return slsDetectorDefs::E_Vcp; + case 8: return slsDetectorDefs::E_Vcn; + case 9: return slsDetectorDefs::E_Vis; + case 10:return slsDetectorDefs::E_rxb_lb; + case 11:return slsDetectorDefs::E_rxb_rb; + case 12:return slsDetectorDefs::E_Vcmp_ll; + case 13:return slsDetectorDefs::E_Vcmp_lr; + case 14:return slsDetectorDefs::E_Vcmp_rl; + case 15:return slsDetectorDefs::E_Vcmp_rr; + case 16:return slsDetectorDefs::THRESHOLD; - default: - qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex"); - Refresh(); + default: + qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex"); + Refresh(); + break; + } break; - } - break; - case slsDetectorDefs::MOENCH: - switch(index){ - case 0: return slsDetectorDefs::V_DAC0; - case 1: return slsDetectorDefs::V_DAC1; - case 2: return slsDetectorDefs::V_DAC2; - case 3: return slsDetectorDefs::V_DAC3; - case 4: return slsDetectorDefs::V_DAC4; - case 5: return slsDetectorDefs::V_DAC5; - case 6: return slsDetectorDefs::V_DAC6; - case 7: return slsDetectorDefs::V_DAC7; - case 8: return slsDetectorDefs::TEMPERATURE_ADC; - case 9:return slsDetectorDefs::TEMPERATURE_FPGA; + case slsDetectorDefs::MOENCH: + switch(index){ + case 0: return slsDetectorDefs::V_DAC0; + case 1: return slsDetectorDefs::V_DAC1; + case 2: return slsDetectorDefs::V_DAC2; + case 3: return slsDetectorDefs::V_DAC3; + case 4: return slsDetectorDefs::V_DAC4; + case 5: return slsDetectorDefs::V_DAC5; + case 6: return slsDetectorDefs::V_DAC6; + case 7: return slsDetectorDefs::V_DAC7; + case 8: return slsDetectorDefs::TEMPERATURE_ADC; + case 9:return slsDetectorDefs::TEMPERATURE_FPGA; - default: - qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error. Index:"+ index,"qTabDeveloper::getSLSIndex"); - Refresh(); - break; - } - break; - case slsDetectorDefs::PROPIX: - 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::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex"); - Refresh(); - break; - } - break; - default: + default: + qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error. Index:"+ index,"qTabDeveloper::getSLSIndex"); + Refresh(); + break; + } + break; + case slsDetectorDefs::PROPIX: + 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::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex"); + Refresh(); + break; + } + break; + case slsDetectorDefs::JUNGFRAU: + switch(index){ + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + return (slsDetectorDefs::dacIndex)index; + break; + default: + qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex"); + Refresh(); + break; + } + break; + default: cout << "Unknown detector type:" + myDet->slsDetectorBase::getDetectorType(detType) << endl; qDefs::Message(qDefs::CRITICAL,string("Unknown detector type:")+myDet->slsDetectorBase::getDetectorType(detType),"qTabDeveloper::getSLSIndex"); qDefs::checkErrorMessage(myDet,"qTabDeveloper::getSLSIndex"); diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 5d417b3ba..445ec4bab 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -147,6 +147,7 @@ void qTabMeasurement::SetupTimingMode(){ case slsDetectorDefs::MOENCH: case slsDetectorDefs::PROPIX: case slsDetectorDefs::GOTTHARD: + case slsDetectorDefs::JUNGFRAU: item[(int)Trigger_Exp_Series]->setEnabled(true); item[(int)Trigger_Readout]->setEnabled(false); item[(int)Gated]->setEnabled(false); diff --git a/slsDetectorGui/src/qTabPlot.cpp b/slsDetectorGui/src/qTabPlot.cpp index 97f73a078..7f23fe316 100644 --- a/slsDetectorGui/src/qTabPlot.cpp +++ b/slsDetectorGui/src/qTabPlot.cpp @@ -177,6 +177,7 @@ void qTabPlot::SetupWidgetWindow(){ break; case slsDetectorDefs::PROPIX: case slsDetectorDefs::MOENCH: + case slsDetectorDefs::JUNGFRAU: isOriginallyOneD = false; break; default: @@ -788,6 +789,7 @@ void qTabPlot::EnableScanBox(){ pageAccumulate_2->setEnabled(true); if((myDet->getDetectorsType() == slsDetectorDefs::GOTTHARD) || (myDet->getDetectorsType() == slsDetectorDefs::PROPIX) || + (myDet->getDetectorsType() == slsDetectorDefs::JUNGFRAU) || (myDet->getDetectorsType() == slsDetectorDefs::MOENCH)){ pagePedestal->setEnabled(true); pagePedestal_2->setEnabled(true); diff --git a/slsDetectorGui/src/qTabSettings.cpp b/slsDetectorGui/src/qTabSettings.cpp index b0fc4788e..4c6772c66 100644 --- a/slsDetectorGui/src/qTabSettings.cpp +++ b/slsDetectorGui/src/qTabSettings.cpp @@ -100,7 +100,7 @@ void qTabSettings::GetDynamicRange(int setvalue){ void qTabSettings::SetupDetectorSettings(){ // Get detector settings from detector - slsDetectorDefs::detectorSettings sett = myDet->getSettings(); + slsDetectorDefs::detectorSettings sett = myDet->getSettings();cout<<"sett:"<setEnabled(true); item[(int)LowNoise]->setEnabled(false); break; + case slsDetectorDefs::JUNGFRAU: + item[(int)Standard]->setEnabled(false); + item[(int)Fast]->setEnabled(false); + item[(int)HighGain]->setEnabled(true); + item[(int)DynamicGain]->setEnabled(false); + item[(int)LowGain]->setEnabled(false); + item[(int)MediumGain]->setEnabled(false); + item[(int)VeryHighGain]->setEnabled(false); + item[(int)LowNoise]->setEnabled(false); + break; default: cout << "Unknown detector type. Exiting GUI." << endl; qDefs::Message(qDefs::CRITICAL,"Unknown detector type. Exiting GUI.","qTabSettings::SetupDetectorSettings");