mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-12 12:57:13 +02:00
master file option, adcdisable changed to adcenable
This commit is contained in:
@ -1735,13 +1735,33 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
|
||||
/**
|
||||
* Sets/Gets receiver file write enable
|
||||
* @param enable 1 or 0 to set/reset file write enable
|
||||
* @param value 1 or 0 to set/reset file write enable
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns file write enable
|
||||
*/
|
||||
int setFileWrite(bool value, int detPos = -1);
|
||||
|
||||
/**
|
||||
* Gets file write enable
|
||||
* @returns file write enable
|
||||
*/
|
||||
int getFileWrite(int detPos = -1) const;
|
||||
|
||||
/**
|
||||
* Sets/Gets receiver master file write enable
|
||||
* @param value 1 or 0 to set/reset master file write enable
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns master file write enable
|
||||
*/
|
||||
int setMasterFileWrite(bool value, int detPos = -1);
|
||||
|
||||
/**
|
||||
* Gets master file write enable
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns master file write enable
|
||||
*/
|
||||
int getMasterFileWrite(int detPos = -1) const;
|
||||
|
||||
/**
|
||||
* Sets/Gets file overwrite enable
|
||||
* @param enable 1 or 0 to set/reset file overwrite enable
|
||||
@ -1749,6 +1769,12 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
* @returns file overwrite enable
|
||||
*/
|
||||
int setFileOverWrite(bool enable, int detPos = -1);
|
||||
|
||||
/**
|
||||
* Gets file over write enable
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns file over write enable
|
||||
*/
|
||||
int getFileOverWrite(int detPos = -1) const;
|
||||
|
||||
/**
|
||||
|
@ -16,7 +16,7 @@ class multiSlsDetector;
|
||||
class ServerInterface;
|
||||
class MySocketTCP;
|
||||
|
||||
#define SLS_SHMVERSION 0x190426
|
||||
#define SLS_SHMVERSION 0x190430
|
||||
#define NCHIPSMAX 10
|
||||
#define NCHANSMAX 65536
|
||||
#define NDACSMAX 16
|
||||
@ -240,6 +240,9 @@ struct sharedSlsDetector {
|
||||
/** file write enable */
|
||||
bool rxFileWrite;
|
||||
|
||||
/** master file write enable */
|
||||
bool rxMasterFileWrite;
|
||||
|
||||
/** overwrite enable */
|
||||
bool rxFileOverWrite;
|
||||
|
||||
@ -1637,8 +1640,25 @@ class slsDetector : public virtual slsDetectorDefs{
|
||||
*/
|
||||
bool setFileWrite(bool value);
|
||||
|
||||
/**
|
||||
* Gets file write enable
|
||||
* @returns file write enable
|
||||
*/
|
||||
bool getFileWrite() const;
|
||||
|
||||
/**
|
||||
* Sets/Gets receiver master file write enable
|
||||
* @param value 1 or 0 to set/reset master file write enable
|
||||
* @returns master file write enable
|
||||
*/
|
||||
bool setMasterFileWrite(bool value);
|
||||
|
||||
/**
|
||||
* Gets master file write enable
|
||||
* @returns master file write enable
|
||||
*/
|
||||
bool getMasterFileWrite() const;
|
||||
|
||||
/**
|
||||
* Sets file overwrite in the receiver
|
||||
* @param enable true or false to set/reset file overwrite enable
|
||||
|
@ -3500,6 +3500,22 @@ int multiSlsDetector::getFileWrite(int detPos) const{
|
||||
return sls::minusOneIfDifferent(r);
|
||||
}
|
||||
|
||||
int multiSlsDetector::setMasterFileWrite(bool value, int detPos) {
|
||||
if (detPos >= 0) {
|
||||
return detectors[detPos]->setMasterFileWrite(value);
|
||||
}
|
||||
auto r = parallelCall(&slsDetector::setMasterFileWrite, value);
|
||||
return sls::minusOneIfDifferent(r);
|
||||
}
|
||||
|
||||
int multiSlsDetector::getMasterFileWrite(int detPos) const{
|
||||
if (detPos >= 0) {
|
||||
return detectors[detPos]->getMasterFileWrite();
|
||||
}
|
||||
auto r = parallelCall(&slsDetector::getMasterFileWrite);
|
||||
return sls::minusOneIfDifferent(r);
|
||||
}
|
||||
|
||||
int multiSlsDetector::setFileOverWrite(bool enable, int detPos) {
|
||||
if (detPos >= 0) {
|
||||
return detectors[detPos]->setFileOverWrite(enable);
|
||||
|
@ -390,6 +390,7 @@ void slsDetector::initializeDetectorStructure(detectorType type) {
|
||||
break;
|
||||
}
|
||||
shm()->rxFileWrite = true;
|
||||
shm()->rxMasterFileWrite = true;
|
||||
shm()->rxFileOverWrite = true;
|
||||
|
||||
// get the detector parameters based on type
|
||||
@ -1873,6 +1874,7 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
|
||||
<< "\nr_discardpolicy:" << shm()->rxFrameDiscardMode
|
||||
<< "\nr_padding:" << shm()->rxFramePadding
|
||||
<< "\nwrite enable:" << shm()->rxFileWrite
|
||||
<< "\nmaster write enable:" << shm()->rxMasterFileWrite
|
||||
<< "\noverwrite enable:" << shm()->rxFileOverWrite
|
||||
<< "\nframe index needed:"
|
||||
<< ((shm()->timerValue[FRAME_NUMBER] *
|
||||
@ -1912,6 +1914,7 @@ std::string slsDetector::setReceiverHostname(const std::string &receiverIP) {
|
||||
setReceiverFramesDiscardPolicy(shm()->rxFrameDiscardMode);
|
||||
setPartialFramesPadding(shm()->rxFramePadding);
|
||||
setFileWrite(shm()->rxFileWrite);
|
||||
setMasterFileWrite(shm()->rxMasterFileWrite);
|
||||
setFileOverWrite(shm()->rxFileOverWrite);
|
||||
setTimer(FRAME_PERIOD, shm()->timerValue[FRAME_PERIOD]);
|
||||
setTimer(FRAME_NUMBER, shm()->timerValue[FRAME_NUMBER]);
|
||||
@ -3236,6 +3239,10 @@ int slsDetector::updateCachedReceiverVariables() const {
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
shm()->rxFileWrite = static_cast<bool>(i32);
|
||||
|
||||
// master file write enable
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
shm()->rxMasterFileWrite = static_cast<bool>(i32);
|
||||
|
||||
// file overwrite enable
|
||||
n += receiver.receiveData(&i32, sizeof(i32));
|
||||
shm()->rxFileOverWrite = static_cast<bool>(i32);
|
||||
@ -3508,6 +3515,20 @@ bool slsDetector::setFileWrite(bool value) {
|
||||
|
||||
bool slsDetector::getFileWrite() const { return shm()->rxFileWrite; }
|
||||
|
||||
bool slsDetector::setMasterFileWrite(bool value) {
|
||||
int arg = static_cast<int>(value);
|
||||
int retval = -1;
|
||||
FILE_LOG(logDEBUG1) << "Sending enable master file write to receiver: " << arg;
|
||||
if (shm()->rxOnlineFlag == ONLINE_FLAG) {
|
||||
sendToReceiver(F_ENABLE_RECEIVER_MASTER_FILE_WRITE, arg, retval);
|
||||
FILE_LOG(logDEBUG1) << "Receiver master file write enable: " << retval;
|
||||
shm()->rxMasterFileWrite = static_cast<bool>(retval);
|
||||
}
|
||||
return getMasterFileWrite();
|
||||
}
|
||||
|
||||
bool slsDetector::getMasterFileWrite() const { return shm()->rxMasterFileWrite; }
|
||||
|
||||
bool slsDetector::setFileOverWrite(bool value) {
|
||||
int arg = static_cast<int>(value);
|
||||
int retval = -1;
|
||||
|
@ -1541,10 +1541,17 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) {
|
||||
++i;
|
||||
|
||||
/*! \page output
|
||||
- <b>fileformat</b> sets/gets the file format for data in receiver. Options: [binary, hdf5]. \c Returns \c (string)
|
||||
- <b>fileformat [i]</b> sets/gets the file format for data in receiver. Options: [binary, hdf5]. \c Returns \c (string)
|
||||
*/
|
||||
descrToFuncMap[i].m_pFuncName = "fileformat";
|
||||
descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdFileName;
|
||||
++i;
|
||||
|
||||
/*! \page output
|
||||
- <b>masterfile [i]</b> sets/gets the master file write enable in receiver. \c Returns \c (int)
|
||||
*/
|
||||
descrToFuncMap[i].m_pFuncName = "masterfile";
|
||||
descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdEnablefwrite;
|
||||
++i;
|
||||
|
||||
/* communication configuration */
|
||||
@ -1921,9 +1928,9 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) {
|
||||
++i;
|
||||
|
||||
/*! \page prototype
|
||||
- <b>adcdisable [mask]</b> Sets/gets ADC disable mask (8 digits hex format)
|
||||
- <b>adcenable [mask]</b> Sets/gets ADC enable mask (8 digits hex format)
|
||||
*/
|
||||
descrToFuncMap[i].m_pFuncName = "adcdisable";
|
||||
descrToFuncMap[i].m_pFuncName = "adcenable";
|
||||
descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdPattern;
|
||||
++i;
|
||||
|
||||
@ -2599,6 +2606,7 @@ std::string slsDetectorCommand::cmdEnablefwrite(int narg, char *args[], int acti
|
||||
if (action == HELP_ACTION) {
|
||||
return helpEnablefwrite(action);
|
||||
}
|
||||
if (cmd == "enablefwrite") {
|
||||
if (action == PUT_ACTION) {
|
||||
if (sscanf(args[1], "%d", &i))
|
||||
myDet->setFileWrite(i, detPos);
|
||||
@ -2609,12 +2617,30 @@ std::string slsDetectorCommand::cmdEnablefwrite(int narg, char *args[], int acti
|
||||
return std::string(ans);
|
||||
}
|
||||
|
||||
else if (cmd == "masterfile") {
|
||||
if (action == PUT_ACTION) {
|
||||
if (sscanf(args[1], "%d", &i))
|
||||
myDet->setMasterFileWrite(i, detPos);
|
||||
else
|
||||
return std::string("could not decode master file enable");
|
||||
}
|
||||
sprintf(ans, "%d", myDet->getMasterFileWrite(detPos));
|
||||
return std::string(ans);
|
||||
}
|
||||
|
||||
else return std::string("unknown command " + cmd);
|
||||
}
|
||||
|
||||
std::string slsDetectorCommand::helpEnablefwrite(int action) {
|
||||
std::ostringstream os;
|
||||
if (action == GET_ACTION || action == HELP_ACTION)
|
||||
if (action == GET_ACTION || action == HELP_ACTION) {
|
||||
os << std::string("enablefwrite \t When Enabled writes the data into the file\n");
|
||||
if (action == PUT_ACTION || action == HELP_ACTION)
|
||||
os << std::string("enablefwrite i \t should be 1 or 0 or -1\n");
|
||||
os << std::string("masterfile \t When Enabled writes the master file\n");
|
||||
}
|
||||
if (action == PUT_ACTION || action == HELP_ACTION) {
|
||||
os << std::string("enablefwrite i \t should be 1 or 0\n");
|
||||
os << std::string("masterfile i \t sets the master file write enable. should be 1 or 0\n");
|
||||
}
|
||||
return os.str();
|
||||
}
|
||||
|
||||
@ -5172,7 +5198,7 @@ std::string slsDetectorCommand::helpPattern(int action) {
|
||||
os << "patmask m \t sets the 64 bit mask (hex) applied to every pattern. Only the bits from patsetbit are selected to mask for the corresponding bit value from m mask" << std::endl;
|
||||
os << "patsetbit m \t selects bits (hex) of the 64 bits that the patmask will be applied to every pattern. Only the bits from m mask are selected to mask for the corresponding bit value from patmask." << std::endl;
|
||||
os << "adcinvert mask\t sets the adcinversion mask (hex)" << std::endl;
|
||||
os << "adcdisable mask\t sets the adcdisable mask (hex)" << std::endl;
|
||||
os << "adcenable mask\t sets the adcenable mask (hex)" << std::endl;
|
||||
}
|
||||
if (action == GET_ACTION || action == HELP_ACTION) {
|
||||
os << "pattern \t cannot get" << std::endl;
|
||||
@ -5196,7 +5222,7 @@ std::string slsDetectorCommand::helpPattern(int action) {
|
||||
os << "patsetbit \t gets 64 bit mask (hex) of the selected bits that the patmask will be applied to every pattern. " << std::endl;
|
||||
os << "adcinvert \t returns the adcinversion mask " << std::endl;
|
||||
|
||||
os << "adcdisable \t returns the adcdisable mask " << std::endl;
|
||||
os << "adcenable \t returns the adcenable mask " << std::endl;
|
||||
}
|
||||
return os.str();
|
||||
}
|
||||
@ -5552,24 +5578,19 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i
|
||||
}
|
||||
|
||||
os << std::hex << myDet->readRegister(123, detPos) << std::dec ; //0x7b
|
||||
} else if (cmd == "adcdisable") {
|
||||
} else if (cmd == "adcenable") {
|
||||
|
||||
if (action == PUT_ACTION) {
|
||||
uint32_t adcEnableMask = 0;
|
||||
if (sscanf(args[1], "%x", &adcEnableMask))
|
||||
;
|
||||
else
|
||||
return std::string("Could not scan adcdisable reg ") + std::string(args[1]);
|
||||
return std::string("Could not scan adcenable reg ") + std::string(args[1]);
|
||||
|
||||
// get enable mask from enable mask
|
||||
adcEnableMask ^= BIT32_MASK;
|
||||
myDet->setADCEnableMask(adcEnableMask, detPos);
|
||||
}
|
||||
|
||||
uint32_t retval = myDet->getADCEnableMask(detPos);
|
||||
// get disable mask
|
||||
retval ^= BIT32_MASK;
|
||||
os << std::hex << retval << std::dec;
|
||||
os << std::hex << myDet->getADCEnableMask(detPos) << std::dec;
|
||||
}
|
||||
|
||||
else
|
||||
|
@ -58,6 +58,7 @@ class BinaryFile : private virtual slsDetectorDefs, public File, public BinaryFi
|
||||
|
||||
/**
|
||||
* Create master file
|
||||
* @param mfwenable master file write enable
|
||||
* @param en ten giga enable
|
||||
* @param size image size
|
||||
* @param nx number of pixels in x direction
|
||||
@ -68,7 +69,7 @@ class BinaryFile : private virtual slsDetectorDefs, public File, public BinaryFi
|
||||
* @param ap acquisition period
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int CreateMasterFile(bool en, uint32_t size,
|
||||
int CreateMasterFile(bool mfwenable, bool en, uint32_t size,
|
||||
uint32_t nx, uint32_t ny, uint64_t at, uint64_t st, uint64_t sp,
|
||||
uint64_t ap);
|
||||
|
||||
|
@ -29,6 +29,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
|
||||
* @param f address of Fifo pointer
|
||||
* @param ftype pointer to file format type
|
||||
* @param fwenable file writer enable
|
||||
* @apram mfwenable pointer to master file write enable
|
||||
* @param dsEnable pointer to data stream enable
|
||||
* @param gpEnable pointer to gap pixels enable
|
||||
* @param dr pointer to dynamic range
|
||||
@ -40,7 +41,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
|
||||
* @param sm pointer to silent mode
|
||||
*/
|
||||
DataProcessor(int ind, detectorType dtype, Fifo* f, fileFormat* ftype,
|
||||
bool fwenable, bool* dsEnable, bool* gpEnable, uint32_t* dr,
|
||||
bool fwenable, bool* mfwenable, bool* dsEnable, bool* gpEnable, uint32_t* dr,
|
||||
uint32_t* freq, uint32_t* timer,
|
||||
bool* fp, bool* act, bool* depaden, bool* sm);
|
||||
|
||||
@ -325,6 +326,9 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
|
||||
/** File Write Enable */
|
||||
bool fileWriteEnable;
|
||||
|
||||
/** Master File Write Enable */
|
||||
bool* masterFileWriteEnable;
|
||||
|
||||
/** Gap Pixels Enable */
|
||||
bool* gapPixelsEnable;
|
||||
|
||||
|
@ -121,6 +121,7 @@ class File : private virtual slsDetectorDefs {
|
||||
|
||||
/**
|
||||
* Create master file
|
||||
* @param mfwenable master file write enable
|
||||
* @param en ten giga enable
|
||||
* @param size image size
|
||||
* @param nx number of pixels in x direction
|
||||
@ -131,7 +132,7 @@ class File : private virtual slsDetectorDefs {
|
||||
* @param ap acquisition period
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
virtual int CreateMasterFile(bool en, uint32_t size,
|
||||
virtual int CreateMasterFile(bool mfwenable, bool en, uint32_t size,
|
||||
uint32_t nx, uint32_t ny, uint64_t at, uint64_t st,
|
||||
uint64_t sp, uint64_t ap) {
|
||||
FILE_LOG(logERROR) << "This is a generic function CreateMasterFile that "
|
||||
|
@ -93,6 +93,7 @@ class HDF5File : private virtual slsDetectorDefs, public File, public HDF5FileSt
|
||||
|
||||
/**
|
||||
* Create master file
|
||||
* @param mfwenable master file write enable
|
||||
* @param en ten giga enable
|
||||
* @param size image size
|
||||
* @param nx number of pixels in x direction
|
||||
@ -103,7 +104,7 @@ class HDF5File : private virtual slsDetectorDefs, public File, public HDF5FileSt
|
||||
* @param ap acquisition period
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int CreateMasterFile(bool en, uint32_t size,
|
||||
int CreateMasterFile(bool mfwenable, bool en, uint32_t size,
|
||||
uint32_t nx, uint32_t ny, uint64_t at, uint64_t st, uint64_t sp,
|
||||
uint64_t ap);
|
||||
|
||||
|
@ -128,6 +128,12 @@ class slsReceiverImplementation: private virtual slsDetectorDefs {
|
||||
*/
|
||||
bool getFileWriteEnable() const;
|
||||
|
||||
/**
|
||||
* Get Master File Write Enable
|
||||
* @return true if Master file write enabled, else false
|
||||
*/
|
||||
bool getMasterFileWriteEnable() const;
|
||||
|
||||
/**
|
||||
* Get File Over Write Enable
|
||||
* @return true if file over write enabled, else false
|
||||
@ -426,6 +432,12 @@ class slsReceiverImplementation: private virtual slsDetectorDefs {
|
||||
*/
|
||||
void setFileWriteEnable(const bool b);
|
||||
|
||||
/**
|
||||
* Set Master File Write Enable
|
||||
* @param b true for Master file write enable, else false
|
||||
*/
|
||||
void setMasterFileWriteEnable(const bool b);
|
||||
|
||||
/**
|
||||
* Set File Overwrite Enable
|
||||
* @param b true for file overwrite enable, else false
|
||||
@ -862,6 +874,8 @@ private:
|
||||
uint32_t framesPerFile;
|
||||
/** File Write enable */
|
||||
bool fileWriteEnable;
|
||||
/** MasterFile Write enable */
|
||||
bool masterFileWriteEnable;
|
||||
/** Overwrite enable */
|
||||
bool overwriteEnable;
|
||||
|
||||
|
@ -204,6 +204,9 @@ class slsReceiverTCPIPInterface : private virtual slsDetectorDefs {
|
||||
/** Enable File Write*/
|
||||
int enable_file_write();
|
||||
|
||||
/** Enable Master File Write */
|
||||
int enable_master_file_write();
|
||||
|
||||
/** enable compression */
|
||||
int enable_compression();
|
||||
|
||||
|
@ -113,14 +113,14 @@ int BinaryFile::WriteToFile(char* buffer, int buffersize, uint64_t fnum, uint32_
|
||||
}
|
||||
|
||||
|
||||
int BinaryFile::CreateMasterFile(bool en, uint32_t size,
|
||||
int BinaryFile::CreateMasterFile(bool mfwenable, bool en, uint32_t size,
|
||||
uint32_t nx, uint32_t ny, uint64_t at, uint64_t st, uint64_t sp,
|
||||
uint64_t ap) {
|
||||
//beginning of every acquisition
|
||||
numFramesInFile = 0;
|
||||
numActualPacketsInFile = 0;
|
||||
|
||||
if (master && (*detIndex==0)) {
|
||||
if (mfwenable && master && (*detIndex==0)) {
|
||||
masterFileName = BinaryFileStatic::CreateMasterFileName(filePath,
|
||||
fileNamePrefix, *fileIndex);
|
||||
if(!(*silentMode)) {
|
||||
|
@ -24,7 +24,7 @@ const std::string DataProcessor::TypeName = "DataProcessor";
|
||||
|
||||
|
||||
DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo* f,
|
||||
fileFormat* ftype, bool fwenable,
|
||||
fileFormat* ftype, bool fwenable, bool* mfwenable,
|
||||
bool* dsEnable, bool* gpEnable, uint32_t* dr,
|
||||
uint32_t* freq, uint32_t* timer,
|
||||
bool* fp, bool* act, bool* depaden, bool* sm) :
|
||||
@ -38,6 +38,7 @@ DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo* f,
|
||||
dataStreamEnable(dsEnable),
|
||||
fileFormatType(ftype),
|
||||
fileWriteEnable(fwenable),
|
||||
masterFileWriteEnable(mfwenable),
|
||||
gapPixelsEnable(gpEnable),
|
||||
dynamicRange(dr),
|
||||
streamingFrequency(freq),
|
||||
@ -247,7 +248,7 @@ int DataProcessor::CreateNewFile(bool en, uint64_t nf, uint64_t at, uint64_t st,
|
||||
if (file == nullptr)
|
||||
return FAIL;
|
||||
file->CloseAllFiles();
|
||||
if (file->CreateMasterFile(en, generalData->imageSize,
|
||||
if (file->CreateMasterFile(*masterFileWriteEnable, en, generalData->imageSize,
|
||||
generalData->nPixelsX, generalData->nPixelsY,
|
||||
at, st, sp, ap) == FAIL)
|
||||
return FAIL;
|
||||
|
@ -238,7 +238,7 @@ int HDF5File::WriteToFile(char* buffer, int buffersize, uint64_t fnum, uint32_t
|
||||
}
|
||||
|
||||
|
||||
int HDF5File::CreateMasterFile(bool en, uint32_t size,
|
||||
int HDF5File::CreateMasterFile(bool mfwenable, bool en, uint32_t size,
|
||||
uint32_t nx, uint32_t ny, uint64_t at, uint64_t st, uint64_t sp,
|
||||
uint64_t ap) {
|
||||
|
||||
@ -247,7 +247,7 @@ int HDF5File::CreateMasterFile(bool en, uint32_t size,
|
||||
numActualPacketsInFile = 0;
|
||||
extNumImages = *numImages;
|
||||
|
||||
if (master && (*detIndex==0)) {
|
||||
if (mfwenable && master && (*detIndex==0)) {
|
||||
virtualfd = 0;
|
||||
masterFileName = HDF5FileStatic::CreateMasterFileName(filePath,
|
||||
fileNamePrefix, *fileIndex);
|
||||
|
@ -96,6 +96,7 @@ void slsReceiverImplementation::InitializeMembers() {
|
||||
fileIndex = 0;
|
||||
framesPerFile = 0;
|
||||
fileWriteEnable = true;
|
||||
masterFileWriteEnable = true;
|
||||
overwriteEnable = true;
|
||||
|
||||
//***acquisition parameters***
|
||||
@ -202,6 +203,11 @@ bool slsReceiverImplementation::getFileWriteEnable() const{
|
||||
return fileWriteEnable;
|
||||
}
|
||||
|
||||
bool slsReceiverImplementation::getMasterFileWriteEnable() const{
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
return masterFileWriteEnable;
|
||||
}
|
||||
|
||||
bool slsReceiverImplementation::getOverwriteEnable() const{
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
return overwriteEnable;
|
||||
@ -600,6 +606,12 @@ void slsReceiverImplementation::setFileWriteEnable(const bool b) {
|
||||
FILE_LOG(logINFO) << "File Write Enable: " << stringEnable(fileWriteEnable);
|
||||
}
|
||||
|
||||
void slsReceiverImplementation::setMasterFileWriteEnable(const bool b) {
|
||||
masterFileWriteEnable = b;
|
||||
|
||||
FILE_LOG(logINFO) << "Master File Write Enable: " << stringEnable(masterFileWriteEnable);
|
||||
}
|
||||
|
||||
|
||||
void slsReceiverImplementation::setOverwriteEnable(const bool b) {
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
@ -676,7 +688,7 @@ int slsReceiverImplementation::setNumberofUDPInterfaces(const int n) {
|
||||
listener[i]->SetGeneralData(generalData);
|
||||
|
||||
dataProcessor.push_back(sls::make_unique<DataProcessor>(i, myDetectorType, fifo_ptr, &fileFormatType,
|
||||
fileWriteEnable, &dataStreamEnable, &gapPixelsEnable,
|
||||
fileWriteEnable, &masterFileWriteEnable, &dataStreamEnable, &gapPixelsEnable,
|
||||
&dynamicRange, &streamingFrequency, &streamingTimerInMs,
|
||||
&framePadding, &activated, &deactivatedPaddingEnable, &silentMode));
|
||||
dataProcessor[i]->SetGeneralData(generalData);
|
||||
@ -1096,7 +1108,7 @@ int slsReceiverImplementation::setDetectorType(const detectorType d) {
|
||||
&udpSocketBufferSize, &actualUDPSocketBufferSize, &framesPerFile,
|
||||
&frameDiscardMode, &activated, &deactivatedPaddingEnable, &silentMode));
|
||||
dataProcessor.push_back(sls::make_unique<DataProcessor>(i, myDetectorType, fifo_ptr, &fileFormatType,
|
||||
fileWriteEnable, &dataStreamEnable, &gapPixelsEnable,
|
||||
fileWriteEnable, &masterFileWriteEnable, &dataStreamEnable, &gapPixelsEnable,
|
||||
&dynamicRange, &streamingFrequency, &streamingTimerInMs,
|
||||
&framePadding, &activated, &deactivatedPaddingEnable, &silentMode));
|
||||
}
|
||||
|
@ -202,6 +202,7 @@ int slsReceiverTCPIPInterface::function_table(){
|
||||
flist[F_GET_RECEIVER_FRAMES_CAUGHT] = &slsReceiverTCPIPInterface::get_frames_caught;
|
||||
flist[F_RESET_RECEIVER_FRAMES_CAUGHT] = &slsReceiverTCPIPInterface::reset_frames_caught;
|
||||
flist[F_ENABLE_RECEIVER_FILE_WRITE] = &slsReceiverTCPIPInterface::enable_file_write;
|
||||
flist[F_ENABLE_RECEIVER_MASTER_FILE_WRITE] = &slsReceiverTCPIPInterface::enable_master_file_write;
|
||||
flist[F_ENABLE_RECEIVER_OVERWRITE] = &slsReceiverTCPIPInterface::enable_overwrite;
|
||||
flist[F_ENABLE_RECEIVER_TEN_GIGA] = &slsReceiverTCPIPInterface::enable_tengiga;
|
||||
flist[F_SET_RECEIVER_FIFO_DEPTH] = &slsReceiverTCPIPInterface::set_fifo_depth;
|
||||
@ -506,6 +507,10 @@ int slsReceiverTCPIPInterface::send_update() {
|
||||
i32=(int)receiver->getFileWriteEnable();
|
||||
n += mySock->SendDataOnly(&i32, sizeof(i32));
|
||||
|
||||
// master file write enable
|
||||
i32=(int)receiver->getMasterFileWriteEnable();
|
||||
n += mySock->SendDataOnly(&i32, sizeof(i32));
|
||||
|
||||
// file overwrite enable
|
||||
i32=(int)receiver->getOverwriteEnable();
|
||||
n += mySock->SendDataOnly(&i32, sizeof(i32));
|
||||
@ -1275,6 +1280,35 @@ int slsReceiverTCPIPInterface::enable_file_write(){
|
||||
|
||||
|
||||
|
||||
int slsReceiverTCPIPInterface::enable_master_file_write(){
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
int enable = -1;
|
||||
int retval = -1;
|
||||
|
||||
// get args, return if socket crashed, ret is fail if receiver is not null
|
||||
if (interface->Server_ReceiveArg(ret, mess, &enable, sizeof(enable), true, receiver) == FAIL)
|
||||
return FAIL;
|
||||
|
||||
// base object not null
|
||||
if (ret == OK) {
|
||||
// set
|
||||
if (enable >= 0) {
|
||||
// verify if receiver is unlocked and idle
|
||||
if (interface->Server_VerifyLockAndIdle(ret, mess, lockStatus, receiver->getStatus(), fnum) == OK) {
|
||||
FILE_LOG(logDEBUG1) << "Setting Master File write enable:" << enable;
|
||||
receiver->setMasterFileWriteEnable(enable);
|
||||
}
|
||||
}
|
||||
// get
|
||||
retval = receiver->getMasterFileWriteEnable();
|
||||
validate(enable, retval, std::string("set master file write enable"), DEC);
|
||||
FILE_LOG(logDEBUG1) << "master file write enable:" << retval;
|
||||
}
|
||||
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||
}
|
||||
|
||||
|
||||
int slsReceiverTCPIPInterface::enable_overwrite() {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
|
@ -110,6 +110,7 @@ enum detFuncs{
|
||||
F_GET_RECEIVER_FRAMES_CAUGHT, /**< gets the number of frames caught by receiver */
|
||||
F_RESET_RECEIVER_FRAMES_CAUGHT, /**< resets the frames caught by receiver */
|
||||
F_ENABLE_RECEIVER_FILE_WRITE, /**< sets the receiver file write */
|
||||
F_ENABLE_RECEIVER_MASTER_FILE_WRITE, /**< sets the receiver master file write */
|
||||
F_ENABLE_RECEIVER_OVERWRITE, /**< set overwrite flag in receiver */
|
||||
F_ENABLE_RECEIVER_TEN_GIGA, /**< enable 10Gbe in receiver */
|
||||
F_SET_RECEIVER_FIFO_DEPTH, /**< set receiver fifo depth */
|
||||
@ -243,6 +244,7 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) {
|
||||
case F_GET_RECEIVER_FRAMES_CAUGHT: return "F_GET_RECEIVER_FRAMES_CAUGHT";
|
||||
case F_RESET_RECEIVER_FRAMES_CAUGHT: return "F_RESET_RECEIVER_FRAMES_CAUGHT";
|
||||
case F_ENABLE_RECEIVER_FILE_WRITE: return "F_ENABLE_RECEIVER_FILE_WRITE";
|
||||
case F_ENABLE_RECEIVER_MASTER_FILE_WRITE: return "F_ENABLE_RECEIVER_MASTER_FILE_WRITE";
|
||||
case F_ENABLE_RECEIVER_OVERWRITE: return "F_ENABLE_RECEIVER_OVERWRITE";
|
||||
case F_ENABLE_RECEIVER_TEN_GIGA: return "F_ENABLE_RECEIVER_TEN_GIGA";
|
||||
case F_SET_RECEIVER_FIFO_DEPTH: return "F_SET_RECEIVER_FIFO_DEPTH";
|
||||
|
Reference in New Issue
Block a user