This commit is contained in:
Erik Frojdh 2019-08-16 10:46:42 +02:00
parent 947252c852
commit 336f8ceb50
4 changed files with 14 additions and 41 deletions

View File

@ -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<int, int> getImageSize() {
std::pair<int, int> 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<int, int> getDetectorGeometry() {
std::pair<int, int> g;
det.getNumberOfDetectors(g.first, g.second);
return g;
}
int getNumberOfDetectors() { return det.size(); }

View File

@ -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

View File

@ -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);

View File

@ -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:"