added more accurate temperature sensors for eiger, and to gui

This commit is contained in:
Dhanya Maliakal
2016-07-22 10:41:35 +02:00
parent 843dbffcd8
commit 86308352cb

View File

@ -81,7 +81,7 @@ void qTabDeveloper::SetupWidgetWindow(){
break; break;
case slsDetectorDefs::EIGER: case slsDetectorDefs::EIGER:
NUM_DAC_WIDGETS = 17; NUM_DAC_WIDGETS = 17;
NUM_ADC_WIDGETS = 0; NUM_ADC_WIDGETS = 6;
dacNames.push_back("v SvP:"); dacNames.push_back("v SvP:");
dacNames.push_back("v SvN"); dacNames.push_back("v SvN");
@ -101,7 +101,12 @@ void qTabDeveloper::SetupWidgetWindow(){
dacNames.push_back("v Vcmp_rr:"); dacNames.push_back("v Vcmp_rr:");
dacNames.push_back("v threshold:"); dacNames.push_back("v threshold:");
adcNames.push_back("Temperature FPGA Ext:");
adcNames.push_back("Temperature 10GE:");
adcNames.push_back("Temperature DCDC:");
adcNames.push_back("Temperature SODL:");
adcNames.push_back("Temperature SODR:");
adcNames.push_back("Temperature FPGA:");
break; break;
case slsDetectorDefs::PROPIX: case slsDetectorDefs::PROPIX:
@ -228,16 +233,19 @@ void qTabDeveloper::SetupWidgetWindow(){
//adcs //adcs
if((detType==slsDetectorDefs::GOTTHARD) || if((detType==slsDetectorDefs::GOTTHARD) ||
(detType==slsDetectorDefs::PROPIX) || (detType==slsDetectorDefs::PROPIX) ||
(detType==slsDetectorDefs::MOENCH)){ (detType==slsDetectorDefs::MOENCH)||
(detType==slsDetectorDefs::EIGER)) {
setFixedHeight(20+(50+(NUM_DAC_WIDGETS/2)*35)+(50+(NUM_ADC_WIDGETS/2)*35)); setFixedHeight(20+(50+(NUM_DAC_WIDGETS/2)*35)+(50+(NUM_ADC_WIDGETS/2)*35));
boxAdcs = new QGroupBox("ADCs",this); boxAdcs = new QGroupBox("ADCs",this);
boxAdcs->setFixedHeight(25+(NUM_ADC_WIDGETS/2)*35); boxAdcs->setFixedHeight(25+(NUM_ADC_WIDGETS/2)*35);
layout->addWidget(boxAdcs,2,0); layout->addWidget(boxAdcs,2,0);
CreateADCWidgets(); CreateADCWidgets();
//to make the adcs at the bottom most //to make the adcs at the bottom most
int diff = 340-height(); if(detType!=slsDetectorDefs::EIGER) {
setFixedHeight(340); int diff = 340-height();
layout->setVerticalSpacing(diff/2); setFixedHeight(340);
layout->setVerticalSpacing(diff/2);
}
//timer to check adcs //timer to check adcs
adcTimer = new QTimer(this); adcTimer = new QTimer(this);
} }
@ -295,9 +303,11 @@ void qTabDeveloper::CreateADCWidgets(){
lblAdcs[i] = new QLabel(QString(adcNames[i].c_str()),boxAdcs); lblAdcs[i] = new QLabel(QString(adcNames[i].c_str()),boxAdcs);
spinAdcs[i] = new QDoubleSpinBox(boxAdcs); spinAdcs[i] = new QDoubleSpinBox(boxAdcs);
spinAdcs[i]->setMaximum(10000); spinAdcs[i]->setMaximum(10000);
spinAdcs[i]->setMinimum(-1);
if((detType==slsDetectorDefs::GOTTHARD) || if((detType==slsDetectorDefs::GOTTHARD) ||
(detType==slsDetectorDefs::PROPIX) || (detType==slsDetectorDefs::PROPIX) ||
(detType==slsDetectorDefs::MOENCH)) (detType==slsDetectorDefs::MOENCH)||
(detType==slsDetectorDefs::EIGER))
spinAdcs[i]->setSuffix(0x00b0+QString("C")); spinAdcs[i]->setSuffix(0x00b0+QString("C"));
adcLayout->addWidget(lblAdcs[i],(int)(i/2),((i%2)==0)?1:4); adcLayout->addWidget(lblAdcs[i],(int)(i/2),((i%2)==0)?1:4);
@ -422,8 +432,12 @@ slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(int index){
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;
case 17:return slsDetectorDefs::TEMPERATURE_FPGAEXT;
case 18:return slsDetectorDefs::TEMPERATURE_10GE;
case 19:return slsDetectorDefs::TEMPERATURE_DCDC;
case 20:return slsDetectorDefs::TEMPERATURE_SODL;
case 21:return slsDetectorDefs::TEMPERATURE_SODR;
case 22: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();
@ -520,11 +534,25 @@ void qTabDeveloper::RefreshAdcs(){
for(int i=0;i<NUM_ADC_WIDGETS;i++){ for(int i=0;i<NUM_ADC_WIDGETS;i++){
//all detectors //all detectors
if(!detid) if(!detid){
spinAdcs[i]->setValue((double)myDet->getADC(getSLSIndex(i+NUM_DAC_WIDGETS))); if(detType == slsDetectorDefs::EIGER){
double value = (double)myDet->getADC(getSLSIndex(i+NUM_DAC_WIDGETS));
if(value == -1)
spinAdcs[i]->setValue(value);
else
spinAdcs[i]->setValue(value/1000.00);
}
else
spinAdcs[i]->setValue((double)myDet->getADC(getSLSIndex(i+NUM_DAC_WIDGETS)));
}
//specific detector //specific detector
else else{
spinAdcs[i]->setValue((double)det->getADC(getSLSIndex(i+NUM_DAC_WIDGETS))); if(detType == slsDetectorDefs::EIGER)
spinAdcs[i]->setValue((double)det->getADC(getSLSIndex(i+NUM_DAC_WIDGETS))/1000.00);
else
spinAdcs[i]->setValue((double)det->getADC(getSLSIndex(i+NUM_DAC_WIDGETS)));
}
} }