mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-11 12:27:14 +02:00
more tests
This commit is contained in:
@ -7,3 +7,5 @@ from _sls_detector import DetectorApi
|
||||
|
||||
import _sls_detector
|
||||
runStatus = _sls_detector.slsDetectorDefs.runStatus
|
||||
detectorType = _sls_detector.slsDetectorDefs.detectorType
|
||||
detectorSettings = _sls_detector.slsDetectorDefs.detectorSettings
|
||||
|
@ -3,9 +3,11 @@ from _sls_detector import slsDetectorDefs
|
||||
|
||||
runStatus = slsDetectorDefs.runStatus
|
||||
from .utils import element_if_equal, all_equal
|
||||
from .utils import Geometry, to_geo
|
||||
import datetime as dt
|
||||
|
||||
from functools import wraps
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
def freeze(cls):
|
||||
@ -52,9 +54,15 @@ class ExperimentalDetector(CppDetectorApi):
|
||||
|
||||
# CONFIGURATION
|
||||
|
||||
def __len__(self):
|
||||
return self.size()
|
||||
|
||||
def free(self):
|
||||
self.freeSharedMemory()
|
||||
|
||||
@property
|
||||
def hostname(self):
|
||||
return element_if_equal(self.getHostname())
|
||||
return self.getHostname()
|
||||
|
||||
@hostname.setter
|
||||
def hostname(self, hostnames):
|
||||
@ -69,6 +77,39 @@ class ExperimentalDetector(CppDetectorApi):
|
||||
def detectorversion(self):
|
||||
return element_if_equal(self.getFirmwareVersion())
|
||||
|
||||
@property
|
||||
def detector_type(self):
|
||||
return element_if_equal(self.getDetectorType())
|
||||
|
||||
@property
|
||||
def module_geometry(self):
|
||||
return to_geo(self.getModuleGeometry())
|
||||
|
||||
@property
|
||||
def module_size(self):
|
||||
ms = [to_geo(item) for item in self.getModuleSize()]
|
||||
return element_if_equal(ms)
|
||||
|
||||
@property
|
||||
def detector_size(self):
|
||||
return to_geo(self.getDetectorSize())
|
||||
|
||||
@property
|
||||
def settings(self):
|
||||
return element_if_equal(self.getSettings())
|
||||
|
||||
@settings.setter
|
||||
def settings(self, value):
|
||||
self.setSettings(value)
|
||||
|
||||
@property
|
||||
def frames(self):
|
||||
return element_if_equal(self.getNumberOfFrames())
|
||||
|
||||
@frames.setter
|
||||
def frames(self, n_frames):
|
||||
self.setNumberOfFrames(n_frames)
|
||||
|
||||
# Acq
|
||||
@property
|
||||
def rx_status(self):
|
||||
@ -178,7 +219,10 @@ class ExperimentalDetector(CppDetectorApi):
|
||||
|
||||
@exptime.setter
|
||||
def exptime(self, t):
|
||||
self.setExptime(dt.timedelta(seconds=t))
|
||||
if isinstance(t, dt.timedelta):
|
||||
self.setExptime(t)
|
||||
else:
|
||||
self.setExptime(dt.timedelta(seconds=t))
|
||||
|
||||
@property
|
||||
def subexptime(self):
|
||||
@ -187,7 +231,10 @@ class ExperimentalDetector(CppDetectorApi):
|
||||
|
||||
@subexptime.setter
|
||||
def subexptime(self, t):
|
||||
self.setSubExptime(dt.timedelta(seconds=t))
|
||||
if isinstance(t, dt.timedelta):
|
||||
self.setSubExptime(t)
|
||||
else:
|
||||
self.setSubExptime(dt.timedelta(seconds=t))
|
||||
|
||||
@property
|
||||
def period(self):
|
||||
@ -196,5 +243,8 @@ class ExperimentalDetector(CppDetectorApi):
|
||||
|
||||
@period.setter
|
||||
def period(self, t):
|
||||
self.setPeriod(dt.timedelta(seconds=t))
|
||||
if isinstance(t, dt.timedelta):
|
||||
self.setPeriod(t)
|
||||
else:
|
||||
self.setPeriod(dt.timedelta(seconds=t))
|
||||
|
||||
|
@ -2,7 +2,16 @@
|
||||
Utility functions that are useful for testing and troubleshooting
|
||||
but not directly used in controlling the detector
|
||||
"""
|
||||
from collections import namedtuple
|
||||
import _sls_detector #C++ lib
|
||||
|
||||
Geometry = namedtuple('Geometry', ['x', 'y'])
|
||||
|
||||
def to_geo(value):
|
||||
if isinstance(value, _sls_detector.xy):
|
||||
return Geometry(x = value.x, y = value.y)
|
||||
else:
|
||||
raise ValueError("Can only convert sls_detector.xy")
|
||||
|
||||
def all_equal(mylist):
|
||||
"""If all elements are equal return true otherwise false"""
|
||||
|
Reference in New Issue
Block a user