diff --git a/src/calng/AgipdCorrection.py b/src/calng/AgipdCorrection.py index 6ad07eea6df8bd700150019c02bd4a864bbf5475..4d56de0c8f79cd894e5d567367bf2efb58c68423 100644 --- a/src/calng/AgipdCorrection.py +++ b/src/calng/AgipdCorrection.py @@ -383,6 +383,7 @@ class AgipdCalcatFriend(calcat_utils.BaseCalcatFriend): .assignmentOptional() .defaultValue("ADAPTIVE_GAIN") .options(",".join(gain_mode.name for gain_mode in AgipdGainMode)) + .reconfigurable() .commit(), DOUBLE_ELEMENT(schema) @@ -395,6 +396,7 @@ class AgipdCalcatFriend(calcat_utils.BaseCalcatFriend): managed_keys.add(f"{param_prefix}.acquisitionRate") managed_keys.add(f"{param_prefix}.gainSetting") managed_keys.add(f"{param_prefix}.photonEnergy") + managed_keys.add(f"{param_prefix}.gainMode") managed_keys.add(f"{param_prefix}.integrationTime") calcat_utils.add_status_schema_from_enum(schema, status_prefix, AgipdConstants) @@ -414,7 +416,7 @@ class AgipdCalcatFriend(calcat_utils.BaseCalcatFriend): gain_mode = AgipdGainMode[self._get_param("gainMode")] if gain_mode is not AgipdGainMode.ADAPTIVE_GAIN: - res["Gain Mode"] = gain_mode.value + res["Gain Mode"] = 1 # TODO: make configurable whether or not to include gain setting? res["Gain Setting"] = self._get_param("gainSetting") @@ -773,6 +775,10 @@ class AgipdCorrection(BaseCorrection): update = self._prereconfigure_update_hash + if update.has("constantParameters.gainMode"): + self.gain_mode = AgipdGainMode[update["constantParameters.gainMode"]] + self._update_buffers() + if update.has("corrections.gainXray.gGainValue"): self.kernel_runner.set_g_gain_value( self.get("corrections.gainXray.gGainValue")