From 336f8ceb50b258c93420d98e21b8c536b60e0ffc Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Fri, 16 Aug 2019 10:46:42 +0200 Subject: [PATCH] WIP --- python/src/DetectorPythonInterface.h | 22 ++------------------ python/src/experimental.cpp | 7 ++----- python/src/main.cpp | 10 +++------ slsDetectorSoftware/src/multiSlsDetector.cpp | 16 +++++++------- 4 files changed, 14 insertions(+), 41 deletions(-) diff --git a/python/src/DetectorPythonInterface.h b/python/src/DetectorPythonInterface.h index 9f8b3efc0..58993377d 100755 --- a/python/src/DetectorPythonInterface.h +++ b/python/src/DetectorPythonInterface.h @@ -20,22 +20,8 @@ class DetectorPythonInterface { int getMultiDetectorId() { return multi_detector_id; } - // get image size as [nrow, ncols] return as a pair of ints - std::pair getImageSize() { - std::pair image_size{0, 0}; - image_size.first = det.getMaxNumberOfChannelsPerDetector( - slsDetectorDefs::dimension::Y); - image_size.second = det.getMaxNumberOfChannelsPerDetector( - slsDetectorDefs::dimension::X); - return image_size; - } - void setImageSize(const int rows, const int cols) { - det.setMaxNumberOfChannelsPerDetector(slsDetectorDefs::dimension::Y, - rows); - det.setMaxNumberOfChannelsPerDetector(slsDetectorDefs::dimension::X, - cols); - } + // blocking command, acquire set number of frames void acquire() { det.acquire(); } @@ -150,11 +136,7 @@ class DetectorPythonInterface { slsDetectorDefs::dacIndex dacNameToEnum(std::string dac_name); - std::pair getDetectorGeometry() { - std::pair g; - det.getNumberOfDetectors(g.first, g.second); - return g; - } + int getNumberOfDetectors() { return det.size(); } diff --git a/python/src/experimental.cpp b/python/src/experimental.cpp index 22355f8be..7f7168876 100644 --- a/python/src/experimental.cpp +++ b/python/src/experimental.cpp @@ -18,16 +18,13 @@ void init_experimental(py::module &m) { // Acq related .def("acquire", &Detector::acquire) - .def("startReceiver", &Detector::startReceiver, py::arg() = Positions{}) - .def("stopReceiver", &Detector::stopReceiver, py::arg() = Positions{}) - .def("getAcquiringFlag", &Detector::getAcquiringFlag) - .def("setAcquiringFlag", &Detector::setAcquiringFlag) + .def("clearAcquiringFlag", &Detector::clearAcquiringFlag) .def("getReceiverStatus", &Detector::getReceiverStatus, py::arg() = Positions{}) // Configuration .def("free", &Detector::freeSharedMemory) - .def("setConfig", &Detector::setConfig) + .def("loadConfig", &Detector::loadConfig) .def("getHostname", &Detector::getHostname, py::arg() = Positions{}) // Bits and registers diff --git a/python/src/main.cpp b/python/src/main.cpp index 90cb37e8d..bf0ca5d39 100755 --- a/python/src/main.cpp +++ b/python/src/main.cpp @@ -332,14 +332,10 @@ PYBIND11_MODULE(_sls_detector, m) { py::arg("level"), py::arg("duration"), py::arg("det_id") = -1) .def("getPatternWaitTime", &DetectorPythonInterface::getPatternWaitTime, - py::arg("level"), py::arg("det_id") = -1) + py::arg("level"), py::arg("det_id") = -1); + + - .def("getImageSize", &DetectorPythonInterface::getImageSize) - .def("setImageSize", &DetectorPythonInterface::setImageSize) - .def("getNumberOfDetectors", - &DetectorPythonInterface::getNumberOfDetectors) - .def("getDetectorGeometry", - &DetectorPythonInterface::getDetectorGeometry); diff --git a/slsDetectorSoftware/src/multiSlsDetector.cpp b/slsDetectorSoftware/src/multiSlsDetector.cpp index 4424bc84d..0be45641c 100755 --- a/slsDetectorSoftware/src/multiSlsDetector.cpp +++ b/slsDetectorSoftware/src/multiSlsDetector.cpp @@ -429,25 +429,23 @@ void multiSlsDetector::addSlsDetector(const std::string &hostname) { void multiSlsDetector::updateDetectorSize() { FILE_LOG(logDEBUG) << "Updating Multi-Detector Size: " << size(); - slsDetectorDefs::xy res = detectors[0]->getNumberOfChannels(); - int my = res.x; - int mx = res.y; - + const slsDetectorDefs::xy det_size = detectors[0]->getNumberOfChannels(); + int maxy = multi_shm()->maxNumberOfChannels[Y]; if (maxy == 0) { - maxy = my * size(); + maxy = det_size.y * size(); } - int ndety = maxy / my; + int ndety = maxy / det_size.y; int ndetx = size() / ndety; - if ((maxy % my) > 0) { + if ((maxy % det_size.y) > 0) { ++ndetx; } multi_shm()->numberOfDetector[X] = ndetx; multi_shm()->numberOfDetector[Y] = ndety; - multi_shm()->numberOfChannels[X] = mx * ndetx; - multi_shm()->numberOfChannels[Y] = my * ndety; + multi_shm()->numberOfChannels[X] = det_size.x * ndetx; + multi_shm()->numberOfChannels[Y] = det_size.y * ndety; FILE_LOG(logDEBUG) << "\n\tNumber of Detectors in X direction:"