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

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

View File

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

View File

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

View File

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

View File

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

View File

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

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