mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-06 04:40:02 +02:00
* merge fix from 7.0.2: new jungfrau fw versions, incremented binary, hdf5 and json versions * moench: changed dac names and default values to old moench values * moench: remove interface clk polarity at start up * moench: default speed is half speed, default values for adc offset and adc phase for different speeds (only half speed confirmed), adc vref voltage to 2.0 like G1 * moench: connected adc pipeline to client * moench: receiver- default frames per file is 100k and discard partial frames as default * moench binary in * using tostring in gui for dacs * moved frame discard policy as a parameter to be configured with a default depending on detector * moench: 300 degrees for adc phase in full speed
134 lines
4.0 KiB
C++
134 lines
4.0 KiB
C++
// SPDX-License-Identifier: LGPL-3.0-or-other
|
|
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
|
#include "qTabDeveloper.h"
|
|
#include "qDacWidget.h"
|
|
#include "qDefs.h"
|
|
|
|
namespace sls {
|
|
|
|
qTabDeveloper::qTabDeveloper(QWidget *parent, Detector *detector)
|
|
: QWidget(parent), det(detector) {
|
|
setupUi(this);
|
|
SetupWidgetWindow();
|
|
LOG(logDEBUG) << "Developer ready";
|
|
}
|
|
|
|
qTabDeveloper::~qTabDeveloper() {}
|
|
|
|
void qTabDeveloper::SetupWidgetWindow() {
|
|
try {
|
|
// dacs
|
|
auto daclist = det->getDacList();
|
|
for (auto it : daclist) {
|
|
dacWidgets.push_back(
|
|
new qDacWidget(this, det, true, sls::ToString(it), it));
|
|
}
|
|
|
|
// adcs
|
|
slsDetectorDefs::detectorType detType = det->getDetectorType().squash();
|
|
slsDetectorDefs::dacIndex ind = slsDetectorDefs::DAC_0;
|
|
switch (detType) {
|
|
case slsDetectorDefs::EIGER:
|
|
for (auto it : eiger_adcs) {
|
|
adcWidgets.push_back(
|
|
new qDacWidget(this, det, false, sls::ToString(it), it));
|
|
}
|
|
break;
|
|
case slsDetectorDefs::GOTTHARD:
|
|
ind = slsDetectorDefs::TEMPERATURE_ADC;
|
|
adcWidgets.push_back(
|
|
new qDacWidget(this, det, false, sls::ToString(ind), ind));
|
|
ind = slsDetectorDefs::TEMPERATURE_FPGA;
|
|
adcWidgets.push_back(
|
|
new qDacWidget(this, det, false, sls::ToString(ind), ind));
|
|
break;
|
|
|
|
case slsDetectorDefs::JUNGFRAU:
|
|
ind = slsDetectorDefs::TEMPERATURE_ADC;
|
|
adcWidgets.push_back(
|
|
new qDacWidget(this, det, false, sls::ToString(ind), ind));
|
|
break;
|
|
|
|
case slsDetectorDefs::GOTTHARD2:
|
|
case slsDetectorDefs::MYTHEN3:
|
|
case slsDetectorDefs::MOENCH:
|
|
ind = slsDetectorDefs::TEMPERATURE_FPGA;
|
|
adcWidgets.push_back(
|
|
new qDacWidget(this, det, false, sls::ToString(ind), ind));
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
CATCH_DISPLAY("Could not get dac/ adc index ",
|
|
"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);
|
|
|
|
tabWidget->setCurrentIndex(0);
|
|
|
|
PopulateDetectors();
|
|
Initialization();
|
|
Refresh();
|
|
}
|
|
|
|
void qTabDeveloper::Initialization() {
|
|
connect(comboDetector, SIGNAL(currentIndexChanged(int)), this,
|
|
SLOT(setDetectorIndex()));
|
|
}
|
|
|
|
void qTabDeveloper::PopulateDetectors() {
|
|
LOG(logDEBUG) << "Populating detectors";
|
|
|
|
try {
|
|
comboDetector->clear();
|
|
comboDetector->addItem("All");
|
|
auto res = det->getHostname();
|
|
if (det->size() > 1) {
|
|
for (auto &it : res) {
|
|
comboDetector->addItem(QString(it.c_str()));
|
|
}
|
|
}
|
|
comboDetector->setCurrentIndex(0);
|
|
setDetectorIndex();
|
|
}
|
|
CATCH_DISPLAY("Could not populate readouts for dacs/adcs",
|
|
"qTabDeveloper::PopulateDetectors")
|
|
}
|
|
|
|
void qTabDeveloper::setDetectorIndex() {
|
|
LOG(logDEBUG) << "set detector index";
|
|
for (const auto &it : dacWidgets) {
|
|
it->SetDetectorIndex(comboDetector->currentIndex() - 1);
|
|
}
|
|
for (const auto &it : adcWidgets) {
|
|
it->SetDetectorIndex(comboDetector->currentIndex() - 1);
|
|
}
|
|
Refresh();
|
|
}
|
|
|
|
void qTabDeveloper::Refresh() {
|
|
LOG(logDEBUG) << "**Updating Developer Tab\n";
|
|
for (const auto &it : dacWidgets) {
|
|
it->Refresh();
|
|
}
|
|
for (const auto &it : adcWidgets) {
|
|
it->Refresh();
|
|
}
|
|
LOG(logDEBUG) << "**Updated Developer Tab";
|
|
}
|
|
|
|
} // namespace sls
|