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;