From 830f92dedcd3dd1b4ba259139d709d9a37aadbf1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 15 Aug 2018 19:51:04 +0200 Subject: [PATCH] client and receiver: silent mode put into shared memory, works properly now --- .../slsDetector/slsDetector.cpp | 11 +++++++- slsDetectorSoftware/slsDetector/slsDetector.h | 3 +++ slsReceiverSoftware/include/DataProcessor.h | 20 +++++--------- slsReceiverSoftware/include/DataStreamer.h | 27 +++++++++---------- slsReceiverSoftware/include/File.h | 2 +- slsReceiverSoftware/include/HDF5FileStatic.h | 6 ++--- slsReceiverSoftware/include/Listener.h | 15 ++++------- .../include/UDPBaseImplementation.h | 8 +++--- slsReceiverSoftware/include/UDPInterface.h | 6 ++--- .../include/UDPStandardImplementation.h | 5 ---- slsReceiverSoftware/src/BinaryFile.cpp | 4 +-- slsReceiverSoftware/src/DataProcessor.cpp | 13 ++++----- slsReceiverSoftware/src/DataStreamer.cpp | 15 +++++------ slsReceiverSoftware/src/File.cpp | 2 +- slsReceiverSoftware/src/HDF5File.cpp | 14 +++++++--- slsReceiverSoftware/src/Listener.cpp | 15 ++++------- .../src/UDPBaseImplementation.cpp | 6 ++--- .../src/UDPStandardImplementation.cpp | 19 +++---------- .../src/slsReceiverTCPIPInterface.cpp | 7 ++++- 19 files changed, 89 insertions(+), 109 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index d69c306ad..78c0d3813 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -751,6 +751,7 @@ void slsDetector::initializeDetectorStructure(detectorType type) { thisDetector->receiver_framePadding = 1; thisDetector->activated = true; thisDetector->receiver_deactivatedPaddingEnable = true; + thisDetector->receiver_silentMode = false; // get the detector parameters based on type detParameterList detlist; @@ -5273,6 +5274,7 @@ string slsDetector::setReceiver(string receiverIP) { std::cout << "activated: " << thisDetector->activated << endl; std::cout << "receiver deactivated padding: " << thisDetector->receiver_deactivatedPaddingEnable << endl; } + std::cout << "silent Mode:" << thisDetector->receiver_silentMode << endl; std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl; std::cout << "Gap pixels: " << thisDetector->gappixels << endl; std::cout << "rx streaming source ip:" << thisDetector->receiver_zmqip << endl; @@ -5321,6 +5323,7 @@ string slsDetector::setReceiver(string receiverIP) { activate(-1); setDeactivatedRxrPaddingMode(thisDetector->receiver_deactivatedPaddingEnable); } + setReceiverSilentMode(thisDetector->receiver_silentMode); if(thisDetector->myDetectorType == EIGER) enableTenGigabitEthernet(thisDetector->tenGigaEnable); @@ -8613,6 +8616,10 @@ int slsDetector::updateReceiverNoWait() { n += dataSocket->ReceiveDataOnly(&ind,sizeof(ind)); thisDetector->receiver_deactivatedPaddingEnable = ind; + // silent mode + n += dataSocket->ReceiveDataOnly(&ind,sizeof(ind)); + thisDetector->receiver_silentMode = ind; + if (!n) printf("n: %d\n", n); return OK; @@ -9536,8 +9543,10 @@ int slsDetector::setReceiverSilentMode(int i) { } if(ret==FAIL) setErrorMask((getErrorMask())|(RECEIVER_PARAMETER_NOT_SET)); + else + thisDetector->receiver_silentMode = retval; } - return retval; + return thisDetector->receiver_silentMode; } diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 8a2b43bf3..074afcba7 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -381,6 +381,9 @@ private: /** padding enable in deactivated receiver */ bool receiver_deactivatedPaddingEnable; + /** silent receiver */ + bool receiver_silentMode; + } sharedSlsDetector; diff --git a/slsReceiverSoftware/include/DataProcessor.h b/slsReceiverSoftware/include/DataProcessor.h index 74fa55c92..6b7692430 100644 --- a/slsReceiverSoftware/include/DataProcessor.h +++ b/slsReceiverSoftware/include/DataProcessor.h @@ -37,6 +37,7 @@ class DataProcessor : private virtual slsReceiverDefs, public ThreadObject { * @param fp pointer to frame padding enable * @param act pointer to activated * @param depaden pointer to deactivated padding enable + * @param sm pointer to silent mode * @param dataReadycb pointer to data ready call back function * @param dataModifyReadycb pointer to data ready call back function with modified * @param pDataReadycb pointer to arguments of data ready call back function. To write/stream a smaller size of processed data, change this value (only smaller value is allowed). @@ -44,7 +45,7 @@ class DataProcessor : private virtual slsReceiverDefs, public ThreadObject { DataProcessor(int ind, detectorType dtype, Fifo*& f, fileFormat* ftype, bool fwenable, bool* dsEnable, bool* gpEnable, uint32_t* dr, uint32_t* freq, uint32_t* timer, - bool* fp, bool* act, bool* depaden, + bool* fp, bool* act, bool* depaden, bool* sm, void (*dataReadycb)(char*, char*, uint32_t, void*), void (*dataModifyReadycb)(char*, char*, uint32_t &, void*), void *pDataReadycb); @@ -202,11 +203,6 @@ class DataProcessor : private virtual slsReceiverDefs, public ThreadObject { */ void SetPixelDimension(); - /** - * Set Silent Mode - * @param mode 1 sets 0 unsets - */ - void SetSilentMode(bool mode); @@ -342,6 +338,11 @@ class DataProcessor : private virtual slsReceiverDefs, public ThreadObject { /** Deactivated padding enable */ bool* deactivatedPaddingEnable; + /** Silent Mode */ + bool* silentMode; + + /** frame padding */ + bool* framePadding; //acquisition start /** Aquisition Started flag */ @@ -368,12 +369,6 @@ class DataProcessor : private virtual slsReceiverDefs, public ThreadObject { uint64_t currentFrameIndex; - /** Silent Mode */ - bool silentMode; - - /** frame padding */ - bool* framePadding; - //call back /** * Call back for raw data @@ -385,7 +380,6 @@ class DataProcessor : private virtual slsReceiverDefs, public ThreadObject { void (*rawDataReadyCallBack)(char*, char*, uint32_t, void*); - /** * Call back for raw data (modified) * args to raw data ready callback are diff --git a/slsReceiverSoftware/include/DataStreamer.h b/slsReceiverSoftware/include/DataStreamer.h index 6b7f4a5ee..5952c7122 100644 --- a/slsReceiverSoftware/include/DataStreamer.h +++ b/slsReceiverSoftware/include/DataStreamer.h @@ -27,8 +27,10 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject { * @param fi pointer to file index * @param fd flipped data enable for x and y dimensions * @param ajh additional json header + * @param sm pointer to silent mode */ - DataStreamer(int ind, Fifo*& f, uint32_t* dr, int* sEnable, uint64_t* fi, int* fd, char* ajh); + DataStreamer(int ind, Fifo*& f, uint32_t* dr, int* sEnable, + uint64_t* fi, int* fd, char* ajh, bool* sm); /** * Destructor @@ -104,11 +106,6 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject { */ int RestreamStop(); - /** - * Set Silent Mode - * @param mode 1 sets 0 unsets - */ - void SetSilentMode(bool mode); private: @@ -181,6 +178,16 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject { /** Pointer to file index */ uint64_t* fileIndex; + /** flipped data across both dimensions enable */ + int* flippedData; + + /** additional json header */ + char* additionJsonHeader; + + /** Silent Mode */ + bool* silentMode; + + /** Aquisition Started flag */ bool acquisitionStartedFlag; @@ -199,13 +206,5 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject { /** Complete buffer used for roi, eg. shortGotthard */ char* completeBuffer; - /** flipped data across both dimensions enable */ - int* flippedData; - - /** additional json header */ - char* additionJsonHeader; - - /** Silent Mode */ - bool silentMode; }; diff --git a/slsReceiverSoftware/include/File.h b/slsReceiverSoftware/include/File.h index 375f39a78..cb403c2b1 100644 --- a/slsReceiverSoftware/include/File.h +++ b/slsReceiverSoftware/include/File.h @@ -211,7 +211,7 @@ class File : private virtual slsReceiverDefs { uint32_t* udpPortNumber; /** Silent Mode */ - bool silentMode; + bool* silentMode; }; diff --git a/slsReceiverSoftware/include/HDF5FileStatic.h b/slsReceiverSoftware/include/HDF5FileStatic.h index 6defc4dd3..2e2be7c91 100644 --- a/slsReceiverSoftware/include/HDF5FileStatic.h +++ b/slsReceiverSoftware/include/HDF5FileStatic.h @@ -534,6 +534,7 @@ public: /** * Create virtual file * (in C because H5Pset_virtual doesnt exist yet in C++) + * @param virtualFileName virtual file name * @param fd virtual file handle * @param masterFileName master file name * @param fpath file path @@ -556,6 +557,7 @@ public: * @returns 0 for success and 1 for fail */ static int CreateVirtualDataFile( + string virtualFileName, hid_t& fd, string masterFileName, char* fpath, char* fnameprefix, uint64_t findex, bool frindexenable, int dindex, int numunits, @@ -566,10 +568,6 @@ public: vector parameterNames, vector parameterDataTypes) { - //virtual names - string virtualFileName = CreateVirtualFileName(fpath, fnameprefix, findex); - FILE_LOG(logINFO) << "Virtual File: " << virtualFileName; - //file hid_t dfal = H5Pcreate (H5P_FILE_ACCESS); if (dfal < 0) diff --git a/slsReceiverSoftware/include/Listener.h b/slsReceiverSoftware/include/Listener.h index 5a44368b9..877fdcca4 100644 --- a/slsReceiverSoftware/include/Listener.h +++ b/slsReceiverSoftware/include/Listener.h @@ -35,11 +35,12 @@ class Listener : private virtual slsReceiverDefs, public ThreadObject { * @param fdp frame discard policy * @param act pointer to activated * @param depaden pointer to deactivated padding enable + * @param sm pointer to silent mode */ Listener(int ind, detectorType dtype, Fifo*& f, runStatus* s, uint32_t* portno, char* e, uint64_t* nf, uint32_t* dr, uint32_t* us, uint32_t* as, uint32_t* fpf, - frameDiscardPolicy* fdp, bool* act, bool* depaden); + frameDiscardPolicy* fdp, bool* act, bool* depaden, bool* sm); /** * Destructor @@ -131,12 +132,6 @@ class Listener : private virtual slsReceiverDefs, public ThreadObject { */ void ShutDownUDPSocket(); - /** - * Set Silent Mode - * @param mode 1 sets 0 unsets - */ - void SetSilentMode(bool mode); - /** * Create & closes a dummy UDP socket * to set & get actual buffer size @@ -253,6 +248,9 @@ class Listener : private virtual slsReceiverDefs, public ThreadObject { /** Deactivated padding enable */ bool* deactivatedPaddingEnable; + /** Silent Mode */ + bool* silentMode; + /** x coord hardcoded as 1D or 2d, * if detector does not send them yet or * missing packets/deactivated (eiger/jungfrau sends 2d pos) **/ @@ -313,8 +311,5 @@ class Listener : private virtual slsReceiverDefs, public ThreadObject { /** number of images for statistic */ uint32_t numFramesStatistic; - - /** Silent Mode */ - bool silentMode; }; diff --git a/slsReceiverSoftware/include/UDPBaseImplementation.h b/slsReceiverSoftware/include/UDPBaseImplementation.h index 7294c653e..8332507a9 100644 --- a/slsReceiverSoftware/include/UDPBaseImplementation.h +++ b/slsReceiverSoftware/include/UDPBaseImplementation.h @@ -273,7 +273,7 @@ class UDPBaseImplementation : protected virtual slsReceiverDefs, public UDPInter * Get Silent Mode * @return silent mode */ - uint32_t getSilentMode() const; + bool getSilentMode() const; /** * Get activate @@ -540,9 +540,9 @@ class UDPBaseImplementation : protected virtual slsReceiverDefs, public UDPInter //***receiver parameters*** /** * Set Silent Mode - * @param i silent mode. 1 sets, 0 unsets + * @param i silent mode. true sets, false unsets */ - void setSilentMode(const uint32_t i); + void setSilentMode(const bool i); /************************************************************************* * Behavioral functions*************************************************** @@ -801,7 +801,7 @@ class UDPBaseImplementation : protected virtual slsReceiverDefs, public UDPInter char additionalJsonHeader[MAX_STR_LENGTH]; //***receiver parameters*** - uint32_t silentMode; + bool silentMode; diff --git a/slsReceiverSoftware/include/UDPInterface.h b/slsReceiverSoftware/include/UDPInterface.h index 3cc6ab665..b5b37702b 100644 --- a/slsReceiverSoftware/include/UDPInterface.h +++ b/slsReceiverSoftware/include/UDPInterface.h @@ -361,7 +361,7 @@ class UDPInterface { * Get Silent Mode * @return silent mode */ - virtual uint32_t getSilentMode() const = 0; + virtual bool getSilentMode() const = 0; /** * Get activate @@ -629,9 +629,9 @@ class UDPInterface { //***receiver parameters*** /** * Set Silent Mode - * @param i silent mode. 1 sets, 0 unsets + * @param i silent mode. true sets, false unsets */ - virtual void setSilentMode(const uint32_t i) = 0; + virtual void setSilentMode(const bool i) = 0; /************************************************************************* diff --git a/slsReceiverSoftware/include/UDPStandardImplementation.h b/slsReceiverSoftware/include/UDPStandardImplementation.h index 21f653291..b47d68a25 100644 --- a/slsReceiverSoftware/include/UDPStandardImplementation.h +++ b/slsReceiverSoftware/include/UDPStandardImplementation.h @@ -122,11 +122,6 @@ class UDPStandardImplementation: private virtual slsReceiverDefs, public UDPBase */ int setFifoDepth(const uint32_t i); - /** - * Set Silent Mode - * @param i silent mode. 1 sets, 0 unsets - */ - void setSilentMode(const uint32_t i); /** * Set receiver type (and corresponding detector variables in derived STANDARD class) diff --git a/slsReceiverSoftware/src/BinaryFile.cpp b/slsReceiverSoftware/src/BinaryFile.cpp index 10d5acd9b..8be887d48 100644 --- a/slsReceiverSoftware/src/BinaryFile.cpp +++ b/slsReceiverSoftware/src/BinaryFile.cpp @@ -53,7 +53,7 @@ int BinaryFile::CreateFile(uint64_t fnum) { if (BinaryFileStatic::CreateDataFile(filefd, *overWriteEnable, currentFileName, FILE_BUFFER_SIZE) == FAIL) return FAIL; - if(!silentMode) { + if(!(*silentMode)) { FILE_LOG(logINFO) << "[" << *udpPortNumber << "]: Binary File created: " << currentFileName; } return OK; @@ -125,7 +125,7 @@ int BinaryFile::CreateMasterFile(bool en, uint32_t size, if (master && (*detIndex==0)) { masterFileName = BinaryFileStatic::CreateMasterFileName(filePath, fileNamePrefix, *fileIndex); - if(!silentMode) { + if(!(*silentMode)) { FILE_LOG(logINFO) << "Master File: " << masterFileName; } return BinaryFileStatic::CreateMasterDataFile(masterfd, masterFileName, diff --git a/slsReceiverSoftware/src/DataProcessor.cpp b/slsReceiverSoftware/src/DataProcessor.cpp index 3bae074a5..f1e474cba 100644 --- a/slsReceiverSoftware/src/DataProcessor.cpp +++ b/slsReceiverSoftware/src/DataProcessor.cpp @@ -27,7 +27,7 @@ DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo*& f, fileFormat* ftype, bool fwenable, bool* dsEnable, bool* gpEnable, uint32_t* dr, uint32_t* freq, uint32_t* timer, - bool* fp, bool* act, bool* depaden, + bool* fp, bool* act, bool* depaden, bool* sm, void (*dataReadycb)(char*, char*, uint32_t, void*), void (*dataModifyReadycb)(char*, char*, uint32_t &, void*), void *pDataReadycb) : @@ -49,6 +49,8 @@ DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo*& f, tempBuffer(0), activated(act), deactivatedPaddingEnable(depaden), + silentMode(sm), + framePadding(fp), acquisitionStartedFlag(false), measurementStartedFlag(false), firstAcquisitionIndex(0), @@ -56,8 +58,6 @@ DataProcessor::DataProcessor(int ind, detectorType dtype, Fifo*& f, numTotalFramesCaught(0), numFramesCaught(0), currentFrameIndex(0), - silentMode(false), - framePadding(fp), rawDataReadyCallBack(dataReadycb), rawDataModifyReadyCallBack(dataModifyReadycb), pRawDataReady(pDataReadycb) @@ -236,13 +236,13 @@ void DataProcessor::SetupFileWriter(bool fwe, int* nd, uint32_t* maxf, file = new HDF5File(index, maxf, nd, fname, fpath, findex, owenable, dindex, nunits, nf, dr, portno, - generalData->nPixelsX, generalData->nPixelsY, &silentMode); + generalData->nPixelsX, generalData->nPixelsY, silentMode); break; #endif default: file = new BinaryFile(index, maxf, nd, fname, fpath, findex, owenable, - dindex, nunits, nf, dr, portno, &silentMode); + dindex, nunits, nf, dr, portno, silentMode); break; } } @@ -453,9 +453,6 @@ void DataProcessor::SetPixelDimension() { } } -void DataProcessor::SetSilentMode(bool mode) { - silentMode = mode; -} void DataProcessor::PadMissingPackets(char* buf) { FILE_LOG(logDEBUG) << index << ": Padding Missing Packets"; diff --git a/slsReceiverSoftware/src/DataStreamer.cpp b/slsReceiverSoftware/src/DataStreamer.cpp index d34797031..d3d5e6cc2 100644 --- a/slsReceiverSoftware/src/DataStreamer.cpp +++ b/slsReceiverSoftware/src/DataStreamer.cpp @@ -16,7 +16,8 @@ using namespace std; const string DataStreamer::TypeName = "DataStreamer"; -DataStreamer::DataStreamer(int ind, Fifo*& f, uint32_t* dr, int* sEnable, uint64_t* fi, int* fd, char* ajh) : +DataStreamer::DataStreamer(int ind, Fifo*& f, uint32_t* dr, int* sEnable, + uint64_t* fi, int* fd, char* ajh, bool* sm) : ThreadObject(ind), runningFlag(0), generalData(0), @@ -25,14 +26,14 @@ DataStreamer::DataStreamer(int ind, Fifo*& f, uint32_t* dr, int* sEnable, uint64 dynamicRange(dr), shortFrameEnable(sEnable), fileIndex(fi), + flippedData(fd), + additionJsonHeader(ajh), + silentMode(sm), acquisitionStartedFlag(false), measurementStartedFlag(false), firstAcquisitionIndex(0), firstMeasurementIndex(0), - completeBuffer(0), - flippedData(fd), - additionJsonHeader(ajh), - silentMode(false) + completeBuffer(0) { if(ThreadObject::CreateThread() == FAIL) throw std::exception(); @@ -272,7 +273,3 @@ int DataStreamer::RestreamStop() { } -void DataStreamer::SetSilentMode(bool mode) { - silentMode = mode; -} - diff --git a/slsReceiverSoftware/src/File.cpp b/slsReceiverSoftware/src/File.cpp index c46269ba4..c1e06d66a 100644 --- a/slsReceiverSoftware/src/File.cpp +++ b/slsReceiverSoftware/src/File.cpp @@ -57,7 +57,7 @@ void File::PrintMembers() { << "UDP Port number: " << *udpPortNumber << endl << "Master File Name: " << masterFileName << endl << "Current File Name: " << currentFileName << endl - << "Silent Mode: " << silentMode; + << "Silent Mode: " << *silentMode; } diff --git a/slsReceiverSoftware/src/HDF5File.cpp b/slsReceiverSoftware/src/HDF5File.cpp index 937b52432..cecb15f45 100644 --- a/slsReceiverSoftware/src/HDF5File.cpp +++ b/slsReceiverSoftware/src/HDF5File.cpp @@ -159,7 +159,7 @@ int HDF5File::CreateFile(uint64_t fnum) { if (dataspace == NULL) cprintf(RED,"Got nothing!\n"); - if(!silentMode) { + if(!(*silentMode)) { FILE_LOG(logINFO) << *udpPortNumber << ": HDF5 File created: " << currentFileName; } return OK; @@ -215,7 +215,7 @@ int HDF5File::WriteToFile(char* buffer, int buffersize, uint64_t fnum, uint32_t if (fnum >= extNumImages) { if (HDF5FileStatic::ExtendDataset(index, dataspace, dataset, dataspace_para, dataset_para, *numImages) == OK) { - if (!silentMode) { + if (!(*silentMode)) { cprintf(BLUE,"%d Extending HDF5 dataset by %llu, Total x Dimension: %llu\n", index, (long long unsigned int)extNumImages, (long long unsigned int)(extNumImages + *numImages)); @@ -258,7 +258,7 @@ int HDF5File::CreateMasterFile(bool en, uint32_t size, virtualfd = 0; masterFileName = HDF5FileStatic::CreateMasterFileName(filePath, fileNamePrefix, *fileIndex); - if(!silentMode) { + if(!(*silentMode)) { FILE_LOG(logINFO) << "Master File: " << masterFileName; } pthread_mutex_lock(&Mutex); @@ -297,7 +297,13 @@ void HDF5File::EndofAcquisition(bool anyPacketsCaught, uint64_t numf) { // called only by the one maser receiver int HDF5File::CreateVirtualFile(uint64_t numf) { pthread_mutex_lock(&Mutex); - int ret = HDF5FileStatic::CreateVirtualDataFile( + + string vname = HDF5FileStatic::CreateVirtualFileName(filePath, fileNamePrefix, *fileIndex); + if(!(*silentMode)) { + FILE_LOG(logINFO) << "Virtual File: " << vname; + } + + int ret = HDF5FileStatic::CreateVirtualDataFile(vname, virtualfd, masterFileName, filePath, fileNamePrefix, *fileIndex, (*numImages > 1), *detIndex, *numUnitsPerDetector, diff --git a/slsReceiverSoftware/src/Listener.cpp b/slsReceiverSoftware/src/Listener.cpp index 7d8309ae8..0466aacb5 100644 --- a/slsReceiverSoftware/src/Listener.cpp +++ b/slsReceiverSoftware/src/Listener.cpp @@ -22,7 +22,7 @@ const string Listener::TypeName = "Listener"; Listener::Listener(int ind, detectorType dtype, Fifo*& f, runStatus* s, uint32_t* portno, char* e, uint64_t* nf, uint32_t* dr, uint32_t* us, uint32_t* as, uint32_t* fpf, - frameDiscardPolicy* fdp, bool* act, bool* depaden) : + frameDiscardPolicy* fdp, bool* act, bool* depaden, bool* sm) : ThreadObject(ind), runningFlag(0), generalData(0), @@ -40,6 +40,7 @@ Listener::Listener(int ind, detectorType dtype, Fifo*& f, runStatus* s, frameDiscardMode(fdp), activated(act), deactivatedPaddingEnable(depaden), + silentMode(sm), xcoord(0), ycoord(0), acquisitionStartedFlag(false), @@ -54,8 +55,7 @@ Listener::Listener(int ind, detectorType dtype, Fifo*& f, runStatus* s, listeningPacket(0), udpSocketAlive(0), numPacketsStatistic(0), - numFramesStatistic(0), - silentMode(false) + numFramesStatistic(0) { if(ThreadObject::CreateThread() == FAIL) throw std::exception(); @@ -159,7 +159,7 @@ void Listener::RecordFirstIndices(uint64_t fnum) { firstAcquisitionIndex = fnum; } - if(!silentMode) { + if(!(*silentMode)) { if (!index) cprintf(BLUE,"%d First Acquisition Index:%lu\n" "%d First Measurement Index:%lu\n", index, firstAcquisitionIndex, @@ -237,11 +237,6 @@ void Listener::ShutDownUDPSocket() { } -void Listener::SetSilentMode(bool mode) { - silentMode = mode; -} - - int Listener::CreateDummySocketForUDPSocketBufferSize(uint32_t s) { FILE_LOG(logINFO) << "Testing UDP Socket Buffer size with test port " << *udpPortNumber; @@ -349,7 +344,7 @@ void Listener::ThreadExecution() { fifo->PushAddress(buffer); //Statistics - if(!silentMode) { + if(!(*silentMode)) { numFramesStatistic++; if (numFramesStatistic >= //second condition also for infinite #number of frames diff --git a/slsReceiverSoftware/src/UDPBaseImplementation.cpp b/slsReceiverSoftware/src/UDPBaseImplementation.cpp index e0dd7e1e4..5840fb04c 100644 --- a/slsReceiverSoftware/src/UDPBaseImplementation.cpp +++ b/slsReceiverSoftware/src/UDPBaseImplementation.cpp @@ -91,7 +91,7 @@ void UDPBaseImplementation::initializeMembers(){ memset(additionalJsonHeader, 0, sizeof(additionalJsonHeader)); //***receiver parameters*** - silentMode = 0; + silentMode = false; } @@ -319,7 +319,7 @@ slsReceiverDefs::runStatus UDPBaseImplementation::getStatus() const{ FILE_LOG(logDEBUG) << __AT__ << " starting"; return status;} -uint32_t UDPBaseImplementation::getSilentMode() const{ +bool UDPBaseImplementation::getSilentMode() const{ FILE_LOG(logDEBUG) << __AT__ << " starting"; return silentMode;} @@ -664,7 +664,7 @@ int UDPBaseImplementation::setFifoDepth(const uint32_t i){ } /***receiver parameters***/ -void UDPBaseImplementation::setSilentMode(const uint32_t i){ +void UDPBaseImplementation::setSilentMode(const bool i){ FILE_LOG(logDEBUG) << __AT__ << " starting"; silentMode = i; diff --git a/slsReceiverSoftware/src/UDPStandardImplementation.cpp b/slsReceiverSoftware/src/UDPStandardImplementation.cpp index 9118dcde8..577330c78 100644 --- a/slsReceiverSoftware/src/UDPStandardImplementation.cpp +++ b/slsReceiverSoftware/src/UDPStandardImplementation.cpp @@ -224,7 +224,7 @@ int UDPStandardImplementation::setDataStreamEnable(const bool enable) { for ( int i = 0; i < numThreads; ++i ) { try { DataStreamer* s = new DataStreamer(i, fifo[i], &dynamicRange, - &shortFrameEnable, &fileIndex, flippedData, additionalJsonHeader); + &shortFrameEnable, &fileIndex, flippedData, additionalJsonHeader, &silentMode); dataStreamer.push_back(s); dataStreamer[i]->SetGeneralData(generalData); dataStreamer[i]->CreateZmqSockets(&numThreads, streamingPort, streamingSrcIP); @@ -309,19 +309,6 @@ int UDPStandardImplementation::setFifoDepth(const uint32_t i) { } -void UDPStandardImplementation::setSilentMode(const uint32_t i){ - silentMode = i; - - for (vector::const_iterator it = listener.begin(); it != listener.end(); ++it) - (*it)->SetSilentMode(i); - for (vector::const_iterator it = dataProcessor.begin(); it != dataProcessor.end(); ++it) - (*it)->SetSilentMode(i); - for (vector::const_iterator it = dataStreamer.begin(); it != dataStreamer.end(); ++it) - (*it)->SetSilentMode(i); - - FILE_LOG(logINFO) << "Silent Mode: " << i; -} - int UDPStandardImplementation::setDetectorType(const detectorType d) { FILE_LOG(logDEBUG) << "Setting receiver type"; @@ -375,13 +362,13 @@ int UDPStandardImplementation::setDetectorType(const detectorType d) { Listener* l = new Listener(i, myDetectorType, fifo[i], &status, &udpPortNum[i], eth, &numberOfFrames, &dynamicRange, &udpSocketBufferSize, &actualUDPSocketBufferSize, &framesPerFile, - &frameDiscardMode, &activated, &deactivatedPaddingEnable); + &frameDiscardMode, &activated, &deactivatedPaddingEnable, &silentMode); listener.push_back(l); DataProcessor* p = new DataProcessor(i, myDetectorType, fifo[i], &fileFormatType, fileWriteEnable, &dataStreamEnable, &gapPixelsEnable, &dynamicRange, &frameToGuiFrequency, &frameToGuiTimerinMS, - &framePadding, &activated, &deactivatedPaddingEnable, + &framePadding, &activated, &deactivatedPaddingEnable, &silentMode, rawDataReadyCallBack, rawDataModifyReadyCallBack, pRawDataReady); dataProcessor.push_back(p); } diff --git a/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp b/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp index d5a3b7c17..852389a9e 100644 --- a/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp +++ b/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp @@ -721,6 +721,11 @@ int slsReceiverTCPIPInterface::send_update() { #endif n += mySock->SendDataOnly(&ind,sizeof(ind)); + // silent mode +#ifdef SLS_RECEIVER_UDP_FUNCTIONS + ind=(int)receiverBase->getSilentMode(); +#endif + n += mySock->SendDataOnly(&ind,sizeof(ind)); if (!lockStatus) strcpy(mySock->lastClientIP,mySock->thisClientIP); @@ -2437,7 +2442,7 @@ int slsReceiverTCPIPInterface::set_silent_mode() { } } //get - retval = receiverBase->getSilentMode(); // no check required + retval = (int)receiverBase->getSilentMode(); // no check required } #endif #ifdef VERYVERBOSE