works for jungfrau

This commit is contained in:
Dhanya Maliakal 2015-11-27 17:30:45 +01:00
parent 8ecc795574
commit b803f3a32a
9 changed files with 170 additions and 68 deletions

View File

@ -276,7 +276,10 @@ void qDetectorMain::SetUpDetector(const string fName){
case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::GOTTHARD:
case slsDetectorDefs::AGIPD: case slsDetectorDefs::AGIPD:
case slsDetectorDefs::PROPIX: 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: default:
string detName = myDet->slsDetectorBase::getDetectorType(detType); string detName = myDet->slsDetectorBase::getDetectorType(detType);
qDefs::checkErrorMessage(myDet,"qDetectorMain::SetUpDetector"); qDefs::checkErrorMessage(myDet,"qDetectorMain::SetUpDetector");
@ -647,7 +650,7 @@ void qDetectorMain::ExecuteUtilities(QAction *action){
void qDetectorMain::ExecuteHelp(QAction *action){ void qDetectorMain::ExecuteHelp(QAction *action){
if(action==actionAbout){ if(action==actionAbout){
#ifdef VERBOSE #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 #endif
char version[200]; char version[200];
int64_t retval= SVNREV; int64_t retval= SVNREV;
@ -664,7 +667,7 @@ void qDetectorMain::ExecuteHelp(QAction *action){
"SLS Detector GUI version:&nbsp;&nbsp;&nbsp;" + thisGUIVersion+"<br>" "SLS Detector GUI version:&nbsp;&nbsp;&nbsp;" + thisGUIVersion+"<br>"
"SLS Detector Client version: "+thisClientVersion+"<br><br>" "SLS Detector Client version: "+thisClientVersion+"<br><br>"
"Common GUI to control the SLS Detectors: " "Common GUI to control the SLS Detectors: "
"Mythen, Eiger, Gotthard and Propix.<br><br>" "Mythen, Eiger, Gotthard, Jungfrau, Moench and Propix.<br><br>"
"It can be operated in parallel with the command line interface:<br>" "It can be operated in parallel with the command line interface:<br>"
"sls_detector_put,<br>sls_detector_get,<br>sls_detector_acquire and<br>sls_detector_help.<br><br>" "sls_detector_put,<br>sls_detector_get,<br>sls_detector_acquire and<br>sls_detector_help.<br><br>"
"The GUI Software is still in progress. " "The GUI Software is still in progress. "

View File

@ -69,6 +69,7 @@ void qDrawPlot::SetupWidgetWindow(){
case slsDetectorDefs::GOTTHARD: originally2D = false; break; case slsDetectorDefs::GOTTHARD: originally2D = false; break;
case slsDetectorDefs::PROPIX: originally2D = true; break; case slsDetectorDefs::PROPIX: originally2D = true; break;
case slsDetectorDefs::MOENCH: originally2D = true; break; case slsDetectorDefs::MOENCH: originally2D = true; break;
case slsDetectorDefs::JUNGFRAU: originally2D = true; break;
default: default:
cout << "ERROR: Detector Type is Generic" << endl; cout << "ERROR: Detector Type is Generic" << endl;
exit(-1); exit(-1);

View File

@ -184,6 +184,7 @@ void qTabActions::SetupWidgetWindow(){
if((detType == slsDetectorDefs::EIGER) || if((detType == slsDetectorDefs::EIGER) ||
(detType == slsDetectorDefs::AGIPD) || (detType == slsDetectorDefs::AGIPD) ||
(detType == slsDetectorDefs::PROPIX) || (detType == slsDetectorDefs::PROPIX) ||
(detType == slsDetectorDefs::JUNGFRAU) ||
(detType == slsDetectorDefs::MOENCH)) { (detType == slsDetectorDefs::MOENCH)) {
lblName[NumPositions]->setEnabled(false); lblName[NumPositions]->setEnabled(false);
btnExpand[NumPositions]->setEnabled(false); btnExpand[NumPositions]->setEnabled(false);

View File

@ -106,6 +106,15 @@ void qTabAdvanced::SetupWidgetWindow(){
dispMAC->setEnabled(true); dispMAC->setEnabled(true);
boxRxr->setEnabled(true); boxRxr->setEnabled(true);
break; 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; default: break;
} }
@ -249,7 +258,8 @@ void qTabAdvanced::Initialization(){
if((detType==slsDetectorDefs::GOTTHARD) || if((detType==slsDetectorDefs::GOTTHARD) ||
(detType==slsDetectorDefs::MOENCH) || (detType==slsDetectorDefs::MOENCH) ||
(detType==slsDetectorDefs::PROPIX) || (detType==slsDetectorDefs::PROPIX) ||
(detType==slsDetectorDefs::EIGER)){ (detType==slsDetectorDefs::PROPIX) ||
(detType==slsDetectorDefs::JUNGFRAU)){
//network //network
connect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int))); connect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int)));
@ -1238,6 +1248,7 @@ void qTabAdvanced::Refresh(){
if ((detType==slsDetectorDefs::GOTTHARD) || if ((detType==slsDetectorDefs::GOTTHARD) ||
(detType==slsDetectorDefs::MOENCH)|| (detType==slsDetectorDefs::MOENCH)||
(detType==slsDetectorDefs::PROPIX)|| (detType==slsDetectorDefs::PROPIX)||
(detType==slsDetectorDefs::JUNGFRAU)||
(detType==slsDetectorDefs::EIGER)){ (detType==slsDetectorDefs::EIGER)){
//disconnect //disconnect
disconnect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int))); disconnect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int)));

View File

@ -73,6 +73,7 @@ void qTabDebugging::SetupWidgetWindow(){
chkChip->setEnabled(false); chkChip->setEnabled(false);
chkModuleFirmware->setEnabled(false); chkModuleFirmware->setEnabled(false);
break; break;
case slsDetectorDefs::JUNGFRAU:
case slsDetectorDefs::PROPIX: case slsDetectorDefs::PROPIX:
case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::GOTTHARD:
lblDetector->setText("Module:"); lblDetector->setText("Module:");
@ -341,6 +342,26 @@ void qTabDebugging::GetInfo(){
break; 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;i<comboDetector->count();i++)
items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Module (%1)").arg(comboDetector->itemText(i)))));
treeDet->insertTopLevelItems(0, items);
break;
default: default:
@ -448,7 +469,7 @@ void qTabDebugging::SetParameters(QTreeWidgetItem *item){
break; break;
case slsDetectorDefs::JUNGFRAU:
case slsDetectorDefs::PROPIX: case slsDetectorDefs::PROPIX:
case slsDetectorDefs::MOENCH: case slsDetectorDefs::MOENCH:
case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::GOTTHARD:
@ -497,6 +518,7 @@ void qTabDebugging::TestDetector(){
message = QString("<nobr>Test Results for %1 and %2:</nobr><br><br>").arg(comboDetector->currentText(),comboModule->currentText()); message = QString("<nobr>Test Results for %1 and %2:</nobr><br><br>").arg(comboDetector->currentText(),comboModule->currentText());
break; break;
case slsDetectorDefs::EIGER: Detector = "Half Module"; break; case slsDetectorDefs::EIGER: Detector = "Half Module"; break;
case slsDetectorDefs::JUNGFRAU:
case slsDetectorDefs::MOENCH: case slsDetectorDefs::MOENCH:
case slsDetectorDefs::PROPIX: case slsDetectorDefs::PROPIX:
case slsDetectorDefs::GOTTHARD: Detector = "Module"; break; case slsDetectorDefs::GOTTHARD: Detector = "Module"; break;

View File

@ -137,6 +137,31 @@ void qTabDeveloper::SetupWidgetWindow(){
adcNames.push_back("Temperature FPGA:"); adcNames.push_back("Temperature FPGA:");
break; 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: default:
cout << "ERROR: Unknown detector type: " + myDet->slsDetectorBase::getDetectorType(detType) << endl; cout << "ERROR: Unknown detector type: " + myDet->slsDetectorBase::getDetectorType(detType) << endl;
qDefs::Message(qDefs::CRITICAL,string("Unknown detector type:")+myDet->slsDetectorBase::getDetectorType(detType),"qTabDeveloper::SetupWidgetWindow"); 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;
} }
break; break;
case slsDetectorDefs::EIGER: case slsDetectorDefs::EIGER:
switch(index){ switch(index){
case 0: return slsDetectorDefs::E_SvP; case 0: return slsDetectorDefs::E_SvP;
case 1: return slsDetectorDefs::E_SvN; case 1: return slsDetectorDefs::E_SvN;
case 2: return slsDetectorDefs::E_Vrf; case 2: return slsDetectorDefs::E_Vrf;
case 3: return slsDetectorDefs::E_Vrs; case 3: return slsDetectorDefs::E_Vrs;
case 4: return slsDetectorDefs::E_Vtr; case 4: return slsDetectorDefs::E_Vtr;
case 5: return slsDetectorDefs::E_Vtgstv; case 5: return slsDetectorDefs::E_Vtgstv;
case 6: return slsDetectorDefs::E_cal; case 6: return slsDetectorDefs::E_cal;
case 7: return slsDetectorDefs::E_Vcp; case 7: return slsDetectorDefs::E_Vcp;
case 8: return slsDetectorDefs::E_Vcn; case 8: return slsDetectorDefs::E_Vcn;
case 9: return slsDetectorDefs::E_Vis; case 9: return slsDetectorDefs::E_Vis;
case 10:return slsDetectorDefs::E_rxb_lb; case 10:return slsDetectorDefs::E_rxb_lb;
case 11:return slsDetectorDefs::E_rxb_rb; case 11:return slsDetectorDefs::E_rxb_rb;
case 12:return slsDetectorDefs::E_Vcmp_ll; case 12:return slsDetectorDefs::E_Vcmp_ll;
case 13:return slsDetectorDefs::E_Vcmp_lr; case 13:return slsDetectorDefs::E_Vcmp_lr;
case 14:return slsDetectorDefs::E_Vcmp_rl; case 14:return slsDetectorDefs::E_Vcmp_rl;
case 15:return slsDetectorDefs::E_Vcmp_rr; case 15:return slsDetectorDefs::E_Vcmp_rr;
case 16:return slsDetectorDefs::THRESHOLD; case 16:return slsDetectorDefs::THRESHOLD;
default: default:
qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex"); qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex");
Refresh(); Refresh();
break;
}
break; break;
} case slsDetectorDefs::MOENCH:
break; switch(index){
case slsDetectorDefs::MOENCH: case 0: return slsDetectorDefs::V_DAC0;
switch(index){ case 1: return slsDetectorDefs::V_DAC1;
case 0: return slsDetectorDefs::V_DAC0; case 2: return slsDetectorDefs::V_DAC2;
case 1: return slsDetectorDefs::V_DAC1; case 3: return slsDetectorDefs::V_DAC3;
case 2: return slsDetectorDefs::V_DAC2; case 4: return slsDetectorDefs::V_DAC4;
case 3: return slsDetectorDefs::V_DAC3; case 5: return slsDetectorDefs::V_DAC5;
case 4: return slsDetectorDefs::V_DAC4; case 6: return slsDetectorDefs::V_DAC6;
case 5: return slsDetectorDefs::V_DAC5; case 7: return slsDetectorDefs::V_DAC7;
case 6: return slsDetectorDefs::V_DAC6; case 8: return slsDetectorDefs::TEMPERATURE_ADC;
case 7: return slsDetectorDefs::V_DAC7; case 9:return slsDetectorDefs::TEMPERATURE_FPGA;
case 8: return slsDetectorDefs::TEMPERATURE_ADC;
case 9:return slsDetectorDefs::TEMPERATURE_FPGA;
default: default:
qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error. Index:"+ index,"qTabDeveloper::getSLSIndex"); qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error. Index:"+ index,"qTabDeveloper::getSLSIndex");
Refresh(); Refresh();
break; break;
} }
break; break;
case slsDetectorDefs::PROPIX: case slsDetectorDefs::PROPIX:
case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::GOTTHARD:
switch(index){ switch(index){
case 0: return slsDetectorDefs::G_VREF_DS; case 0: return slsDetectorDefs::G_VREF_DS;
case 1: return slsDetectorDefs::G_VCASCN_PB; case 1: return slsDetectorDefs::G_VCASCN_PB;
case 2: return slsDetectorDefs::G_VCASCP_PB; case 2: return slsDetectorDefs::G_VCASCP_PB;
case 3: return slsDetectorDefs::G_VOUT_CM; case 3: return slsDetectorDefs::G_VOUT_CM;
case 4: return slsDetectorDefs::G_VCASC_OUT; case 4: return slsDetectorDefs::G_VCASC_OUT;
case 5: return slsDetectorDefs::G_VIN_CM; case 5: return slsDetectorDefs::G_VIN_CM;
case 6: return slsDetectorDefs::G_VREF_COMP; case 6: return slsDetectorDefs::G_VREF_COMP;
case 7: return slsDetectorDefs::G_IB_TESTC; case 7: return slsDetectorDefs::G_IB_TESTC;
case 8: return slsDetectorDefs::TEMPERATURE_ADC; case 8: return slsDetectorDefs::TEMPERATURE_ADC;
case 9:return slsDetectorDefs::TEMPERATURE_FPGA; case 9:return slsDetectorDefs::TEMPERATURE_FPGA;
default: default:
qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex"); qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error Index:"+ index,"qTabDeveloper::getSLSIndex");
Refresh(); Refresh();
break; break;
} }
break; break;
default: 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; cout << "Unknown detector type:" + myDet->slsDetectorBase::getDetectorType(detType) << endl;
qDefs::Message(qDefs::CRITICAL,string("Unknown detector type:")+myDet->slsDetectorBase::getDetectorType(detType),"qTabDeveloper::getSLSIndex"); qDefs::Message(qDefs::CRITICAL,string("Unknown detector type:")+myDet->slsDetectorBase::getDetectorType(detType),"qTabDeveloper::getSLSIndex");
qDefs::checkErrorMessage(myDet,"qTabDeveloper::getSLSIndex"); qDefs::checkErrorMessage(myDet,"qTabDeveloper::getSLSIndex");

View File

@ -147,6 +147,7 @@ void qTabMeasurement::SetupTimingMode(){
case slsDetectorDefs::MOENCH: case slsDetectorDefs::MOENCH:
case slsDetectorDefs::PROPIX: case slsDetectorDefs::PROPIX:
case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::GOTTHARD:
case slsDetectorDefs::JUNGFRAU:
item[(int)Trigger_Exp_Series]->setEnabled(true); item[(int)Trigger_Exp_Series]->setEnabled(true);
item[(int)Trigger_Readout]->setEnabled(false); item[(int)Trigger_Readout]->setEnabled(false);
item[(int)Gated]->setEnabled(false); item[(int)Gated]->setEnabled(false);

View File

@ -177,6 +177,7 @@ void qTabPlot::SetupWidgetWindow(){
break; break;
case slsDetectorDefs::PROPIX: case slsDetectorDefs::PROPIX:
case slsDetectorDefs::MOENCH: case slsDetectorDefs::MOENCH:
case slsDetectorDefs::JUNGFRAU:
isOriginallyOneD = false; isOriginallyOneD = false;
break; break;
default: default:
@ -788,6 +789,7 @@ void qTabPlot::EnableScanBox(){
pageAccumulate_2->setEnabled(true); pageAccumulate_2->setEnabled(true);
if((myDet->getDetectorsType() == slsDetectorDefs::GOTTHARD) || if((myDet->getDetectorsType() == slsDetectorDefs::GOTTHARD) ||
(myDet->getDetectorsType() == slsDetectorDefs::PROPIX) || (myDet->getDetectorsType() == slsDetectorDefs::PROPIX) ||
(myDet->getDetectorsType() == slsDetectorDefs::JUNGFRAU) ||
(myDet->getDetectorsType() == slsDetectorDefs::MOENCH)){ (myDet->getDetectorsType() == slsDetectorDefs::MOENCH)){
pagePedestal->setEnabled(true); pagePedestal->setEnabled(true);
pagePedestal_2->setEnabled(true); pagePedestal_2->setEnabled(true);

View File

@ -100,7 +100,7 @@ void qTabSettings::GetDynamicRange(int setvalue){
void qTabSettings::SetupDetectorSettings(){ void qTabSettings::SetupDetectorSettings(){
// Get detector settings from detector // Get detector settings from detector
slsDetectorDefs::detectorSettings sett = myDet->getSettings(); slsDetectorDefs::detectorSettings sett = myDet->getSettings();cout<<"sett:"<<sett<<endl;
qDefs::checkErrorMessage(myDet,"qTabSettings::SetupDetectorSettings"); qDefs::checkErrorMessage(myDet,"qTabSettings::SetupDetectorSettings");
if(sett==-1) sett = slsDetectorDefs::UNDEFINED; if(sett==-1) sett = slsDetectorDefs::UNDEFINED;
// To be able to index items on a combo box // To be able to index items on a combo box
@ -144,6 +144,16 @@ void qTabSettings::SetupDetectorSettings(){
item[(int)VeryHighGain]->setEnabled(true); item[(int)VeryHighGain]->setEnabled(true);
item[(int)LowNoise]->setEnabled(false); item[(int)LowNoise]->setEnabled(false);
break; 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: default:
cout << "Unknown detector type. Exiting GUI." << endl; cout << "Unknown detector type. Exiting GUI." << endl;
qDefs::Message(qDefs::CRITICAL,"Unknown detector type. Exiting GUI.","qTabSettings::SetupDetectorSettings"); qDefs::Message(qDefs::CRITICAL,"Unknown detector type. Exiting GUI.","qTabSettings::SetupDetectorSettings");