diff --git a/slsDetectorGui/forms/form_tab_settings.ui b/slsDetectorGui/forms/form_tab_settings.ui index a466a1ffb..632ace12f 100755 --- a/slsDetectorGui/forms/form_tab_settings.ui +++ b/slsDetectorGui/forms/form_tab_settings.ui @@ -514,7 +514,7 @@ - Dynamic HG0 + High Gain 0 @@ -572,6 +572,11 @@ G4_LG + + + Gain 0 + + Undefined diff --git a/slsDetectorGui/include/qTabSettings.h b/slsDetectorGui/include/qTabSettings.h index 710983598..4579809ad 100644 --- a/slsDetectorGui/include/qTabSettings.h +++ b/slsDetectorGui/include/qTabSettings.h @@ -32,5 +32,30 @@ class qTabSettings : public QWidget, private Ui::TabSettingsObject { sls::Detector *det; std::vector counters; + enum { + STANDARD, + FAST, + HIGHGAIN, + DYNAMICGAIN, + LOWGAIN, + MEDIUMGAIN, + VERYHIGHGAIN, + HIGHGAIN0, + FIXGAIN1, + FIXGAIN2, + VERLOWGAIN, + G1_HIGHGAIN, + G1_LOWGAIN, + G2_HIGHCAP_HIGHGAIN, + G2_HIGHCAP_LOWGAIN, + G2_LOWCAP_HIGHGAIN, + G2_LOWCAP_LOWGAIN, + G4_HIGHGAIN, + G4_LOWGAIN, + GAIN0, + UNDEFINED, + UNINITIALIZED, + NUMSETTINGS + }; enum { DYNAMICRANGE_32, DYNAMICRANGE_16, DYNAMICRANGE_8, DYNAMICRANGE_4 }; }; diff --git a/slsDetectorGui/src/qTabSettings.cpp b/slsDetectorGui/src/qTabSettings.cpp index d89078000..90fe3542d 100644 --- a/slsDetectorGui/src/qTabSettings.cpp +++ b/slsDetectorGui/src/qTabSettings.cpp @@ -94,9 +94,9 @@ void qTabSettings::SetupDetectorSettings() { qobject_cast(comboSettings->model()); const int numSettings = comboSettings->count(); if (model) { - QModelIndex index[numSettings]; - QStandardItem *item[numSettings]; - for (int i = 0; i < numSettings; ++i) { + std::vector index(numSettings); + std::vector item(numSettings); + for (size_t i = 0; i < index.size(); ++i) { index[i] = model->index(i, comboSettings->modelColumn(), comboSettings->rootModelIndex()); item[i] = model->itemFromIndex(index[i]); diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 5b94b45fe..0665f053e 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1101,9 +1101,12 @@ enum gainMode getGainMode() { LOG(logERROR, ("undefined gain mode. DAQ reg: 0x%x\n", regval)); } - switch (retval_force) { - case DAQ_FRCE_GAIN_STG_0_VAL: + // dynamic gain, when nothing is set + if (retval_force == 0 && retval_fix == 0 && retval_cmp_rst == 0) { return DYNAMIC_GAIN_MODE; + } + + switch (retval_force) { case DAQ_FRCE_GAIN_STG_1_VAL: return FORCE_SWITCH_G1; case DAQ_FRCE_GAIN_STG_2_VAL: @@ -1124,6 +1127,7 @@ enum gainMode getGainMode() { if (retval_cmp_rst) { return FIX_G0; } + LOG(logERROR, ("This gain mode is undefined [DAQ reg: %d]\n", regval)); return -1; } diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index ac9db0e84..427950689 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -162,8 +162,7 @@ std::vector Detector::getSettingsList() const { defs::HIGHGAIN0}; case defs::GOTTHARD2: return std::vector{ - defs::DYNAMICGAIN, defs::DYNAMICHG0, defs::FIXGAIN1, - defs::FIXGAIN2}; + defs::DYNAMICGAIN, defs::FIXGAIN1, defs::FIXGAIN2}; case defs::MOENCH: return std::vector{ defs::G1_HIGHGAIN, defs::G1_LOWGAIN,