mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-05 17:40:40 +02:00
fixed new header for eiger
This commit is contained in:
parent
81d68bebc6
commit
f4857355b6
@ -39,7 +39,6 @@ DUMMY_MAIN_SRC = dummyMain.cpp
|
||||
|
||||
OBJS=$(SRC_CLNT:%.cpp=$(BUILDDIR)/%.o)
|
||||
|
||||
|
||||
$(info )
|
||||
$(info #######################################)
|
||||
$(info # Compiling slsReceiverSoftware #)
|
||||
@ -49,7 +48,7 @@ $(info )
|
||||
|
||||
.PHONY: all intdoc package eigerReceiver clean
|
||||
|
||||
all: builddir updateVersion lib receiver
|
||||
all: builddir lib receiver
|
||||
|
||||
dummy: $(DESTDIR)/dummyReceiver
|
||||
|
||||
@ -68,7 +67,9 @@ lib: $(OBJS) $(DESTDIR)/libSlsReceiver.so $(DESTDIR)/libSlsReceiver.a
|
||||
receiver: $(DESTDIR)/slsReceiver
|
||||
|
||||
|
||||
$(DESTDIR)/libSlsReceiver.so: $(OBJS)
|
||||
|
||||
$(DESTDIR)/libSlsReceiver.so: $(OBJS)
|
||||
./updateGitVersion.sh
|
||||
$(CXX) -shared -Wl,-soname,libSlsReceiver.so -o libSlsReceiver.so $(OBJS) -lc $(INCLUDES) $(DFLAGS) $(FLAGS) $(EPICSFLAGS) -L/usr/lib64 -pthread $(LIBZMQ) -lrt
|
||||
$(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR))
|
||||
mv libSlsReceiver.so $(DESTDIR)
|
||||
@ -78,12 +79,12 @@ $(DESTDIR)/libSlsReceiver.a: $(OBJS)
|
||||
mv libSlsReceiver.a $(DESTDIR)
|
||||
|
||||
|
||||
$(DESTDIR)/slsReceiver: lib
|
||||
$(DESTDIR)/slsReceiver: $(SRCDIR)/$(MAIN_SRC) $(DESTDIR)/libSlsReceiver.so $(DESTDIR)/libSlsReceiver.a
|
||||
$(CXX) -o $@ $(SRCDIR)/$(MAIN_SRC) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC $(LIBZMQ) -lrt
|
||||
#$(EIGERFLAGS)
|
||||
|
||||
|
||||
$(DESTDIR)/dummyReceiver: lib
|
||||
$(DESTDIR)/dummyReceiver: $(SRCDIR)/$(DUMMY_MAIN_SRC) $(DESTDIR)/libSlsReceiver.so $(DESTDIR)/libSlsReceiver.a
|
||||
$(CXX) -o $@ $(SRCDIR)/$(DUMMY_MAIN_SRC) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC $(LIBZMQ) -lrt
|
||||
#$(EIGERFLAGS)
|
||||
|
||||
@ -112,8 +113,6 @@ testclean:
|
||||
cd $(TESTDIR) && rm *.o rec send; \
|
||||
fi
|
||||
|
||||
updateVersion:
|
||||
./updateGitVersion.sh
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Path: slsDetectorsPackage/slsReceiverSoftware
|
||||
URL: origin git@git.psi.ch:sls_detectors_software/sls_receiver_software.git
|
||||
Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_receiver_software.git
|
||||
Repsitory UUID: 3ed2a33d504cb2d40acd6e7c8e115697158346e9
|
||||
Revision: 595
|
||||
Branch: developer
|
||||
Repsitory UUID: 7a69378574427de0c5cd9a1b86231c47732829a8
|
||||
Revision: 594
|
||||
Branch: eigerheaderchange
|
||||
Last Changed Author: Dhanya_Maliakal
|
||||
Last Changed Rev: 595
|
||||
Last Changed Date: 2017-06-22 12:27:17 +0200
|
||||
Last Changed Rev: 599
|
||||
Last Changed Date: 2017-06-28 11:30:46 +0200
|
||||
|
@ -461,109 +461,28 @@ class JungfrauData : public GeneralData {
|
||||
|
||||
class EigerData : public GeneralData {
|
||||
|
||||
private:
|
||||
|
||||
#ifndef EIGER_NEWHEADER
|
||||
/** Structure of an eiger packet header */
|
||||
typedef struct {
|
||||
unsigned char subFrameNumber[4];
|
||||
unsigned char missingPacket[2];
|
||||
unsigned char portIndex[1];
|
||||
unsigned char dynamicRange[1];
|
||||
} eiger_packet_header_t;
|
||||
|
||||
/** Structure of an eiger packet footer */
|
||||
typedef struct {
|
||||
unsigned char frameNumber[6];
|
||||
unsigned char packetNumber[2];
|
||||
} eiger_packet_footer_t;
|
||||
|
||||
public:
|
||||
|
||||
/** Size of packet header */
|
||||
const static uint32_t packetHeaderSize = 8;
|
||||
|
||||
/** Footer offset */
|
||||
uint32_t footerOffset;
|
||||
#endif
|
||||
|
||||
|
||||
/** Constructor */
|
||||
EigerData(){
|
||||
myDetectorType = slsReceiverDefs::EIGER;
|
||||
nPixelsX = (256*2);
|
||||
nPixelsY = 256;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
headerSizeinPacket = 8;
|
||||
#else
|
||||
headerSizeinPacket = sizeof(slsReceiverDefs::sls_detector_header);
|
||||
#endif
|
||||
dataSize = 1024;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
packetSize = headerSizeinPacket + dataSize + 8;
|
||||
#else
|
||||
packetSize = headerSizeinPacket + dataSize;
|
||||
#endif
|
||||
packetsPerFrame = 256;
|
||||
imageSize = dataSize*packetsPerFrame;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
frameIndexMask = 0xffffff;
|
||||
#endif
|
||||
maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
|
||||
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsReceiverDefs::sls_detector_header);
|
||||
defaultFifoDepth = 100;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
footerOffset = headerSizeinPacket + dataSize;
|
||||
#endif
|
||||
threadsPerReceiver = 2;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
headerPacketSize = 48;
|
||||
#else
|
||||
headerPacketSize = 40;
|
||||
#endif
|
||||
nPixelsX_Streamer = nPixelsX;
|
||||
nPixelsY_Streamer = nPixelsY;
|
||||
imageSize_Streamer = imageSize;
|
||||
};
|
||||
|
||||
#ifndef EIGER_NEWHEADER
|
||||
/**
|
||||
* Get Header Infomation (frame number, packet number)
|
||||
* @param index thread index for debugging purposes
|
||||
* @param packetData pointer to data
|
||||
* @param frameNumber frame number
|
||||
* @param packetNumber packet number
|
||||
*/
|
||||
void GetHeaderInfo(int index, char* packetData, uint64_t& frameNumber, uint32_t& packetNumber) const {
|
||||
eiger_packet_footer_t* footer = (eiger_packet_footer_t*)(packetData + footerOffset);
|
||||
frameNumber = (uint64_t)((*( (uint64_t*) footer)) & frameIndexMask);
|
||||
packetNumber = ((uint32_t)(*( (uint16_t*) footer->packetNumber)))-1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Header Infomation (frame number, packet number)
|
||||
* @param index thread index for debugging purposes
|
||||
* @param packetData pointer to data
|
||||
* @param dynamicRange dynamic range to assign subframenumber if 32 bit mode
|
||||
* @param frameNumber frame number
|
||||
* @param packetNumber packet number
|
||||
* @param subFrameNumber sub frame number if applicable
|
||||
* @param bunchId bunch id
|
||||
*/
|
||||
void GetHeaderInfo(int index, char* packetData, uint32_t dynamicRange,
|
||||
uint64_t& frameNumber, uint32_t& packetNumber, uint32_t& subFrameNumber, uint64_t& bunchId) const {
|
||||
bunchId = -1;
|
||||
subFrameNumber = -1;
|
||||
eiger_packet_footer_t* footer = (eiger_packet_footer_t*)(packetData + footerOffset);
|
||||
frameNumber = (uint64_t)((*( (uint64_t*) footer)) & frameIndexMask);
|
||||
packetNumber = ((uint32_t)(*( (uint16_t*) footer->packetNumber)))-1;
|
||||
if (dynamicRange == 32) {
|
||||
eiger_packet_header_t* header = (eiger_packet_header_t*) (packetData);
|
||||
subFrameNumber = (uint64_t) *( (uint32_t*) header->subFrameNumber);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Setting dynamic range changes member variables
|
||||
* @param dr dynamic range
|
||||
@ -581,30 +500,11 @@ private:
|
||||
*/
|
||||
void SetTenGigaEnable(bool tgEnable, int dr) {
|
||||
dataSize = (tgEnable ? 4096 : 1024);
|
||||
#ifndef EIGER_NEWHEADER
|
||||
packetSize = (tgEnable ? 4112 : 1040);
|
||||
#else
|
||||
packetSize = headerSizeinPacket + dataSize;
|
||||
#endif
|
||||
packetsPerFrame = (tgEnable ? 4 : 16) * dr;
|
||||
imageSize = dataSize*packetsPerFrame;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
footerOffset = packetHeaderSize+dataSize;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
#ifndef EIGER_NEWHEADER
|
||||
/**
|
||||
* Print all variables
|
||||
*/
|
||||
void Print() const {
|
||||
GeneralData::Print();
|
||||
printf( "Packet Header Size: %d\n"
|
||||
"Footer Offset : %d\n",
|
||||
packetHeaderSize,
|
||||
footerOffset);
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
//#define SVNPATH ""
|
||||
#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_receiver_software.git"
|
||||
//#define SVNREPPATH ""
|
||||
#define SVNREPUUID "3ed2a33d504cb2d40acd6e7c8e115697158346e9"
|
||||
//#define SVNREV 0x595
|
||||
#define SVNREPUUID "7a69378574427de0c5cd9a1b86231c47732829a8"
|
||||
//#define SVNREV 0x599
|
||||
//#define SVNKIND ""
|
||||
//#define SVNSCHED ""
|
||||
#define SVNAUTH "Dhanya_Maliakal"
|
||||
#define SVNREV 0x595
|
||||
#define SVNDATE 0x20170622
|
||||
#define SVNREV 0x599
|
||||
#define SVNDATE 0x20170628
|
||||
//
|
||||
|
@ -61,11 +61,8 @@ Listener::Listener(detectorType dtype, Fifo*& f, runStatus* s, uint32_t* portno,
|
||||
|
||||
switch(myDetectorType){
|
||||
case JUNGFRAU:
|
||||
standardheader = true;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
#else
|
||||
case EIGER:
|
||||
#endif
|
||||
standardheader = true;
|
||||
break;
|
||||
default:
|
||||
standardheader = false;
|
||||
@ -381,10 +378,6 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
||||
else {
|
||||
memset(new_header, 0, sizeof(sls_detector_header));
|
||||
new_header->frameNumber = fnum;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
||||
new_header->expLength = snum;
|
||||
#endif
|
||||
new_header->packetNumber = pperFrame;
|
||||
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
||||
new_header->detType = (uint8_t) generalData->myDetectorType;
|
||||
@ -475,10 +468,6 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
||||
else {
|
||||
memset(new_header, 0, sizeof(sls_detector_header));
|
||||
new_header->frameNumber = fnum;
|
||||
#ifndef EIGER_NEWHEADER
|
||||
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
||||
new_header->expLength = snum;
|
||||
#endif
|
||||
new_header->packetNumber = pperFrame;
|
||||
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
||||
new_header->detType = (uint8_t) generalData->myDetectorType;
|
||||
|
@ -13,7 +13,7 @@
|
||||
#include "logger.h"
|
||||
using namespace std;
|
||||
|
||||
slsReceiverUsers *receiver;
|
||||
slsReceiverUsers *receiver;
|
||||
|
||||
void deleteReceiver(slsReceiverUsers* r){
|
||||
if(r){delete r;r=0;}
|
||||
|
@ -1,7 +1,7 @@
|
||||
MAINDIR=slsDetectorsPackage
|
||||
SPECDIR=slsReceiverSoftware
|
||||
TMPFILE=gitInfoReceiverTmp.h
|
||||
INCLFILE=gitInfoReceiver.h
|
||||
TMPFILE=include/gitInfoReceiverTmp.h
|
||||
INCLFILE=include/gitInfoReceiver.h
|
||||
WD=$PWD
|
||||
|
||||
GITREPO1='git remote -v'
|
||||
@ -28,7 +28,7 @@ REV=`eval $REV1 $REV2`
|
||||
FOLDERREV=`eval $FOLDERREV1 $FOLDERREV2`
|
||||
RDATE=`eval $RDATE1`
|
||||
echo Path: ${MAINDIR}/${SPECDIR} $'\n'URL: ${GITREPO} $'\n'Repository Root: ${GITREPO} $'\n'Repsitory UUID: ${REPUID} $'\n'Revision: ${FOLDERREV} $'\n'Branch: ${BRANCH} $'\n'Last Changed Author: ${AUTH1}_${AUTH2} $'\n'Last Changed Rev: ${REV} $'\n'Last Changed Date: ${RDATE} > gitInfo.txt
|
||||
cd $WD
|
||||
cd ..
|
||||
./genVersionHeader.sh $SPECDIR/gitInfo.txt $SPECDIR/$TMPFILE $SPECDIR/$INCLFILE
|
||||
echo "Revision Updated"
|
||||
cd $WD
|
||||
|
Loading…
x
Reference in New Issue
Block a user