added commands to python

This commit is contained in:
Erik Frojdh 2019-04-18 10:53:06 +02:00
parent 1e19b99a78
commit 7c4aa7f3a7
4 changed files with 58 additions and 3 deletions

View File

@ -17,7 +17,7 @@ e = ExperimentalDetector()
a = read_my302_file('/home/l_frojdh/Downloads/run_d0_5.raw', 104, 24) # a = read_my302_file('/home/l_frojdh/Downloads/run_d0_5.raw', 104, 24)
# ncols = 192 # ncols = 192
# start = 600 # start = 600
# end = 1800 # end = 1800

View File

@ -1355,6 +1355,38 @@ class Detector:
self._api.configureNetworkParameters() self._api.configureNetworkParameters()
#TODO! can we make this one function?
@property
def patnloop0(self):
return self._api.getPatternLoops(0, -1)
@patnloop0.setter
def patnloop0(self, n):
self._api.setPatternLoops(0, -1, -1, n, -1)
@property
def patnloop1(self):
return self._api.getPatternLoops(1, -1)
@patnloop1.setter
def patnloop1(self, n):
self._api.setPatternLoops(1, -1, -1, n, -1)
@property
def patnloop2(self):
return self._api.getPatternLoops(2, -1)
@patnloop2.setter
def patnloop2(self, n):
self._api.setPatternLoops(2, -1, -1, n, -1)
def setPatternWord(self, addr, word, det_id = -1):
self._api.setPatternWord(addr, word, det_id)
def setPatternLoops(self, level, start, stop, n, det_id=-1):
self._api.setPatternLoops(level, start, stop, n, det_id)
def free_shared_memory(multi_id=0): def free_shared_memory(multi_id=0):
""" """
Function to free the shared memory but do not initialize with new Function to free the shared memory but do not initialize with new

View File

@ -1,12 +1,12 @@
#ifndef DETECTOR_H #ifndef DETECTOR_H
#define DETECTOR_H #define DETECTOR_H
#include <array>
#include <cstdint> #include <cstdint>
#include <iostream> #include <iostream>
#include <stdexcept>
#include <string> #include <string>
#include <vector> #include <vector>
#include <stdexcept>
#include "error_defs.h" #include "error_defs.h"
#include "multiSlsDetector.h" #include "multiSlsDetector.h"
#include "slsDetector.h" #include "slsDetector.h"
@ -244,6 +244,21 @@ class Detector {
std::vector<double> getRateCorrection(); std::vector<double> getRateCorrection();
void setPatternLoops(uint64_t level, uint64_t start, uint64_t stop,
uint64_t 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){
det.setPatternWord(addr, word, detPos);
}
bool getFlippedDataX(int i) { bool getFlippedDataX(int i) {
return det.getFlippedData(slsDetectorDefs::dimension::X, i); return det.getFlippedData(slsDetectorDefs::dimension::X, i);
} }

View File

@ -262,6 +262,10 @@ 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("setPatternLoops", &Detector::setPatternLoops)
.def("setPatternWord", &Detector::setPatternWord)
.def("getImageSize", &Detector::getImageSize) .def("getImageSize", &Detector::getImageSize)
.def("setImageSize", &Detector::setImageSize) .def("setImageSize", &Detector::setImageSize)
.def("getNumberOfDetectors", &Detector::getNumberOfDetectors) .def("getNumberOfDetectors", &Detector::getNumberOfDetectors)
@ -269,6 +273,7 @@ PYBIND11_MODULE(_sls_detector, m)
//Experimental API to use the multi directly and inherit from to reduce //Experimental API to use the multi directly and inherit from to reduce
//code duplication need to investigate how to handle documentation //code duplication need to investigate how to handle documentation
py::class_<multiSlsDetector> multiDetectorApi(m, "multiDetectorApi"); py::class_<multiSlsDetector> multiDetectorApi(m, "multiDetectorApi");
@ -283,6 +288,9 @@ py::class_<multiSlsDetector> multiDetectorApi(m, "multiDetectorApi");
py::cpp_function(&multiSlsDetector::getDetectorNumber)) 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("_setPatternLoops", &multiSlsDetector::setPatternLoops)
.def("_setPatternWord", &multiSlsDetector::setPatternWord)
; ;
py::module io = m.def_submodule("io", "Submodule for io"); py::module io = m.def_submodule("io", "Submodule for io");