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,