more ctb commands

This commit is contained in:
Erik Frojdh 2019-04-18 15:03:01 +02:00
parent a29466b396
commit 86afb2bd0e
4 changed files with 152 additions and 8 deletions

View File

@ -1381,25 +1381,136 @@ class Detector:
def patnloop2(self, n):
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):
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 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):
self._api.setPatternWord(-1,-1,-1)
return self._api.getPatternWord(-1)
@patioctrl.setter
def patioctrl(self, word):
self._api.setPatternWord(-1, word, -1)
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):

View File

@ -258,6 +258,26 @@ class Detector {
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){
det.setPatternWaitTime(level, -1, detPos)
}
bool getFlippedDataX(int i) {
return det.getFlippedData(slsDetectorDefs::dimension::X, i);
}

View File

@ -272,9 +272,25 @@ PYBIND11_MODULE(_sls_detector, m) {
.def("getTenGigabitEthernet", &Detector::getTenGigabitEthernet)
.def("setTenGigabitEthernet", &Detector::setTenGigabitEthernet)
.def("getPatternLoops", &Detector::getPatternLoops)
.def("setPatternLoops", &Detector::setPatternLoops)
.def("setPatternWord", &Detector::setPatternWord, py::arg("addr"), py::arg("word"), py::arg("det_id") = -1 )
.def("getPatternLoops", &Detector::getPatternLoops, py::arg("level"),
py::arg("det_id") = -1)
.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("setImageSize", &Detector::setImageSize)

View File

@ -4516,9 +4516,6 @@ int slsDetector::setPatternLoops(uint64_t level, uint64_t start, uint64_t stop,
sizeof(retvals));
FILE_LOG(logDEBUG1) << "Set Pat Loops: " << retvals[0] << ", "
<< retvals[1] << ", " << retvals[2];
assert(start == retvals[0]);
assert(stop == retvals[1]);
assert(n == retvals[2]);
}
if (ret == FORCE_UPDATE) {
updateDetector();