mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 19:30:03 +02:00
WIP
This commit is contained in:
parent
947252c852
commit
336f8ceb50
@ -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(); }
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
||||
|
@ -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:"
|
||||
|
Loading…
x
Reference in New Issue
Block a user