more getters setters

This commit is contained in:
Erik Frojdh
2019-04-10 12:37:16 +02:00
parent ec17529c52
commit 8cb123cdcb
9 changed files with 67 additions and 44 deletions

View File

@ -663,11 +663,11 @@ class Detector:
@property @property
def frames_per_file(self): def frames_per_file(self):
return self._api.getReceiverFramesPerFile() return self._api.getFramesPerFile()
@frames_per_file.setter @frames_per_file.setter
def frames_per_file(self, n): def frames_per_file(self, n):
self._api.setReceiverFramesPerFile(n) self._api.setFramesPerFile(n)
@property @property
def n_cycles(self): def n_cycles(self):

View File

@ -320,11 +320,11 @@ class Detector {
return det.getUserDetails(); return det.getUserDetails();
} }
void setReceiverFramesPerFile(const int n_frames) { void setFramesPerFile(const int n_frames) {
det.setReceiverFramesPerFile(n_frames); det.setFramesPerFile(n_frames);
} }
int getReceiverFramesPerFile() { int getFramesPerFile() {
return det.setReceiverFramesPerFile(); return det.setFramesPerFile();
} }
std::string getReceiverFrameDiscardPolicy() { std::string getReceiverFrameDiscardPolicy() {

View File

@ -205,8 +205,8 @@ PYBIND11_MODULE(_sls_detector, m)
.def("getLastClientIP", &Detector::getLastClientIP) .def("getLastClientIP", &Detector::getLastClientIP)
.def("getReceiverLastClientIP", &Detector::getReceiverLastClientIP) .def("getReceiverLastClientIP", &Detector::getReceiverLastClientIP)
.def("setReceiverFramesPerFile", &Detector::setReceiverFramesPerFile) .def("setFramesPerFile", &Detector::setFramesPerFile)
.def("getReceiverFramesPerFile", &Detector::getReceiverFramesPerFile) .def("getFramesPerFile", &Detector::getFramesPerFile)
.def("setReceiverFifoDepth", &Detector::setReceiverFifoDepth) .def("setReceiverFifoDepth", &Detector::setReceiverFifoDepth)
.def("getReceiverFifoDepth", &Detector::getReceiverFifoDepth) .def("getReceiverFifoDepth", &Detector::getReceiverFifoDepth)

View File

@ -1598,7 +1598,14 @@ class multiSlsDetector : public virtual slsDetectorDefs {
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
* @returns max frames per file in receiver * @returns max frames per file in receiver
*/ */
int setReceiverFramesPerFile(int f = -1, int detPos = -1); int setFramesPerFile(int f = -1, int detPos = -1);
/**
* Gets the max frames per file in receiver
* @param detPos -1 for all detectors in list or specific detector position
* @returns max frames per file in receiver
*/
int getFramesPerFile(int detPos = -1) const;
/** /**
* Sets the frames discard policy in receiver * Sets the frames discard policy in receiver

View File

@ -237,10 +237,10 @@ struct sharedSlsDetector {
int receiver_fileIndex; int receiver_fileIndex;
/** file format */ /** file format */
slsDetectorDefs::fileFormat receiver_fileFormatType; slsDetectorDefs::fileFormat rxFileFormat;
/** frames per file */ /** frames per file */
int receiver_framesPerFile; int rxFramesPerFile;
/** filewriteenable */ /** filewriteenable */
bool rxFileWrite; bool rxFileWrite;
@ -1464,7 +1464,9 @@ class slsDetector : public virtual slsDetectorDefs{
* @param f max frames per file * @param f max frames per file
* @returns max frames per file in receiver * @returns max frames per file in receiver
*/ */
int setReceiverFramesPerFile(int f = -1); int setFramesPerFile(int frames);
int getFramesPerFile() const;
/** /**
* Sets the frames discard policy in receiver * Sets the frames discard policy in receiver
@ -1482,9 +1484,9 @@ class slsDetector : public virtual slsDetectorDefs{
/** /**
* Returns file format * Returns file format
* @returns file name * @returns file format
*/ */
fileFormat getFileFormat(); fileFormat getFileFormat() const;
/** /**
* Sets up the file format * Sets up the file format

View File

@ -2884,14 +2884,19 @@ std::string multiSlsDetector::setFileName(const std::string &fname, int detPos)
return sls::concatenateIfDifferent(r); return sls::concatenateIfDifferent(r);
} }
int multiSlsDetector::setReceiverFramesPerFile(int f, int detPos) { int multiSlsDetector::setFramesPerFile(int f, int detPos) {
// single
if (detPos >= 0) { if (detPos >= 0) {
return detectors[detPos]->setReceiverFramesPerFile(f); return detectors[detPos]->setFramesPerFile(f);
} }
auto r = parallelCall(&slsDetector::setFramesPerFile, f);
return sls::minusOneIfDifferent(r);
}
// multi int multiSlsDetector::getFramesPerFile(int detPos) const {
auto r = parallelCall(&slsDetector::setReceiverFramesPerFile, f); if (detPos >= 0) {
return detectors[detPos]->getFramesPerFile();
}
auto r = parallelCall(&slsDetector::getFramesPerFile);
return sls::minusOneIfDifferent(r); return sls::minusOneIfDifferent(r);
} }

View File

@ -350,22 +350,22 @@ void slsDetector::initializeDetectorStructure(detectorType type) {
sls::strcpy_safe(detector_shm()->receiver_filePath, "/"); sls::strcpy_safe(detector_shm()->receiver_filePath, "/");
sls::strcpy_safe(detector_shm()->receiver_fileName, "run"); sls::strcpy_safe(detector_shm()->receiver_fileName, "run");
detector_shm()->receiver_fileIndex = 0; detector_shm()->receiver_fileIndex = 0;
detector_shm()->receiver_fileFormatType = BINARY; detector_shm()->rxFileFormat = BINARY;
switch (detector_shm()->myDetectorType) { switch (detector_shm()->myDetectorType) {
case GOTTHARD: case GOTTHARD:
detector_shm()->receiver_framesPerFile = MAX_FRAMES_PER_FILE; detector_shm()->rxFramesPerFile = MAX_FRAMES_PER_FILE;
break; break;
case EIGER: case EIGER:
detector_shm()->receiver_framesPerFile = EIGER_MAX_FRAMES_PER_FILE; detector_shm()->rxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
break; break;
case JUNGFRAU: case JUNGFRAU:
detector_shm()->receiver_framesPerFile = JFRAU_MAX_FRAMES_PER_FILE; detector_shm()->rxFramesPerFile = JFRAU_MAX_FRAMES_PER_FILE;
break; break;
case CHIPTESTBOARD: case CHIPTESTBOARD:
detector_shm()->receiver_framesPerFile = CTB_MAX_FRAMES_PER_FILE; detector_shm()->rxFramesPerFile = CTB_MAX_FRAMES_PER_FILE;
break; break;
case MOENCH: case MOENCH:
detector_shm()->receiver_framesPerFile = MOENCH_MAX_FRAMES_PER_FILE; detector_shm()->rxFramesPerFile = MOENCH_MAX_FRAMES_PER_FILE;
break; break;
default: default:
break; break;
@ -2128,8 +2128,8 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
<< "\nfile path:" << detector_shm()->receiver_filePath << "\nfile path:" << detector_shm()->receiver_filePath
<< "\nfile name:" << detector_shm()->receiver_fileName << "\nfile name:" << detector_shm()->receiver_fileName
<< "\nfile index:" << detector_shm()->receiver_fileIndex << "\nfile index:" << detector_shm()->receiver_fileIndex
<< "\nfile format:" << detector_shm()->receiver_fileFormatType << "\nfile format:" << detector_shm()->rxFileFormat
<< "\nr_framesperfile:" << detector_shm()->receiver_framesPerFile << "\nr_framesperfile:" << detector_shm()->rxFramesPerFile
<< "\nr_discardpolicy:" << detector_shm()->receiver_frameDiscardMode << "\nr_discardpolicy:" << detector_shm()->receiver_frameDiscardMode
<< "\nr_padding:" << detector_shm()->receiver_framePadding << "\nr_padding:" << detector_shm()->receiver_framePadding
<< "\nwrite enable:" << detector_shm()->rxFileWrite << "\nwrite enable:" << detector_shm()->rxFileWrite
@ -2164,8 +2164,8 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
setFilePath(detector_shm()->receiver_filePath); setFilePath(detector_shm()->receiver_filePath);
setFileName(detector_shm()->receiver_fileName); setFileName(detector_shm()->receiver_fileName);
setFileIndex(detector_shm()->receiver_fileIndex); setFileIndex(detector_shm()->receiver_fileIndex);
setFileFormat(detector_shm()->receiver_fileFormatType); setFileFormat(detector_shm()->rxFileFormat);
setReceiverFramesPerFile(detector_shm()->receiver_framesPerFile); setFramesPerFile(detector_shm()->rxFramesPerFile);
setReceiverFramesDiscardPolicy(detector_shm()->receiver_frameDiscardMode); setReceiverFramesDiscardPolicy(detector_shm()->receiver_frameDiscardMode);
setReceiverPartialFramesPadding(detector_shm()->receiver_framePadding); setReceiverPartialFramesPadding(detector_shm()->receiver_framePadding);
setFileWrite(detector_shm()->rxFileWrite); setFileWrite(detector_shm()->rxFileWrite);
@ -3690,11 +3690,11 @@ int slsDetector::updateCachedReceiverVariables() const {
// file format // file format
n += receiver.receiveData(&i32, sizeof(i32)); n += receiver.receiveData(&i32, sizeof(i32));
detector_shm()->receiver_fileFormatType = (fileFormat)i32; detector_shm()->rxFileFormat = (fileFormat)i32;
// frames per file // frames per file
n += receiver.receiveData(&i32, sizeof(i32)); n += receiver.receiveData(&i32, sizeof(i32));
detector_shm()->receiver_framesPerFile = i32; detector_shm()->rxFramesPerFile = i32;
// frame discard policy // frame discard policy
n += receiver.receiveData(&i32, sizeof(i32)); n += receiver.receiveData(&i32, sizeof(i32));
@ -3866,7 +3866,7 @@ std::string slsDetector::setFileName(const std::string &fname) {
return detector_shm()->receiver_fileName; return detector_shm()->receiver_fileName;
} }
int slsDetector::setReceiverFramesPerFile(int f) { int slsDetector::setFramesPerFile(int f) {
if (f >= 0) { if (f >= 0) {
int fnum = F_SET_RECEIVER_FRAMES_PER_FILE; int fnum = F_SET_RECEIVER_FRAMES_PER_FILE;
int ret = FAIL; int ret = FAIL;
@ -3879,13 +3879,17 @@ int slsDetector::setReceiverFramesPerFile(int f) {
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort); ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval)); ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
FILE_LOG(logDEBUG1) << "Receiver frames per file: " << retval; FILE_LOG(logDEBUG1) << "Receiver frames per file: " << retval;
detector_shm()->receiver_framesPerFile = retval; detector_shm()->rxFramesPerFile = retval;
} }
if (ret == FORCE_UPDATE) { if (ret == FORCE_UPDATE) {
updateCachedReceiverVariables(); updateCachedReceiverVariables();
} }
} }
return detector_shm()->receiver_framesPerFile; return getFramesPerFile();
}
int slsDetector::getFramesPerFile() const {
return detector_shm()->rxFramesPerFile;
} }
slsDetectorDefs::frameDiscardPolicy slsDetectorDefs::frameDiscardPolicy
@ -3919,7 +3923,7 @@ int slsDetector::setReceiverPartialFramesPadding(int f) {
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort); ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval)); ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
FILE_LOG(logDEBUG1) << "Receiver partial frames enable: " << retval; FILE_LOG(logDEBUG1) << "Receiver partial frames enable: " << retval;
detector_shm()->receiver_framePadding = retval; detector_shm()->receiver_framePadding = static_cast<bool>(retval);
} }
if (ret == FORCE_UPDATE) { if (ret == FORCE_UPDATE) {
updateCachedReceiverVariables(); updateCachedReceiverVariables();
@ -3931,8 +3935,8 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
if (f != GET_FILE_FORMAT) { if (f != GET_FILE_FORMAT) {
int fnum = F_SET_RECEIVER_FILE_FORMAT; int fnum = F_SET_RECEIVER_FILE_FORMAT;
int ret = FAIL; int ret = FAIL;
int arg = f; auto arg = static_cast<int>(f);
auto retval = (fileFormat)-1; auto retval = static_cast<fileFormat>(-1);
FILE_LOG(logDEBUG1) << "Setting receiver file format to " << arg; FILE_LOG(logDEBUG1) << "Setting receiver file format to " << arg;
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) { if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
@ -3940,7 +3944,7 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort); ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval)); ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
FILE_LOG(logDEBUG1) << "Receiver file format: " << retval; FILE_LOG(logDEBUG1) << "Receiver file format: " << retval;
detector_shm()->receiver_fileFormatType = retval; detector_shm()->rxFileFormat = retval;
} }
if (ret == FORCE_UPDATE) { if (ret == FORCE_UPDATE) {
updateCachedReceiverVariables(); updateCachedReceiverVariables();
@ -3949,8 +3953,8 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
return getFileFormat(); return getFileFormat();
} }
slsDetectorDefs::fileFormat slsDetector::getFileFormat() { slsDetectorDefs::fileFormat slsDetector::getFileFormat() const {
return detector_shm()->receiver_fileFormatType; return detector_shm()->rxFileFormat;
} }
int slsDetector::getFileIndex() { return detector_shm()->receiver_fileIndex; } int slsDetector::getFileIndex() { return detector_shm()->receiver_fileIndex; }
@ -4095,7 +4099,7 @@ bool slsDetector::setFileWrite(bool value) {
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval,
sizeof(retval)); sizeof(retval));
FILE_LOG(logDEBUG1) << "Receiver file write enable: " << retval; FILE_LOG(logDEBUG1) << "Receiver file write enable: " << retval;
detector_shm()->rxFileWrite = retval; detector_shm()->rxFileWrite = static_cast<bool>(retval);
} }
if (ret == FORCE_UPDATE) { if (ret == FORCE_UPDATE) {
updateCachedReceiverVariables(); updateCachedReceiverVariables();

View File

@ -5069,12 +5069,12 @@ std::string slsDetectorCommand::cmdReceiver(int narg, char *args[], int action,
else if (cmd == "r_framesperfile") { else if (cmd == "r_framesperfile") {
if (action == PUT_ACTION) { if (action == PUT_ACTION) {
if (sscanf(args[1], "%d", &ival)) { if (sscanf(args[1], "%d", &ival)) {
myDet->setReceiverFramesPerFile(ival, detPos); myDet->setFramesPerFile(ival, detPos);
} else } else
return std::string("could not scan max frames per file\n"); return std::string("could not scan max frames per file\n");
} }
memset(answer, 0, 100); memset(answer, 0, 100);
sprintf(answer, "%d", myDet->setReceiverFramesPerFile(-1, detPos)); sprintf(answer, "%d", myDet->getFramesPerFile(detPos));
return std::string(answer); return std::string(answer);
} }

View File

@ -363,7 +363,12 @@ int slsDetectorUsers::setReceiverPartialFramesPadding(int f, int detPos) {
} }
int slsDetectorUsers::setReceiverFramesPerFile(int f, int detPos) { int slsDetectorUsers::setReceiverFramesPerFile(int f, int detPos) {
return detector.setReceiverFramesPerFile(f, detPos); if (f > 0) {
return detector.setFramesPerFile(f, detPos);
}
else {
return detector.getFramesPerFile(detPos);
}
} }
int slsDetectorUsers::setDetectorMinMaxEnergyThreshold(const int index, int v, int detPos) { int slsDetectorUsers::setDetectorMinMaxEnergyThreshold(const int index, int v, int detPos) {