From e0ef6047e24346dbf55ba9d159ce5740504d9f03 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 31 Mar 2025 17:24:21 +0200 Subject: [PATCH] ultrasound.PulseEcho: fix issue with roi intervals now it should be time +- 0.5 * size --- frappy_psi/ultrasound.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/frappy_psi/ultrasound.py b/frappy_psi/ultrasound.py index c7a645a..a142fb5 100644 --- a/frappy_psi/ultrasound.py +++ b/frappy_psi/ultrasound.py @@ -54,7 +54,7 @@ class Roi(Readable): q = Attached(mandatory=False) # amplitude Readable value = Parameter('i, q', TupleOf(FloatRange(), FloatRange()), default=(0, 0)) - time = Parameter('start time', FloatRange(unit='nsec'), readonly=False) + time = Parameter('mid time', FloatRange(unit='nsec'), readonly=False) size = Parameter('interval (symmetric around time)', FloatRange(unit='nsec'), readonly=False) enable = Parameter('calculate this roi', BoolType(), readonly=False, default=True) pollinterval = Parameter(export=False) @@ -64,22 +64,20 @@ class Roi(Readable): def initModule(self): super().initModule() self.main.register_roi(self) - self.calc_interval() - def calc_interval(self): - self.interval = (self.time - 0.5 * self.size, self.time + 0.5 * self.size) + @property + def interval(self): + return self.time - 0.5 * self.size, self.time + 0.5 * self.size def read_status(self): return (IDLE, '') if self.enable else (DISABLED, 'disabled') def write_time(self, value): self.time = value - self.calc_interval() return Done def write_size(self, value): self.size = value - self.calc_interval() return Done @@ -295,7 +293,7 @@ class PulseEcho(Base, Readable): return gates, curves = data.gates_and_curves( freq, (self.time, self.time + self.size), - [(r.time, r.time + r.size) for r in roilist], self.bw) + [r.interval for r in roilist], self.bw) for i, roi in enumerate(roilist): a = gates[i][0] b = gates[i][1]