mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 15:00:02 +02:00
getFileIndex
This commit is contained in:
parent
92b674354d
commit
4b7c5c5950
@ -505,7 +505,7 @@ class Detector {
|
||||
}
|
||||
|
||||
int getFileIndex() {
|
||||
return det.setFileIndex(-1);
|
||||
return det.getFileIndex();
|
||||
}
|
||||
|
||||
//time in ns
|
||||
|
@ -1654,6 +1654,8 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
*/
|
||||
int setFileIndex(int i, int detPos = -1);
|
||||
|
||||
int getFileIndex(int detPos = -1) const;
|
||||
|
||||
/**
|
||||
* increments file index
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
|
@ -216,7 +216,7 @@ struct sharedSlsDetector {
|
||||
slsDetectorDefs::frameDiscardPolicy receiver_frameDiscardMode;
|
||||
|
||||
/** receiver partial frames padding enable */
|
||||
bool receiver_framePadding;
|
||||
bool rxFramePadding;
|
||||
|
||||
/** activated receiver */
|
||||
bool activated;
|
||||
@ -234,7 +234,7 @@ struct sharedSlsDetector {
|
||||
char receiver_fileName[MAX_STR_LENGTH];
|
||||
|
||||
/** file index */
|
||||
int receiver_fileIndex;
|
||||
int rxFileIndex;
|
||||
|
||||
/** file format */
|
||||
slsDetectorDefs::fileFormat rxFileFormat;
|
||||
@ -1508,6 +1508,12 @@ class slsDetector : public virtual slsDetectorDefs{
|
||||
*/
|
||||
int setFileIndex(int i);
|
||||
|
||||
/**
|
||||
* Gets the file index
|
||||
* @returns file index
|
||||
*/
|
||||
|
||||
int getFileIndex() const;
|
||||
/**
|
||||
* increments file index
|
||||
* @returns the file index
|
||||
|
@ -2978,6 +2978,13 @@ int multiSlsDetector::setFileIndex(int i, int detPos) {
|
||||
return sls::minusOneIfDifferent(r);
|
||||
}
|
||||
|
||||
int multiSlsDetector::getFileIndex(int detPos) const {
|
||||
if (detPos >= 0)
|
||||
return detectors[detPos]->getFileIndex();
|
||||
auto r = parallelCall(&slsDetector::getFileIndex);
|
||||
return sls::minusOneIfDifferent(r);
|
||||
}
|
||||
|
||||
int multiSlsDetector::startReceiver(int detPos) {
|
||||
// single
|
||||
if (detPos >= 0) {
|
||||
|
@ -343,13 +343,13 @@ void slsDetector::initializeDetectorStructure(detectorType type) {
|
||||
detector_shm()->detectorStopAPIVersion = 0;
|
||||
detector_shm()->receiverAPIVersion = 0;
|
||||
detector_shm()->receiver_frameDiscardMode = NO_DISCARD;
|
||||
detector_shm()->receiver_framePadding = true;
|
||||
detector_shm()->rxFramePadding = true;
|
||||
detector_shm()->activated = true;
|
||||
detector_shm()->receiver_deactivatedPaddingEnable = true;
|
||||
detector_shm()->receiver_silentMode = false;
|
||||
sls::strcpy_safe(detector_shm()->receiver_filePath, "/");
|
||||
sls::strcpy_safe(detector_shm()->receiver_fileName, "run");
|
||||
detector_shm()->receiver_fileIndex = 0;
|
||||
detector_shm()->rxFileIndex = 0;
|
||||
detector_shm()->rxFileFormat = BINARY;
|
||||
switch (detector_shm()->myDetectorType) {
|
||||
case GOTTHARD:
|
||||
@ -2127,11 +2127,11 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
|
||||
<< "\ndetector id:" << detId << "\ndetector hostname:" << detector_shm()->hostname
|
||||
<< "\nfile path:" << detector_shm()->receiver_filePath
|
||||
<< "\nfile name:" << detector_shm()->receiver_fileName
|
||||
<< "\nfile index:" << detector_shm()->receiver_fileIndex
|
||||
<< "\nfile index:" << detector_shm()->rxFileIndex
|
||||
<< "\nfile format:" << detector_shm()->rxFileFormat
|
||||
<< "\nr_framesperfile:" << detector_shm()->rxFramesPerFile
|
||||
<< "\nr_discardpolicy:" << detector_shm()->receiver_frameDiscardMode
|
||||
<< "\nr_padding:" << detector_shm()->receiver_framePadding
|
||||
<< "\nr_padding:" << detector_shm()->rxFramePadding
|
||||
<< "\nwrite enable:" << detector_shm()->rxFileWrite
|
||||
<< "\noverwrite enable:" << detector_shm()->rxFileOverWrite
|
||||
<< "\nframe index needed:"
|
||||
@ -2163,11 +2163,11 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
|
||||
setReceiverUDPSocketBufferSize(0);
|
||||
setFilePath(detector_shm()->receiver_filePath);
|
||||
setFileName(detector_shm()->receiver_fileName);
|
||||
setFileIndex(detector_shm()->receiver_fileIndex);
|
||||
setFileIndex(detector_shm()->rxFileIndex);
|
||||
setFileFormat(detector_shm()->rxFileFormat);
|
||||
setFramesPerFile(detector_shm()->rxFramesPerFile);
|
||||
setReceiverFramesDiscardPolicy(detector_shm()->receiver_frameDiscardMode);
|
||||
setReceiverPartialFramesPadding(detector_shm()->receiver_framePadding);
|
||||
setReceiverPartialFramesPadding(detector_shm()->rxFramePadding);
|
||||
setFileWrite(detector_shm()->rxFileWrite);
|
||||
setFileOverWrite(detector_shm()->rxFileOverWrite);
|
||||
setTimer(FRAME_PERIOD, detector_shm()->timerValue[FRAME_PERIOD]);
|
||||
@ -3686,7 +3686,7 @@ int slsDetector::updateCachedReceiverVariables() const {
|
||||
|
||||
// index
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->receiver_fileIndex = i32;
|
||||
detector_shm()->rxFileIndex = i32;
|
||||
|
||||
// file format
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
@ -3702,15 +3702,15 @@ int slsDetector::updateCachedReceiverVariables() const {
|
||||
|
||||
// frame padding
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->receiver_framePadding = i32;
|
||||
detector_shm()->rxFramePadding = static_cast<bool>(i32);
|
||||
|
||||
// file write enable
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->rxFileWrite = i32;
|
||||
detector_shm()->rxFileWrite = static_cast<bool>(i32);
|
||||
|
||||
// file overwrite enable
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->rxFileOverWrite = i32;
|
||||
detector_shm()->rxFileOverWrite = static_cast<bool>(i32);
|
||||
|
||||
// gap pixels
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
@ -3734,21 +3734,21 @@ int slsDetector::updateCachedReceiverVariables() const {
|
||||
|
||||
// receiver streaming enable
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->receiver_upstream = i32;
|
||||
detector_shm()->receiver_upstream = static_cast<bool>(i32);
|
||||
|
||||
// activate
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->activated = i32;
|
||||
detector_shm()->activated = static_cast<bool>(i32);
|
||||
|
||||
// deactivated padding enable
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->receiver_deactivatedPaddingEnable = i32;
|
||||
detector_shm()->receiver_deactivatedPaddingEnable = static_cast<bool>(i32);
|
||||
|
||||
// silent mode
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
detector_shm()->receiver_silentMode = i32;
|
||||
detector_shm()->receiver_silentMode = static_cast<bool>(i32);
|
||||
|
||||
if (!n) {
|
||||
if (n == 0) {
|
||||
throw RuntimeError(
|
||||
"Could not update receiver: " + std::string(detector_shm()->receiver_hostname) +
|
||||
", received 0 bytes\n");
|
||||
@ -3775,7 +3775,7 @@ void slsDetector::sendMultiDetectorSize() {
|
||||
FILE_LOG(logDEBUG1) << "Receiver multi size returned: " << retval;
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateCachedReceiverVariables();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
|
||||
@ -3793,7 +3793,7 @@ void slsDetector::setDetectorId() {
|
||||
FILE_LOG(logDEBUG1) << "Receiver Position Id returned: " << retval;
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateCachedReceiverVariables();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
|
||||
@ -3923,12 +3923,12 @@ 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 = static_cast<bool>(retval);
|
||||
detector_shm()->rxFramePadding = static_cast<bool>(retval);
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
return detector_shm()->receiver_framePadding;
|
||||
return detector_shm()->rxFramePadding;
|
||||
}
|
||||
|
||||
slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
|
||||
@ -3957,7 +3957,7 @@ slsDetectorDefs::fileFormat slsDetector::getFileFormat() const {
|
||||
return detector_shm()->rxFileFormat;
|
||||
}
|
||||
|
||||
int slsDetector::getFileIndex() { return detector_shm()->receiver_fileIndex; }
|
||||
int slsDetector::getFileIndex() { return detector_shm()->rxFileIndex; }
|
||||
|
||||
int slsDetector::setFileIndex(int i) {
|
||||
if (i >= 0) {
|
||||
@ -3971,20 +3971,22 @@ int slsDetector::setFileIndex(int i) {
|
||||
ReceiverSocket(detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
|
||||
ret = receiver.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
|
||||
FILE_LOG(logDEBUG1) << "Receiver file index: " << retval;
|
||||
detector_shm()->receiver_fileIndex = retval;
|
||||
detector_shm()->rxFileIndex = retval;
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_fileIndex;
|
||||
return getFileIndex();
|
||||
}
|
||||
|
||||
int slsDetector::getFileIndex() const { return detector_shm()->rxFileIndex; }
|
||||
|
||||
int slsDetector::incrementFileIndex() {
|
||||
if (detector_shm()->rxFileWrite) {
|
||||
return setFileIndex(detector_shm()->receiver_fileIndex + 1);
|
||||
return setFileIndex(detector_shm()->rxFileIndex + 1);
|
||||
}
|
||||
return detector_shm()->receiver_fileIndex;
|
||||
return detector_shm()->rxFileIndex;
|
||||
}
|
||||
|
||||
int slsDetector::startReceiver() {
|
||||
|
@ -2647,19 +2647,14 @@ std::string slsDetectorCommand::helpOverwrite(int action) {
|
||||
}
|
||||
|
||||
std::string slsDetectorCommand::cmdFileIndex(int narg, char *args[], int action, int detPos) {
|
||||
char ans[100];
|
||||
int i;
|
||||
myDet->setReceiverOnline(ONLINE_FLAG, detPos);
|
||||
if (action == HELP_ACTION) {
|
||||
return helpFileName(action);
|
||||
} else if (action == PUT_ACTION) {
|
||||
if (!sscanf(args[1], "%d", &i))
|
||||
return std::string("cannot parse file index");
|
||||
int i = std::stoi(args[1]);
|
||||
myDet->setFileIndex(i, detPos);
|
||||
}
|
||||
|
||||
sprintf(ans, "%d", myDet->getFileIndex(detPos));
|
||||
return std::string(ans);
|
||||
return std::to_string(myDet->getFileIndex(detPos));
|
||||
}
|
||||
|
||||
std::string slsDetectorCommand::helpFileIndex(int action) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user