mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 11:20:04 +02:00
gatedelay
This commit is contained in:
parent
0fca9fba79
commit
20bfe92573
@ -8,7 +8,7 @@ dacIndex = slsDetectorDefs.dacIndex
|
||||
detectorType = slsDetectorDefs.detectorType
|
||||
|
||||
from .utils import element_if_equal, all_equal, get_set_bits, list_to_bitmask
|
||||
from .utils import Geometry, to_geo, element, reduce_time
|
||||
from .utils import Geometry, to_geo, element, reduce_time, is_iterable
|
||||
from .registers import Register, Adc_register
|
||||
import datetime as dt
|
||||
|
||||
@ -184,6 +184,26 @@ class Detector(CppDetectorApi):
|
||||
else:
|
||||
self.setExptime(dt.timedelta(seconds=t))
|
||||
|
||||
@property
|
||||
def gatedelay(self):
|
||||
return reduce_time(self.getGateDelayForAllGates())
|
||||
|
||||
@gatedelay.setter
|
||||
def gatedelay(self, value):
|
||||
if is_iterable(value):
|
||||
if len(value) == 3:
|
||||
for i,v in enumerate(value):
|
||||
if isinstance(v, dt.timedelta):
|
||||
self.setGateDelay(i, v)
|
||||
else:
|
||||
self.setGateDelay(i, dt.timedelta(seconds = v))
|
||||
else:
|
||||
if isinstance(value, dt.timedelta):
|
||||
self.setGateDelay(-1, value)
|
||||
else:
|
||||
self.setGateDelay(-1, dt.timedelta(seconds=value))
|
||||
|
||||
|
||||
@property
|
||||
def subexptime(self):
|
||||
res = self.getSubExptime()
|
||||
|
@ -11,7 +11,7 @@ import datetime as dt
|
||||
|
||||
Geometry = namedtuple('Geometry', ['x', 'y'])
|
||||
|
||||
def iterable(item):
|
||||
def is_iterable(item):
|
||||
try:
|
||||
iter(item)
|
||||
except TypeError:
|
||||
@ -48,7 +48,7 @@ def all_equal(mylist):
|
||||
|
||||
def element_if_equal(mylist):
|
||||
"""If all elements are equal return only one element"""
|
||||
if not iterable(mylist):
|
||||
if not is_iterable(mylist):
|
||||
return mylist
|
||||
|
||||
if all_equal(mylist):
|
||||
@ -63,6 +63,8 @@ def reduce_time(mylist):
|
||||
res = element_if_equal(element_if_equal(mylist))
|
||||
if isinstance(res, dt.timedelta):
|
||||
return res.total_seconds()
|
||||
elif isinstance(res[0], list):
|
||||
return [[item.total_seconds() for item in subl] for subl in res]
|
||||
else:
|
||||
return [r.total_seconds() for r in res]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user