diff --git a/slsDetectorGui/forms/form_tab_dataoutput.ui b/slsDetectorGui/forms/form_tab_dataoutput.ui index 6e3dbd168..9d700034d 100644 --- a/slsDetectorGui/forms/form_tab_dataoutput.ui +++ b/slsDetectorGui/forms/form_tab_dataoutput.ui @@ -49,23 +49,13 @@ 15 25 701 - 141 + 66 3 - - - - false - - - Angular Conversion - - - @@ -107,55 +97,6 @@ - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 40 - 20 - - - - - - - - Discard Bad Channels - - - - - - - false - - - Auto - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 40 - 20 - - - - @@ -190,37 +131,15 @@ - - - - Qt::Horizontal + + + + false - - QSizePolicy::Fixed + + Auto - - - 40 - 20 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 40 - 20 - - - + @@ -257,7 +176,23 @@ - + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + Qt::Horizontal @@ -273,7 +208,71 @@ - + + + + + + 15 + 95 + 701 + 66 + + + + + 3 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 310 + 20 + + + + + + + + Discard Bad Channels + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + false + + + Angular Conversion + + + + <nobr> @@ -287,6 +286,23 @@ Compression using Root. Available only for Gotthard in Expert Mode. + + + + false + + + <nobr> +Compression using Root. Available only for Gotthard in Expert Mode. +</nobr><br><nobr> + #r_compression# +</nobr> + + + 10GbE + + + @@ -508,8 +524,6 @@ Directory where one saves the data. radioAuto radioDeadTime spinDeadTime - chkAngular - chkDiscardBad diff --git a/slsDetectorGui/include/qTabDataOutput.h b/slsDetectorGui/include/qTabDataOutput.h index 86cfe431b..7f29b5164 100644 --- a/slsDetectorGui/include/qTabDataOutput.h +++ b/slsDetectorGui/include/qTabDataOutput.h @@ -117,6 +117,9 @@ void GetOutputDir(); /** set compression */ void SetCompression(bool enable); +/** enable 10GbE */ +void EnableTenGigabitEthernet(bool enable, int get=0); + signals: /**signal to enable/disable positions in Actions*/ void AngularConversionSignal(bool); diff --git a/slsDetectorGui/include/qTabDeveloper.h b/slsDetectorGui/include/qTabDeveloper.h index 13e1b3c04..a88499bff 100644 --- a/slsDetectorGui/include/qTabDeveloper.h +++ b/slsDetectorGui/include/qTabDeveloper.h @@ -100,6 +100,7 @@ private: QLabel *lblDacs[20]; QLabel *lblAdcs[20]; MyDoubleSpinBox *spinDacs[20]; + QLabel *lblDacsmV[20]; QDoubleSpinBox *spinAdcs[20]; QLabel *lblHV; QComboBox *comboHV; diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp index 3ce79318e..f07da9530 100644 --- a/slsDetectorGui/src/qTabAdvanced.cpp +++ b/slsDetectorGui/src/qTabAdvanced.cpp @@ -74,7 +74,15 @@ void qTabAdvanced::SetupWidgetWindow(){ detType = myDet->getDetectorsType(); switch(detType){ case slsDetectorDefs::MYTHEN: isEnergy = true; isAngular = true; break; - case slsDetectorDefs::EIGER: isEnergy = true; isAngular = false; break; + case slsDetectorDefs::EIGER: + isEnergy = true; + isAngular = false; + lblIP->setEnabled(true); + lblMAC->setEnabled(true); + dispIP->setEnabled(true); + dispMAC->setEnabled(true); + boxRxr->setEnabled(true); + break; case slsDetectorDefs::MOENCH: isEnergy = false; isAngular = false; @@ -223,7 +231,7 @@ void qTabAdvanced::Initialization(){ connect(spinStopPort, SIGNAL(valueChanged(int)), this, SLOT(SetStopPort(int))); connect(comboOnline, SIGNAL(currentIndexChanged(int)), this, SLOT(SetOnline(int))); - if((detType==slsDetectorDefs::GOTTHARD) || (detType==slsDetectorDefs::MOENCH)){ + if((detType==slsDetectorDefs::GOTTHARD) || (detType==slsDetectorDefs::MOENCH) || (detType==slsDetectorDefs::EIGER)){ //network connect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int))); @@ -241,6 +249,8 @@ void qTabAdvanced::Initialization(){ //roi + + connect(btnClearRoi, SIGNAL(clicked()), this, SLOT(clearROIinDetector())); connect(btnGetRoi, SIGNAL(clicked()), this, SLOT(updateROIList())); connect(btnSetRoi, SIGNAL(clicked()), this, SLOT(setROI())); @@ -297,7 +307,7 @@ void qTabAdvanced::SetThreshold(){ #ifdef VERBOSE cout << "Setting Threshold DACu:" << spinThreshold->value() << endl; #endif - spinThreshold->setValue((double)myDet->setDAC((dacs_t)spinThreshold->value(),slsDetectorDefs::THRESHOLD)); + spinThreshold->setValue((double)myDet->setDAC((dacs_t)spinThreshold->value(),slsDetectorDefs::THRESHOLD,0)); qDefs::checkErrorMessage(myDet,"qTabAdvanced::SetThreshold"); } @@ -1122,7 +1132,7 @@ void qTabAdvanced::Refresh(){ //threshold - double threshold = (double)myDet->setDAC(-1,slsDetectorDefs::THRESHOLD); + double threshold = (double)myDet->setDAC(-1,slsDetectorDefs::THRESHOLD,0); #ifdef VERBOSE cout << "Getting Threshold DACu : " << threshold << endl; #endif @@ -1168,7 +1178,7 @@ void qTabAdvanced::Refresh(){ #ifdef VERBOSE cout << "Getting Receiver Network Information" << endl; #endif - if ((detType==slsDetectorDefs::GOTTHARD) || (detType==slsDetectorDefs::MOENCH)){ + if ((detType==slsDetectorDefs::GOTTHARD) || (detType==slsDetectorDefs::MOENCH)|| (detType==slsDetectorDefs::EIGER)){ //disconnect disconnect(spinTCPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrTCPPort(int))); disconnect(spinUDPPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrUDPPort(int))); diff --git a/slsDetectorGui/src/qTabDataOutput.cpp b/slsDetectorGui/src/qTabDataOutput.cpp index 63d2bff2a..9af47f7a4 100644 --- a/slsDetectorGui/src/qTabDataOutput.cpp +++ b/slsDetectorGui/src/qTabDataOutput.cpp @@ -29,6 +29,7 @@ qTabDataOutput::qTabDataOutput(QWidget *parent,multiSlsDetector*& detector): QWidget(parent),myDet(detector){ setupUi(this); SetupWidgetWindow(); + Refresh(); } @@ -54,6 +55,9 @@ void qTabDataOutput::SetupWidgetWindow(){ if((detType == slsDetectorDefs::MYTHEN)||(detType == slsDetectorDefs::GOTTHARD)) chkAngular->setEnabled(true); + if(detType == slsDetectorDefs::EIGER) + chkTenGiga->setEnabled(true); + /** error message **/ red = QPalette(); red.setColor(QPalette::Active,QPalette::WindowText,Qt::red); @@ -157,6 +161,8 @@ void qTabDataOutput::Initialization(){ connect(chkDiscardBad, SIGNAL(toggled(bool)), this, SLOT(DiscardBadChannels())); //compression connect(chkCompression, SIGNAL(toggled(bool)), this, SLOT(SetCompression(bool))); + //10GbE + connect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(EnableTenGigabitEthernet(bool))); } @@ -735,6 +741,27 @@ void qTabDataOutput::SetCompression(bool enable){ //------------------------------------------------------------------------------------------------------------------------------------------------- +void qTabDataOutput::EnableTenGigabitEthernet(bool enable,int get){ +#ifdef VERBOSE + cout << endl << "Enabling/Disabling 10GbE" << endl; +#endif + disconnect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(EnableTenGigabitEthernet(bool))); + int ret; + if(get) + ret = myDet->enableTenGigabitEthernet(-1); + else + ret = myDet->enableTenGigabitEthernet(enable); + if(ret > 0) chkTenGiga->setChecked(true); + else chkTenGiga->setChecked(false); + connect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(EnableTenGigabitEthernet(bool))); + + qDefs::checkErrorMessage(myDet,"qTabDataOutput::EnableTenGigabitEthernet"); +} + + +//------------------------------------------------------------------------------------------------------------------------------------------------- + + void qTabDataOutput::Refresh(){ #ifdef VERBOSE cout << endl << "**Updating DataOutput Tab" << endl; @@ -808,6 +835,16 @@ void qTabDataOutput::Refresh(){ GetCompression(); } + //getting 10GbE + if(chkTenGiga->isEnabled()){ +#ifdef VERBOSE + cout << "Getting 10GbE enable" << endl; +#endif + EnableTenGigabitEthernet(-1,1); + } + + + #ifdef VERBOSE cout << "**Updated DataOutput Tab" << endl << endl; diff --git a/slsDetectorGui/src/qTabDeveloper.cpp b/slsDetectorGui/src/qTabDeveloper.cpp index 16091379a..7280eb76f 100644 --- a/slsDetectorGui/src/qTabDeveloper.cpp +++ b/slsDetectorGui/src/qTabDeveloper.cpp @@ -38,6 +38,7 @@ qTabDeveloper::qTabDeveloper(QWidget *parent,multiSlsDetector*& detector): lblAdcs[i]=0; spinDacs[i]=0; spinAdcs[i]=0; + lblDacsmV[i]=0; } SetupWidgetWindow(); Initialization(); @@ -81,21 +82,23 @@ void qTabDeveloper::SetupWidgetWindow(){ NUM_ADC_WIDGETS = 0; dacNames.push_back("v SvP:"); - dacNames.push_back("v Vtr:"); + dacNames.push_back("v SvN"); dacNames.push_back("v Vrf:"); dacNames.push_back("v Vrs:"); - dacNames.push_back("v SvN"); + dacNames.push_back("v Vtr:"); dacNames.push_back("v Vtgstv:"); - dacNames.push_back("v Vcmp_ll:"); - dacNames.push_back("v Vcmp_lr:"); dacNames.push_back("v cal:"); - dacNames.push_back("v Vcmp_rl:"); - dacNames.push_back("v rxb_rb:"); - dacNames.push_back("v rxb_lb:"); - dacNames.push_back("v Vcmp_rr:"); dacNames.push_back("v Vcp"); dacNames.push_back("v Vcn:"); dacNames.push_back("v Vis:"); + dacNames.push_back("v rxb_lb:"); + dacNames.push_back("v rxb_rb:"); + dacNames.push_back("v Vcmp_ll:"); + dacNames.push_back("v Vcmp_lr:"); + dacNames.push_back("v Vcmp_rl:"); + dacNames.push_back("v Vcmp_rr:"); + + break; case slsDetectorDefs::GOTTHARD: @@ -218,13 +221,16 @@ void qTabDeveloper::CreateDACWidgets(){ lblDacs[i] = new QLabel(QString(dacNames[i].c_str()),boxDacs); spinDacs[i] = new MyDoubleSpinBox(i,boxDacs); spinDacs[i]->setMaximum(10000); + lblDacsmV[i]= new QLabel("",boxDacs); - dacLayout->addWidget(lblDacs[i],(int)(i/2),((i%2)==0)?1:4); - dacLayout->addWidget(spinDacs[i],(int)(i/2),((i%2)==0)?2:5); + + dacLayout->addWidget(lblDacs[i],(int)(i/2),((i%2)==0)?1:5); + dacLayout->addWidget(spinDacs[i],(int)(i/2),((i%2)==0)?2:6); + dacLayout->addWidget(lblDacsmV[i],(int)(i/2),((i%2)==0)?3:7); if(!(i%2)){ dacLayout->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),0); - dacLayout->addItem(new QSpacerItem(60,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),3); - dacLayout->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),6); + dacLayout->addItem(new QSpacerItem(60,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),4); + dacLayout->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Fixed),(int)(i/2),8); } } } @@ -261,7 +267,8 @@ void qTabDeveloper::SetDacValues(int id){ cout << "Setting dac:" << dacNames[id] << " : " << spinDacs[id]->value() << endl; #endif //spinDacs[id]->setValue((double)myDet->setDAC((dacs_t)spinDacs[id]->value(),getSLSIndex(id))); - myDet->setDAC((dacs_t)spinDacs[id]->value(),getSLSIndex(id)); + myDet->setDAC((dacs_t)spinDacs[id]->value(),getSLSIndex(id),0); + lblDacsmV[id]->setText(QString("%1mV").arg(myDet->setDAC(-1,getSLSIndex(id),1),-10)); qDefs::checkErrorMessage(myDet,"qTabDeveloper::SetDacValues"); } @@ -275,7 +282,7 @@ void qTabDeveloper::SetHighVoltage(){ cout << "Setting high voltage:" << comboHV->currentText().toAscii().constData() << endl; #endif int highvoltage = comboHV->currentText().toInt(); - int ret = myDet->setDAC(highvoltage,slsDetectorDefs::HV_POT); + int ret = myDet->setDAC(highvoltage,slsDetectorDefs::HV_POT,0); qDefs::checkErrorMessage(myDet,"qTabDeveloper::SetHighVoltage"); //error if(ret != highvoltage){ @@ -317,21 +324,24 @@ slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(int index){ case slsDetectorDefs::EIGER: switch(index){ case 0: return slsDetectorDefs::E_SvP; - case 1: return slsDetectorDefs::E_Vtr; + case 1: return slsDetectorDefs::E_SvN; case 2: return slsDetectorDefs::E_Vrf; case 3: return slsDetectorDefs::E_Vrs; - case 4: return slsDetectorDefs::E_SvN; + case 4: return slsDetectorDefs::E_Vtr; case 5: return slsDetectorDefs::E_Vtgstv; - case 6: return slsDetectorDefs::E_Vcmp_ll; - case 7: return slsDetectorDefs::E_Vcmp_lr; - case 8: return slsDetectorDefs::E_cal; - case 9: return slsDetectorDefs::E_Vcmp_rl; - case 10:return slsDetectorDefs::E_rxb_rb; - case 11:return slsDetectorDefs::E_rxb_lb; - case 12:return slsDetectorDefs::E_Vcmp_rr; - case 13:return slsDetectorDefs::E_Vcp; - case 14:return slsDetectorDefs::E_Vcn; - case 15:return slsDetectorDefs::E_Vis; + 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; + + + default: qDefs::Message(qDefs::CRITICAL,"Unknown DAC/ADC Index. Weird Error","qTabDeveloper::getSLSIndex"); Refresh(); @@ -394,8 +404,10 @@ void qTabDeveloper::Refresh(){ cout << "Gettings DACs" << endl; #endif //dacs - for(int i=0;isetValue((double)myDet->setDAC(-1,getSLSIndex(i))); + for(int i=0;isetValue((double)myDet->setDAC(-1,getSLSIndex(i),0)); + lblDacsmV[i]->setText(QString("%1mV").arg(myDet->setDAC(-1,getSLSIndex(i),1),-10)); + } //adcs if(NUM_ADC_WIDGETS) RefreshAdcs(); @@ -409,7 +421,7 @@ void qTabDeveloper::Refresh(){ lblHV->setToolTip(tipHV); comboHV->setToolTip(tipHV); //getting hv value - int ret = (int)myDet->setDAC(-1,slsDetectorDefs::HV_POT); + int ret = (int)myDet->setDAC(-1,slsDetectorDefs::HV_POT,0); switch(ret){ case 0: comboHV->setCurrentIndex(0);break; case 90: comboHV->setCurrentIndex(1);break;