mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-11 04:17:15 +02:00
python commands
This commit is contained in:
@ -244,18 +244,17 @@ class Detector {
|
||||
|
||||
std::vector<double> getRateCorrection();
|
||||
|
||||
|
||||
|
||||
void setPatternLoops(uint64_t level, uint64_t start, uint64_t stop,
|
||||
uint64_t n, int detPos) {
|
||||
void setPatternLoops(int level, int start, int stop,
|
||||
int n, int detPos) {
|
||||
det.setPatternLoops(level, start, stop, n, detPos);
|
||||
}
|
||||
|
||||
|
||||
std::array<uint64_t, 3> getPatternLoops(uint64_t level, int detPos) {
|
||||
return det.getPatternLoops(level, detPos);
|
||||
}
|
||||
|
||||
void setPatternWord(int addr, uint64_t word, int detPos){
|
||||
void setPatternWord(int addr, uint64_t word, int detPos) {
|
||||
det.setPatternWord(addr, word, detPos);
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include <pybind11/operators.h>
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <pybind11/stl.h>
|
||||
|
||||
@ -6,8 +7,7 @@
|
||||
|
||||
namespace py = pybind11;
|
||||
|
||||
PYBIND11_MODULE(_sls_detector, m)
|
||||
{
|
||||
PYBIND11_MODULE(_sls_detector, m) {
|
||||
m.doc() = R"pbdoc(
|
||||
C/C++ API
|
||||
-----------------------
|
||||
@ -45,8 +45,7 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
>> 10
|
||||
|
||||
)pbdoc");
|
||||
DetectorApi
|
||||
.def(py::init<int>())
|
||||
DetectorApi.def(py::init<int>())
|
||||
.def("freeSharedMemory", &Detector::freeSharedMemory)
|
||||
.def("getMultiDetectorId", &Detector::getMultiDetectorId)
|
||||
.def("acq", &Detector::acquire)
|
||||
@ -129,10 +128,16 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("startReceiver", &Detector::startReceiver)
|
||||
.def("stopReceiver", &Detector::stopReceiver)
|
||||
|
||||
.def("getFilePath", (std::string(Detector::*)()) & Detector::getFilePath, "Using multiSlsDetector")
|
||||
.def("getFilePath", (std::string(Detector::*)(int)) & Detector::getFilePath, "File path for individual detector")
|
||||
.def("setFilePath", (void (Detector::*)(std::string)) & Detector::setFilePath)
|
||||
.def("setFilePath", (void (Detector::*)(std::string, int)) & Detector::setFilePath)
|
||||
.def("getFilePath",
|
||||
(std::string(Detector::*)()) & Detector::getFilePath,
|
||||
"Using multiSlsDetector")
|
||||
.def("getFilePath",
|
||||
(std::string(Detector::*)(int)) & Detector::getFilePath,
|
||||
"File path for individual detector")
|
||||
.def("setFilePath",
|
||||
(void (Detector::*)(std::string)) & Detector::setFilePath)
|
||||
.def("setFilePath",
|
||||
(void (Detector::*)(std::string, int)) & Detector::setFilePath)
|
||||
|
||||
.def("setFileName", &Detector::setFileName)
|
||||
.def("getFileName", &Detector::getFileName)
|
||||
@ -157,7 +162,6 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("getDelay", &Detector::getDelay)
|
||||
.def("setDelay", &Detector::setDelay)
|
||||
|
||||
|
||||
.def("setStoragecellStart", &Detector::setStoragecellStart)
|
||||
.def("getStoragecellStart", &Detector::getStoragecellStart)
|
||||
.def("setNumberOfStorageCells", &Detector::setNumberOfStorageCells)
|
||||
@ -178,7 +182,7 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("getRxDataStreamStatus", &Detector::getRxDataStreamStatus)
|
||||
.def("setRxDataStreamStatus", &Detector::setRxDataStreamStatus)
|
||||
|
||||
//Network stuff
|
||||
// Network stuff
|
||||
.def("getReceiverHostname", &Detector::getReceiverHostname)
|
||||
.def("setReceiverHostname", &Detector::setReceiverHostname)
|
||||
.def("getReceiverStreamingPort", &Detector::getReceiverStreamingPort)
|
||||
@ -191,11 +195,12 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("getReceiverUDPIP", &Detector::getReceiverUDPIP)
|
||||
.def("getReceiverUDPMAC", &Detector::getReceiverUDPMAC)
|
||||
.def("setReceiverUDPMAC", &Detector::setReceiverUDPMAC)
|
||||
|
||||
|
||||
.def("getReceiverPort", &Detector::getReceiverPort)
|
||||
.def("setReceiverPort", &Detector::setReceiverPort)
|
||||
|
||||
.def("configureNetworkParameters", &Detector::configureNetworkParameters)
|
||||
.def("configureNetworkParameters",
|
||||
&Detector::configureNetworkParameters)
|
||||
.def("getDelayFrame", &Detector::getDelayFrame)
|
||||
.def("setDelayFrame", &Detector::setDelayFrame)
|
||||
.def("getDelayLeft", &Detector::getDelayLeft)
|
||||
@ -210,18 +215,21 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("setReceiverFifoDepth", &Detector::setReceiverFifoDepth)
|
||||
.def("getReceiverFifoDepth", &Detector::getReceiverFifoDepth)
|
||||
|
||||
.def("getReceiverFrameDiscardPolicy", &Detector::getReceiverFrameDiscardPolicy)
|
||||
.def("setReceiverFramesDiscardPolicy", &Detector::setReceiverFramesDiscardPolicy)
|
||||
.def("getReceiverFrameDiscardPolicy",
|
||||
&Detector::getReceiverFrameDiscardPolicy)
|
||||
.def("setReceiverFramesDiscardPolicy",
|
||||
&Detector::setReceiverFramesDiscardPolicy)
|
||||
.def("setPartialFramesPadding", &Detector::setPartialFramesPadding)
|
||||
.def("getPartialFramesPadding", &Detector::getPartialFramesPadding)
|
||||
|
||||
.def("getUserDetails", &Detector::getUserDetails)
|
||||
.def("isClientAndDetectorCompatible", &Detector::isClientAndDetectorCompatible)
|
||||
.def("isClientAndReceiverCompatible", &Detector::isClientAndReceiverCompatible)
|
||||
.def("isClientAndDetectorCompatible",
|
||||
&Detector::isClientAndDetectorCompatible)
|
||||
.def("isClientAndReceiverCompatible",
|
||||
&Detector::isClientAndReceiverCompatible)
|
||||
.def("getMeasuredPeriod", &Detector::getMeasuredPeriod)
|
||||
.def("getMeasuredSubPeriod", &Detector::getMeasuredSubPeriod)
|
||||
|
||||
|
||||
.def("setFileWrite", &Detector::setFileWrite)
|
||||
.def("getFileWrite", &Detector::getFileWrite)
|
||||
.def("setFileOverWrite", &Detector::setFileOverWrite)
|
||||
@ -231,13 +239,15 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("setNumberOfFrames", &Detector::setNumberOfFrames)
|
||||
.def("getNumberOfFrames", &Detector::getNumberOfFrames)
|
||||
|
||||
//Overloaded calls
|
||||
.def("getFramesCaughtByReceiver", (int (Detector::*)() ) & Detector::getFramesCaughtByReceiver)
|
||||
.def("getFramesCaughtByReceiver", (int (Detector::*)(int)) & Detector::getFramesCaughtByReceiver)
|
||||
|
||||
// Overloaded calls
|
||||
.def("getFramesCaughtByReceiver",
|
||||
(int (Detector::*)()) & Detector::getFramesCaughtByReceiver)
|
||||
.def("getFramesCaughtByReceiver",
|
||||
(int (Detector::*)(int)) & Detector::getFramesCaughtByReceiver)
|
||||
|
||||
.def("resetFramesCaught", &Detector::resetFramesCaught)
|
||||
.def("getReceiverCurrentFrameIndex", &Detector::getReceiverCurrentFrameIndex)
|
||||
.def("getReceiverCurrentFrameIndex",
|
||||
&Detector::getReceiverCurrentFrameIndex)
|
||||
.def("getGapPixels", &Detector::getGapPixels)
|
||||
.def("setGapPixels", &Detector::setGapPixels)
|
||||
.def("getFlippedDataX", &Detector::getFlippedDataX)
|
||||
@ -264,39 +274,43 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
|
||||
.def("getPatternLoops", &Detector::getPatternLoops)
|
||||
.def("setPatternLoops", &Detector::setPatternLoops)
|
||||
.def("setPatternWord", &Detector::setPatternWord)
|
||||
.def("setPatternWord", &Detector::setPatternWord, py::arg("addr"), py::arg("word"), py::arg("det_id") = -1 )
|
||||
|
||||
.def("getImageSize", &Detector::getImageSize)
|
||||
.def("setImageSize", &Detector::setImageSize)
|
||||
.def("getNumberOfDetectors", &Detector::getNumberOfDetectors)
|
||||
.def("getDetectorGeometry", &Detector::getDetectorGeometry);
|
||||
|
||||
// Experimental API to use the multi directly and inherit from to reduce
|
||||
// code duplication need to investigate how to handle documentation
|
||||
py::class_<multiSlsDetector> multiDetectorApi(m, "multiDetectorApi");
|
||||
multiDetectorApi.def(py::init<int>())
|
||||
.def("acquire", &multiSlsDetector::acquire)
|
||||
.def("_setOnline", &multiSlsDetector::setOnline, py::arg("flag") = -1,
|
||||
py::arg("det_id") = -1)
|
||||
|
||||
|
||||
|
||||
//Experimental API to use the multi directly and inherit from to reduce
|
||||
//code duplication need to investigate how to handle documentation
|
||||
py::class_<multiSlsDetector> multiDetectorApi(m, "multiDetectorApi");
|
||||
multiDetectorApi
|
||||
.def(py::init<int>())
|
||||
.def_property("busy",
|
||||
py::cpp_function(&multiSlsDetector::getAcquiringFlag),
|
||||
py::cpp_function(&multiSlsDetector::setAcquiringFlag))
|
||||
.def_property_readonly("rx_tcpport",
|
||||
py::cpp_function(&multiSlsDetector::getReceiverPort))
|
||||
.def_property_readonly("detectornumber",
|
||||
py::cpp_function(&multiSlsDetector::getDetectorNumber))
|
||||
.def_property_readonly(
|
||||
"hostname", py::cpp_function(&multiSlsDetector::getHostname,
|
||||
py::arg(), py::arg("det_id") = -1))
|
||||
.def_property("busy",
|
||||
py::cpp_function(&multiSlsDetector::getAcquiringFlag),
|
||||
py::cpp_function(&multiSlsDetector::setAcquiringFlag))
|
||||
.def_property_readonly(
|
||||
"rx_tcpport", py::cpp_function(&multiSlsDetector::getReceiverPort))
|
||||
.def_property_readonly(
|
||||
"detectornumber",
|
||||
py::cpp_function(&multiSlsDetector::getDetectorNumber))
|
||||
.def("_getReceiverUDPIP", &multiSlsDetector::getReceiverUDPIP)
|
||||
.def("_setReceiverUDPIP", &multiSlsDetector::setReceiverUDPIP)
|
||||
.def("_getPatternLoops", &multiSlsDetector::getPatternLoops)
|
||||
.def("_setPatternLoops", &multiSlsDetector::setPatternLoops)
|
||||
.def("_setPatternWord", &multiSlsDetector::setPatternWord)
|
||||
;
|
||||
.def("getPatternLoops", &multiSlsDetector::getPatternLoops,
|
||||
py::arg("level"), py::arg("det_id") = -1)
|
||||
.def("setPatternLoops", &multiSlsDetector::setPatternLoops)
|
||||
.def("setPatternWord", &multiSlsDetector::setPatternWord,
|
||||
py::arg("addr"), py::arg("word"), py::arg("det_id") = -1);
|
||||
|
||||
py::module io = m.def_submodule("io", "Submodule for io");
|
||||
io.def("read_my302_file", &read_my302_file, "some");
|
||||
|
||||
|
||||
#ifdef VERSION_INFO
|
||||
m.attr("__version__") = VERSION_INFO;
|
||||
#else
|
||||
|
Reference in New Issue
Block a user