gui works, including clone plots

This commit is contained in:
2019-07-17 16:58:04 +02:00
parent d3879bb834
commit 8cdfe4194f
26 changed files with 1812 additions and 1555 deletions

View File

@ -1,166 +1,122 @@
#include "qTabDeveloper.h"
#include "qDefs.h"
#include <QWidget>
#include <QGridLayout>
#include <QGroupBox>
#include <QLabel>
#include <QLineEdit>
#include <QComboBox>
#include <QDoubleSpinBox>
#include <QScrollArea>
#include <QTimer>
#include <QString>
#include <QPalette>
#include <QDoubleValidator>
#include <QSpacerItem>
#include <QString>
#include "qDacWidget.h"
#include <iostream>
qTabDeveloper::qTabDeveloper(QWidget *parent, multiSlsDetector *detector) :
QWidget(parent), myDet(detector), detType(slsDetectorDefs::GENERIC), numDACWidgets(0), numADCWidgets(0),
boxDacs(nullptr), boxAdcs(nullptr), lblHV(nullptr), comboHV(nullptr), spinHV(nullptr), dacLayout(nullptr), comboDetector(nullptr), layout(nullptr) {
qTabDeveloper::qTabDeveloper(QWidget *parent, multiSlsDetector *detector) : QWidget(parent), myDet(detector) {
setupUi(this);
SetupWidgetWindow();
FILE_LOG(logDEBUG) << "Developer ready";
}
qTabDeveloper::~qTabDeveloper() {
for (size_t i = 0; i < lblDacs.size(); ++i) {
delete lblDacs[i];
delete lblDacsmV[i];
delete spinDacs[i];
}
for (size_t i = 0; i < lblAdcs.size(); ++i) {
delete lblAdcs[i];
delete spinAdcs[i];
}
if (boxDacs)
delete boxDacs;
if (boxAdcs)
delete boxAdcs;
if (lblHV)
delete lblHV;
if (comboHV)
delete comboHV;
if (spinHV)
delete spinHV;
if (dacLayout)
delete dacLayout;
if (comboDetector)
delete comboDetector;
if (layout)
delete layout;
}
qTabDeveloper::~qTabDeveloper() {}
void qTabDeveloper::SetupWidgetWindow() {
detType = myDet->getDetectorTypeAsEnum();
switch (detType) {
case slsDetectorDefs::EIGER:
numDACWidgets = 17;
numADCWidgets = 6;
dacNames.push_back("v SvP:");
dacNames.push_back("v SvN");
dacNames.push_back("v Vrf:");
dacNames.push_back("v Vrs:");
dacNames.push_back("v Vtr:");
dacNames.push_back("v Vtgstv:");
dacNames.push_back("v cal:");
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:");
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;
case slsDetectorDefs::GOTTHARD:
numDACWidgets = 8;
numADCWidgets = 2;
dacNames.push_back("v Reference:");
dacNames.push_back("v Cascode n:");
dacNames.push_back("v Cascode p:");
dacNames.push_back("v Comp. Output:");
dacNames.push_back("v Cascode out");
dacNames.push_back("v Comp. Input:");
dacNames.push_back("v Comp. Ref:");
dacNames.push_back("i Base Test:");
adcNames.push_back("Temperature ADC:");
adcNames.push_back("Temperature FPGA:");
break;
case slsDetectorDefs::JUNGFRAU:
numDACWidgets = 8;
numADCWidgets = 1;
dacNames.push_back("v vb comp:");
dacNames.push_back("v vdd prot:");
dacNames.push_back("v vin com:");
dacNames.push_back("v vref prech:");
dacNames.push_back("v vb pixbuf:");
dacNames.push_back("v vb ds:");
dacNames.push_back("v vref ds:");
dacNames.push_back("i vref comp:");
adcNames.push_back("Temperature ADC/FPGA:");
break;
case slsDetectorDefs::MOENCH:
numDACWidgets = 8;
numADCWidgets = 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:");
break;
default:
break;
int tempid = 0;
comboHV->hide();
lblComboHV->hide();
lblSpinHV->hide();
spinHV->hide();
try{
slsDetectorDefs::detectorType detType = myDet->getDetectorTypeAsEnum();
switch (detType) {
case slsDetectorDefs::EIGER:
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v SvP: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v SvN ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vrf: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vrs: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vtr: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vtgstv: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v cal: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vcp ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vcn: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vis: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v rxb_lb: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v rxb_rb: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vcmp_ll: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vcmp_lr: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vcmp_rl: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Vcmp_rr: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v threshold: ", getSLSIndex(detType, tempid++), false));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature FPGA Ext: ", getSLSIndex(detType, tempid++), true));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature 10GE: ", getSLSIndex(detType, tempid++), true));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature DCDC: ", getSLSIndex(detType, tempid++), true));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature SODL: ", getSLSIndex(detType, tempid++), true));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature SODR: ", getSLSIndex(detType, tempid++), true));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature FPGA: ", getSLSIndex(detType, tempid++), true));
break;
case slsDetectorDefs::GOTTHARD:
comboHV->show();
lblComboHV->show();
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Reference: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Cascode n: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Cascode p: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Comp. Output: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Cascode out ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Comp. Input: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Comp. Ref: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "i Base Test: ", getSLSIndex(detType, tempid++), false));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature ADC: ", getSLSIndex(detType, tempid++), false));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature FPGA: ", getSLSIndex(detType, tempid++), false));
break;
case slsDetectorDefs::JUNGFRAU:
lblSpinHV->show();
spinHV->show();
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v vb comp: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v vdd prot: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v vin com: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v vref prech: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v vb pixbuf: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v vb ds: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v vref ds: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "i vref comp: ", getSLSIndex(detType, tempid++), false));
adcWidgets.push_back(new qDacWidget(this, myDet, false, "Temperature ADC/FPGA: ", getSLSIndex(detType, tempid++), true));
break;
case slsDetectorDefs::MOENCH:
lblSpinHV->show();
spinHV->show();
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Dac 0: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Dac 1: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Dac 2: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Dac 3: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Dac 4: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Dac 5: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "v Dac 6: ", getSLSIndex(detType, tempid++), false));
dacWidgets.push_back(new qDacWidget(this, myDet, true, "i Dac 7: ", getSLSIndex(detType, tempid++), false));
break;
default:
break;
}
} CATCH_DISPLAY (std::string("Could not get dac/ adc index ") + std::to_string(tempid), "qTabDeveloper::SetupWidgetWindow")
for (size_t i = 0; i < dacWidgets.size(); ++i) {
gridlayoutDac->addWidget(dacWidgets[i], i / 2, i % 2);
}
gridlayoutDac->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Expanding),dacWidgets.size(), 0);
for (size_t i = 0; i < adcWidgets.size(); ++i) {
gridlayoutAdc->addWidget(adcWidgets[i], i / 2, i % 2);
}
gridlayoutAdc->addItem(new QSpacerItem(20,20,QSizePolicy::Fixed,QSizePolicy::Expanding),adcWidgets.size(), 0);
setFixedWidth(765);
setFixedHeight(20 + 50 + (numDACWidgets / 2) * 35);
QScrollArea* scroll = new QScrollArea;
scroll->setWidget(this);
scroll->setWidgetResizable(true);
layout = new QGridLayout(scroll);
layout->setContentsMargins(20, 10, 10, 5);
setLayout(layout);
comboDetector = new QComboBox(this);
tabWidget->setCurrentIndex(0);
PopulateDetectors();
CreateDACWidgets();
CreateHVWidget();
layout->addWidget(comboDetector, 0, 0);
layout->addWidget(boxDacs, 1, 0);
CreateADCWidgets();
Initialization();
Refresh();
}
void qTabDeveloper::Initialization() {
connect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(Refresh()));
for (int i = 0; i < numDACWidgets; ++i)
connect(spinDacs[i], SIGNAL(editingFinished(int)), this, SLOT(SetDac(int)));
if (comboHV != nullptr) {
connect(comboHV, SIGNAL(currentIndexChanged(int)), this, SLOT(SetHighVoltage()));
}
if (spinHV != nullptr) {
connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
}
connect(comboHV, SIGNAL(currentIndexChanged(int)), this, SLOT(SetHighVoltage()));
connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
}
void qTabDeveloper::PopulateDetectors() {
@ -172,185 +128,22 @@ void qTabDeveloper::PopulateDetectors() {
for (int i = 0; i < myDet->getNumberOfDetectors(); ++i)
comboDetector->addItem(QString(myDet->getHostname(i).c_str()));
}
}
void qTabDeveloper::CreateDACWidgets() {
boxDacs = new QGroupBox("Dacs", this);
boxDacs->setFixedHeight(25 + (numDACWidgets / 2) * 35);
dacLayout = new QGridLayout(boxDacs);
for (int i = 0; i < numDACWidgets; ++i) {
lblDacs.push_back(new QLabel(QString(dacNames[i].c_str()), boxDacs));
spinDacs.push_back(new MyDoubleSpinBox(i, boxDacs));
spinDacs[i]->setMinimum(-1);
spinDacs[i]->setMaximum(10000);
lblDacsmV.push_back(new QLabel("", boxDacs));
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), 4);
dacLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), (int)(i / 2), 8);
}
}
}
void qTabDeveloper::CreateADCWidgets() {
if (!numADCWidgets)
return;
int rows = numADCWidgets / 2;
if (numADCWidgets % 2)
rows++;
setFixedHeight(20 + (50 + (numDACWidgets / 2) * 35) + (50 + rows * 35));
boxAdcs = new QGroupBox("ADCs", this);
boxAdcs->setFixedHeight(25 + rows * 35);
QGridLayout *adcLayout = new QGridLayout(boxAdcs);
for (int i = 0; i < numADCWidgets; ++i) {
lblAdcs.push_back(new QLabel(QString(adcNames[i].c_str()), boxAdcs));
spinAdcs.push_back(new QLineEdit(boxAdcs));
spinAdcs[i]->setReadOnly(true);
adcLayout->addWidget(lblAdcs[i], (int)(i / 2), ((i % 2) == 0) ? 1 : 4);
adcLayout->addWidget(spinAdcs[i], (int)(i / 2), ((i % 2) == 0) ? 2 : 5);
if (!(i % 2)) {
adcLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), (int)(i / 2), 0);
adcLayout->addItem(new QSpacerItem(60, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), (int)(i / 2), 3);
adcLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), (int)(i / 2), 6);
}
}
//to make the adcs at the bottom most
if (detType != slsDetectorDefs::EIGER) {
int diff = 340 - height();
setFixedHeight(340);
layout->setVerticalSpacing(diff / 2);
}
layout->addWidget(boxAdcs, 2, 0);
}
void qTabDeveloper::CreateHVWidget() {
switch(detType) {
case slsDetectorDefs::GOTTHARD:
case slsDetectorDefs::JUNGFRAU:
case slsDetectorDefs::MOENCH:
break;
default:
return;
}
boxDacs->setFixedHeight(boxDacs->height() + 35);
lblHV = new QLabel("High Voltage", boxDacs);
dacLayout->addWidget(lblHV, (int)(numDACWidgets / 2), 1);
comboHV = nullptr;
spinHV = nullptr;
// drop down with specific values
if (detType == slsDetectorDefs::GOTTHARD) {
comboHV = new QComboBox(boxDacs);
comboHV->addItem("0");
comboHV->addItem("90");
comboHV->addItem("110");
comboHV->addItem("120");
comboHV->addItem("150");
comboHV->addItem("180");
comboHV->addItem("200");
comboHV->setToolTip("<nobr>Set high voltage to 0, 90, 110, 120, 150 or 200V.</nobr>");
lblHV->setToolTip(comboHV->toolTip());
dacLayout->addWidget(comboHV, (int)(numDACWidgets / 2), 2);
}
// jungfrau, moench (range of values)
else {
spinHV = new QSpinBox(boxDacs);
spinHV->setMinimum(-1);
spinHV->setMaximum(HV_MAX);
spinHV->setToolTip("<nobr>Set high voltage to 0 or 60 - 200V</nobr>");
lblHV->setToolTip(spinHV->toolTip());
dacLayout->addWidget(spinHV, (int)(numDACWidgets / 2), 2);
}
}
void qTabDeveloper::GetDac(int id) {
FILE_LOG(logDEBUG) << "Getting Dac " << id;
disconnect(spinDacs[id], SIGNAL(editingFinished(int)), this, SLOT(SetDac(int)));
try {
// dac units
auto retval = myDet->setDAC(-1, getSLSIndex(id), 0, comboDetector->currentIndex() - 1);
spinDacs[id]->setValue(retval);
// mv
retval = myDet->setDAC(-1, getSLSIndex(id), 1, comboDetector->currentIndex() - 1);
lblDacsmV[id]->setText(QString("%1mV").arg(retval -10));
} CATCH_DISPLAY("Could not get dac.", "qTabDeveloper::GetDac")
connect(spinDacs[id], SIGNAL(editingFinished(int)), this, SLOT(SetDac(int)));
}
void qTabDeveloper::GetDacs() {
FILE_LOG(logDEBUG) << "Getting All Dacs";
for (int i = 0; i < numDACWidgets; ++i) {
GetDac(i);
}
}
void qTabDeveloper::SetDac(int id) {
int val = spinDacs[id]->value();
FILE_LOG(logINFO) << "Setting dac:" << dacNames[id] << " : " << val;
try {
myDet->setDAC(val, getSLSIndex(id), 0, comboDetector->currentIndex() - 1);
} CATCH_DISPLAY ("Could not set dac.", "qTabDeveloper::SetDac")
// update mV anyway
GetDac(id);
}
void qTabDeveloper::GetAdcs() {
FILE_LOG(logDEBUG) << "Getting ADCs";
auto moduleId = comboDetector->currentIndex() - 1;
for (int i = 0; i < numADCWidgets; ++i) {
try {
auto retval = myDet->getADC(getSLSIndex(i + numDACWidgets), moduleId);
if (retval == -1 && moduleId == -1) {
spinAdcs[i]->setText(QString("Different values"));
} else {
if (detType == slsDetectorDefs::EIGER || detType == slsDetectorDefs::JUNGFRAU) {
retval /= 1000.00;
}
spinAdcs[i]->setText(QString::number(retval, 'f', 2) + 0x00b0 + QString("C"));
}
} CATCH_DISPLAY ("Could not get adcs.", "qTabDeveloper::GetAdcs")
}
comboDetector->setCurrentIndex(0);
}
void qTabDeveloper::GetHighVoltage() {
// not enabled for this detector type
if (comboHV == nullptr && spinHV == nullptr)
// not enabled for eiger
if (!comboHV->isVisible() && !spinHV->isVisible())
return;
FILE_LOG(logDEBUG) << "Getting High Voltage";
if (spinHV != nullptr) {
disconnect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
}
if (comboHV != nullptr) {
disconnect(comboHV, SIGNAL(currentIndexChanged(int)), this, SLOT(SetHighVoltage()));
}
disconnect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
disconnect(comboHV, SIGNAL(currentIndexChanged(int)), this, SLOT(SetHighVoltage()));
try {
// dac units
auto retval = myDet->setDAC(-1, slsDetectorDefs::HIGH_VOLTAGE, 0, comboDetector->currentIndex() - 1);
if (spinHV != nullptr) {
if (spinHV->isVisible()) {
if (retval != 0 && retval != -1 && retval < HV_MIN && retval > HV_MAX) {
qDefs::Message(qDefs::WARNING, std::string("Unknown High Voltage: ") + std::to_string(retval), "qTabDeveloper::GetHighVoltage");
} else{
@ -390,16 +183,12 @@ void qTabDeveloper::GetHighVoltage() {
} CATCH_DISPLAY ("Could not get high voltage.", "qTabDeveloper::GetHighVoltage")
if (spinHV != nullptr) {
connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
}
if (comboHV != nullptr) {
connect(comboHV, SIGNAL(currentIndexChanged(int)), this, SLOT(SetHighVoltage()));
}
connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
connect(comboHV, SIGNAL(currentIndexChanged(int)), this, SLOT(SetHighVoltage()));
}
void qTabDeveloper::SetHighVoltage() {
int val = (comboHV ? comboHV->currentText().toInt() : spinHV->value());
int val = (comboHV->isVisible() ? comboHV->currentText().toInt() : spinHV->value());
FILE_LOG(logINFO) << "Setting high voltage:" << val;
try {
@ -408,8 +197,7 @@ void qTabDeveloper::SetHighVoltage() {
this, &qTabDeveloper::GetHighVoltage)
}
slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(int index) {
slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(slsDetectorDefs::detectorType detType, int index) {
switch (detType) {
case slsDetectorDefs::EIGER:
@ -492,35 +280,33 @@ slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(int index) {
break;
case slsDetectorDefs::JUNGFRAU:
if (index >= 0 && index < numDACWidgets) {
if (index >= 0 && index < (int)dacWidgets.size()) {
return (slsDetectorDefs::dacIndex)index;
}
if (index == numDACWidgets) {
if (index == (int)dacWidgets.size()) {
return slsDetectorDefs::TEMPERATURE_ADC;
} else {
throw sls::RuntimeError(std::string("Unknown dac/adc index") + std::to_string(index));
}
break;
}
throw sls::RuntimeError(std::string("Unknown dac/adc index") + std::to_string(index));
case slsDetectorDefs::MOENCH:
if (index >= 0 && index < numDACWidgets) {
if (index >= 0 && index < (int)dacWidgets.size()) {
return (slsDetectorDefs::dacIndex)index;
} else {
throw sls::RuntimeError(std::string("Unknown dac/adc index") + std::to_string(index));
}
break;
}
throw sls::RuntimeError(std::string("Unknown dac/adc index") + std::to_string(index));
default:
break;
throw sls::RuntimeError(std::string("Unknown detector type"));
}
return (slsDetectorDefs::dacIndex)0;
}
void qTabDeveloper::Refresh() {
FILE_LOG(logDEBUG) << "**Updating Developer Tab\n";
GetDacs();
GetAdcs();
for (const auto &it : dacWidgets) {
it->SetDetectorIndex(comboDetector->currentIndex() - 1);
}
for (const auto &it : adcWidgets) {
it->SetDetectorIndex(comboDetector->currentIndex() - 1);
}
GetHighVoltage();
FILE_LOG(logDEBUG) << "**Updated Developer Tab";
}