ultrasound.PulseEcho: fix issue with roi intervals

now it should be time +- 0.5 * size
This commit is contained in:
zolliker 2025-03-31 17:24:21 +02:00 committed by FORCED_AUTHOR
parent 0ef484e082
commit e0ef6047e2

View File

@ -54,7 +54,7 @@ class Roi(Readable):
q = Attached(mandatory=False) # amplitude Readable q = Attached(mandatory=False) # amplitude Readable
value = Parameter('i, q', TupleOf(FloatRange(), FloatRange()), default=(0, 0)) 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) size = Parameter('interval (symmetric around time)', FloatRange(unit='nsec'), readonly=False)
enable = Parameter('calculate this roi', BoolType(), readonly=False, default=True) enable = Parameter('calculate this roi', BoolType(), readonly=False, default=True)
pollinterval = Parameter(export=False) pollinterval = Parameter(export=False)
@ -64,22 +64,20 @@ class Roi(Readable):
def initModule(self): def initModule(self):
super().initModule() super().initModule()
self.main.register_roi(self) self.main.register_roi(self)
self.calc_interval()
def calc_interval(self): @property
self.interval = (self.time - 0.5 * self.size, self.time + 0.5 * self.size) def interval(self):
return self.time - 0.5 * self.size, self.time + 0.5 * self.size
def read_status(self): def read_status(self):
return (IDLE, '') if self.enable else (DISABLED, 'disabled') return (IDLE, '') if self.enable else (DISABLED, 'disabled')
def write_time(self, value): def write_time(self, value):
self.time = value self.time = value
self.calc_interval()
return Done return Done
def write_size(self, value): def write_size(self, value):
self.size = value self.size = value
self.calc_interval()
return Done return Done
@ -295,7 +293,7 @@ class PulseEcho(Base, Readable):
return return
gates, curves = data.gates_and_curves( gates, curves = data.gates_and_curves(
freq, (self.time, self.time + self.size), 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): for i, roi in enumerate(roilist):
a = gates[i][0] a = gates[i][0]
b = gates[i][1] b = gates[i][1]