diff --git a/slsDetectorSoftware/slsReceiver/receiver_defs.h b/slsDetectorSoftware/slsReceiver/receiver_defs.h index 108e7f100..32cfbc2aa 100755 --- a/slsDetectorSoftware/slsReceiver/receiver_defs.h +++ b/slsDetectorSoftware/slsReceiver/receiver_defs.h @@ -21,6 +21,11 @@ #define GOTTHARD_SHORT_BUFFER_SIZE 518 #define GOTTHARD_SHORT_DATABYTES 512 +#define GOTTHARD_FRAME_INDEX_MASK 0xFFFFFFFF +#define GOTTHARD_FRAME_INDEX_OFFSET 0 + + + #define MOENCH_ALIGNED_FRAME_SIZE 65536 @@ -33,6 +38,11 @@ #define MOENCH_BYTES_IN_ONE_DIMENSION (MOENCH_PIXELS_IN_ONE_DIMENSION*2) +#define MOENCH_FRAME_INDEX_MASK 0xFFFFFF00 +#define MOENCH_FRAME_INDEX_OFFSET 8 +#define MOENCH_PACKET_INDEX_MASK 0xFF + + diff --git a/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp b/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp index 08943ff53..f854dfa0e 100644 --- a/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp +++ b/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp @@ -66,13 +66,20 @@ slsReceiverFunctionList::slsReceiverFunctionList(detectorType det,bool moenchwit pAcquisitionFinished(NULL), rawDataReadyCallBack(NULL), pRawDataReady(NULL), - withGotthard(moenchwithGotthardTest) + withGotthard(moenchwithGotthardTest), + frameIndexMask(GOTTHARD_FRAME_INDEX_MASK), + frameIndexOffset(GOTTHARD_FRAME_INDEX_OFFSET) { if(myDetectorType == MOENCH){ maxFramesPerFile = MOENCH_MAX_FRAMES_PER_FILE; bufferSize = MOENCH_BUFFER_SIZE; packetsPerFrame = MOENCH_PACKETS_PER_FRAME; + if(!withGotthard){ + frameIndexMask = MOENCH_FRAME_INDEX_MASK; + frameIndexOffset = MOENCH_FRAME_INDEX_OFFSET; + } + } strcpy(savefilename,""); @@ -349,7 +356,12 @@ int slsReceiverFunctionList::startListening(){ //start for each scan if(startFrameIndex==-1){ - startFrameIndex=(int)(*((int*)buffer))-packetsPerFrame; + if(!frameIndexOffset) + startFrameIndex = (int)(*((int*)buffer)); + else + startFrameIndex = (((int)(*((int*)buffer))) & (frameIndexMask)) >> frameIndexOffset; + + startFrameIndex -= packetsPerFrame; //cout<<"startFrameIndex:"<isFull()) ;//cout<<"**********************FIFO FULLLLLLLL************************"<> frameIndexOffset; fifo->push(buffer); } @@ -494,7 +506,12 @@ int slsReceiverFunctionList::startWriting(){ if(fifo->pop(wbuf)){ framesCaught++; totalFramesCaught++; - currframenum = (int)(*((int*)wbuf));//cout<<"**************curreframenm:"<> frameIndexOffset; + //currframenum = (int)(*((int*)wbuf)); + //cout<<"**************curreframenm:"<> MOENCH_FRAME_INDEX_OFFSET; + cout<<"this frame number:"<= 0)){ + x = packetIndex / 10; + y = packetIndex % 10;cout<<"x:"<> MOENCH_FRAME_INDEX_OFFSET)<> MOENCH_FRAME_INDEX_OFFSET) != thisFrameNumber){cout<<"did not match"<= numPackets) + break; + //increment + offset+=6; + origvalHeader = origvalHeader + offset + onePacketSize; + iPacket++; + } + cout<<"found or exited"<