From 862dc824baa7bc47ef0e5fac895c53e6de2c2849 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 5 Jun 2019 11:27:19 +0200 Subject: [PATCH] WIP --- slsDetectorGui/forms/form_tab_dataoutput.ui | 17 +- slsDetectorGui/include/qDetectorMain.h | 5 - slsDetectorGui/include/qTabDataOutput.h | 118 ++--- slsDetectorGui/src/qDetectorMain.cpp | 4 - slsDetectorGui/src/qTabAdvanced.cpp | 8 +- slsDetectorGui/src/qTabDataOutput.cpp | 439 +++++++----------- slsDetectorGui/src/qTabMeasurement.cpp | 2 +- .../eigerDetectorServer/FebControl.c | 3 - .../bin/eigerDetectorServer_gui | Bin 0 -> 293636 bytes .../slsDetectorFunctionList.c | 8 - .../slsDetectorServer_funcs.c | 1 - .../src/slsDetectorCommand.cpp | 10 +- slsSupportLib/include/sls_detector_defs.h | 1 - 13 files changed, 240 insertions(+), 376 deletions(-) create mode 100755 slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_gui diff --git a/slsDetectorGui/forms/form_tab_dataoutput.ui b/slsDetectorGui/forms/form_tab_dataoutput.ui index 17d6f9659..7593e0dc2 100755 --- a/slsDetectorGui/forms/form_tab_dataoutput.ui +++ b/slsDetectorGui/forms/form_tab_dataoutput.ui @@ -145,6 +145,9 @@ Directory where one saves the data. + + false + 0 @@ -216,6 +219,9 @@ Compression using Root. Available only for Gotthard in Expert Mode. + + false + 3 @@ -306,11 +312,6 @@ Compression using Root. Available only for Gotthard in Expert Mode. Quarter Speed - - - Super Slow Speed - - @@ -366,6 +367,9 @@ Compression using Root. Available only for Gotthard in Expert Mode. + + false + 20 @@ -404,8 +408,7 @@ Directory where one saves the data. </nobr><br> #outdir# <br> -Disabled if a receiver is utilized in acquisition. -<br> +Disabled if receiver pc is not same as client pc. diff --git a/slsDetectorGui/include/qDetectorMain.h b/slsDetectorGui/include/qDetectorMain.h index a6e8d198e..7552bb941 100755 --- a/slsDetectorGui/include/qDetectorMain.h +++ b/slsDetectorGui/include/qDetectorMain.h @@ -70,11 +70,6 @@ class qDetectorMain : public QMainWindow, private Ui::DetectorMainObject { */ int GetProgress(); - /** - * Verifies if output directories for all the receivers exist - */ - int DoesOutputDirExist(); - private slots: /** * Enables modes as selected -Debug, Expert, Dockable: calls setdockablemode diff --git a/slsDetectorGui/include/qTabDataOutput.h b/slsDetectorGui/include/qTabDataOutput.h index a0b9964c3..96f618372 100755 --- a/slsDetectorGui/include/qTabDataOutput.h +++ b/slsDetectorGui/include/qTabDataOutput.h @@ -33,15 +33,13 @@ public: */ void Refresh(); - /** - * Verify output directories - * @returns success or fail - */ - int VerifyOutputDirectory(); - - private slots: + /** + * Get output directory + */ + void GetOutputDir(); + /** * Open dialog to choose the output directory */ @@ -53,30 +51,34 @@ public: void SetOutputDir(); /** - * Get output directory + * Set file format + * @param format file format */ - void GetOutputDir(); + void SetFileFormat(int format); + + /** + * Set overwrite enable + * @param enable enable + */ + void SetOverwriteEnable(bool enable); + + /** + * Enable/Disable 10GbE + * @param enable enable + */ + void SetTenGigaEnable(bool enable); /** * Set rate correction + * @param deadtime dead time */ - void SetRateCorrection(int deadtime=0); + void SetRateCorrection(int deadtime = 0); /** * Set default rate correction */ void SetDefaultRateCorrection(); - /** - * Set update rate correction from server - */ - void UpdateRateCorrectionFromServer(); - - /** - * Enable/Disable 10GbE - */ - void EnableTenGigabitEthernet(bool enable, int get=0); - /** * Set speed */ @@ -87,17 +89,6 @@ public: */ void SetFlags(); - /** - * Set file format - */ - void SetFileFormat(int format); - - /** - * Set overwrite enable - */ - void SetOverwriteEnable(bool enable); - - private: /** @@ -115,45 +106,66 @@ public: */ void PopulateDetectors(); - /** - * Update speed + /** + * Enable browse */ - void UpdateSpeedFromServer(); + void EnableBrowse(); /** - * Update flags + * Get file format */ - void UpdateFlagsFromServer(); + void GetFileFormat(); /** - * Update file format + * Get overwrite enable */ - void UpdateFileFormatFromServer(); + void GetFileOverwrite(); /** - * Update overwrite enable + * Get Ten Giga Enable */ - void UpdateFileOverwriteFromServer(); + void GetTenGigaEnable(); + /** + * Set Get rate correction + */ + void GetRateCorrection(); + + /** + * Get speed + */ + void GetSpeed(); + + /** + * Get flags + */ + void GetFlags(); /** The sls detector object */ multiSlsDetector *myDet; - /** detector type */ - slsDetectorDefs::detectorType detType; - - QString outDirTip; - QPalette red; - QPalette black; - QPalette *red1; - QPalette *black1; + /** Palette */ + QPalette red; /** enum for the Eiger clock divider */ - enum {FULLSPEED, HALFSPEED, QUARTERSPEED, SUPERSLOWSPEED, NUMBEROFSPEEDS}; - /** enum for the Eiger readout flags1 */ - enum {CONTINUOUS, STOREINRAM}; - /** enum for the Eiger readout flags2 */ - enum {PARALLEL, NONPARALLEL, SAFE}; + enum { + FULLSPEED, + HALFSPEED, + QUARTERSPEED, + SUPERSLOWSPEED, + NUMBEROFSPEEDS + }; + /** enum for the Eiger readout flags1 */ + enum { + CONTINUOUS, + STOREINRAM + }; + + /** enum for the Eiger readout flags2 */ + enum { + PARALLEL, + NONPARALLEL + }; }; diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp index 8e92408cd..228d5d0cb 100755 --- a/slsDetectorGui/src/qDetectorMain.cpp +++ b/slsDetectorGui/src/qDetectorMain.cpp @@ -145,10 +145,6 @@ bool qDetectorMain::isPlotRunning() { return myPlot->isRunning(); } int qDetectorMain::GetProgress() { return tabMeasurement->GetProgress(); } -int qDetectorMain::DoesOutputDirExist() { - return tabDataOutput->VerifyOutputDirectory(); -} - void qDetectorMain::SetUpWidgetWindow() { // Layout diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp index 3f67fedae..12b6dd734 100755 --- a/slsDetectorGui/src/qTabAdvanced.cpp +++ b/slsDetectorGui/src/qTabAdvanced.cpp @@ -16,14 +16,14 @@ QWidget(parent), myDet(detector) { qTabAdvanced::~qTabAdvanced(){} void qTabAdvanced::SetupWidgetWindow(){ - + // palette red = QPalette(); red.setColor(QPalette::Active,QPalette::WindowText,Qt::red); detOnlineTip = dispOnline->toolTip(); rxrOnlineTip = dispRxrOnline->toolTip(); errOnlineTip = QString("

