mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-20 02:40:03 +02:00
conflict resolved
This commit is contained in:
commit
1bc6e7f978
@ -2,27 +2,11 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import numpy as np
|
import numpy as np
|
||||||
sys.path.append(os.path.join(os.getcwd(), 'bin'))
|
sys.path.append(os.path.join(os.getcwd(), 'bin'))
|
||||||
from sls_detector import Eiger
|
from sls_detector import Eiger, Detector
|
||||||
from sls_detector import ExperimentalDetector
|
from sls_detector import ExperimentalDetector
|
||||||
|
|
||||||
from _sls_detector.io import read_my302_file
|
from _sls_detector.io import read_my302_file
|
||||||
|
|
||||||
d = Eiger()
|
d = Detector()
|
||||||
e = ExperimentalDetector()
|
e = ExperimentalDetector()
|
||||||
|
|
||||||
|
|
||||||
# for i in range(200):
|
|
||||||
# a = read_my302_file('/home/l_frojdh/Downloads/run_d0_5.raw', i, 24)
|
|
||||||
# print(f'{i}: {(a==5).sum()}')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# a = read_my302_file('/home/l_frojdh/Downloads/run_d0_5.raw', 104, 24)
|
|
||||||
# ncols = 192
|
|
||||||
# start = 600
|
|
||||||
# end = 1800
|
|
||||||
# nrows = end-start
|
|
||||||
# data = np.zeros((nrows, ncols))
|
|
||||||
|
|
||||||
# for i in range(nrows):
|
|
||||||
# data[i, :] = read_ctb_file(f'/home/l_frojdh/mythendata/MoKbZr_30kV60mA_1s_200V_thr{start+i}_1.raw', 8, 24)
|
|
@ -16,6 +16,7 @@ from .errors import DetectorError, DetectorValueError
|
|||||||
from .registers import Register
|
from .registers import Register
|
||||||
from .utils import element_if_equal
|
from .utils import element_if_equal
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
class Detector:
|
class Detector:
|
||||||
"""
|
"""
|
||||||
@ -1358,7 +1359,7 @@ class Detector:
|
|||||||
#TODO! can we make this one function?
|
#TODO! can we make this one function?
|
||||||
@property
|
@property
|
||||||
def patnloop0(self):
|
def patnloop0(self):
|
||||||
return self._api.getPatternLoops(0, -1)
|
return self._api.getPatternLoops(0, -1)[2]
|
||||||
|
|
||||||
@patnloop0.setter
|
@patnloop0.setter
|
||||||
def patnloop0(self, n):
|
def patnloop0(self, n):
|
||||||
@ -1366,7 +1367,7 @@ class Detector:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def patnloop1(self):
|
def patnloop1(self):
|
||||||
return self._api.getPatternLoops(1, -1)
|
return self._api.getPatternLoops(1, -1)[2]
|
||||||
|
|
||||||
@patnloop1.setter
|
@patnloop1.setter
|
||||||
def patnloop1(self, n):
|
def patnloop1(self, n):
|
||||||
@ -1374,18 +1375,143 @@ class Detector:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def patnloop2(self):
|
def patnloop2(self):
|
||||||
return self._api.getPatternLoops(2, -1)
|
return self._api.getPatternLoops(2, -1)[2]
|
||||||
|
|
||||||
@patnloop2.setter
|
@patnloop2.setter
|
||||||
def patnloop2(self, n):
|
def patnloop2(self, n):
|
||||||
self._api.setPatternLoops(2, -1, -1, n, -1)
|
self._api.setPatternLoops(2, -1, -1, n, -1)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patloop0(self):
|
||||||
|
return self._api.getPatternLoops(0)[0:2]
|
||||||
|
|
||||||
|
@patloop0.setter
|
||||||
|
def patloop0(self, value):
|
||||||
|
start, stop = value
|
||||||
|
self._api.setPatternLoops(0, start, stop, -1)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patloop1(self):
|
||||||
|
return self._api.getPatternLoops(1)[0:2]
|
||||||
|
|
||||||
|
@patloop1.setter
|
||||||
|
def patloop1(self, value):
|
||||||
|
start, stop = value
|
||||||
|
self._api.setPatternLoops(1, start, stop, -1)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patloop2(self):
|
||||||
|
return self._api.getPatternLoops(2)[0:2]
|
||||||
|
|
||||||
|
@patloop2.setter
|
||||||
|
def patloop2(self, value):
|
||||||
|
start, stop = value
|
||||||
|
self._api.setPatternLoops(2, start, stop, -1)
|
||||||
|
|
||||||
def setPatternWord(self, addr, word, det_id = -1):
|
def setPatternWord(self, addr, word, det_id = -1):
|
||||||
self._api.setPatternWord(addr, word, det_id)
|
self._api.setPatternWord(addr, word, det_id)
|
||||||
|
|
||||||
def setPatternLoops(self, level, start, stop, n, det_id=-1):
|
def setPatternLoops(self, level, start, stop, n, det_id=-1):
|
||||||
self._api.setPatternLoops(level, start, stop, n, det_id)
|
self._api.setPatternLoops(level, start, stop, n, det_id)
|
||||||
|
|
||||||
|
def getPatternLoops(self, level):
|
||||||
|
return self._api.getPatternLoops(level)
|
||||||
|
|
||||||
|
def getPatternWaitAddr(self, level):
|
||||||
|
return self._api.getPatternWaitAddr(level)
|
||||||
|
|
||||||
|
def setPatternWaitAddr(self, level, addr):
|
||||||
|
self._api.setPatternWaitAddr(level, addr)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patwait0(self):
|
||||||
|
return self._api.getPatternWaitAddr(0)
|
||||||
|
|
||||||
|
@patwait0.setter
|
||||||
|
def patwait0(self, addr):
|
||||||
|
self._api.setPatternWaitAddr(0, addr)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patwait1(self):
|
||||||
|
return self._api.getPatternWaitAddr(1)
|
||||||
|
|
||||||
|
@patwait1.setter
|
||||||
|
def patwait1(self, addr):
|
||||||
|
self._api.setPatternWaitAddr(1, addr)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patwait2(self):
|
||||||
|
return self._api.getPatternWaitAddr(0)
|
||||||
|
|
||||||
|
@patwait2.setter
|
||||||
|
def patwait2(self, addr):
|
||||||
|
self._api.setPatternWaitAddr(2, addr)
|
||||||
|
|
||||||
|
|
||||||
|
def setPatternWaitTime(self, level, duration):
|
||||||
|
self._api.setPatternWaitTime(level, duration)
|
||||||
|
|
||||||
|
def getPatternWaitTime(self, level):
|
||||||
|
return self._api.getPatternWaitTime(level)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patwaittime0(self):
|
||||||
|
return self._api.getPatternWaitTime(0)
|
||||||
|
|
||||||
|
@patwaittime0.setter
|
||||||
|
def patwaittime0(self, duration):
|
||||||
|
self._api.setPatternWaitTime(0, duration)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patwaittime1(self):
|
||||||
|
return self._api.getPatternWaitTime(1)
|
||||||
|
|
||||||
|
@patwaittime1.setter
|
||||||
|
def patwaittime1(self, duration):
|
||||||
|
self._api.setPatternWaitTime(1, duration)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patwaittime2(self):
|
||||||
|
return self._api.getPatternWaitTime(2)
|
||||||
|
|
||||||
|
@patwaittime2.setter
|
||||||
|
def patwaittime2(self, duration):
|
||||||
|
self._api.setPatternWaitTime(2, duration)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patioctrl(self):
|
||||||
|
return self._api.getPatternWord(-1)
|
||||||
|
|
||||||
|
@patioctrl.setter
|
||||||
|
def patioctrl(self, word):
|
||||||
|
self._api.setPatternWord(-1, np.uint64(word))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patlimits(self):
|
||||||
|
return self._api.getPatternLoops(np.uint64(-1),-1)[0:2]
|
||||||
|
|
||||||
|
@patlimits.setter
|
||||||
|
def patlimits(self, value):
|
||||||
|
start, stop = value
|
||||||
|
self._api.setPatternLoops(-1, start, stop, -1)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patword(self):
|
||||||
|
print('Can\'t read')
|
||||||
|
|
||||||
|
@patword.setter
|
||||||
|
def patword(self, value):
|
||||||
|
addr, word = value
|
||||||
|
self._api.setPatternWord(addr, word)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def patclkctrl(self):
|
||||||
|
return self._api.getPatternWord(-2)
|
||||||
|
|
||||||
|
@patclkctrl.setter
|
||||||
|
def patclkctrl(self, value):
|
||||||
|
self._api.setPatternWord(-2, value)
|
||||||
|
|
||||||
|
|
||||||
def free_shared_memory(multi_id=0):
|
def free_shared_memory(multi_id=0):
|
||||||
"""
|
"""
|
||||||
|
@ -4,7 +4,15 @@ from _sls_detector import multiDetectorApi
|
|||||||
class ExperimentalDetector(multiDetectorApi):
|
class ExperimentalDetector(multiDetectorApi):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__(0)
|
super().__init__(0)
|
||||||
|
self.online = True
|
||||||
|
|
||||||
|
@property
|
||||||
|
def online(self):
|
||||||
|
return self._setOnline() == 1
|
||||||
|
|
||||||
|
@online.setter
|
||||||
|
def online(self, value):
|
||||||
|
self._setOnline(value)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def rx_udpip(self):
|
def rx_udpip(self):
|
||||||
|
@ -244,21 +244,40 @@ class Detector {
|
|||||||
|
|
||||||
std::vector<double> getRateCorrection();
|
std::vector<double> getRateCorrection();
|
||||||
|
|
||||||
|
void setPatternLoops(int level, int start, int stop,
|
||||||
|
int n, int detPos) {
|
||||||
void setPatternLoops(uint64_t level, uint64_t start, uint64_t stop,
|
|
||||||
uint64_t n, int detPos) {
|
|
||||||
det.setPatternLoops(level, start, stop, n, detPos);
|
det.setPatternLoops(level, start, stop, n, detPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::array<uint64_t, 3> getPatternLoops(uint64_t level, int detPos) {
|
std::array<uint64_t, 3> getPatternLoops(uint64_t level, int detPos) {
|
||||||
return det.getPatternLoops(level, 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);
|
det.setPatternWord(addr, word, detPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t getPatternWord(int addr, int detPos){
|
||||||
|
return det.setPatternWord(addr, -1, detPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setPatternWaitAddr(int level, int addr, int detPos){
|
||||||
|
det.setPatternWaitAddr(level, addr, detPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
int getPatternWaitAddr(int level, int detPos){
|
||||||
|
return det.setPatternWaitAddr(level, -1, detPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setPatternWaitTime(int level, uint64_t duration, int detPos){
|
||||||
|
det.setPatternWaitTime(level, duration, detPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t getPatternWaitTime(int level, int detPos){
|
||||||
|
return det.setPatternWaitTime(level, -1, detPos);
|
||||||
|
}
|
||||||
|
|
||||||
bool getFlippedDataX(int i) {
|
bool getFlippedDataX(int i) {
|
||||||
return det.getFlippedData(slsDetectorDefs::dimension::X, i);
|
return det.getFlippedData(slsDetectorDefs::dimension::X, i);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#include <pybind11/operators.h>
|
||||||
#include <pybind11/pybind11.h>
|
#include <pybind11/pybind11.h>
|
||||||
#include <pybind11/stl.h>
|
#include <pybind11/stl.h>
|
||||||
|
|
||||||
@ -6,8 +7,7 @@
|
|||||||
|
|
||||||
namespace py = pybind11;
|
namespace py = pybind11;
|
||||||
|
|
||||||
PYBIND11_MODULE(_sls_detector, m)
|
PYBIND11_MODULE(_sls_detector, m) {
|
||||||
{
|
|
||||||
m.doc() = R"pbdoc(
|
m.doc() = R"pbdoc(
|
||||||
C/C++ API
|
C/C++ API
|
||||||
-----------------------
|
-----------------------
|
||||||
@ -45,8 +45,7 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
>> 10
|
>> 10
|
||||||
|
|
||||||
)pbdoc");
|
)pbdoc");
|
||||||
DetectorApi
|
DetectorApi.def(py::init<int>())
|
||||||
.def(py::init<int>())
|
|
||||||
.def("freeSharedMemory", &Detector::freeSharedMemory)
|
.def("freeSharedMemory", &Detector::freeSharedMemory)
|
||||||
.def("getMultiDetectorId", &Detector::getMultiDetectorId)
|
.def("getMultiDetectorId", &Detector::getMultiDetectorId)
|
||||||
.def("acq", &Detector::acquire)
|
.def("acq", &Detector::acquire)
|
||||||
@ -129,10 +128,16 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
.def("startReceiver", &Detector::startReceiver)
|
.def("startReceiver", &Detector::startReceiver)
|
||||||
.def("stopReceiver", &Detector::stopReceiver)
|
.def("stopReceiver", &Detector::stopReceiver)
|
||||||
|
|
||||||
.def("getFilePath", (std::string(Detector::*)()) & Detector::getFilePath, "Using multiSlsDetector")
|
.def("getFilePath",
|
||||||
.def("getFilePath", (std::string(Detector::*)(int)) & Detector::getFilePath, "File path for individual detector")
|
(std::string(Detector::*)()) & Detector::getFilePath,
|
||||||
.def("setFilePath", (void (Detector::*)(std::string)) & Detector::setFilePath)
|
"Using multiSlsDetector")
|
||||||
.def("setFilePath", (void (Detector::*)(std::string, int)) & Detector::setFilePath)
|
.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("setFileName", &Detector::setFileName)
|
||||||
.def("getFileName", &Detector::getFileName)
|
.def("getFileName", &Detector::getFileName)
|
||||||
@ -157,7 +162,6 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
.def("getDelay", &Detector::getDelay)
|
.def("getDelay", &Detector::getDelay)
|
||||||
.def("setDelay", &Detector::setDelay)
|
.def("setDelay", &Detector::setDelay)
|
||||||
|
|
||||||
|
|
||||||
.def("setStoragecellStart", &Detector::setStoragecellStart)
|
.def("setStoragecellStart", &Detector::setStoragecellStart)
|
||||||
.def("getStoragecellStart", &Detector::getStoragecellStart)
|
.def("getStoragecellStart", &Detector::getStoragecellStart)
|
||||||
.def("setNumberOfStorageCells", &Detector::setNumberOfStorageCells)
|
.def("setNumberOfStorageCells", &Detector::setNumberOfStorageCells)
|
||||||
@ -178,7 +182,7 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
.def("getRxDataStreamStatus", &Detector::getRxDataStreamStatus)
|
.def("getRxDataStreamStatus", &Detector::getRxDataStreamStatus)
|
||||||
.def("setRxDataStreamStatus", &Detector::setRxDataStreamStatus)
|
.def("setRxDataStreamStatus", &Detector::setRxDataStreamStatus)
|
||||||
|
|
||||||
//Network stuff
|
// Network stuff
|
||||||
.def("getReceiverHostname", &Detector::getReceiverHostname)
|
.def("getReceiverHostname", &Detector::getReceiverHostname)
|
||||||
.def("setReceiverHostname", &Detector::setReceiverHostname)
|
.def("setReceiverHostname", &Detector::setReceiverHostname)
|
||||||
.def("getReceiverStreamingPort", &Detector::getReceiverStreamingPort)
|
.def("getReceiverStreamingPort", &Detector::getReceiverStreamingPort)
|
||||||
@ -191,11 +195,12 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
.def("getReceiverUDPIP", &Detector::getReceiverUDPIP)
|
.def("getReceiverUDPIP", &Detector::getReceiverUDPIP)
|
||||||
.def("getReceiverUDPMAC", &Detector::getReceiverUDPMAC)
|
.def("getReceiverUDPMAC", &Detector::getReceiverUDPMAC)
|
||||||
.def("setReceiverUDPMAC", &Detector::setReceiverUDPMAC)
|
.def("setReceiverUDPMAC", &Detector::setReceiverUDPMAC)
|
||||||
|
|
||||||
.def("getReceiverPort", &Detector::getReceiverPort)
|
.def("getReceiverPort", &Detector::getReceiverPort)
|
||||||
.def("setReceiverPort", &Detector::setReceiverPort)
|
.def("setReceiverPort", &Detector::setReceiverPort)
|
||||||
|
|
||||||
.def("configureNetworkParameters", &Detector::configureNetworkParameters)
|
.def("configureNetworkParameters",
|
||||||
|
&Detector::configureNetworkParameters)
|
||||||
.def("getDelayFrame", &Detector::getDelayFrame)
|
.def("getDelayFrame", &Detector::getDelayFrame)
|
||||||
.def("setDelayFrame", &Detector::setDelayFrame)
|
.def("setDelayFrame", &Detector::setDelayFrame)
|
||||||
.def("getDelayLeft", &Detector::getDelayLeft)
|
.def("getDelayLeft", &Detector::getDelayLeft)
|
||||||
@ -210,18 +215,21 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
.def("setReceiverFifoDepth", &Detector::setReceiverFifoDepth)
|
.def("setReceiverFifoDepth", &Detector::setReceiverFifoDepth)
|
||||||
.def("getReceiverFifoDepth", &Detector::getReceiverFifoDepth)
|
.def("getReceiverFifoDepth", &Detector::getReceiverFifoDepth)
|
||||||
|
|
||||||
.def("getReceiverFrameDiscardPolicy", &Detector::getReceiverFrameDiscardPolicy)
|
.def("getReceiverFrameDiscardPolicy",
|
||||||
.def("setReceiverFramesDiscardPolicy", &Detector::setReceiverFramesDiscardPolicy)
|
&Detector::getReceiverFrameDiscardPolicy)
|
||||||
|
.def("setReceiverFramesDiscardPolicy",
|
||||||
|
&Detector::setReceiverFramesDiscardPolicy)
|
||||||
.def("setPartialFramesPadding", &Detector::setPartialFramesPadding)
|
.def("setPartialFramesPadding", &Detector::setPartialFramesPadding)
|
||||||
.def("getPartialFramesPadding", &Detector::getPartialFramesPadding)
|
.def("getPartialFramesPadding", &Detector::getPartialFramesPadding)
|
||||||
|
|
||||||
.def("getUserDetails", &Detector::getUserDetails)
|
.def("getUserDetails", &Detector::getUserDetails)
|
||||||
.def("isClientAndDetectorCompatible", &Detector::isClientAndDetectorCompatible)
|
.def("isClientAndDetectorCompatible",
|
||||||
.def("isClientAndReceiverCompatible", &Detector::isClientAndReceiverCompatible)
|
&Detector::isClientAndDetectorCompatible)
|
||||||
|
.def("isClientAndReceiverCompatible",
|
||||||
|
&Detector::isClientAndReceiverCompatible)
|
||||||
.def("getMeasuredPeriod", &Detector::getMeasuredPeriod)
|
.def("getMeasuredPeriod", &Detector::getMeasuredPeriod)
|
||||||
.def("getMeasuredSubPeriod", &Detector::getMeasuredSubPeriod)
|
.def("getMeasuredSubPeriod", &Detector::getMeasuredSubPeriod)
|
||||||
|
|
||||||
|
|
||||||
.def("setFileWrite", &Detector::setFileWrite)
|
.def("setFileWrite", &Detector::setFileWrite)
|
||||||
.def("getFileWrite", &Detector::getFileWrite)
|
.def("getFileWrite", &Detector::getFileWrite)
|
||||||
.def("setFileOverWrite", &Detector::setFileOverWrite)
|
.def("setFileOverWrite", &Detector::setFileOverWrite)
|
||||||
@ -231,13 +239,15 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
.def("setNumberOfFrames", &Detector::setNumberOfFrames)
|
.def("setNumberOfFrames", &Detector::setNumberOfFrames)
|
||||||
.def("getNumberOfFrames", &Detector::getNumberOfFrames)
|
.def("getNumberOfFrames", &Detector::getNumberOfFrames)
|
||||||
|
|
||||||
//Overloaded calls
|
// Overloaded calls
|
||||||
.def("getFramesCaughtByReceiver", (int (Detector::*)() ) & Detector::getFramesCaughtByReceiver)
|
.def("getFramesCaughtByReceiver",
|
||||||
.def("getFramesCaughtByReceiver", (int (Detector::*)(int)) & Detector::getFramesCaughtByReceiver)
|
(int (Detector::*)()) & Detector::getFramesCaughtByReceiver)
|
||||||
|
.def("getFramesCaughtByReceiver",
|
||||||
|
(int (Detector::*)(int)) & Detector::getFramesCaughtByReceiver)
|
||||||
|
|
||||||
.def("resetFramesCaught", &Detector::resetFramesCaught)
|
.def("resetFramesCaught", &Detector::resetFramesCaught)
|
||||||
.def("getReceiverCurrentFrameIndex", &Detector::getReceiverCurrentFrameIndex)
|
.def("getReceiverCurrentFrameIndex",
|
||||||
|
&Detector::getReceiverCurrentFrameIndex)
|
||||||
.def("getGapPixels", &Detector::getGapPixels)
|
.def("getGapPixels", &Detector::getGapPixels)
|
||||||
.def("setGapPixels", &Detector::setGapPixels)
|
.def("setGapPixels", &Detector::setGapPixels)
|
||||||
.def("getFlippedDataX", &Detector::getFlippedDataX)
|
.def("getFlippedDataX", &Detector::getFlippedDataX)
|
||||||
@ -262,41 +272,62 @@ PYBIND11_MODULE(_sls_detector, m)
|
|||||||
.def("getTenGigabitEthernet", &Detector::getTenGigabitEthernet)
|
.def("getTenGigabitEthernet", &Detector::getTenGigabitEthernet)
|
||||||
.def("setTenGigabitEthernet", &Detector::setTenGigabitEthernet)
|
.def("setTenGigabitEthernet", &Detector::setTenGigabitEthernet)
|
||||||
|
|
||||||
.def("getPatternLoops", &Detector::getPatternLoops)
|
.def("getPatternLoops", &Detector::getPatternLoops, py::arg("level"),
|
||||||
.def("setPatternLoops", &Detector::setPatternLoops)
|
py::arg("det_id") = -1)
|
||||||
.def("setPatternWord", &Detector::setPatternWord)
|
.def("setPatternLoops", &Detector::setPatternLoops, py::arg("level"),
|
||||||
|
py::arg("start"), py::arg("stop"), py::arg("n"),
|
||||||
|
py::arg("det_id") = -1)
|
||||||
|
.def("setPatternWord", &Detector::setPatternWord, py::arg("addr"),
|
||||||
|
py::arg("word"), py::arg("det_id") = -1)
|
||||||
|
.def("getPatternWord", &Detector::getPatternWord, py::arg("addr"),
|
||||||
|
py::arg("det_id") = -1)
|
||||||
|
|
||||||
|
.def("setPatternWaitAddr", &Detector::setPatternWaitAddr,
|
||||||
|
py::arg("level"), py::arg("addr"), py::arg("det_id") = -1)
|
||||||
|
.def("getPatternWaitAddr", &Detector::getPatternWaitAddr,
|
||||||
|
py::arg("level"), py::arg("det_id") = -1)
|
||||||
|
|
||||||
|
.def("setPatternWaitTime", &Detector::setPatternWaitTime,
|
||||||
|
py::arg("level"), py::arg("duration"), py::arg("det_id") = -1)
|
||||||
|
|
||||||
|
.def("getPatternWaitTime", &Detector::getPatternWaitTime,
|
||||||
|
py::arg("level"), py::arg("det_id") = -1)
|
||||||
|
|
||||||
.def("getImageSize", &Detector::getImageSize)
|
.def("getImageSize", &Detector::getImageSize)
|
||||||
.def("setImageSize", &Detector::setImageSize)
|
.def("setImageSize", &Detector::setImageSize)
|
||||||
.def("getNumberOfDetectors", &Detector::getNumberOfDetectors)
|
.def("getNumberOfDetectors", &Detector::getNumberOfDetectors)
|
||||||
.def("getDetectorGeometry", &Detector::getDetectorGeometry);
|
.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)
|
||||||
|
|
||||||
|
.def_property_readonly(
|
||||||
|
"hostname", py::cpp_function(&multiSlsDetector::getHostname,
|
||||||
//Experimental API to use the multi directly and inherit from to reduce
|
py::arg(), py::arg("det_id") = -1))
|
||||||
//code duplication need to investigate how to handle documentation
|
.def_property("busy",
|
||||||
py::class_<multiSlsDetector> multiDetectorApi(m, "multiDetectorApi");
|
py::cpp_function(&multiSlsDetector::getAcquiringFlag),
|
||||||
multiDetectorApi
|
py::cpp_function(&multiSlsDetector::setAcquiringFlag))
|
||||||
.def(py::init<int>())
|
.def_property_readonly(
|
||||||
.def_property("busy",
|
"rx_tcpport", py::cpp_function(&multiSlsDetector::getReceiverPort))
|
||||||
py::cpp_function(&multiSlsDetector::getAcquiringFlag),
|
.def_property_readonly(
|
||||||
py::cpp_function(&multiSlsDetector::setAcquiringFlag))
|
"detectornumber",
|
||||||
.def_property_readonly("rx_tcpport",
|
py::cpp_function(&multiSlsDetector::getDetectorNumber))
|
||||||
py::cpp_function(&multiSlsDetector::getReceiverPort))
|
|
||||||
.def_property_readonly("detectornumber",
|
|
||||||
py::cpp_function(&multiSlsDetector::getDetectorNumber))
|
|
||||||
.def("_getReceiverUDPIP", &multiSlsDetector::getReceiverUDPIP)
|
.def("_getReceiverUDPIP", &multiSlsDetector::getReceiverUDPIP)
|
||||||
.def("_setReceiverUDPIP", &multiSlsDetector::setReceiverUDPIP)
|
.def("_setReceiverUDPIP", &multiSlsDetector::setReceiverUDPIP)
|
||||||
.def("_getPatternLoops", &multiSlsDetector::getPatternLoops)
|
.def("getPatternLoops", &multiSlsDetector::getPatternLoops,
|
||||||
.def("_setPatternLoops", &multiSlsDetector::setPatternLoops)
|
py::arg("level"), py::arg("det_id") = -1)
|
||||||
.def("_setPatternWord", &multiSlsDetector::setPatternWord)
|
.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");
|
py::module io = m.def_submodule("io", "Submodule for io");
|
||||||
io.def("read_my302_file", &read_my302_file, "some");
|
io.def("read_my302_file", &read_my302_file, "some");
|
||||||
|
|
||||||
|
|
||||||
#ifdef VERSION_INFO
|
#ifdef VERSION_INFO
|
||||||
m.attr("__version__") = VERSION_INFO;
|
m.attr("__version__") = VERSION_INFO;
|
||||||
#else
|
#else
|
||||||
|
@ -4550,9 +4550,6 @@ std::array<int, 3> slsDetector::setPatternLoops(int level, int start, int stop,
|
|||||||
sizeof(retvals));
|
sizeof(retvals));
|
||||||
FILE_LOG(logDEBUG1) << "Set Pat Loops: " << retvals[0] << ", "
|
FILE_LOG(logDEBUG1) << "Set Pat Loops: " << retvals[0] << ", "
|
||||||
<< retvals[1] << ", " << retvals[2];
|
<< retvals[1] << ", " << retvals[2];
|
||||||
assert(start == retvals[0]);
|
|
||||||
assert(stop == retvals[1]);
|
|
||||||
assert(n == retvals[2]);
|
|
||||||
r[0] = retvals[0];
|
r[0] = retvals[0];
|
||||||
r[1] = retvals[1];
|
r[1] = retvals[1];
|
||||||
r[2] = retvals[2];
|
r[2] = retvals[2];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user