master file option, adcdisable changed to adcenable

This commit is contained in:
2019-04-30 12:13:28 +02:00
parent 56d1994b8c
commit b0cffcd570
17 changed files with 216 additions and 39 deletions

View File

@ -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)) {

View File

@ -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;

View File

@ -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);

View File

@ -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));
}

View File

@ -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));