It is offline!"); - + // enabling according to det type switch((int)myDet->getDetectorTypeAsEnum()) { case slsDetectorDefs::EIGER: // trimming @@ -41,7 +41,8 @@ void qTabAdvanced::SetupWidgetWindow(){ // roi tab_roi->setEnabled(true); break; - + default: + break; } // set initially to network tab @@ -108,6 +109,7 @@ void qTabAdvanced::PopulateDetectors() { FILE_LOG(logDEBUG) << "Populating detectors"; disconnect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(SetDetector(int))); + comboDetector->clear(); for(int i = 0; i < myDet->getNumberOfDetectors(); ++i) comboDetector->addItem(QString(myDet->getHostname(i).c_str())); comboDetector->setCurrentIndex(0); diff --git a/slsDetectorGui/src/qTabDataOutput.cpp b/slsDetectorGui/src/qTabDataOutput.cpp index 6256b0363..788b891cb 100755 --- a/slsDetectorGui/src/qTabDataOutput.cpp +++ b/slsDetectorGui/src/qTabDataOutput.cpp @@ -12,7 +12,6 @@ qTabDataOutput::qTabDataOutput(QWidget *parent, multiSlsDetector *detector) : QWidget(parent), myDet(detector) { setupUi(this); SetupWidgetWindow(); - Refresh(); FILE_LOG(logDEBUG) << "DataOutput ready"; } @@ -21,104 +20,99 @@ qTabDataOutput::~qTabDataOutput() {} void qTabDataOutput::SetupWidgetWindow() { + // palette red = QPalette(); red.setColor(QPalette::Active, QPalette::WindowText, Qt::red); - black = QPalette(); - black.setColor(QPalette::Active, QPalette::WindowText, Qt::black); - red1 = new QPalette(); - red1->setColor(QPalette::Text, Qt::red); - black1 = new QPalette(); - black1->setColor(QPalette::Text, Qt::black); - - outDirTip = lblOutputDir->toolTip(); - - // Detector Type - detType = myDet->getDetectorTypeAsEnum(); - - // disabling depening on detector type - chkRate->setEnabled(false); - widgetEiger->setVisible(false); - if (detType == slsDetectorDefs::EIGER) { - chkRate->setEnabled(true); - widgetEiger->setVisible(true); + // enabling according to det type + switch((int)myDet->getDetectorTypeAsEnum()) { + case slsDetectorDefs::EIGER: + chkTenGiga->setEnabled(true); + chkRate->setEnabled(true); + widgetEiger->setVisible(true); + widgetEiger->setEnabled(true); + break; + case slsDetectorDefs::MOENCH: + chkTenGiga->setEnabled(true); + break; + default: + break; } - chkTenGiga->setEnabled(false); - if (detType == slsDetectorDefs::EIGER || detType == slsDetectorDefs::MOENCH) { - chkTenGiga->setEnabled(true); - } - + PopulateDetectors(); + EnableBrowse(); Initialization(); - // populate detectors, get output dir - PopulateDetectors(); - - VerifyOutputDirectory(); - - // over write - UpdateFileOverwriteFromServer(); - - // file format - UpdateFileFormatFromServer(); - - // rate correction + GetOutputDir(); + GetFileOverwrite(); + GetFileFormat(); if (chkRate->isEnabled()) { - UpdateRateCorrectionFromServer(); + GetRateCorrection(); } - - // 10 gbe if (chkTenGiga->isEnabled()) { - EnableTenGigabitEthernet(-1, 1); + GetTenGigaEnable(); } - - //Eiger specific - if (widgetEiger->isVisible()) { - //speed - UpdateSpeedFromServer(); - //flags - UpdateFlagsFromServer(); + if (widgetEiger->isEnabled()) { + GetSpeed(); + GetFlags(); } - - qDefs::checkErrorMessage(myDet, "qTabDataOutput::SetupWidgetWindow"); + Refresh(); } - void qTabDataOutput::Initialization() { - //output dir connect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(GetOutputDir())); connect(dispOutputDir, SIGNAL(editingFinished()), this, SLOT(SetOutputDir())); connect(btnOutputBrowse, SIGNAL(clicked()), this, SLOT(BrowseOutputDir())); - - //overwrite enable - connect(chkOverwriteEnable, SIGNAL(toggled(bool)), this, SLOT(SetOverwriteEnable(bool))); - - //file format connect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFileFormat(int))); - - //rate correction - connect(chkRate, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); - connect(btnDefaultRate, SIGNAL(clicked()), this, SLOT(SetDefaultRateCorrection())); - connect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); - - //10GbE - connect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(EnableTenGigabitEthernet(bool))); - - //eiger - if (widgetEiger->isVisible()) { - //speed + connect(chkOverwriteEnable, SIGNAL(toggled(bool)), this, SLOT(SetOverwriteEnable(bool))); + if (chkTenGiga->isEnabled()) { + connect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(SetTenGigaEnable(bool))); + } + if (chkRate->isEnabled()) { + connect(chkRate, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); + connect(btnDefaultRate, SIGNAL(clicked()), this, SLOT(SetDefaultRateCorrection())); + connect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); + } + if (widgetEiger->isEnabled()) { connect(comboEigerClkDivider, SIGNAL(currentIndexChanged(int)), this, SLOT(SetSpeed())); - //flags connect(comboEigerFlags1, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFlags())); connect(comboEigerFlags2, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFlags())); } } +void qTabDataOutput::PopulateDetectors() { + FILE_LOG(logDEBUG) << "Populating detectors"; -void qTabDataOutput::BrowseOutputDir() { - QString directory = QFileDialog::getExistingDirectory(this, tr("Choose Output Directory "), dispOutputDir->text()); - if (!directory.isEmpty()) - dispOutputDir->setText(directory); - SetOutputDir(); + comboDetector->clear(); + comboDetector->addItem("All"); + if (myDet->getNumberOfDetectors() > 1) { + for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) + comboDetector->addItem(QString(myDet->getHostname(i).c_str())); + } +} + +void qTabDataOutput::EnableBrowse() { + try { + std::string receiverHostname = myDet->getReceiverHostname(comboDetector->currentIndex() - 1); + if (receiverHostname == "localhost") { + btnOutputBrowse->setEnabled(true); + } else { + std::string hostname; + size_t len = 15; + char host[len]{}; + if (gethostname(host, len) == 0) { + hostname.assign(host); + } + // client pc (hostname) same as reciever hostname + if (hostname == receiverHostname) { + btnOutputBrowse->setEnabled(true); + } else { + btnOutputBrowse->setEnabled(false); + } + } + } catch (const sls::RuntimeError &e) { + qDefs::ExceptionMessage("Could not get receiver hostname.", e.what(), "qTabDataOutput::EnableBrowse"); + btnOutputBrowse->setEnabled(false); + } } @@ -126,166 +120,79 @@ void qTabDataOutput::GetOutputDir() { FILE_LOG(logDEBUG) << "Getting output directory"; disconnect(dispOutputDir, SIGNAL(editingFinished()), this, SLOT(SetOutputDir())); - //all - if (!comboDetector->currentIndex()) { - dispOutputDir->setText(QString(myDet->getFilePath().c_str())); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetOutputDir"); - //multi file path blank means sls file paths are different - if (dispOutputDir->text().isEmpty()) { - qDefs::Message(qDefs::INFORMATION, "The file path for individual readouts are different.\n" - "Hence, leaving the common field blank.", "qTabDataOutput::GetOutputDir"); - FILE_LOG(logWARNING) << "The file path for individual units are different."; - QString errTip = QString("
" - "Output Directory Information only: The file path for individual readouts are different.
" - "Hence, leaving the common field blank.
"); - lblOutputDir->setText("Path*:"); - lblOutputDir->setPalette(red); - lblOutputDir->setToolTip(errTip); - btnOutputBrowse->setToolTip(errTip); - dispOutputDir->setToolTip(errTip); - } else { - lblOutputDir->setText("Path:"); - lblOutputDir->setPalette(*black1); - lblOutputDir->setToolTip(outDirTip); - btnOutputBrowse->setToolTip(outDirTip); - dispOutputDir->setToolTip(outDirTip); - } - } - - //specific - else { - dispOutputDir->setText(QString(myDet->getFilePath(comboDetector->currentIndex() - 1).c_str())); - qDefs::checkErrorMessage(myDet, comboDetector->currentIndex() - 1, "qTabDataOutput::GetOutputDir"); - } + qDefs::IgnoreNonCriticalExceptions( + myDet, + "Could not get output file path." + "qTabDataOutput::GetOutputDir", + dispOutputDir, + &QLineEdit::setText, + &multiSlsDetector::getFilePath, comboDetector->currentIndex() - 1); connect(dispOutputDir, SIGNAL(editingFinished()), this, SLOT(SetOutputDir())); } - -int qTabDataOutput::VerifyOutputDirectory() { - FILE_LOG(logDEBUG) << "Verifying output directory"; - - GetOutputDir(); - - bool error = false; - std::string detName = ""; - std::string mess = ""; - - //common (check only if no +, different values) - std::string fpath = myDet->getFilePath(); - if (fpath.find('+') == std::string::npos) { - myDet->setFilePath(myDet->getFilePath()); - if (!qDefs::checkErrorMessage(myDet, "qTabDataOutput::VerifyOutputDirectory").empty()) - error = true; - } - - //for each detector - for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) { - detName = std::string("\n - ") + std::string(comboDetector->itemText(i+1).toAscii().constData()); - myDet->setFilePath(myDet->getFilePath(i), i); - if(!qDefs::checkErrorMessage(myDet, i, "qTabDataOutput::VerifyOutputDirectory").empty()) { - mess. append(detName); - error = true; - } - } - - //invalid - if (error) { - qDefs::Message(qDefs::WARNING, std::string("Invalid Output Directory ") + mess, "qTabDataOutput::VerifyOutputDirectory"); - FILE_LOG(logWARNING) << "The output path doesnt exist anymore"; - //replace all \n with
- size_t pos = 0; - while ((pos = mess.find("\n", pos)) != std::string::npos) { - mess.replace(pos, 1, "
"); - pos += 1; - } - QString errTip = outDirTip + - QString("
" - "Invalid Output Directory") + - QString(mess.c_str()) + - QString("."); - lblOutputDir->setText("Path*:"); - lblOutputDir->setPalette(red); - lblOutputDir->setToolTip(errTip); - btnOutputBrowse->setToolTip(errTip); - dispOutputDir->setToolTip(errTip); - - return slsDetectorDefs::FAIL; - } - - //valid - else { - FILE_LOG(logDEBUG) << "The output path is valid"; - lblOutputDir->setText("Path:"); - lblOutputDir->setPalette(*black1); - lblOutputDir->setToolTip(outDirTip); - btnOutputBrowse->setToolTip(outDirTip); - dispOutputDir->setToolTip(outDirTip); - } - - return slsDetectorDefs::OK; +void qTabDataOutput::BrowseOutputDir() { + FILE_LOG(logDEBUG) << "Browsing output directory"; + QString directory = QFileDialog::getExistingDirectory(this, tr("Choose Output Directory "), dispOutputDir->text()); + if (!directory.isEmpty()) + dispOutputDir->setText(directory); } - void qTabDataOutput::SetOutputDir() { - FILE_LOG(logDEBUG) << "Setting output directory"; - disconnect(dispOutputDir, SIGNAL(editingFinished()), this, SLOT(SetOutputDir())); - - bool error = false; QString path = dispOutputDir->text(); - - //empty + // empty if (path.isEmpty()) { qDefs::Message(qDefs::WARNING, "Invalid Output Path. Must not be empty.", "qTabDataOutput::SetOutputDir"); FILE_LOG(logWARNING) << "Invalid Output Path. Must not be empty."; - error = true; - } - //gets rid of the end '/'s - else if (path.endsWith('/')) { - while (path.endsWith('/')) - path.chop(1); - dispOutputDir->setText(path); - } - - //specific - if (comboDetector->currentIndex()) { - myDet->setFilePath(std::string(dispOutputDir->text().toAscii().constData()), comboDetector->currentIndex() - 1); - if (!qDefs::checkErrorMessage(myDet, comboDetector->currentIndex() - 1, "qTabDataOutput::SetOutputDir").empty()) - error = true; - } - - //multi - else { - myDet->setFilePath(std::string(path.toAscii().constData())); - if (!qDefs::checkErrorMessage(myDet, "qTabDataOutput::SetOutputDir").empty()) - error = true; - } - - if (error) { - FILE_LOG(logWARNING) << "The output path could not be set"; - QString errTip = outDirTip + QString("
" - "Invalid File Path"); - - lblOutputDir->setText("Path*:"); - lblOutputDir->setPalette(red); - lblOutputDir->setToolTip(errTip); - btnOutputBrowse->setToolTip(errTip); - dispOutputDir->setToolTip(errTip); + GetOutputDir(); } else { - FILE_LOG(logINFO) << "Output dir set to " << path.toAscii().constData(); - lblOutputDir->setText("Path:"); - lblOutputDir->setPalette(*black1); - lblOutputDir->setToolTip(outDirTip); - btnOutputBrowse->setToolTip(outDirTip); - dispOutputDir->setToolTip(outDirTip); + // chop off trailing '/' + if (path.endsWith('/')) { + while (path.endsWith('/')) { + path.chop(1); + } + } + std::string spath = std::string(path.toAscii().constData()); + try { + myDet->setFilePath(spath, comboDetector->currentIndex() - 1); + } catch (const sls::NonCriticalError &e) { + qDefs::ExceptionMessage("Could not set output file path.", e.what(), "qTabDataOutput::SetOutputDir"); + GetOutputDir(); + } } - - connect(dispOutputDir, SIGNAL(editingFinished()), this, SLOT(SetOutputDir())); } +void qTabDataOutput::GetFileFormat() { + FILE_LOG(logDEBUG) << "Getting File Format"; + disconnect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFileFormat(int))); + + qDefs::IgnoreNonCriticalExceptions( + myDet, + "Could not get file format." + "qTabAdvanced::GetFileFormat", + comboFileFormat, + &QComboBox::setCurrentIndex, + &multiSlsDetector::getFileFormat, -1); + + connect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFileFormat(int))); +} + +void qTabDataOutput::SetFileFormat(int format) { + FILE_LOG(logINFO) << "Setting File Format"; + try { + myDet->setFileFormat((slsDetectorDefs::fileFormat)comboFileFormat->currentIndex()); + } catch (const sls::NonCriticalError &e) { + qDefs::ExceptionMessage("Could not set file format.", e.what(), "qTabDataOutput::SetFileFormat"); + GetFileFormat(); + } +} + + + + void qTabDataOutput::SetRateCorrection(int deadtime) { @@ -323,7 +230,7 @@ void qTabDataOutput::SetRateCorrection(int deadtime) { double rate = (double)myDet->getRateCorrection(); spinDeadTime->setValue((double)rate); if (rate == -1) { - qDefs::Message(qDefs::WARNING, "Dead time is inconsistent for all detectors. Returned Value: -1.", "qTabDataOutput::UpdateRateCorrectionFromServer"); + qDefs::Message(qDefs::WARNING, "Dead time is inconsistent for all detectors. Returned Value: -1.", "qTabDataOutput::GetRateCorrection"); QString errorTip = QString("Rate Corrections.
" " #ratecorr# tau in seconds

") + QString("" @@ -337,7 +244,7 @@ void qTabDataOutput::SetRateCorrection(int deadtime) { " #ratecorr# tau in seconds

"); chkRate->setToolTip(normalTip); spinDeadTime->setToolTip(normalTip); - chkRate->setPalette(chkDiscardBad->palette()); + chkRate->setPalette(lblDeadTime->palette()); chkRate->setText("Rate:"); } @@ -351,14 +258,14 @@ void qTabDataOutput::SetDefaultRateCorrection() { } -void qTabDataOutput::UpdateRateCorrectionFromServer() { +void qTabDataOutput::GetRateCorrection() { disconnect(chkRate, SIGNAL(toggled(bool)), this, SLOT(SetRateCorrection())); disconnect(btnDefaultRate, SIGNAL(clicked()), this, SLOT(SetDefaultRateCorrection())); disconnect(spinDeadTime, SIGNAL(editingFinished()), this, SLOT(SetRateCorrection())); double rate; rate = (double)myDet->getRateCorrection(); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::UpdateRateCorrectionFromServer"); + qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetRateCorrection"); FILE_LOG(logDEBUG) << "Getting rate correction from server: " << rate << '\n'; if (rate == 0) { chkRate->setChecked(false); @@ -376,7 +283,7 @@ void qTabDataOutput::UpdateRateCorrectionFromServer() { } if (rate == -1) { - qDefs::Message(qDefs::WARNING, "Dead time is inconsistent for all detectors. Returned Value: -1.", "qTabDataOutput::UpdateRateCorrectionFromServer"); + qDefs::Message(qDefs::WARNING, "Dead time is inconsistent for all detectors. Returned Value: -1.", "qTabDataOutput::GetRateCorrection"); FILE_LOG(logWARNING) << "Dead time is inconsistent for all detectors."; QString errorTip = QString("Rate Corrections.
" " #ratecorr# tau in seconds

") + @@ -401,55 +308,41 @@ void qTabDataOutput::UpdateRateCorrectionFromServer() { } -void qTabDataOutput::PopulateDetectors() { - disconnect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(GetOutputDir())); - - FILE_LOG(logDEBUG) << "Populating detectors"; - comboDetector->clear(); - comboDetector->addItem("All"); - lblOutputDir->setText("Path:"); - //add specific detector options only if more than 1 detector - if (myDet->getNumberOfDetectors() > 1) { - for (int i = 0; i < myDet->getNumberOfDetectors(); i++) - comboDetector->addItem(QString(myDet->getHostname(i).c_str())); - } - GetOutputDir(); - connect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(GetOutputDir())); -} -void qTabDataOutput::EnableTenGigabitEthernet(bool enable, int get) { + +void qTabDataOutput::GetTenGigaEnable(bool enable, int get) { if (get || enable == -1) { FILE_LOG(logDEBUG) << "Getting 10Gbe enable"; } else { FILE_LOG(logINFO) << (enable == 0 ? "Disabling" : "Enabling") << "10GbE"; } - disconnect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(EnableTenGigabitEthernet(bool))); + disconnect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(GetTenGigaEnable(bool))); int ret; if (get) - ret = myDet->enableTenGigabitEthernet(-1); + ret = myDet->GetTenGigaEnable(-1); else - ret = myDet->enableTenGigabitEthernet(enable); + ret = myDet->GetTenGigaEnable(enable); if (ret > 0) chkTenGiga->setChecked(true); else chkTenGiga->setChecked(false); - connect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(EnableTenGigabitEthernet(bool))); + connect(chkTenGiga, SIGNAL(toggled(bool)), this, SLOT(GetTenGigaEnable(bool))); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::EnableTenGigabitEthernet"); + qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetTenGigaEnable"); } -void qTabDataOutput::UpdateSpeedFromServer() { +void qTabDataOutput::GetSpeed() { int ret; if (widgetEiger->isVisible()) { disconnect(comboEigerClkDivider, SIGNAL(currentIndexChanged(int)), this, SLOT(SetSpeed())); //get speed ret = myDet->setSpeed(slsDetectorDefs::CLOCK_DIVIDER, -1); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::updateSpeedFromServer"); + qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetSpeed"); //valid speed if (ret >= 0 && ret < NUMBEROFSPEEDS) @@ -459,12 +352,12 @@ void qTabDataOutput::UpdateSpeedFromServer() { else { qDefs::Message(qDefs::WARNING, "Inconsistent value from clock divider.\n" "Setting it for all detectors involved to half speed.", - "qTabDataOutput::updateSpeedFromServer"); + "qTabDataOutput::GetSpeed"); FILE_LOG(logWARNING) << "Inconsistent value from clock divider."; //set to default comboEigerClkDivider->setCurrentIndex(HALFSPEED); myDet->setSpeed(slsDetectorDefs::CLOCK_DIVIDER, HALFSPEED); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::updateSpeedFromServer"); + qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetSpeed"); } connect(comboEigerClkDivider, SIGNAL(currentIndexChanged(int)), this, SLOT(SetSpeed())); } @@ -475,12 +368,12 @@ void qTabDataOutput::SetSpeed() { FILE_LOG(logINFO) << "Setting Speed"; myDet->setSpeed(slsDetectorDefs::CLOCK_DIVIDER, comboEigerClkDivider->currentIndex()); qDefs::checkErrorMessage(myDet, "qTabDataOutput::SetSpeed"); - UpdateSpeedFromServer(); + GetSpeed(); } -void qTabDataOutput::UpdateFlagsFromServer() { +void qTabDataOutput::GetFlags() { int ret; if (widgetEiger->isVisible()) { disconnect(comboEigerFlags1, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFlags())); @@ -488,21 +381,21 @@ void qTabDataOutput::UpdateFlagsFromServer() { //get speed ret = myDet->setReadOutFlags(slsDetectorDefs::GET_READOUT_FLAGS); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::updateFlagsFromServer"); + qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetFlags"); //invalid flags if (ret == -1) { qDefs::Message(qDefs::WARNING, "Inconsistent value for readout flags.\n" "Setting it for all detectors involved to continous nonparallel mode.", - "qTabDataOutput::updateFlagsFromServer"); + "qTabDataOutput::GetFlags"); FILE_LOG(logWARNING) << "Inconsistent value for readout flags."; //set to default comboEigerFlags1->setCurrentIndex(CONTINUOUS); myDet->setReadOutFlags(slsDetectorDefs::CONTINOUS_RO); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::updateFlagsFromServer"); + qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetFlags"); comboEigerFlags2->setCurrentIndex(NONPARALLEL); myDet->setReadOutFlags(slsDetectorDefs::NONPARALLEL); - qDefs::checkErrorMessage(myDet, "qTabDataOutput::updateFlagsFromServer"); + qDefs::checkErrorMessage(myDet, "qTabDataOutput::GetFlags"); } //valid flags @@ -557,36 +450,15 @@ void qTabDataOutput::SetFlags() { qDefs::checkErrorMessage(myDet, "qTabDataOutput::setFlags"); //update flags - UpdateFlagsFromServer(); + GetFlags(); } -void qTabDataOutput::UpdateFileFormatFromServer() { - FILE_LOG(logDEBUG) << "Getting File Format"; - disconnect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFileFormat(int))); - - comboFileFormat->setCurrentIndex((int)myDet->getFileFormat()); - - connect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFileFormat(int))); -} -void qTabDataOutput::SetFileFormat(int format) { - FILE_LOG(logINFO) << "Setting File Format"; - disconnect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFileFormat(int))); - int ret = (int)myDet->setFileFormat((slsDetectorDefs::fileFormat)comboFileFormat->currentIndex()); - if (ret != comboFileFormat->currentIndex()) { - qDefs::Message(qDefs::WARNING, "Could not set file format.", "qTabDataOutput::SetFileFormat"); - comboFileFormat->setCurrentIndex((int)ret); - } - - connect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFileFormat(int))); -} - - -void qTabDataOutput::UpdateFileOverwriteFromServer() { +void qTabDataOutput::GetFileOverwrite() { FILE_LOG(logDEBUG) << "Getting File Over Write Enable"; disconnect(chkOverwriteEnable, SIGNAL(toggled(bool)), this, SLOT(SetOverwriteEnable(bool))); @@ -606,33 +478,34 @@ void qTabDataOutput::SetOverwriteEnable(bool enable) { connect(chkOverwriteEnable, SIGNAL(toggled(bool)), this, SLOT(SetOverwriteEnable(bool))); - UpdateFileOverwriteFromServer(); + GetFileOverwrite(); } void qTabDataOutput::Refresh() { FILE_LOG(logDEBUG) << "**Updating DataOutput Tab"; + EnableBrowse(); if (!myDet->enableWriteToFile()) boxFileWriteEnabled->setEnabled(false); else boxFileWriteEnabled->setEnabled(true); // output dir - PopulateDetectors(); + GetOutputDir(); //overwrite - UpdateFileOverwriteFromServer(); + GetFileOverwrite(); //file format - UpdateFileFormatFromServer(); + GetFileFormat(); //file name dispFileName->setText(QString(myDet->getFileName().c_str())); // rate correction if (chkRate->isEnabled()) { - UpdateRateCorrectionFromServer(); + GetRateCorrection(); } if (myDet->setReceiverOnline() == slsDetectorDefs::ONLINE_FLAG) { @@ -647,15 +520,15 @@ void qTabDataOutput::Refresh() { // 10GbE if (chkTenGiga->isEnabled()) { - EnableTenGigabitEthernet(-1, 1); + GetTenGigaEnable(-1, 1); } //Eiger specific if (widgetEiger->isVisible()) { //speed - UpdateSpeedFromServer(); + GetSpeed(); //flags - UpdateFlagsFromServer(); + GetFlags(); } FILE_LOG(logDEBUG) << "**Updated DataOutput Tab"; diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index fab4ab919..9a08a113c 100755 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -400,7 +400,7 @@ void qTabMeasurement::Enable(bool enable) { } int qTabMeasurement::VerifyOutputDirectoryError() { - for (int i = 0; i < myDet->getNumberOfDetectors(); i++) { + for (int i = 0; i < myDet->getNumberOfDetectors(); i++) {xx if (getModuleErrorMask(i) == FILE_PATH_DOES_NOT_EXIST) { return slsDetectorDefs:: FAIL; } diff --git a/slsDetectorServers/eigerDetectorServer/FebControl.c b/slsDetectorServers/eigerDetectorServer/FebControl.c index 8c787db94..3dee3c5ba 100755 --- a/slsDetectorServers/eigerDetectorServer/FebControl.c +++ b/slsDetectorServers/eigerDetectorServer/FebControl.c @@ -1266,9 +1266,6 @@ int Feb_Control_SetReadoutSpeed(unsigned int readout_speed) { //0->full,1->half, } else if (readout_speed==2) { Feb_Control_acquireNReadoutMode |= DAQ_CHIP_CONTROLLER_QUARTER_SPEED; FILE_LOG(logINFO, ("Speed set to quarter speed (25 MHz)\n")); - } else if (readout_speed==3) { - Feb_Control_acquireNReadoutMode |= DAQ_CHIP_CONTROLLER_SUPER_SLOW_SPEED; - FILE_LOG(logINFO, ("Speed set to super slow speed (~0.200 MHz)\n")); } else { if (readout_speed) { FILE_LOG(logERROR, ("readout speed %d unknown, defaulting to full speed.\n",readout_speed)); diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_gui b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_gui new file mode 100755 index 0000000000000000000000000000000000000000..a3a451907a195933bde115bb17b89ab3c29b40e2 GIT binary patch literal 293636 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 [flag] sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, overflow, nooverflow, unknown. Used for EIGER only. \c Returns \c (string). put takes one string and \c returns concatenation of all active flags separated by spaces. + - flags [flag] sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, digital, analog_digital, overflow, nooverflow, unknown. Used for EIGER only. \c Returns \c (string). put takes one string and \c returns concatenation of all active flags separated by spaces. */ descrToFuncMap[i].m_pFuncName = "flags"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdAdvanced; @@ -4777,8 +4777,6 @@ std::string slsDetectorCommand::cmdAdvanced(int narg, const char * const args[], flag = PARALLEL; else if (sval == "nonparallel") flag = NONPARALLEL; - else if (sval == "safe") - flag = SAFE; else if (sval == "digital") flag = DIGITAL_ONLY; else if (sval == "analog_digital") @@ -4809,8 +4807,6 @@ std::string slsDetectorCommand::cmdAdvanced(int narg, const char * const args[], strcat(answer, "parallel "); if (retval & NONPARALLEL) strcat(answer, "nonparallel "); - if (retval & SAFE) - strcat(answer, "safe "); if (retval & DIGITAL_ONLY) strcat(answer, "digital "); if (retval & ANALOG_AND_DIGITAL) @@ -4960,7 +4956,7 @@ std::string slsDetectorCommand::helpAdvanced(int action) { if (action == PUT_ACTION || action == HELP_ACTION) { os << "extsig mode \t sets the mode of the external signal. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl; - os << "flags mode \t sets the readout flags to mode. can be none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, overlow, nooverflow, unknown." << std::endl; + os << "flags mode \t sets the readout flags to mode. can be none, storeinram, tot, continous, parallel, nonparallel, digital, analog_digital, overlow, nooverflow, unknown." << std::endl; os << "programfpga f \t programs the fpga with file f (with .pof extension)." << std::endl; os << "resetfpga f \t resets fpga, f can be any value" << std::endl; @@ -4976,7 +4972,7 @@ std::string slsDetectorCommand::helpAdvanced(int action) { os << "extsig \t gets the mode of the external signal. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl; - os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, overflow, nooverflow, unknown" << std::endl; + os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, digital, analog_digital, overflow, nooverflow, unknown" << std::endl; os << "led \t returns led status (0 off, 1 on)" << std::endl; os << "powerchip \t gets if the chip has been powered on or off" << std::endl; os << "auto_comp_disable \t Currently not implemented. gets if the automatic comparator diable mode is enabled/disabled" << std::endl; diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index bf14a3545..06b1c6f12 100755 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -516,7 +516,6 @@ format CONTINOUS_RO = 0x4000, /**< pump-probe mode */ PARALLEL = 0x10000, /**< eiger parallel mode */ NONPARALLEL = 0x20000, /**< eiger serial mode */ - SAFE = 0x40000 /**< eiger safe mode */, DIGITAL_ONLY = 0x80000, /** chiptest board read only digital bits (not adc values)*/ ANALOG_AND_DIGITAL = 0x100000, /** chiptest board read adc values and