file index sent along with zmq stream

This commit is contained in:
Dhanya Maliakal 2017-11-14 12:13:06 +01:00
parent e1c7176c00
commit 0ae706d9a5
4 changed files with 14 additions and 8 deletions

View File

@ -23,8 +23,9 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject {
* @param f address of Fifo pointer * @param f address of Fifo pointer
* @param dr pointer to dynamic range * @param dr pointer to dynamic range
* @param sEnable pointer to short frame enable * @param sEnable pointer to short frame enable
* @param fi pointer to file index
*/ */
DataStreamer(Fifo*& f, uint32_t* dr, int* sEnable); DataStreamer(Fifo*& f, uint32_t* dr, int* sEnable, uint64_t* fi);
/** /**
* Destructor * Destructor
@ -198,6 +199,9 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject {
/** Pointer to short frame enable */ /** Pointer to short frame enable */
int* shortFrameEnable; int* shortFrameEnable;
/** Pointer to file index */
uint64_t* fileIndex;
/** Aquisition Started flag */ /** Aquisition Started flag */
bool acquisitionStartedFlag; bool acquisitionStartedFlag;

View File

@ -246,7 +246,7 @@ public:
* @param dummy true if end of acquistion else false * @param dummy true if end of acquistion else false
* @returns 0 if error, else 1 * @returns 0 if error, else 1
*/ */
int SendHeaderData ( int index, bool dummy, uint32_t jsonversion, uint32_t dynamicrange = 0, int SendHeaderData ( int index, bool dummy, uint32_t jsonversion, uint32_t dynamicrange = 0, uint64_t fileIndex = 0,
uint32_t npixelsx = 0, uint32_t npixelsy = 0, uint32_t npixelsx = 0, uint32_t npixelsy = 0,
uint64_t acqIndex = 0, uint64_t fIndex = 0, char* fname = NULL, uint64_t acqIndex = 0, uint64_t fIndex = 0, char* fname = NULL,
uint64_t frameNumber = 0, uint32_t expLength = 0, uint32_t packetNumber = 0, uint64_t frameNumber = 0, uint32_t expLength = 0, uint32_t packetNumber = 0,
@ -261,8 +261,9 @@ public:
const char* jsonHeaderFormat = const char* jsonHeaderFormat =
"{" "{"
"\"jsonversion\":%u, " "\"jsonversion\":%u, "
"\"bitmode\":%d, " "\"bitmode\":%u, "
"\"shape\":[%d, %d], " "\"fileIndex\":%llu, "
"\"shape\":[%u, %u], "
"\"acqIndex\":%llu, " "\"acqIndex\":%llu, "
"\"fIndex\":%llu, " "\"fIndex\":%llu, "
"\"fname\":\"%s\", " "\"fname\":\"%s\", "
@ -283,7 +284,7 @@ public:
"\"version\":%u" "\"version\":%u"
"}\n\0"; "}\n\0";
int length = sprintf(buf, jsonHeaderFormat, int length = sprintf(buf, jsonHeaderFormat,
jsonversion, dynamicrange, npixelsx, npixelsy, jsonversion, dynamicrange, fileIndex, npixelsx, npixelsy,
acqIndex, fIndex, (fname == NULL)? "":fname, dummy?0:1, acqIndex, fIndex, (fname == NULL)? "":fname, dummy?0:1,
frameNumber, expLength, packetNumber, bunchId, timestamp, frameNumber, expLength, packetNumber, bunchId, timestamp,
modId, xCoord, yCoord, zCoord, debug, roundRNumber, modId, xCoord, yCoord, zCoord, debug, roundRNumber,

View File

@ -26,13 +26,14 @@ pthread_mutex_t DataStreamer::Mutex = PTHREAD_MUTEX_INITIALIZER;
bool DataStreamer::SilentMode(false); bool DataStreamer::SilentMode(false);
DataStreamer::DataStreamer(Fifo*& f, uint32_t* dr, int* sEnable) : DataStreamer::DataStreamer(Fifo*& f, uint32_t* dr, int* sEnable, uint64_t* fi) :
ThreadObject(NumberofDataStreamers), ThreadObject(NumberofDataStreamers),
generalData(0), generalData(0),
fifo(f), fifo(f),
zmqSocket(0), zmqSocket(0),
dynamicRange(dr), dynamicRange(dr),
shortFrameEnable(sEnable), shortFrameEnable(sEnable),
fileIndex(fi),
acquisitionStartedFlag(false), acquisitionStartedFlag(false),
measurementStartedFlag(false), measurementStartedFlag(false),
firstAcquisitionIndex(0), firstAcquisitionIndex(0),
@ -270,7 +271,7 @@ int DataStreamer::SendHeader(sls_detector_header* header, bool dummy) {
uint64_t frameIndex = header->frameNumber - firstMeasurementIndex; uint64_t frameIndex = header->frameNumber - firstMeasurementIndex;
uint64_t acquisitionIndex = header->frameNumber - firstAcquisitionIndex; uint64_t acquisitionIndex = header->frameNumber - firstAcquisitionIndex;
return zmqSocket->SendHeaderData(index, dummy, SLS_DETECTOR_JSON_HEADER_VERSION, *dynamicRange, return zmqSocket->SendHeaderData(index, dummy, SLS_DETECTOR_JSON_HEADER_VERSION, *dynamicRange, *fileIndex,
generalData->nPixelsX_Streamer, generalData->nPixelsY_Streamer, generalData->nPixelsX_Streamer, generalData->nPixelsY_Streamer,
acquisitionIndex, frameIndex, fileNametoStream, acquisitionIndex, frameIndex, fileNametoStream,
header->frameNumber, header->expLength, header->packetNumber, header->bunchId, header->timestamp, header->frameNumber, header->expLength, header->packetNumber, header->bunchId, header->timestamp,

View File

@ -209,7 +209,7 @@ int UDPStandardImplementation::setDataStreamEnable(const bool enable) {\
if (enable) { if (enable) {
bool error = false; bool error = false;
for ( int i = 0; i < numThreads; ++i ) { for ( int i = 0; i < numThreads; ++i ) {
dataStreamer.push_back(new DataStreamer(fifo[i], &dynamicRange, &shortFrameEnable)); dataStreamer.push_back(new DataStreamer(fifo[i], &dynamicRange, &shortFrameEnable, &fileIndex));
dataStreamer[i]->SetGeneralData(generalData); dataStreamer[i]->SetGeneralData(generalData);
// check again // check again
if (streamingPort == 0) if (streamingPort == 0)