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
|
detectorType = slsDetectorDefs.detectorType
|
||||||
|
|
||||||
from .utils import element_if_equal, all_equal, get_set_bits, list_to_bitmask
|
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
|
from .registers import Register, Adc_register
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
|
|
||||||
@ -184,6 +184,26 @@ class Detector(CppDetectorApi):
|
|||||||
else:
|
else:
|
||||||
self.setExptime(dt.timedelta(seconds=t))
|
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
|
@property
|
||||||
def subexptime(self):
|
def subexptime(self):
|
||||||
res = self.getSubExptime()
|
res = self.getSubExptime()
|
||||||
|
@ -11,7 +11,7 @@ import datetime as dt
|
|||||||
|
|
||||||
Geometry = namedtuple('Geometry', ['x', 'y'])
|
Geometry = namedtuple('Geometry', ['x', 'y'])
|
||||||
|
|
||||||
def iterable(item):
|
def is_iterable(item):
|
||||||
try:
|
try:
|
||||||
iter(item)
|
iter(item)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
@ -48,7 +48,7 @@ def all_equal(mylist):
|
|||||||
|
|
||||||
def element_if_equal(mylist):
|
def element_if_equal(mylist):
|
||||||
"""If all elements are equal return only one element"""
|
"""If all elements are equal return only one element"""
|
||||||
if not iterable(mylist):
|
if not is_iterable(mylist):
|
||||||
return mylist
|
return mylist
|
||||||
|
|
||||||
if all_equal(mylist):
|
if all_equal(mylist):
|
||||||
@ -63,6 +63,8 @@ def reduce_time(mylist):
|
|||||||
res = element_if_equal(element_if_equal(mylist))
|
res = element_if_equal(element_if_equal(mylist))
|
||||||
if isinstance(res, dt.timedelta):
|
if isinstance(res, dt.timedelta):
|
||||||
return res.total_seconds()
|
return res.total_seconds()
|
||||||
|
elif isinstance(res[0], list):
|
||||||
|
return [[item.total_seconds() for item in subl] for subl in res]
|
||||||
else:
|
else:
|
||||||
return [r.total_seconds() for r in res]
|
return [r.total_seconds() for r in res]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user