includes dynamic range in offline headers for eiger

This commit is contained in:
Dhanya Maliakal 2015-06-26 11:49:26 +02:00
parent 8b282e3bbe
commit 237c5286ca
3 changed files with 27 additions and 21 deletions

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsReceiverSoftware Path: slsDetectorsPackage/slsReceiverSoftware
URL: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_receiver_software.git URL: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_receiver_software.git
Repository Root: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_receiver_software.git Repository Root: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_receiver_software.git
Repsitory UUID: 44d2a6ae0422ef1d792890a409d202d3cec5b7f7 Repsitory UUID: 2afc468d30f3078b2bb8637584ae3a88f476f20b
Revision: 108 Revision: 110
Branch: master Branch: master
Last Changed Author: Dhanya_Maliakal Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 108 Last Changed Rev: 110
Last Changed Date: 2015-06-12 17:46:50 +0200 Last Changed Date: 2015-06-16 16:28:24 +0200

View File

@ -1,11 +1,11 @@
//#define SVNPATH "" //#define SVNPATH ""
#define SVNURL "git@gitorious.psi.ch:sls_det_software/sls_receiver_software.git" #define SVNURL "maliakal_d@gitorious.psi.ch:sls_det_software/sls_receiver_software.git"
//#define SVNREPPATH "" //#define SVNREPPATH ""
#define SVNREPUUID "e019a6ce7d96d4ac9cb5762b7137245aedb4d5b8" #define SVNREPUUID "2afc468d30f3078b2bb8637584ae3a88f476f20b"
//#define SVNREV 0x22 //#define SVNREV 0x110
//#define SVNKIND "" //#define SVNKIND ""
//#define SVNSCHED "" //#define SVNSCHED ""
#define SVNAUTH "Anna_Bergamaschi" #define SVNAUTH "Dhanya_Maliakal"
#define SVNREV 0x22 #define SVNREV 0x110
#define SVNDATE 0x20141015 #define SVNDATE 0x20150616
// //

View File

@ -1982,13 +1982,27 @@ int UDPStandardImplementation::startWriting(){
for(i=0;i<numListeningThreads;++i) for(i=0;i<numListeningThreads;++i)
/* for eiger 32 bit mode, currframenum like gotthard, does not start from 0 or 1 */ /* for eiger 32 bit mode, currframenum like gotthard, does not start from 0 or 1 */
rawDataReadyCallBack(currframenum, wbuf[i], numpackets * onePacketSize, sfilefd, guiData,pRawDataReady); rawDataReadyCallBack(currframenum, wbuf[i], numpackets * onePacketSize, sfilefd, guiData,pRawDataReady);
}else if (numpackets > 0){ }
else if (numpackets > 0){
for(j=0;j<numListeningThreads;++j){ for(j=0;j<numListeningThreads;++j){
#ifdef WRITE_HEADERS #ifdef WRITE_HEADERS
if (myDetectorType == EIGER){ if (myDetectorType == EIGER){
for (i = 0; i < packetsPerFrame/2; i++){
//overwriting frame number in header //overwriting frame number in header
for (i = 0; i < packetsPerFrame; i++)
(*(uint32_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num1)) = currframenum; (*(uint32_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num1)) = currframenum;
//overwriting port number and dynamic range
if (!j) (*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num3)) = (dynamicRange<<2);
else (*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num3)) = ((dynamicRange<<2)|(0x1));
#ifdef VERYDEBUG
cprintf(RED, "%d - 0x%x - %d\n", i,
(*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader +i*EIGER_ONE_GIGA_ONE_PACKET_SIZE)))->num3)),
(*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader +i*EIGER_ONE_GIGA_ONE_PACKET_SIZE)))->num4)));
#endif
}
//for 32 bit,port number needs to be changed and packet number reconstructed //for 32 bit,port number needs to be changed and packet number reconstructed
if(dynamicRange == 32){ if(dynamicRange == 32){
@ -1997,10 +2011,6 @@ int UDPStandardImplementation::startWriting(){
(*(uint16_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num2)) (*(uint16_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num2))
= ((*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num4))); = ((*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num4)));
//new port number as its the same everywhere for 32 bit!!
if((!j)&& (!bottom)) (*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num3)) = 0x00;
#ifdef VERYDEBUG #ifdef VERYDEBUG
cprintf(RED, "%d - 0x%x - %d - %d\n", i, cprintf(RED, "%d - 0x%x - %d - %d\n", i,
(*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader +i*EIGER_ONE_GIGA_ONE_PACKET_SIZE)))->num3)), (*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader +i*EIGER_ONE_GIGA_ONE_PACKET_SIZE)))->num3)),
@ -2013,10 +2023,6 @@ int UDPStandardImplementation::startWriting(){
(*(uint16_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num2)) (*(uint16_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num2))
= ((*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num4))+(packetsPerFrame/4)); = ((*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num4))+(packetsPerFrame/4));
//new port number as its the same everywhere for 32 bit!!
if(!j) (*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader + EIGER_ONE_GIGA_ONE_PACKET_SIZE*i)))->num3)) = 0x00;
#ifdef VERYDEBUG #ifdef VERYDEBUG
cprintf(RED, "%d -0x%x - %d - %d\n", i, cprintf(RED, "%d -0x%x - %d - %d\n", i,
(*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader +i*EIGER_ONE_GIGA_ONE_PACKET_SIZE)))->num3)), (*(uint8_t*)(((eiger_packet_header *)((char*)(wbuf[j] + totalheader +i*EIGER_ONE_GIGA_ONE_PACKET_SIZE)))->num3)),