mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-17 09:29:55 +01:00
WIP
This commit is contained in:
@@ -138,7 +138,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Readout:</string>
|
<string>Module:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -1,87 +1,36 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "qDefs.h"
|
|
||||||
|
|
||||||
#include "ui_form_tab_debugging.h"
|
#include "ui_form_tab_debugging.h"
|
||||||
|
|
||||||
class multiSlsDetector;
|
class multiSlsDetector;
|
||||||
class slsDetector;
|
|
||||||
|
|
||||||
#include <QTreeWidget>
|
class QTreeWidget;
|
||||||
|
class QTreeWidgetItem;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*@short sets up the Debugging parameters
|
|
||||||
*/
|
|
||||||
class qTabDebugging:public QWidget, private Ui::TabDebuggingObject{
|
class qTabDebugging:public QWidget, private Ui::TabDebuggingObject{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
|
||||||
* The constructor
|
|
||||||
* @param parent is the parent tab widget
|
|
||||||
* @param detector is the detector returned from the detector tab
|
|
||||||
*/
|
|
||||||
qTabDebugging(QWidget *parent, multiSlsDetector* detector);
|
qTabDebugging(QWidget *parent, multiSlsDetector* detector);
|
||||||
|
|
||||||
/**
|
|
||||||
* Destructor
|
|
||||||
*/
|
|
||||||
~qTabDebugging();
|
~qTabDebugging();
|
||||||
|
|
||||||
/**
|
|
||||||
* To refresh and update widgets
|
|
||||||
*/
|
|
||||||
void Refresh();
|
void Refresh();
|
||||||
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void GetDetectorStatus();
|
||||||
/**
|
void GetInfo();
|
||||||
* Updates the status depending on current detector
|
|
||||||
*/
|
|
||||||
void UpdateStatus();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets id and versions etc
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
GetInfo();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets id and versions on the display widget
|
|
||||||
*/
|
|
||||||
void SetParameters(QTreeWidgetItem *item);
|
void SetParameters(QTreeWidgetItem *item);
|
||||||
|
|
||||||
/**
|
|
||||||
* Test detector
|
|
||||||
*/
|
|
||||||
void TestDetector();
|
void TestDetector();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
|
||||||
* Sets up the widget
|
|
||||||
*/
|
|
||||||
void SetupWidgetWindow();
|
void SetupWidgetWindow();
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets up all the slots and signals
|
|
||||||
*/
|
|
||||||
void Initialization();
|
void Initialization();
|
||||||
|
void PopulateDetectors();
|
||||||
|
|
||||||
|
|
||||||
/** The multi sls detector object */
|
|
||||||
multiSlsDetector *myDet;
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
/** detector type */
|
|
||||||
slsDetectorDefs::detectorType detType;
|
|
||||||
|
|
||||||
/** Tree Widget displaying the detectors, modules */
|
/** Tree Widget displaying the detectors, modules */
|
||||||
QTreeWidget *treeDet;
|
QTreeWidget *treeDet;
|
||||||
/** Widget displaying the serial numbers, mac addresses etc */
|
QLabel *lblDetectorHostname;
|
||||||
QLabel *lblDetectorId;
|
|
||||||
QLabel *lblDetectorFirmware;
|
QLabel *lblDetectorFirmware;
|
||||||
QLabel *lblDetectorSoftware;
|
QLabel *lblDetectorSoftware;
|
||||||
QPalette *blue;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -343,10 +343,11 @@ void qDetectorMain::LoadConfigFile(const std::string fName) {
|
|||||||
"qDetectorMain::LoadConfigFile");
|
"qDetectorMain::LoadConfigFile");
|
||||||
FILE_LOG(logWARNING) << "File not recognized";
|
FILE_LOG(logWARNING) << "File not recognized";
|
||||||
} else {
|
} else {
|
||||||
qDefs::IgnoreNonCriticalExceptions(myDet,
|
try {
|
||||||
"Could not load config file.",
|
myDet->readConfigurationFile(fName);
|
||||||
"qDetectorMain::LoadConfigFile",
|
} catch (const sls::NonCriticalError &e) {
|
||||||
&multiSlsDetector::readConfigurationFile, fName);
|
qDefs::ExceptionMessage("Could not load config file.", e.what(), "qDetectorMain::LoadConfigFile");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,18 @@
|
|||||||
#include "qTabDebugging.h"
|
#include "qTabDebugging.h"
|
||||||
|
#include "qDefs.h"
|
||||||
|
|
||||||
#include "multiSlsDetector.h"
|
#include "multiSlsDetector.h"
|
||||||
|
|
||||||
#include <QDesktopWidget>
|
#include <QDesktopWidget>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
|
#include <QTreeWidget>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
qTabDebugging::qTabDebugging(QWidget *parent, multiSlsDetector *detector) :
|
||||||
|
QWidget(parent), myDet(detector), treeDet(0), lblDetectorHostname(0), lblDetectorFirmware(0), lblDetectorSoftware(0) {
|
||||||
qTabDebugging::qTabDebugging(QWidget *parent, multiSlsDetector *detector) : QWidget(parent),
|
|
||||||
myDet(detector),
|
|
||||||
detType(slsDetectorDefs::GENERIC),
|
|
||||||
treeDet(0),
|
|
||||||
lblDetectorId(0),
|
|
||||||
lblDetectorFirmware(0),
|
|
||||||
lblDetectorSoftware(0) {
|
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
SetupWidgetWindow();
|
SetupWidgetWindow();
|
||||||
Initialization();
|
|
||||||
FILE_LOG(logDEBUG) << "Debugging ready";
|
FILE_LOG(logDEBUG) << "Debugging ready";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26,97 +20,80 @@ qTabDebugging::~qTabDebugging() {}
|
|||||||
|
|
||||||
|
|
||||||
void qTabDebugging::SetupWidgetWindow() {
|
void qTabDebugging::SetupWidgetWindow() {
|
||||||
|
// enabling according to det type
|
||||||
blue = new QPalette();
|
if (myDet->getDetectorTypeAsEnum() == slsDetectorDefs::EIGER) {
|
||||||
blue->setColor(QPalette::Active, QPalette::WindowText, Qt::darkBlue);
|
|
||||||
|
|
||||||
// Detector Type
|
|
||||||
detType = myDet->getDetectorTypeAsEnum();
|
|
||||||
|
|
||||||
// rename label and disable tests
|
|
||||||
if (detType == slsDetectorDefs::EIGER) {
|
|
||||||
lblDetector->setText("Half Module:");
|
lblDetector->setText("Half Module:");
|
||||||
chkDetectorFirmware->setEnabled(false);
|
chkDetectorFirmware->setEnabled(false);
|
||||||
chkDetectorBus->setEnabled(false);
|
chkDetectorBus->setEnabled(false);
|
||||||
btnTest->setEnabled(false);
|
btnTest->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//add detectors
|
PopulateDetectors();
|
||||||
for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) {
|
|
||||||
comboDetector->addItem(QString(myDet->getHostname(i).c_str()));
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateStatus();
|
Initialization();
|
||||||
|
|
||||||
qDefs::checkErrorMessage(myDet, "qTabDebugging::SetupWidgetWindow");
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void qTabDebugging::Initialization() {
|
void qTabDebugging::Initialization() {
|
||||||
|
connect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(GetDetectorStatus()));
|
||||||
connect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateStatus()));
|
|
||||||
connect(btnGetInfo, SIGNAL(clicked()), this, SLOT(GetInfo()));
|
connect(btnGetInfo, SIGNAL(clicked()), this, SLOT(GetInfo()));
|
||||||
if (btnTest ->isEnabled())
|
if (btnTest ->isEnabled()) {
|
||||||
connect(btnTest, SIGNAL(clicked()), this, SLOT(TestDetector()));
|
connect(btnTest, SIGNAL(clicked()), this, SLOT(TestDetector()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qTabDebugging::PopulateDetectors() {
|
||||||
|
FILE_LOG(logDEBUG) << "Populating detectors";
|
||||||
|
|
||||||
void qTabDebugging::UpdateStatus() {
|
comboDetector->clear();
|
||||||
|
for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) {
|
||||||
|
comboDetector->addItem(QString(myDet->getHostname(i).c_str()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void qTabDebugging::GetDetectorStatus() {
|
||||||
FILE_LOG(logDEBUG) << "Getting Status";
|
FILE_LOG(logDEBUG) << "Getting Status";
|
||||||
|
|
||||||
auto moduleId = comboDetector->currentIndex();
|
try {
|
||||||
int detStatus = (int)myDet->getRunStatus(moduleId);
|
std::string status = slsDetectorDefs::runStatusType(myDet->getRunStatus(comboDetector->currentIndex()));
|
||||||
std::string status = slsDetectorDefs::runStatusType(slsDetectorDefs::runStatus(detStatus));
|
lblStatus->setText(QString(status.c_str()).toUpper());
|
||||||
lblStatus->setText(QString(status.c_str()).toUpper());
|
} catch (const sls::NonCriticalError &e) {
|
||||||
|
qDefs::ExceptionMessage("Could not get detector status.", e.what(), "qTabDebugging::GetDetectorStatus");
|
||||||
qDefs::checkErrorMessage(myDet, comboDetector->currentIndex(), "qTabDebugging::UpdateStatus");
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void qTabDebugging::GetInfo() {
|
void qTabDebugging::GetInfo() {
|
||||||
FILE_LOG(logDEBUG) << "Getting Readout Info";
|
FILE_LOG(logDEBUG) << "Getting Readout Info";
|
||||||
|
|
||||||
//window
|
// open info in a new popup
|
||||||
QFrame *popup1 = new QFrame(this, Qt::Popup | Qt::SubWindow);
|
QFrame *popup1 = new QFrame(this, Qt::Popup | Qt::SubWindow);
|
||||||
QList<QTreeWidgetItem *> items;
|
QList<QTreeWidgetItem *> items;
|
||||||
|
|
||||||
//layout
|
|
||||||
QGridLayout *layout = new QGridLayout(popup1);
|
QGridLayout *layout = new QGridLayout(popup1);
|
||||||
//treewidget
|
|
||||||
treeDet = new QTreeWidget(popup1);
|
treeDet = new QTreeWidget(popup1);
|
||||||
layout->addWidget(treeDet, 0, 0);
|
layout->addWidget(treeDet, 0, 0);
|
||||||
//display the details
|
|
||||||
QFrame *dispFrame = new QFrame(popup1);
|
QFrame *dispFrame = new QFrame(popup1);
|
||||||
QGridLayout *formLayout = new QGridLayout(dispFrame);
|
QGridLayout *formLayout = new QGridLayout(dispFrame);
|
||||||
// hostname
|
lblDetectorHostname = new QLabel("");
|
||||||
lblDetectorId = new QLabel("");
|
|
||||||
lblDetectorId->setPalette(*blue);
|
|
||||||
// firmware version
|
|
||||||
lblDetectorFirmware = new QLabel("");
|
lblDetectorFirmware = new QLabel("");
|
||||||
lblDetectorFirmware->setPalette(*blue);
|
|
||||||
// software version
|
|
||||||
lblDetectorSoftware = new QLabel("");
|
lblDetectorSoftware = new QLabel("");
|
||||||
lblDetectorSoftware->setPalette(*blue);
|
|
||||||
//to make sure the size is constant
|
//to make sure the size is constant
|
||||||
lblDetectorFirmware->setFixedWidth(100);
|
lblDetectorFirmware->setFixedWidth(100);
|
||||||
layout->addWidget(dispFrame, 0, 1);
|
layout->addWidget(dispFrame, 0, 1);
|
||||||
|
|
||||||
QString detName = QString(myDet->getDetectorTypeAsString().c_str());
|
QString detName = QString(myDet->getDetectorTypeAsString().c_str());
|
||||||
|
|
||||||
switch (detType) {
|
switch (myDet->getDetectorTypeAsEnum()) {
|
||||||
|
|
||||||
|
|
||||||
case slsDetectorDefs::EIGER:
|
case slsDetectorDefs::EIGER:
|
||||||
//display widget
|
|
||||||
formLayout->addWidget(new QLabel("Half Module:"), 0, 0);
|
formLayout->addWidget(new QLabel("Half Module:"), 0, 0);
|
||||||
formLayout->addItem(new QSpacerItem(15, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), 0, 1);
|
formLayout->addItem(new QSpacerItem(15, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), 0, 1);
|
||||||
formLayout->addWidget(lblDetectorId, 0, 2);
|
formLayout->addWidget(lblDetectorHostname, 0, 2);
|
||||||
formLayout->addWidget(new QLabel("Half Module Firmware Version:"), 1, 0);
|
formLayout->addWidget(new QLabel("Half Module Firmware Version:"), 1, 0);
|
||||||
formLayout->addWidget(lblDetectorFirmware, 1, 2);
|
formLayout->addWidget(lblDetectorFirmware, 1, 2);
|
||||||
formLayout->addWidget(new QLabel("Half Module Software Version:"), 2, 0);
|
formLayout->addWidget(new QLabel("Half Module Software Version:"), 2, 0);
|
||||||
formLayout->addWidget(lblDetectorSoftware, 2, 2);
|
formLayout->addWidget(lblDetectorSoftware, 2, 2);
|
||||||
|
|
||||||
//tree widget
|
|
||||||
treeDet->setHeaderLabel("Eiger Detector");
|
treeDet->setHeaderLabel("Eiger Detector");
|
||||||
//get num modules
|
//get num modules
|
||||||
for (int i = 0; i < comboDetector->count() / 2; ++i)
|
for (int i = 0; i < comboDetector->count() / 2; ++i)
|
||||||
@@ -131,22 +108,18 @@ void qTabDebugging::GetInfo() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
//display widget
|
|
||||||
formLayout->addWidget(new QLabel("Module:"), 0, 0);
|
formLayout->addWidget(new QLabel("Module:"), 0, 0);
|
||||||
formLayout->addItem(new QSpacerItem(15, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), 0, 1);
|
formLayout->addItem(new QSpacerItem(15, 20, QSizePolicy::Fixed, QSizePolicy::Fixed), 0, 1);
|
||||||
formLayout->addWidget(lblDetectorId, 0, 2);
|
formLayout->addWidget(lblDetectorHostname, 0, 2);
|
||||||
formLayout->addWidget(new QLabel("Module Firmware Version:"), 1, 0);
|
formLayout->addWidget(new QLabel("Module Firmware Version:"), 1, 0);
|
||||||
formLayout->addWidget(lblDetectorFirmware, 1, 2);
|
formLayout->addWidget(lblDetectorFirmware, 1, 2);
|
||||||
formLayout->addWidget(new QLabel("Module Software Version:"), 2, 0);
|
formLayout->addWidget(new QLabel("Module Software Version:"), 2, 0);
|
||||||
formLayout->addWidget(lblDetectorSoftware, 2, 2);
|
formLayout->addWidget(lblDetectorSoftware, 2, 2);
|
||||||
//tree widget
|
|
||||||
treeDet->setHeaderLabel(QString(detName + " Detector"));
|
treeDet->setHeaderLabel(QString(detName + " Detector"));
|
||||||
//gets det names
|
//gets det names
|
||||||
for (int i = 0; i < comboDetector->count(); ++i)
|
for (int i = 0; i < comboDetector->count(); ++i)
|
||||||
items.append(new QTreeWidgetItem((QTreeWidget *)0, QStringList(QString("Module (%1)").arg(comboDetector->itemText(i)))));
|
items.append(new QTreeWidgetItem((QTreeWidget *)0, QStringList(QString("Module (%1)").arg(comboDetector->itemText(i)))));
|
||||||
treeDet->insertTopLevelItems(0, items);
|
treeDet->insertTopLevelItems(0, items);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,109 +135,83 @@ void qTabDebugging::GetInfo() {
|
|||||||
//put the first parameters
|
//put the first parameters
|
||||||
SetParameters(treeDet->topLevelItem(0));
|
SetParameters(treeDet->topLevelItem(0));
|
||||||
|
|
||||||
//initializations
|
// connect to slots
|
||||||
connect(treeDet, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(SetParameters(QTreeWidgetItem *)));
|
connect(treeDet, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(SetParameters(QTreeWidgetItem *)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void qTabDebugging::SetParameters(QTreeWidgetItem *item) {
|
void qTabDebugging::SetParameters(QTreeWidgetItem *item) {
|
||||||
char value[200];
|
// eiger: if half module clicked, others: true always
|
||||||
int i;
|
bool ignoreOrHalfModuleClicked = true;
|
||||||
|
if (myDet->getDetectorTypeAsEnum() == slsDetectorDefs::EIGER) {
|
||||||
auto moduleId = comboDetector->currentIndex();
|
if (!(item->text(0).contains("Half Module"))) {
|
||||||
switch (detType) {
|
ignoreOrHalfModuleClicked = false;
|
||||||
|
|
||||||
|
|
||||||
case slsDetectorDefs::EIGER:
|
|
||||||
//only if half module clicked
|
|
||||||
if (item->text(0).contains("Half Module")) {
|
|
||||||
//find index
|
|
||||||
for (i = 0; i < comboDetector->count(); ++i)
|
|
||||||
if (item == treeDet->topLevelItem(i))
|
|
||||||
break;
|
|
||||||
|
|
||||||
sprintf(value, "%lx", (long long unsigned int)myDet->getId(slsDetectorDefs::DETECTOR_FIRMWARE_VERSION, moduleId));
|
|
||||||
lblDetectorFirmware->setText(QString(value));
|
|
||||||
sprintf(value, "%lx", (long long unsigned int)myDet->getId(slsDetectorDefs::DETECTOR_SOFTWARE_VERSION, moduleId));
|
|
||||||
lblDetectorSoftware->setText(QString(value));
|
|
||||||
|
|
||||||
qDefs::checkErrorMessage(myDet, comboDetector->currentIndex(), "qTabDebugging::SetParameters");
|
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
|
|
||||||
default:
|
if (ignoreOrHalfModuleClicked) {
|
||||||
//find index
|
// find index
|
||||||
for (i = 0; i < comboDetector->count(); ++i)
|
for (int i = 0; i < comboDetector->count(); ++i) {
|
||||||
if (item == treeDet->topLevelItem(i))
|
if (item == treeDet->topLevelItem(i))
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
sprintf(value, "%lx", (long long unsigned int)myDet->getId(slsDetectorDefs::DETECTOR_FIRMWARE_VERSION, moduleId));
|
try {
|
||||||
lblDetectorFirmware->setText(QString(value));
|
auto retval = std::string("0x") + std::to_string((unsigned long)myDet->getId(slsDetectorDefs::DETECTOR_FIRMWARE_VERSION, comboDetector->currentIndex()));
|
||||||
sprintf(value, "%lx", (long long unsigned int)myDet->getId(slsDetectorDefs::DETECTOR_SOFTWARE_VERSION, moduleId));
|
lblDetectorFirmware->setText(QString(retval.c_str()));
|
||||||
lblDetectorSoftware->setText(QString(value));
|
retval = std::string("0x") + std::to_string((unsigned long)myDet->getId(slsDetectorDefs::DETECTOR_SOFTWARE_VERSION, comboDetector->currentIndex()));
|
||||||
|
lblDetectorSoftware->setText(QString(retval.c_str()));
|
||||||
qDefs::checkErrorMessage(myDet, comboDetector->currentIndex(), "qTabDebugging::SetParameters");
|
} catch (const sls::NonCriticalError &e) {
|
||||||
break;
|
qDefs::ExceptionMessage("Could not get versions.", e.what(), "qTabDebugging::SetParameters");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void qTabDebugging::TestDetector() {
|
void qTabDebugging::TestDetector() {
|
||||||
FILE_LOG(logINFO) << "Testing Readout";
|
FILE_LOG(logINFO) << "Testing Readout";
|
||||||
|
|
||||||
|
try {
|
||||||
int retval = slsDetectorDefs::FAIL;
|
QString moduleName = "Module";
|
||||||
QString message;
|
if (myDet->getDetectorTypeAsEnum() == slsDetectorDefs::EIGER) {
|
||||||
QString Detector = "Detector";
|
moduleName = "Half Module";
|
||||||
|
|
||||||
//main messagebox title
|
|
||||||
switch (detType) {
|
|
||||||
case slsDetectorDefs::EIGER:
|
|
||||||
Detector = "Half Module";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Detector = "Module";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// construct message
|
|
||||||
message = QString("<nobr>Test Results for %1:</nobr><br><br>").arg(comboDetector->currentText());
|
|
||||||
|
|
||||||
auto moduleId = comboDetector->currentIndex();
|
|
||||||
|
|
||||||
//detector firmware
|
|
||||||
if (chkDetectorFirmware->isChecked()) {
|
|
||||||
retval = myDet->digitalTest(slsDetectorDefs::DETECTOR_FIRMWARE_TEST, moduleId);
|
|
||||||
if (retval == slsDetectorDefs::FAIL) {
|
|
||||||
message.append(QString("<nobr>%1 Firmware: FAIL</nobr><br>").arg(Detector));
|
|
||||||
FILE_LOG(logERROR) << "Firmware fail";
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
message.append(QString("<nobr>%1 Firmware: %2</nobr><br>").arg(Detector, QString::number(retval)));
|
|
||||||
FILE_LOG(logINFO) << "Detector Firmware Test: " << retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
//detector CPU-FPGA bus
|
// construct message
|
||||||
if (chkDetectorBus->isChecked()) {
|
QString message = QString("<nobr>Test Results for %1:</nobr><br><br>").arg(comboDetector->currentText());
|
||||||
retval = myDet->digitalTest(slsDetectorDefs::DETECTOR_BUS_TEST, moduleId);
|
|
||||||
if (retval == slsDetectorDefs::FAIL) {
|
|
||||||
message.append(QString("<nobr>%1 Bus: FAIL</nobr><br>").arg(Detector));
|
|
||||||
FILE_LOG(logERROR) << "Bus Test fail";
|
|
||||||
} else
|
|
||||||
message.append(QString("<nobr>%1 Bus: %2</nobr><br>").arg(Detector, QString::number(retval)));
|
|
||||||
FILE_LOG(logINFO) << "Detector Bus Test: " << retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
//display message
|
//detector firmware
|
||||||
qDefs::Message(qDefs::INFORMATION, message.toAscii().constData(), "qTabDebugging::TestDetector");
|
if (chkDetectorFirmware->isChecked()) {
|
||||||
|
auto retval = myDet->digitalTest(slsDetectorDefs::DETECTOR_FIRMWARE_TEST, comboDetector->currentIndex());
|
||||||
|
if (retval == slsDetectorDefs::FAIL) {
|
||||||
|
message.append(QString("<nobr>%1 Firmware: FAIL</nobr><br>").arg(moduleName));
|
||||||
|
FILE_LOG(logERROR) << "Firmware fail";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
message.append(QString("<nobr>%1 Firmware: %2</nobr><br>").arg(moduleName, QString::number(retval)));
|
||||||
|
FILE_LOG(logINFO) << "Detector Firmware Test: " << retval;
|
||||||
|
}
|
||||||
|
|
||||||
qDefs::checkErrorMessage(myDet, comboDetector->currentIndex(), "qTabDebugging::TestDetector");
|
//detector CPU-FPGA bus
|
||||||
|
if (chkDetectorBus->isChecked()) {
|
||||||
|
auto retval = myDet->digitalTest(slsDetectorDefs::DETECTOR_BUS_TEST, comboDetector->currentIndex());
|
||||||
|
if (retval == slsDetectorDefs::FAIL) {
|
||||||
|
message.append(QString("<nobr>%1 Bus: FAIL</nobr><br>").arg(moduleName));
|
||||||
|
FILE_LOG(logERROR) << "Bus Test fail";
|
||||||
|
} else
|
||||||
|
message.append(QString("<nobr>%1 Bus: %2</nobr><br>").arg(moduleName, QString::number(retval)));
|
||||||
|
FILE_LOG(logINFO) << "Detector Bus Test: " << retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
//display message
|
||||||
|
qDefs::Message(qDefs::INFORMATION, message.toAscii().constData(), "qTabDebugging::TestDetector");
|
||||||
|
} catch (const sls::NonCriticalError &e) {
|
||||||
|
qDefs::ExceptionMessage("Could not execute digital test.", e.what(), "qTabDebugging::TestDetector");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void qTabDebugging::Refresh() {
|
void qTabDebugging::Refresh() {
|
||||||
FILE_LOG(logDEBUG) << "\n**Updating Debugging Tab";
|
FILE_LOG(logDEBUG) << "**Updating Debugging Tab";
|
||||||
UpdateStatus();
|
GetDetectorStatus();
|
||||||
FILE_LOG(logDEBUG) << "**Updated Debugging Tab";
|
FILE_LOG(logDEBUG) << "**Updated Debugging Tab";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user