From 59a7a462ab38244d56133d549351a08cd8dcfbce Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 17 Oct 2019 17:09:01 +0200 Subject: [PATCH] python --- python/sls_detector/experimental.py | 63 ++++++++++++----------------- python/src/experimental.cpp | 37 +++++++++++++++-- 2 files changed, 59 insertions(+), 41 deletions(-) diff --git a/python/sls_detector/experimental.py b/python/sls_detector/experimental.py index 1f37c49e4..db646c457 100755 --- a/python/sls_detector/experimental.py +++ b/python/sls_detector/experimental.py @@ -56,9 +56,17 @@ class ExperimentalDetector(CppDetectorApi): def __len__(self): return self.size() + def __repr__(self): + return '{}(id = {})'.format(self.__class__.__name__, + self.getShmId()) + + def free(self): self.freeSharedMemory() + + + @property def config(self): return NotImplementedError("config is set only") @@ -109,6 +117,14 @@ class ExperimentalDetector(CppDetectorApi): def detector_type(self): return element_if_equal(self.getDetectorType()) + @property + def dr(self): + return element_if_equal(self.getDynamicRange()) + + @dr.setter + def dr(self, dr): + self.setDynamicRange(dr) + @property def module_geometry(self): return to_geo(self.getModuleGeometry()) @@ -175,44 +191,9 @@ class ExperimentalDetector(CppDetectorApi): self.setPeriod(t) else: self.setPeriod(dt.timedelta(seconds=t)) - # Acq + - @property - def busy(self): - """ - Checks if the detector is acquiring. Can also be set but should only be used if the acquire fails and - leaves the detector with busy == True - - .. note :: - - Only works when the measurement is launched using acquire, not with status start! - - Returns - -------- - bool - :py:obj:`True` if the detector is acquiring otherwise :py:obj:`False` - - Examples - ---------- - - :: - - d.busy - >> True - - #If the detector is stuck reset by: - d.busy = False - - - """ - return self.getAcquiringFlag() - - @busy.setter - def busy(self, value): - self.setAcquiringFlag(value) - - # Configuration # Time @@ -429,4 +410,12 @@ class ExperimentalDetector(CppDetectorApi): @zmqip.setter def zmqip(self, ip): - self.setClientZmqIp(ip) \ No newline at end of file + self.setClientZmqIp(ip) + + @property + def vhighvoltage(self): + return element_if_equal(self.getHighVoltage()) + + @vhighvoltage.setter + def vhighvoltage(self, v): + self.setHighVoltage(v) \ No newline at end of file diff --git a/python/src/experimental.cpp b/python/src/experimental.cpp index 7b49d9020..707787626 100644 --- a/python/src/experimental.cpp +++ b/python/src/experimental.cpp @@ -434,9 +434,10 @@ void init_experimental(py::module &m) { py::arg() = Positions{}) .def("getRxPadDeactivatedMode", &Detector::getRxPadDeactivatedMode, py::arg() = Positions{}) - .def("setRxPadDeactivatedMode", &Detector::setRxPadDeactivatedMode, py::arg(), + .def("setRxPadDeactivatedMode", &Detector::setRxPadDeactivatedMode, + py::arg(), py::arg() = Positions{}) + .def("getPartialReset", &Detector::getPartialReset, py::arg() = Positions{}) - .def("getPartialReset", &Detector::getPartialReset, py::arg() = Positions{}) .def("setPartialReset", &Detector::setPartialReset, py::arg(), py::arg() = Positions{}) @@ -454,10 +455,38 @@ void init_experimental(py::module &m) { * Jungfrau Specific * * * * ************************************************/ - .def("getThresholdTemperature", &Detector::getThresholdTemperature, py::arg() = Positions{}) - .def("setThresholdTemperature", &Detector::setThresholdTemperature, py::arg(), + .def("getThresholdTemperature", &Detector::getThresholdTemperature, + py::arg() = Positions{}) + .def("setThresholdTemperature", &Detector::setThresholdTemperature, + py::arg(), py::arg() = Positions{}) + .def("getTemperatureControl", &Detector::getTemperatureControl, + py::arg() = Positions{}) + .def("setTemperatureControl", &Detector::setTemperatureControl, + py::arg(), py::arg() = Positions{}) + .def("getTemperatureEvent", &Detector::getTemperatureEvent, + py::arg() = Positions{}) + .def("resetTemperatureEvent", &Detector::resetTemperatureEvent, py::arg() = Positions{}) + .def("getPowerChip", &Detector::getPowerChip, py::arg() = Positions{}) + .def("setPowerChip", &Detector::setPowerChip, py::arg(), + py::arg() = Positions{}) + .def("getAutoCompDisable", &Detector::getAutoCompDisable, + py::arg() = Positions{}) + .def("setAutoCompDisable", &Detector::setAutoCompDisable, py::arg(), + py::arg() = Positions{}) + + .def("getNumberOfAdditionalStorageCells", + &Detector::getNumberOfAdditionalStorageCells) + .def("setNumberOfAdditionalStorageCells", + &Detector::setNumberOfAdditionalStorageCells) + .def("getStorageCellStart", &Detector::getStorageCellStart, + py::arg() = Positions{}) + .def("setStoragecellStart", &Detector::setStoragecellStart, py::arg(), + py::arg() = Positions{}) + + .def("setStorageCellDelay", &Detector::setStorageCellDelay, py::arg(), + py::arg() = Positions{}) // Bits and registers .def("setBit", &Detector::setBit, py::arg(), py::arg(),