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
def frames_per_file(self):
return self._api.getReceiverFramesPerFile()
return self._api.getFramesPerFile()
@frames_per_file.setter
def frames_per_file(self, n):
self._api.setReceiverFramesPerFile(n)
self._api.setFramesPerFile(n)
@property
def n_cycles(self):

View File

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

View File

@ -205,8 +205,8 @@ PYBIND11_MODULE(_sls_detector, m)
.def("getLastClientIP", &Detector::getLastClientIP)
.def("getReceiverLastClientIP", &Detector::getReceiverLastClientIP)
.def("setReceiverFramesPerFile", &Detector::setReceiverFramesPerFile)
.def("getReceiverFramesPerFile", &Detector::getReceiverFramesPerFile)
.def("setFramesPerFile", &Detector::setFramesPerFile)
.def("getFramesPerFile", &Detector::getFramesPerFile)
.def("setReceiverFifoDepth", &Detector::setReceiverFifoDepth)
.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
* @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

View File

@ -237,10 +237,10 @@ struct sharedSlsDetector {
int receiver_fileIndex;
/** file format */
slsDetectorDefs::fileFormat receiver_fileFormatType;
slsDetectorDefs::fileFormat rxFileFormat;
/** frames per file */
int receiver_framesPerFile;
int rxFramesPerFile;
/** filewriteenable */
bool rxFileWrite;
@ -1464,7 +1464,9 @@ class slsDetector : public virtual slsDetectorDefs{
* @param f max frames per file
* @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
@ -1482,9 +1484,9 @@ class slsDetector : public virtual slsDetectorDefs{
/**
* Returns file format
* @returns file name
* @returns file format
*/
fileFormat getFileFormat();
fileFormat getFileFormat() const;
/**
* 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);
}
int multiSlsDetector::setReceiverFramesPerFile(int f, int detPos) {
// single
int multiSlsDetector::setFramesPerFile(int f, int detPos) {
if (detPos >= 0) {
return detectors[detPos]->setReceiverFramesPerFile(f);
return detectors[detPos]->setFramesPerFile(f);
}
auto r = parallelCall(&slsDetector::setFramesPerFile, f);
return sls::minusOneIfDifferent(r);
}
// multi
auto r = parallelCall(&slsDetector::setReceiverFramesPerFile, f);
int multiSlsDetector::getFramesPerFile(int detPos) const {
if (detPos >= 0) {
return detectors[detPos]->getFramesPerFile();
}
auto r = parallelCall(&slsDetector::getFramesPerFile);
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_fileName, "run");
detector_shm()->receiver_fileIndex = 0;
detector_shm()->receiver_fileFormatType = BINARY;
detector_shm()->rxFileFormat = BINARY;
switch (detector_shm()->myDetectorType) {
case GOTTHARD:
detector_shm()->receiver_framesPerFile = MAX_FRAMES_PER_FILE;
detector_shm()->rxFramesPerFile = MAX_FRAMES_PER_FILE;
break;
case EIGER:
detector_shm()->receiver_framesPerFile = EIGER_MAX_FRAMES_PER_FILE;
detector_shm()->rxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
break;
case JUNGFRAU:
detector_shm()->receiver_framesPerFile = JFRAU_MAX_FRAMES_PER_FILE;
detector_shm()->rxFramesPerFile = JFRAU_MAX_FRAMES_PER_FILE;
break;
case CHIPTESTBOARD:
detector_shm()->receiver_framesPerFile = CTB_MAX_FRAMES_PER_FILE;
detector_shm()->rxFramesPerFile = CTB_MAX_FRAMES_PER_FILE;
break;
case MOENCH:
detector_shm()->receiver_framesPerFile = MOENCH_MAX_FRAMES_PER_FILE;
detector_shm()->rxFramesPerFile = MOENCH_MAX_FRAMES_PER_FILE;
break;
default:
break;
@ -2128,8 +2128,8 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
<< "\nfile path:" << detector_shm()->receiver_filePath
<< "\nfile name:" << detector_shm()->receiver_fileName
<< "\nfile index:" << detector_shm()->receiver_fileIndex
<< "\nfile format:" << detector_shm()->receiver_fileFormatType
<< "\nr_framesperfile:" << detector_shm()->receiver_framesPerFile
<< "\nfile format:" << detector_shm()->rxFileFormat
<< "\nr_framesperfile:" << detector_shm()->rxFramesPerFile
<< "\nr_discardpolicy:" << detector_shm()->receiver_frameDiscardMode
<< "\nr_padding:" << detector_shm()->receiver_framePadding
<< "\nwrite enable:" << detector_shm()->rxFileWrite
@ -2164,8 +2164,8 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
setFilePath(detector_shm()->receiver_filePath);
setFileName(detector_shm()->receiver_fileName);
setFileIndex(detector_shm()->receiver_fileIndex);
setFileFormat(detector_shm()->receiver_fileFormatType);
setReceiverFramesPerFile(detector_shm()->receiver_framesPerFile);
setFileFormat(detector_shm()->rxFileFormat);
setFramesPerFile(detector_shm()->rxFramesPerFile);
setReceiverFramesDiscardPolicy(detector_shm()->receiver_frameDiscardMode);
setReceiverPartialFramesPadding(detector_shm()->receiver_framePadding);
setFileWrite(detector_shm()->rxFileWrite);
@ -3690,11 +3690,11 @@ int slsDetector::updateCachedReceiverVariables() const {
// file format
n += receiver.receiveData(&i32, sizeof(i32));
detector_shm()->receiver_fileFormatType = (fileFormat)i32;
detector_shm()->rxFileFormat = (fileFormat)i32;
// frames per file
n += receiver.receiveData(&i32, sizeof(i32));
detector_shm()->receiver_framesPerFile = i32;
detector_shm()->rxFramesPerFile = i32;
// frame discard policy
n += receiver.receiveData(&i32, sizeof(i32));
@ -3866,7 +3866,7 @@ std::string slsDetector::setFileName(const std::string &fname) {
return detector_shm()->receiver_fileName;
}
int slsDetector::setReceiverFramesPerFile(int f) {
int slsDetector::setFramesPerFile(int f) {
if (f >= 0) {
int fnum = F_SET_RECEIVER_FRAMES_PER_FILE;
int ret = FAIL;
@ -3879,13 +3879,17 @@ int slsDetector::setReceiverFramesPerFile(int f) {
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
FILE_LOG(logDEBUG1) << "Receiver frames per file: " << retval;
detector_shm()->receiver_framesPerFile = retval;
detector_shm()->rxFramesPerFile = retval;
}
if (ret == FORCE_UPDATE) {
updateCachedReceiverVariables();
}
}
return detector_shm()->receiver_framesPerFile;
return getFramesPerFile();
}
int slsDetector::getFramesPerFile() const {
return detector_shm()->rxFramesPerFile;
}
slsDetectorDefs::frameDiscardPolicy
@ -3919,7 +3923,7 @@ int slsDetector::setReceiverPartialFramesPadding(int f) {
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(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) {
updateCachedReceiverVariables();
@ -3931,8 +3935,8 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
if (f != GET_FILE_FORMAT) {
int fnum = F_SET_RECEIVER_FILE_FORMAT;
int ret = FAIL;
int arg = f;
auto retval = (fileFormat)-1;
auto arg = static_cast<int>(f);
auto retval = static_cast<fileFormat>(-1);
FILE_LOG(logDEBUG1) << "Setting receiver file format to " << arg;
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
@ -3940,7 +3944,7 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
FILE_LOG(logDEBUG1) << "Receiver file format: " << retval;
detector_shm()->receiver_fileFormatType = retval;
detector_shm()->rxFileFormat = retval;
}
if (ret == FORCE_UPDATE) {
updateCachedReceiverVariables();
@ -3949,8 +3953,8 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
return getFileFormat();
}
slsDetectorDefs::fileFormat slsDetector::getFileFormat() {
return detector_shm()->receiver_fileFormatType;
slsDetectorDefs::fileFormat slsDetector::getFileFormat() const {
return detector_shm()->rxFileFormat;
}
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,
sizeof(retval));
FILE_LOG(logDEBUG1) << "Receiver file write enable: " << retval;
detector_shm()->rxFileWrite = retval;
detector_shm()->rxFileWrite = static_cast<bool>(retval);
}
if (ret == FORCE_UPDATE) {
updateCachedReceiverVariables();

View File

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

View File

@ -363,7 +363,12 @@ int slsDetectorUsers::setReceiverPartialFramesPadding(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) {