From f4141f0dbf8d98f1d1591c66ccd147099019afc7 Mon Sep 17 00:00:00 2001 From: appel_c Date: Fri, 1 Mar 2024 13:03:56 +0100 Subject: [PATCH] fix: fix bug in computation of negative data within SimMonitor --- ophyd_devices/sim/sim_data.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ophyd_devices/sim/sim_data.py b/ophyd_devices/sim/sim_data.py index 8db2e72..857225b 100644 --- a/ophyd_devices/sim/sim_data.py +++ b/ophyd_devices/sim/sim_data.py @@ -423,7 +423,7 @@ class SimulatedDataMonitor(SimulatedDataBase): if compute_readback: method = self._compute value = self.execute_simulation_method(method=method, signal_name=signal_name) - value = self.bit_depth(value) + value = self.bit_depth(np.max(value, 0)) self.update_sim_state(signal_name, value) def _compute(self, *args, **kwargs) -> int: @@ -453,12 +453,12 @@ class SimulatedDataMonitor(SimulatedDataBase): int: Value with added noise. """ if noise == NoiseType.POISSON: - v = np.ceil(np.random.poisson(v)).astype(int) + v = np.random.poisson(v) return v elif noise == NoiseType.UNIFORM: - noise = np.ceil(np.random.uniform(0, 1) * noise_multiplier).astype(int) - v += noise * (np.random.randint(0, 2) * 2 - 1) - return v if v > 0 else 0 + noise = np.random.uniform(-1, 1) * noise_multiplier + v += noise + return v return v