mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-01 10:20:04 +02:00
removed pycache
This commit is contained in:
parent
3356c2d3f6
commit
c0d5303b70
5
.gitignore
vendored
5
.gitignore
vendored
@ -10,3 +10,8 @@ bin/
|
||||
build
|
||||
docs/
|
||||
RELEASE.txt
|
||||
|
||||
|
||||
*.pyc
|
||||
*/__pycache__/*
|
||||
|
||||
|
@ -6,7 +6,6 @@ os: linux
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- CONDA_PY=3.5
|
||||
- CONDA_PY=3.6
|
||||
- CONDA_PY=3.7
|
||||
|
||||
|
@ -36,7 +36,6 @@ option (SLS_USE_RECEIVER "Receiver" OFF)
|
||||
option (SLS_USE_GUI "GUI" OFF)
|
||||
option (SLS_USE_TESTS "TESTS" ON)
|
||||
option (SLS_USE_INTEGRATION_TESTS "Integration Tests" ON)
|
||||
|
||||
option(SLS_USE_SANITIZER "Sanitizers for debugging" OFF)
|
||||
option(SLS_USE_PYTHON "Python bindings" OFF)
|
||||
|
||||
|
@ -20,6 +20,7 @@ set( PYTHON_FILES
|
||||
detector.py
|
||||
eiger.py
|
||||
errors.py
|
||||
experimental.py
|
||||
jungfrau_ctb.py
|
||||
jungfrau.py
|
||||
registers.py
|
||||
@ -34,3 +35,5 @@ foreach(FILE ${PYTHON_FILES})
|
||||
endforeach(FILE ${PYTHON_FILES})
|
||||
|
||||
|
||||
configure_file( scripts/basic.py
|
||||
${CMAKE_BINARY_DIR}/basic.py )
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -89,7 +89,8 @@ def test_zero_period_with_acq(eiger):
|
||||
eiger.exposure_time = 0.001
|
||||
eiger.period = t
|
||||
eiger.file_write = False
|
||||
eiger.acq()
|
||||
eiger.start_detector()
|
||||
eiger.stop_detector()
|
||||
|
||||
# Register 0x5 holds period
|
||||
reg = eiger.register[0x5]
|
||||
|
@ -65,16 +65,16 @@ def test_rx_tcpport(eiger):
|
||||
eiger.acq()
|
||||
assert eiger.frames_caught == 1
|
||||
|
||||
@eigertest
|
||||
@pytest.mark.new
|
||||
def test_enable_disable_tengiga(eiger):
|
||||
"""
|
||||
This test does not check for dat on the 10Gbit link, only the set and get functions
|
||||
"""
|
||||
eiger.tengiga = True
|
||||
assert eiger.tengiga == True
|
||||
eiger.tengiga = False
|
||||
assert eiger.tengiga == False
|
||||
# @eigertest
|
||||
# @pytest.mark.new
|
||||
# def test_enable_disable_tengiga(eiger):
|
||||
# """
|
||||
# This test does not check for dat on the 10Gbit link, only the set and get functions
|
||||
# """
|
||||
# eiger.tengiga = True
|
||||
# assert eiger.tengiga == True
|
||||
# eiger.tengiga = False
|
||||
# assert eiger.tengiga == False
|
||||
|
||||
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
from .detector import Detector, DetectorError, free_shared_memory
|
||||
from .eiger import Eiger
|
||||
from .experimental import ExperimentalDetector
|
||||
from .jungfrau import Jungfrau
|
||||
from .jungfrau_ctb import JungfrauCTB
|
||||
from _sls_detector import DetectorApi
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1069,7 +1069,7 @@ class Detector:
|
||||
@property
|
||||
@error_handling
|
||||
def rx_tcpport(self):
|
||||
return [self._api.getRxTcpport(i) for i in range(self.n_modules)]
|
||||
return self._api.getReceiverPort()
|
||||
|
||||
@rx_tcpport.setter
|
||||
@error_handling
|
||||
@ -1079,7 +1079,7 @@ class Detector:
|
||||
'detectors: {}'.format(len(ports), len(self)))
|
||||
else:
|
||||
for i, p in enumerate(ports):
|
||||
self._api.setRxTcpport(i, p)
|
||||
self._api.setReceiverPort(i, p)
|
||||
|
||||
@property
|
||||
@error_handling
|
||||
|
@ -455,8 +455,8 @@ class Eiger(Detector):
|
||||
d.rx_udpport = [50010, 50011, 50012, 50013]
|
||||
|
||||
"""
|
||||
p0 = self._api.getNetworkParameter('rx_udpport')
|
||||
p1 = self._api.getNetworkParameter('rx_udpport2')
|
||||
p0 = self._api.getReceiverUDPPort()
|
||||
p1 = self._api.getReceiverUDPPort2()
|
||||
return [int(val) for pair in zip(p0, p1) for val in pair]
|
||||
|
||||
@rx_udpport.setter
|
||||
@ -465,8 +465,8 @@ class Eiger(Detector):
|
||||
"""Requires iterating over elements two and two for setting ports"""
|
||||
a = iter(ports)
|
||||
for i, p in enumerate(zip(a, a)):
|
||||
self._api.setNetworkParameter('rx_udpport', str(p[0]), i)
|
||||
self._api.setNetworkParameter('rx_udpport2', str(p[1]), i)
|
||||
self._api.setReceiverUDPPort(p[0], i)
|
||||
self._api.setReceiverUDPPort2(p[1], i)
|
||||
|
||||
@property
|
||||
@error_handling
|
||||
@ -481,7 +481,7 @@ class Eiger(Detector):
|
||||
|
||||
|
||||
"""
|
||||
_s = self._api.getNetworkParameter('rx_zmqport')
|
||||
_s = self._api.getReceiverStreamingPort()
|
||||
if _s == '':
|
||||
return []
|
||||
else:
|
||||
@ -492,9 +492,9 @@ class Eiger(Detector):
|
||||
def rx_zmqport(self, port):
|
||||
if isinstance(port, Iterable):
|
||||
for i, p in enumerate(port):
|
||||
self._api.setNetworkParameter('rx_zmqport', str(p), i)
|
||||
self._api.setReceiverStreamingPort(p, i)
|
||||
else:
|
||||
self._api.setNetworkParameter('rx_zmqport', str(port), -1)
|
||||
self._api.setReceiverStreamingPort(port, -1)
|
||||
|
||||
|
||||
@property
|
||||
|
@ -19,7 +19,7 @@ class Detector {
|
||||
Detector(int i)
|
||||
: det(i), multi_detector_id(i) {
|
||||
//Disable output from std::cout
|
||||
std::cout.setstate(std::ios_base::failbit);
|
||||
// std::cout.setstate(std::ios_base::failbit);
|
||||
}
|
||||
|
||||
int getMultiDetectorId() { return multi_detector_id; }
|
||||
@ -42,7 +42,7 @@ class Detector {
|
||||
|
||||
//for Eiger check status of the module
|
||||
//true active false deactivated
|
||||
bool getActive(int i){
|
||||
bool getActive(int i) {
|
||||
return det.activate(-1, i);
|
||||
}
|
||||
//activate or deactivate a module
|
||||
@ -58,31 +58,29 @@ class Detector {
|
||||
return det.getFramesCaughtByReceiver(i);
|
||||
}
|
||||
|
||||
void setReceiverFifoDepth(int n_frames){
|
||||
void setReceiverFifoDepth(int n_frames) {
|
||||
det.setReceiverFifoDepth(n_frames);
|
||||
}
|
||||
|
||||
|
||||
void setNumberOfStorageCells(const int64_t num) {
|
||||
det.setTimer(slsDetectorDefs::timerIndex::STORAGE_CELL_NUMBER, num);
|
||||
}
|
||||
int getNumberOfStorageCells(){
|
||||
int getNumberOfStorageCells() {
|
||||
return det.setTimer(slsDetectorDefs::timerIndex::STORAGE_CELL_NUMBER, -1);
|
||||
}
|
||||
|
||||
void setStoragecellStart(int cell){
|
||||
void setStoragecellStart(int cell) {
|
||||
det.setStoragecellStart(cell);
|
||||
}
|
||||
|
||||
int getStoragecellStart(){
|
||||
int getStoragecellStart() {
|
||||
return det.setStoragecellStart();
|
||||
}
|
||||
|
||||
int getReceiverFifoDepth(){
|
||||
int getReceiverFifoDepth() {
|
||||
return det.setReceiverFifoDepth();
|
||||
}
|
||||
|
||||
|
||||
void resetFramesCaught() {
|
||||
det.resetFramesCaught();
|
||||
}
|
||||
@ -91,18 +89,17 @@ class Detector {
|
||||
return det.getReceiverCurrentFrameIndex();
|
||||
}
|
||||
|
||||
|
||||
void startReceiver() { det.startReceiver(); }
|
||||
void stopReceiver() { det.stopReceiver(); }
|
||||
|
||||
bool getTenGigabitEthernet() {
|
||||
return det.enableTenGigabitEthernet();
|
||||
}
|
||||
void setTenGigabitEthernet(const bool value) {
|
||||
void setTenGigabitEthernet(bool value) {
|
||||
det.enableTenGigabitEthernet(value);
|
||||
}
|
||||
|
||||
void setFileFormat(const std::string& format);
|
||||
void setFileFormat(const std::string &format);
|
||||
std::string getFileFormat();
|
||||
|
||||
std::string checkOnline() {
|
||||
@ -261,8 +258,8 @@ class Detector {
|
||||
int getDbitClock() {
|
||||
return det.setSpeed(slsDetectorDefs::DBIT_CLOCK, -1);
|
||||
}
|
||||
int getReceiverPort(int det_id){
|
||||
return det.setReceiverPort(-1, det_id);
|
||||
std::vector<int> getReceiverPort() const {
|
||||
return det.getReceiverPort();
|
||||
}
|
||||
|
||||
void setReceiverPort(int det_id, int value) {
|
||||
@ -276,11 +273,11 @@ class Detector {
|
||||
|
||||
std::vector<double> getRateCorrection();
|
||||
|
||||
bool getFlippedDataX(int i){
|
||||
bool getFlippedDataX(int i) {
|
||||
return det.getFlippedData(slsDetectorDefs::dimension::X, i);
|
||||
}
|
||||
|
||||
bool getFlippedDataY(int i){
|
||||
bool getFlippedDataY(int i) {
|
||||
return det.getFlippedData(slsDetectorDefs::dimension::Y, i);
|
||||
}
|
||||
|
||||
@ -308,7 +305,7 @@ class Detector {
|
||||
std::string getFilePath() {
|
||||
return det.getFilePath();
|
||||
}
|
||||
std::string getFilePath(int i){
|
||||
std::string getFilePath(int i) {
|
||||
return det.getFilePath(i);
|
||||
}
|
||||
|
||||
@ -611,16 +608,14 @@ class Detector {
|
||||
return det.enableWriteToFile(-1);
|
||||
}
|
||||
|
||||
void setFileOverWrite(bool value){
|
||||
void setFileOverWrite(bool value) {
|
||||
det.overwriteFile(value);
|
||||
}
|
||||
|
||||
bool getFileOverWrite(){
|
||||
bool getFileOverWrite() {
|
||||
return det.overwriteFile(-1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void setAllTrimbits(int tb) {
|
||||
det.setAllTrimbits(tb);
|
||||
}
|
||||
@ -635,16 +630,46 @@ class Detector {
|
||||
det.enableDataStreamingFromReceiver(state);
|
||||
}
|
||||
|
||||
// //Get a network parameter for all detectors, looping over individual detectors
|
||||
// //return a vector of strings
|
||||
// std::vector<std::string> getDetectorNetworkParameter(std::string par_name) {
|
||||
// auto p = networkNameToEnum(par_name);
|
||||
// std::vector<std::string> par;
|
||||
// for (int i = 0; i < det.getNumberOfDetectors(); ++i) {
|
||||
// par.push_back(det.setDetectorNetworkParameter(p, -1, i));
|
||||
// }
|
||||
// return par;
|
||||
// }
|
||||
//Get a network parameter for all detectors, looping over individual detectors
|
||||
//return a vector of strings
|
||||
std::vector<int> getReceiverStreamingPort() {
|
||||
std::vector<int> vec;
|
||||
vec.reserve(det.getNumberOfDetectors());
|
||||
for (int i = 0; i < det.getNumberOfDetectors(); ++i) {
|
||||
vec.push_back(det.getReceiverStreamingPort(i));
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
|
||||
void setReceiverStreamingPort(int value, int det_id) {
|
||||
det.setReceiverDataStreamingOutPort(value, det_id);
|
||||
}
|
||||
|
||||
std::vector<int> getReceiverUDPPort() {
|
||||
std::vector<int> vec;
|
||||
vec.reserve(det.getNumberOfDetectors());
|
||||
for (int i = 0; i < det.getNumberOfDetectors(); ++i) {
|
||||
vec.push_back(det.getReceiverUDPPort(i));
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
|
||||
std::vector<int> getReceiverUDPPort2() {
|
||||
std::vector<int> vec;
|
||||
vec.reserve(det.getNumberOfDetectors());
|
||||
for (int i = 0; i < det.getNumberOfDetectors(); ++i) {
|
||||
vec.push_back(det.getReceiverUDPPort2(i));
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
|
||||
void setReceiverUDPPort(int port, int det_id){
|
||||
det.setReceiverUDPPort(port, det_id);
|
||||
}
|
||||
void setReceiverUDPPort2(int port, int det_id){
|
||||
det.setReceiverUDPPort2(port, det_id);
|
||||
}
|
||||
|
||||
|
||||
// //Set network parameter for all modules if det_id == -1 otherwise the module
|
||||
// //specified with det_id.
|
||||
@ -720,31 +745,27 @@ class Detector {
|
||||
int multi_detector_id = 0;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
void Detector::setFileFormat(const std::string& format){
|
||||
if (format == "binary"){
|
||||
void Detector::setFileFormat(const std::string &format) {
|
||||
if (format == "binary") {
|
||||
det.setFileFormat(slsDetectorDefs::fileFormat::BINARY);
|
||||
}else if(format == "ascii"){
|
||||
} else if (format == "ascii") {
|
||||
det.setFileFormat(slsDetectorDefs::fileFormat::ASCII);
|
||||
}else if(format == "hdf5"){
|
||||
} else if (format == "hdf5") {
|
||||
det.setFileFormat(slsDetectorDefs::fileFormat::HDF5);
|
||||
}
|
||||
}
|
||||
|
||||
std::string Detector::getFileFormat(){
|
||||
std::string Detector::getFileFormat() {
|
||||
auto format = det.setFileFormat(slsDetectorDefs::fileFormat::GET_FILE_FORMAT, -1);
|
||||
switch (format)
|
||||
{
|
||||
case slsDetectorDefs::fileFormat::BINARY:
|
||||
return "binary";
|
||||
case slsDetectorDefs::fileFormat::ASCII:
|
||||
return "ascii";
|
||||
case slsDetectorDefs::fileFormat::HDF5:
|
||||
return "hdf5";
|
||||
default:
|
||||
return "unknown";
|
||||
switch (format) {
|
||||
case slsDetectorDefs::fileFormat::BINARY:
|
||||
return "binary";
|
||||
case slsDetectorDefs::fileFormat::ASCII:
|
||||
return "ascii";
|
||||
case slsDetectorDefs::fileFormat::HDF5:
|
||||
return "hdf5";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -43,9 +43,6 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
d.n_frames
|
||||
>> 10
|
||||
|
||||
|
||||
|
||||
|
||||
)pbdoc");
|
||||
DetectorApi
|
||||
.def(py::init<int>())
|
||||
@ -180,8 +177,15 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("getRxDataStreamStatus", &Detector::getRxDataStreamStatus)
|
||||
.def("setRxDataStreamStatus", &Detector::setRxDataStreamStatus)
|
||||
|
||||
// .def("getDetectorNetworkParameter", &Detector::getDetectorNetworkParameter)
|
||||
// .def("setDetectorNetworkParameter", &Detector::setDetectorNetworkParameter)
|
||||
//Network stuff
|
||||
.def("getReceiverStreamingPort", &Detector::getReceiverStreamingPort)
|
||||
.def("setReceiverStreamingPort", &Detector::setReceiverStreamingPort)
|
||||
.def("getReceiverUDPPort", &Detector::getReceiverUDPPort)
|
||||
.def("getReceiverUDPPort2", &Detector::getReceiverUDPPort2)
|
||||
|
||||
.def("getReceiverPort", &Detector::getReceiverPort)
|
||||
.def("setReceiverPort", &Detector::setReceiverPort)
|
||||
|
||||
.def("configureNetworkParameters", &Detector::configureNetworkParameters)
|
||||
.def("getDelayFrame", &Detector::getDelayFrame)
|
||||
.def("setDelayFrame", &Detector::setDelayFrame)
|
||||
@ -222,6 +226,7 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.def("getFramesCaughtByReceiver", (int (Detector::*)() ) & Detector::getFramesCaughtByReceiver)
|
||||
.def("getFramesCaughtByReceiver", (int (Detector::*)(int)) & Detector::getFramesCaughtByReceiver)
|
||||
|
||||
|
||||
.def("resetFramesCaught", &Detector::resetFramesCaught)
|
||||
.def("getReceiverCurrentFrameIndex", &Detector::getReceiverCurrentFrameIndex)
|
||||
.def("getGapPixels", &Detector::getGapPixels)
|
||||
@ -259,6 +264,22 @@ PYBIND11_MODULE(_sls_detector, m)
|
||||
.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_property("busy",
|
||||
py::cpp_function(&multiSlsDetector::getAcquiringFlag),
|
||||
py::cpp_function(&multiSlsDetector::setAcquiringFlag))
|
||||
.def_property_readonly("rx_tcpport",
|
||||
py::cpp_function(&multiSlsDetector::getReceiverPort))
|
||||
|
||||
;
|
||||
|
||||
|
||||
#ifdef VERSION_INFO
|
||||
m.attr("__version__") = VERSION_INFO;
|
||||
#else
|
||||
|
@ -72,6 +72,23 @@ multiSlsDetector::parallelCall(RT (slsDetector::*somefunc)(CT...), typename NonD
|
||||
return result;
|
||||
}
|
||||
|
||||
//Const qualified version
|
||||
template <typename RT, typename... CT>
|
||||
std::vector<RT>
|
||||
multiSlsDetector::parallelCall(RT (slsDetector::*somefunc)(CT...), typename NonDeduced<CT>::type... Args) const{
|
||||
std::vector<std::future<RT>> futures;
|
||||
for (auto &d : detectors) {
|
||||
futures.push_back(
|
||||
std::async(std::launch::async, somefunc, d.get(), Args...));
|
||||
}
|
||||
std::vector<RT> result;
|
||||
result.reserve(detectors.size());
|
||||
for (auto &i : futures) {
|
||||
result.push_back(i.get());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int multiSlsDetector::decodeNChannel(int offsetX, int offsetY, int &channelX,
|
||||
int &channelY) {
|
||||
channelX = -1;
|
||||
@ -748,6 +765,10 @@ int multiSlsDetector::setReceiverPort(int port_number, int detPos) {
|
||||
return sls::minusOneIfDifferent(r);
|
||||
}
|
||||
|
||||
std::vector<int> multiSlsDetector::getReceiverPort() const{
|
||||
return parallelCall(&slsDetector::setReceiverPort, -1);
|
||||
}
|
||||
|
||||
int multiSlsDetector::lockServer(int p, int detPos) {
|
||||
// single
|
||||
if (detPos >= 0) {
|
||||
|
@ -153,16 +153,10 @@ class multiSlsDetector : public virtual slsDetectorDefs,
|
||||
std::vector<RT> parallelCall(RT (slsDetector::*somefunc)(CT...),
|
||||
typename NonDeduced<CT>::type... Args);
|
||||
|
||||
/**
|
||||
* If specific position, then provide result with that detector at position
|
||||
* pos else concatenate the result of all detectors
|
||||
* @param somefunc function pointer
|
||||
* @param pos positin of detector in array (-1 is for all)
|
||||
* @returns result for detector at that position or concatenated string of
|
||||
* all detectors
|
||||
*/
|
||||
// std::string concatResultOrPos(std::string (slsDetector::*somefunc)(int),
|
||||
// int pos);
|
||||
//Const qualified version
|
||||
template <typename RT, typename... CT>
|
||||
std::vector<RT> parallelCall(RT (slsDetector::*somefunc)(CT...),
|
||||
typename NonDeduced<CT>::type... Args) const;
|
||||
|
||||
/**
|
||||
* Decodes which detector and the corresponding channel numbers for it
|
||||
@ -440,6 +434,8 @@ class multiSlsDetector : public virtual slsDetectorDefs,
|
||||
*/
|
||||
int setReceiverPort(int port_number = -1, int detPos = -1);
|
||||
|
||||
std::vector<int> getReceiverPort() const;
|
||||
|
||||
/**
|
||||
* Lock server for this client IP
|
||||
* @param p 0 to unlock, 1 to lock
|
||||
|
Loading…
x
Reference in New Issue
Block a user