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");