mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 06:50:02 +02:00
Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor
This commit is contained in:
commit
6b5aa5ff66
@ -603,18 +603,18 @@ class Detector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setFileWrite(bool value) {
|
void setFileWrite(bool value) {
|
||||||
det.enableWriteToFile(value);
|
det.setFileWrite(value);
|
||||||
}
|
}
|
||||||
bool getFileWrite() {
|
bool getFileWrite() {
|
||||||
return det.enableWriteToFile(-1);
|
return det.getFileWrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFileOverWrite(bool value) {
|
void setFileOverWrite(bool value) {
|
||||||
det.overwriteFile(value);
|
det.setFileOverWrite(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool getFileOverWrite() {
|
bool getFileOverWrite() {
|
||||||
return det.overwriteFile(-1);
|
return det.getFileOverWrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setAllTrimbits(int tb) {
|
void setAllTrimbits(int tb) {
|
||||||
|
@ -1716,7 +1716,8 @@ 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 file write enable
|
* @returns file write enable
|
||||||
*/
|
*/
|
||||||
int enableWriteToFile(int enable = -1, int detPos = -1);
|
int setFileWrite(bool value, int detPos = -1);
|
||||||
|
int getFileWrite(int detPos = -1) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets/Gets file overwrite enable
|
* Sets/Gets file overwrite enable
|
||||||
@ -1724,7 +1725,8 @@ 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 file overwrite enable
|
* @returns file overwrite enable
|
||||||
*/
|
*/
|
||||||
int overwriteFile(int enable = -1, int detPos = -1);
|
int setFileOverWrite(bool enable, int detPos = -1);
|
||||||
|
int getFileOverWrite(int detPos = -1) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (previously setReadReceiverFrequency)
|
* (previously setReadReceiverFrequency)
|
||||||
@ -2062,7 +2064,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
|||||||
|
|
||||||
|
|
||||||
/** Multi detector Id */
|
/** Multi detector Id */
|
||||||
const int multiId;
|
const int multiId{0};
|
||||||
|
|
||||||
/** Shared Memory object */
|
/** Shared Memory object */
|
||||||
sls::SharedMemory<sharedMultiSlsDetector> multi_shm{0, -1};
|
sls::SharedMemory<sharedMultiSlsDetector> multi_shm{0, -1};
|
||||||
|
@ -243,10 +243,10 @@ struct sharedSlsDetector {
|
|||||||
int receiver_framesPerFile;
|
int receiver_framesPerFile;
|
||||||
|
|
||||||
/** filewriteenable */
|
/** filewriteenable */
|
||||||
bool receiver_fileWriteEnable;
|
bool rxFileWrite;
|
||||||
|
|
||||||
/** overwriteenable */
|
/** overwriteenable */
|
||||||
bool receiver_overWriteEnable;
|
bool rxFileOverWrite;
|
||||||
};
|
};
|
||||||
|
|
||||||
class slsDetector : public virtual slsDetectorDefs{
|
class slsDetector : public virtual slsDetectorDefs{
|
||||||
@ -1554,14 +1554,22 @@ class slsDetector : public virtual slsDetectorDefs{
|
|||||||
* @param enable 1 or 0 to set/reset file write enable
|
* @param enable 1 or 0 to set/reset file write enable
|
||||||
* @returns file write enable
|
* @returns file write enable
|
||||||
*/
|
*/
|
||||||
int enableWriteToFile(int enable = -1);
|
bool setFileWrite(bool value);
|
||||||
|
|
||||||
|
bool getFileWrite() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets/Gets file overwrite enable
|
* Sets file overwrite in the receiver
|
||||||
* @param enable 1 or 0 to set/reset file overwrite enable
|
* @param enable true or false to set/reset file overwrite enable
|
||||||
* @returns file overwrite enable
|
* @returns file overwrite enable
|
||||||
*/
|
*/
|
||||||
int overwriteFile(int enable = -1);
|
bool setFileOverWrite(bool value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets file overwrite in the receiver
|
||||||
|
* @returns file overwrite enable
|
||||||
|
*/
|
||||||
|
bool getFileOverWrite() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (previously setReadReceiverFrequency)
|
* (previously setReadReceiverFrequency)
|
||||||
|
@ -3442,25 +3442,35 @@ int multiSlsDetector::processImageWithGapPixels(char *image, char *&gpImage) {
|
|||||||
return gapdatabytes;
|
return gapdatabytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
int multiSlsDetector::enableWriteToFile(int enable, int detPos) {
|
int multiSlsDetector::setFileWrite(bool value, int detPos) {
|
||||||
// single
|
|
||||||
if (detPos >= 0) {
|
if (detPos >= 0) {
|
||||||
return detectors[detPos]->enableWriteToFile(enable);
|
return detectors[detPos]->setFileWrite(value);
|
||||||
}
|
}
|
||||||
|
auto r = parallelCall(&slsDetector::setFileWrite, value);
|
||||||
// multi
|
|
||||||
auto r = parallelCall(&slsDetector::enableWriteToFile, enable);
|
|
||||||
return sls::minusOneIfDifferent(r);
|
return sls::minusOneIfDifferent(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
int multiSlsDetector::overwriteFile(int enable, int detPos) {
|
int multiSlsDetector::getFileWrite(int detPos) const{
|
||||||
// single
|
|
||||||
if (detPos >= 0) {
|
if (detPos >= 0) {
|
||||||
return detectors[detPos]->overwriteFile(enable);
|
return detectors[detPos]->getFileWrite();
|
||||||
}
|
}
|
||||||
|
auto r = parallelCall(&slsDetector::getFileWrite);
|
||||||
|
return sls::minusOneIfDifferent(r);
|
||||||
|
}
|
||||||
|
|
||||||
// multi
|
int multiSlsDetector::setFileOverWrite(bool enable, int detPos) {
|
||||||
auto r = parallelCall(&slsDetector::overwriteFile, enable);
|
if (detPos >= 0) {
|
||||||
|
return detectors[detPos]->setFileOverWrite(enable);
|
||||||
|
}
|
||||||
|
auto r = parallelCall(&slsDetector::setFileOverWrite, enable);
|
||||||
|
return sls::minusOneIfDifferent(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
int multiSlsDetector::getFileOverWrite(int detPos) const {
|
||||||
|
if (detPos >= 0) {
|
||||||
|
return detectors[detPos]->getFileOverWrite();
|
||||||
|
}
|
||||||
|
auto r = parallelCall(&slsDetector::getFileOverWrite);
|
||||||
return sls::minusOneIfDifferent(r);
|
return sls::minusOneIfDifferent(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,8 +370,8 @@ void slsDetector::initializeDetectorStructure(detectorType type) {
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
detector_shm()->receiver_fileWriteEnable = true;
|
detector_shm()->rxFileWrite = true;
|
||||||
detector_shm()->receiver_overWriteEnable = true;
|
detector_shm()->rxFileOverWrite = true;
|
||||||
|
|
||||||
// get the detector parameters based on type
|
// get the detector parameters based on type
|
||||||
detParameters parameters{};
|
detParameters parameters{};
|
||||||
@ -2132,8 +2132,8 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
|
|||||||
<< "\nr_framesperfile:" << detector_shm()->receiver_framesPerFile
|
<< "\nr_framesperfile:" << detector_shm()->receiver_framesPerFile
|
||||||
<< "\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()->receiver_fileWriteEnable
|
<< "\nwrite enable:" << detector_shm()->rxFileWrite
|
||||||
<< "\noverwrite enable:" << detector_shm()->receiver_overWriteEnable
|
<< "\noverwrite enable:" << detector_shm()->rxFileOverWrite
|
||||||
<< "\nframe index needed:"
|
<< "\nframe index needed:"
|
||||||
<< ((detector_shm()->timerValue[FRAME_NUMBER] *
|
<< ((detector_shm()->timerValue[FRAME_NUMBER] *
|
||||||
detector_shm()->timerValue[CYCLES_NUMBER]) > 1)
|
detector_shm()->timerValue[CYCLES_NUMBER]) > 1)
|
||||||
@ -2168,8 +2168,8 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
|
|||||||
setReceiverFramesPerFile(detector_shm()->receiver_framesPerFile);
|
setReceiverFramesPerFile(detector_shm()->receiver_framesPerFile);
|
||||||
setReceiverFramesDiscardPolicy(detector_shm()->receiver_frameDiscardMode);
|
setReceiverFramesDiscardPolicy(detector_shm()->receiver_frameDiscardMode);
|
||||||
setReceiverPartialFramesPadding(detector_shm()->receiver_framePadding);
|
setReceiverPartialFramesPadding(detector_shm()->receiver_framePadding);
|
||||||
enableWriteToFile(detector_shm()->receiver_fileWriteEnable);
|
setFileWrite(detector_shm()->rxFileWrite);
|
||||||
overwriteFile(detector_shm()->receiver_overWriteEnable);
|
setFileOverWrite(detector_shm()->rxFileOverWrite);
|
||||||
setTimer(FRAME_PERIOD, detector_shm()->timerValue[FRAME_PERIOD]);
|
setTimer(FRAME_PERIOD, detector_shm()->timerValue[FRAME_PERIOD]);
|
||||||
setTimer(FRAME_NUMBER, detector_shm()->timerValue[FRAME_NUMBER]);
|
setTimer(FRAME_NUMBER, detector_shm()->timerValue[FRAME_NUMBER]);
|
||||||
setTimer(ACQUISITION_TIME, detector_shm()->timerValue[ACQUISITION_TIME]);
|
setTimer(ACQUISITION_TIME, detector_shm()->timerValue[ACQUISITION_TIME]);
|
||||||
@ -3706,11 +3706,11 @@ int slsDetector::updateCachedReceiverVariables() const {
|
|||||||
|
|
||||||
// file write enable
|
// file write enable
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
detector_shm()->receiver_fileWriteEnable = i32;
|
detector_shm()->rxFileWrite = i32;
|
||||||
|
|
||||||
// file overwrite enable
|
// file overwrite enable
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
detector_shm()->receiver_overWriteEnable = i32;
|
detector_shm()->rxFileOverWrite = i32;
|
||||||
|
|
||||||
// gap pixels
|
// gap pixels
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
@ -3977,7 +3977,7 @@ int slsDetector::setFileIndex(int i) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int slsDetector::incrementFileIndex() {
|
int slsDetector::incrementFileIndex() {
|
||||||
if (detector_shm()->receiver_fileWriteEnable) {
|
if (detector_shm()->rxFileWrite) {
|
||||||
return setFileIndex(detector_shm()->receiver_fileIndex + 1);
|
return setFileIndex(detector_shm()->receiver_fileIndex + 1);
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_fileIndex;
|
return detector_shm()->receiver_fileIndex;
|
||||||
@ -4083,47 +4083,51 @@ int slsDetector::resetFramesCaught() {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetector::enableWriteToFile(int enable) {
|
bool slsDetector::setFileWrite(bool value) {
|
||||||
if (enable >= 0) {
|
int fnum = F_ENABLE_RECEIVER_FILE_WRITE;
|
||||||
int fnum = F_ENABLE_RECEIVER_FILE_WRITE;
|
int ret = FAIL;
|
||||||
int ret = FAIL;
|
int arg = static_cast<int>(value);
|
||||||
int arg = enable;
|
int retval = -1;
|
||||||
int retval = -1;
|
FILE_LOG(logDEBUG1) << "Sending enable file write to receiver: " << arg;
|
||||||
FILE_LOG(logDEBUG1) << "Sending enable file write to receiver: " << arg;
|
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
||||||
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
auto receiver = ReceiverSocket(detector_shm()->receiver_hostname,
|
||||||
auto receiver =
|
detector_shm()->receiverTCPPort);
|
||||||
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
|
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()->receiver_fileWriteEnable = retval;
|
detector_shm()->rxFileWrite = retval;
|
||||||
}
|
|
||||||
if (ret == FORCE_UPDATE) {
|
|
||||||
updateCachedReceiverVariables();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_fileWriteEnable;
|
if (ret == FORCE_UPDATE) {
|
||||||
|
updateCachedReceiverVariables();
|
||||||
|
}
|
||||||
|
return getFileWrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetector::overwriteFile(int enable) {
|
bool slsDetector::getFileWrite() const { return detector_shm()->rxFileWrite; }
|
||||||
if (enable >= 0) {
|
|
||||||
int fnum = F_ENABLE_RECEIVER_OVERWRITE;
|
|
||||||
int ret = FAIL;
|
|
||||||
int arg = enable;
|
|
||||||
int retval = -1;
|
|
||||||
FILE_LOG(logDEBUG1) << "Sending enable file overwrite to receiver: " << arg;
|
|
||||||
|
|
||||||
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
bool slsDetector::setFileOverWrite(bool value) {
|
||||||
auto receiver =
|
int fnum = F_ENABLE_RECEIVER_OVERWRITE;
|
||||||
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
|
int ret = FAIL;
|
||||||
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
|
int arg = static_cast<int>(value);
|
||||||
FILE_LOG(logDEBUG1) << "Receiver file overwrite enable: " << retval;
|
int retval = -1;
|
||||||
detector_shm()->receiver_overWriteEnable = retval;
|
FILE_LOG(logDEBUG1) << "Sending enable file overwrite to receiver: " << arg;
|
||||||
}
|
|
||||||
if (ret == FORCE_UPDATE) {
|
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
||||||
updateCachedReceiverVariables();
|
auto receiver = ReceiverSocket(detector_shm()->receiver_hostname,
|
||||||
}
|
detector_shm()->receiverTCPPort);
|
||||||
|
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval,
|
||||||
|
sizeof(retval));
|
||||||
|
FILE_LOG(logDEBUG1) << "Receiver file overwrite enable: " << retval;
|
||||||
|
detector_shm()->rxFileOverWrite = static_cast<bool>(retval);
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_overWriteEnable;
|
if (ret == FORCE_UPDATE) {
|
||||||
|
updateCachedReceiverVariables();
|
||||||
|
}
|
||||||
|
return getFileOverWrite();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool slsDetector::getFileOverWrite() const {
|
||||||
|
return detector_shm()->rxFileOverWrite;
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetector::setReceiverStreamingFrequency(int freq) {
|
int slsDetector::setReceiverStreamingFrequency(int freq) {
|
||||||
@ -4142,7 +4146,7 @@ int slsDetector::setReceiverStreamingFrequency(int freq) {
|
|||||||
detector_shm()->receiver_read_freq = retval;
|
detector_shm()->receiver_read_freq = retval;
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateCachedReceiverVariables();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_read_freq;
|
return detector_shm()->receiver_read_freq;
|
||||||
@ -4162,7 +4166,7 @@ int slsDetector::setReceiverStreamingTimer(int time_in_ms) {
|
|||||||
FILE_LOG(logDEBUG1) << "Receiver read timer: " << retval;
|
FILE_LOG(logDEBUG1) << "Receiver read timer: " << retval;
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateCachedReceiverVariables();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4180,10 +4184,10 @@ bool slsDetector::enableDataStreamingFromReceiver(int enable) {
|
|||||||
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 Data Streaming: " << retval;
|
FILE_LOG(logDEBUG1) << "Receiver Data Streaming: " << retval;
|
||||||
detector_shm()->receiver_upstream = retval;
|
detector_shm()->receiver_upstream = static_cast<bool>(retval);
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateCachedReceiverVariables();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_upstream;
|
return detector_shm()->receiver_upstream;
|
||||||
@ -4211,7 +4215,6 @@ int slsDetector::enableTenGigabitEthernet(int i) {
|
|||||||
// receiver
|
// receiver
|
||||||
if ((detector_shm()->receiverOnlineFlag == ONLINE_FLAG) && ret == OK) {
|
if ((detector_shm()->receiverOnlineFlag == ONLINE_FLAG) && ret == OK) {
|
||||||
fnum = F_ENABLE_RECEIVER_TEN_GIGA;
|
fnum = F_ENABLE_RECEIVER_TEN_GIGA;
|
||||||
ret = FAIL;
|
|
||||||
arg = detector_shm()->tenGigaEnable;
|
arg = detector_shm()->tenGigaEnable;
|
||||||
retval = -1;
|
retval = -1;
|
||||||
FILE_LOG(logDEBUG1) << "Sending 10Gbe enable to receiver: " << arg;
|
FILE_LOG(logDEBUG1) << "Sending 10Gbe enable to receiver: " << arg;
|
||||||
@ -4258,7 +4261,7 @@ bool slsDetector::setReceiverSilentMode(int i) {
|
|||||||
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 Data Streaming: " << retval;
|
FILE_LOG(logDEBUG1) << "Receiver Data Streaming: " << retval;
|
||||||
detector_shm()->receiver_silentMode = retval;
|
detector_shm()->receiver_silentMode = static_cast<bool>(retval);
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateCachedReceiverVariables();
|
updateCachedReceiverVariables();
|
||||||
@ -4550,7 +4553,7 @@ slsDetectorDefs::sls_detector_module *slsDetector::interpolateTrim(sls_detector_
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Interpolate all trimbits
|
// Interpolate all trimbits
|
||||||
if (tb) {
|
if (tb != 0) {
|
||||||
for (int i = 0; i < myMod->nchan; ++i) {
|
for (int i = 0; i < myMod->nchan; ++i) {
|
||||||
myMod->chanregs[i] =
|
myMod->chanregs[i] =
|
||||||
linearInterpolation(energy, e1, e2, a->chanregs[i], b->chanregs[i]);
|
linearInterpolation(energy, e1, e2, a->chanregs[i], b->chanregs[i]);
|
||||||
@ -4630,7 +4633,7 @@ slsDetector::readSettingsFile(const std::string &fname, sls_detector_module *myM
|
|||||||
if (infile.good()) {
|
if (infile.good()) {
|
||||||
infile.read(reinterpret_cast<char *>(&myMod->tau),
|
infile.read(reinterpret_cast<char *>(&myMod->tau),
|
||||||
sizeof(myMod->tau));
|
sizeof(myMod->tau));
|
||||||
if (tb) {
|
if (tb != 0) {
|
||||||
if (infile.good()) {
|
if (infile.good()) {
|
||||||
infile.read(reinterpret_cast<char *>(myMod->chanregs),
|
infile.read(reinterpret_cast<char *>(myMod->chanregs),
|
||||||
sizeof(int) * (myMod->nchan));
|
sizeof(int) * (myMod->nchan));
|
||||||
|
@ -2603,11 +2603,11 @@ std::string slsDetectorCommand::cmdEnablefwrite(int narg, char *args[], int acti
|
|||||||
}
|
}
|
||||||
if (action == PUT_ACTION) {
|
if (action == PUT_ACTION) {
|
||||||
if (sscanf(args[1], "%d", &i))
|
if (sscanf(args[1], "%d", &i))
|
||||||
myDet->enableWriteToFile(i, detPos);
|
myDet->setFileWrite(i, detPos);
|
||||||
else
|
else
|
||||||
return std::string("could not decode enable file write");
|
return std::string("could not decode enable file write");
|
||||||
}
|
}
|
||||||
sprintf(ans, "%d", myDet->enableWriteToFile(-1, detPos));
|
sprintf(ans, "%d", myDet->getFileWrite(detPos));
|
||||||
return std::string(ans);
|
return std::string(ans);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2621,7 +2621,6 @@ std::string slsDetectorCommand::helpEnablefwrite(int action) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string slsDetectorCommand::cmdOverwrite(int narg, char *args[], int action, int detPos) {
|
std::string slsDetectorCommand::cmdOverwrite(int narg, char *args[], int action, int detPos) {
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
char ans[100];
|
char ans[100];
|
||||||
myDet->setReceiverOnline(ONLINE_FLAG, detPos);
|
myDet->setReceiverOnline(ONLINE_FLAG, detPos);
|
||||||
@ -2630,11 +2629,11 @@ std::string slsDetectorCommand::cmdOverwrite(int narg, char *args[], int action,
|
|||||||
}
|
}
|
||||||
if (action == PUT_ACTION) {
|
if (action == PUT_ACTION) {
|
||||||
if (sscanf(args[1], "%d", &i))
|
if (sscanf(args[1], "%d", &i))
|
||||||
myDet->overwriteFile(i, detPos);
|
myDet->setFileOverWrite(i, detPos);
|
||||||
else
|
else
|
||||||
return std::string("could not decode overwrite");
|
return std::string("could not decode overwrite");
|
||||||
}
|
}
|
||||||
sprintf(ans, "%d", myDet->overwriteFile(-1, detPos));
|
sprintf(ans, "%d", myDet->getFileOverWrite(detPos));
|
||||||
return std::string(ans);
|
return std::string(ans);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,19 +284,26 @@ std::string slsDetectorUsers::setFileName(const std::string& s, int detPos){
|
|||||||
}
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::getFileIndex(int detPos){
|
int slsDetectorUsers::getFileIndex(int detPos){
|
||||||
return (int)detector.getFileIndex(detPos);
|
return detector.getFileIndex(detPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::setFileIndex(int i, int detPos){
|
int slsDetectorUsers::setFileIndex(int i, int detPos){
|
||||||
return (int)detector.setFileIndex(i, detPos);
|
return detector.setFileIndex(i, detPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::enableWriteToFile(int enable, int detPos){
|
int slsDetectorUsers::enableWriteToFile(int enable, int detPos){
|
||||||
return detector.enableWriteToFile(enable, detPos);
|
if (enable >0)
|
||||||
|
return detector.setFileWrite(enable, detPos);
|
||||||
|
else
|
||||||
|
return detector.getFileWrite(detPos);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::enableOverwriteFile(int enable, int detPos){
|
int slsDetectorUsers::enableOverwriteFile(int enable, int detPos) {
|
||||||
return detector.overwriteFile(enable, detPos);
|
if (enable > 0)
|
||||||
|
return detector.setFileOverWrite(enable, detPos);
|
||||||
|
else
|
||||||
|
return detector.getFileOverWrite(detPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::setReceiverStreamingFrequency(int freq, int detPos){
|
int slsDetectorUsers::setReceiverStreamingFrequency(int freq, int detPos){
|
||||||
|
@ -95,6 +95,12 @@ template <typename T> T minusOneIfDifferent(const std::vector<T> &container) {
|
|||||||
return static_cast<T>(-1);
|
return static_cast<T>(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline int minusOneIfDifferent(const std::vector<bool> &container) {
|
||||||
|
if (allEqual(container))
|
||||||
|
return static_cast<int>(container.front());
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
std::vector<T>
|
std::vector<T>
|
||||||
minusOneIfDifferent(const std::vector<std::vector<T>> &container) {
|
minusOneIfDifferent(const std::vector<std::vector<T>> &container) {
|
||||||
|
@ -112,3 +112,14 @@ TEST_CASE("Compare a vector containing two vectors", "[support]") {
|
|||||||
CHECK(minusOneIfDifferent(c) == std::vector<int>{-1});
|
CHECK(minusOneIfDifferent(c) == std::vector<int>{-1});
|
||||||
CHECK(minusOneIfDifferent(d) == d[2]);
|
CHECK(minusOneIfDifferent(d) == d[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST_CASE("vector of bool", "[support]"){
|
||||||
|
std::vector<bool> a{true, true, true};
|
||||||
|
std::vector<bool> b{false, false, false};
|
||||||
|
std::vector<bool> c{true, false, true};
|
||||||
|
|
||||||
|
CHECK(minusOneIfDifferent(a) == 1);
|
||||||
|
CHECK(minusOneIfDifferent(b) == 0);
|
||||||
|
CHECK(minusOneIfDifferent(c) == -1);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user