mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-11 12:27:14 +02:00
fixed new header for eiger
This commit is contained in:
@ -39,7 +39,6 @@ DUMMY_MAIN_SRC = dummyMain.cpp
|
|||||||
|
|
||||||
OBJS=$(SRC_CLNT:%.cpp=$(BUILDDIR)/%.o)
|
OBJS=$(SRC_CLNT:%.cpp=$(BUILDDIR)/%.o)
|
||||||
|
|
||||||
|
|
||||||
$(info )
|
$(info )
|
||||||
$(info #######################################)
|
$(info #######################################)
|
||||||
$(info # Compiling slsReceiverSoftware #)
|
$(info # Compiling slsReceiverSoftware #)
|
||||||
@ -49,7 +48,7 @@ $(info )
|
|||||||
|
|
||||||
.PHONY: all intdoc package eigerReceiver clean
|
.PHONY: all intdoc package eigerReceiver clean
|
||||||
|
|
||||||
all: builddir updateVersion lib receiver
|
all: builddir lib receiver
|
||||||
|
|
||||||
dummy: $(DESTDIR)/dummyReceiver
|
dummy: $(DESTDIR)/dummyReceiver
|
||||||
|
|
||||||
@ -68,7 +67,9 @@ lib: $(OBJS) $(DESTDIR)/libSlsReceiver.so $(DESTDIR)/libSlsReceiver.a
|
|||||||
receiver: $(DESTDIR)/slsReceiver
|
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
|
$(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))
|
$(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR))
|
||||||
mv libSlsReceiver.so $(DESTDIR)
|
mv libSlsReceiver.so $(DESTDIR)
|
||||||
@ -78,12 +79,12 @@ $(DESTDIR)/libSlsReceiver.a: $(OBJS)
|
|||||||
mv libSlsReceiver.a $(DESTDIR)
|
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
|
$(CXX) -o $@ $(SRCDIR)/$(MAIN_SRC) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC $(LIBZMQ) -lrt
|
||||||
#$(EIGERFLAGS)
|
#$(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
|
$(CXX) -o $@ $(SRCDIR)/$(DUMMY_MAIN_SRC) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC $(LIBZMQ) -lrt
|
||||||
#$(EIGERFLAGS)
|
#$(EIGERFLAGS)
|
||||||
|
|
||||||
@ -112,8 +113,6 @@ testclean:
|
|||||||
cd $(TESTDIR) && rm *.o rec send; \
|
cd $(TESTDIR) && rm *.o rec send; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
updateVersion:
|
|
||||||
./updateGitVersion.sh
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Path: slsDetectorsPackage/slsReceiverSoftware
|
Path: slsDetectorsPackage/slsReceiverSoftware
|
||||||
URL: origin git@git.psi.ch:sls_detectors_software/sls_receiver_software.git
|
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
|
Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_receiver_software.git
|
||||||
Repsitory UUID: 3ed2a33d504cb2d40acd6e7c8e115697158346e9
|
Repsitory UUID: 7a69378574427de0c5cd9a1b86231c47732829a8
|
||||||
Revision: 595
|
Revision: 594
|
||||||
Branch: developer
|
Branch: eigerheaderchange
|
||||||
Last Changed Author: Dhanya_Maliakal
|
Last Changed Author: Dhanya_Maliakal
|
||||||
Last Changed Rev: 595
|
Last Changed Rev: 599
|
||||||
Last Changed Date: 2017-06-22 12:27:17 +0200
|
Last Changed Date: 2017-06-28 11:30:46 +0200
|
||||||
|
@ -461,109 +461,28 @@ class JungfrauData : public GeneralData {
|
|||||||
|
|
||||||
class EigerData : 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:
|
public:
|
||||||
|
|
||||||
/** Size of packet header */
|
|
||||||
const static uint32_t packetHeaderSize = 8;
|
|
||||||
|
|
||||||
/** Footer offset */
|
|
||||||
uint32_t footerOffset;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/** Constructor */
|
/** Constructor */
|
||||||
EigerData(){
|
EigerData(){
|
||||||
myDetectorType = slsReceiverDefs::EIGER;
|
myDetectorType = slsReceiverDefs::EIGER;
|
||||||
nPixelsX = (256*2);
|
nPixelsX = (256*2);
|
||||||
nPixelsY = 256;
|
nPixelsY = 256;
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
headerSizeinPacket = 8;
|
|
||||||
#else
|
|
||||||
headerSizeinPacket = sizeof(slsReceiverDefs::sls_detector_header);
|
headerSizeinPacket = sizeof(slsReceiverDefs::sls_detector_header);
|
||||||
#endif
|
|
||||||
dataSize = 1024;
|
dataSize = 1024;
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
packetSize = headerSizeinPacket + dataSize + 8;
|
|
||||||
#else
|
|
||||||
packetSize = headerSizeinPacket + dataSize;
|
packetSize = headerSizeinPacket + dataSize;
|
||||||
#endif
|
|
||||||
packetsPerFrame = 256;
|
packetsPerFrame = 256;
|
||||||
imageSize = dataSize*packetsPerFrame;
|
imageSize = dataSize*packetsPerFrame;
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
frameIndexMask = 0xffffff;
|
|
||||||
#endif
|
|
||||||
maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
|
maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
|
||||||
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsReceiverDefs::sls_detector_header);
|
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsReceiverDefs::sls_detector_header);
|
||||||
defaultFifoDepth = 100;
|
defaultFifoDepth = 100;
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
footerOffset = headerSizeinPacket + dataSize;
|
|
||||||
#endif
|
|
||||||
threadsPerReceiver = 2;
|
threadsPerReceiver = 2;
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
headerPacketSize = 48;
|
|
||||||
#else
|
|
||||||
headerPacketSize = 40;
|
headerPacketSize = 40;
|
||||||
#endif
|
|
||||||
nPixelsX_Streamer = nPixelsX;
|
nPixelsX_Streamer = nPixelsX;
|
||||||
nPixelsY_Streamer = nPixelsY;
|
nPixelsY_Streamer = nPixelsY;
|
||||||
imageSize_Streamer = imageSize;
|
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
|
* Setting dynamic range changes member variables
|
||||||
* @param dr dynamic range
|
* @param dr dynamic range
|
||||||
@ -581,30 +500,11 @@ private:
|
|||||||
*/
|
*/
|
||||||
void SetTenGigaEnable(bool tgEnable, int dr) {
|
void SetTenGigaEnable(bool tgEnable, int dr) {
|
||||||
dataSize = (tgEnable ? 4096 : 1024);
|
dataSize = (tgEnable ? 4096 : 1024);
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
packetSize = (tgEnable ? 4112 : 1040);
|
|
||||||
#else
|
|
||||||
packetSize = headerSizeinPacket + dataSize;
|
packetSize = headerSizeinPacket + dataSize;
|
||||||
#endif
|
|
||||||
packetsPerFrame = (tgEnable ? 4 : 16) * dr;
|
packetsPerFrame = (tgEnable ? 4 : 16) * dr;
|
||||||
imageSize = dataSize*packetsPerFrame;
|
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 SVNPATH ""
|
||||||
#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_receiver_software.git"
|
#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_receiver_software.git"
|
||||||
//#define SVNREPPATH ""
|
//#define SVNREPPATH ""
|
||||||
#define SVNREPUUID "3ed2a33d504cb2d40acd6e7c8e115697158346e9"
|
#define SVNREPUUID "7a69378574427de0c5cd9a1b86231c47732829a8"
|
||||||
//#define SVNREV 0x595
|
//#define SVNREV 0x599
|
||||||
//#define SVNKIND ""
|
//#define SVNKIND ""
|
||||||
//#define SVNSCHED ""
|
//#define SVNSCHED ""
|
||||||
#define SVNAUTH "Dhanya_Maliakal"
|
#define SVNAUTH "Dhanya_Maliakal"
|
||||||
#define SVNREV 0x595
|
#define SVNREV 0x599
|
||||||
#define SVNDATE 0x20170622
|
#define SVNDATE 0x20170628
|
||||||
//
|
//
|
||||||
|
@ -61,11 +61,8 @@ Listener::Listener(detectorType dtype, Fifo*& f, runStatus* s, uint32_t* portno,
|
|||||||
|
|
||||||
switch(myDetectorType){
|
switch(myDetectorType){
|
||||||
case JUNGFRAU:
|
case JUNGFRAU:
|
||||||
standardheader = true;
|
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
#else
|
|
||||||
case EIGER:
|
case EIGER:
|
||||||
#endif
|
standardheader = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
standardheader = false;
|
standardheader = false;
|
||||||
@ -381,10 +378,6 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
|||||||
else {
|
else {
|
||||||
memset(new_header, 0, sizeof(sls_detector_header));
|
memset(new_header, 0, sizeof(sls_detector_header));
|
||||||
new_header->frameNumber = fnum;
|
new_header->frameNumber = fnum;
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
|
||||||
new_header->expLength = snum;
|
|
||||||
#endif
|
|
||||||
new_header->packetNumber = pperFrame;
|
new_header->packetNumber = pperFrame;
|
||||||
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
||||||
new_header->detType = (uint8_t) generalData->myDetectorType;
|
new_header->detType = (uint8_t) generalData->myDetectorType;
|
||||||
@ -475,10 +468,6 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
|||||||
else {
|
else {
|
||||||
memset(new_header, 0, sizeof(sls_detector_header));
|
memset(new_header, 0, sizeof(sls_detector_header));
|
||||||
new_header->frameNumber = fnum;
|
new_header->frameNumber = fnum;
|
||||||
#ifndef EIGER_NEWHEADER
|
|
||||||
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
|
||||||
new_header->expLength = snum;
|
|
||||||
#endif
|
|
||||||
new_header->packetNumber = pperFrame;
|
new_header->packetNumber = pperFrame;
|
||||||
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
||||||
new_header->detType = (uint8_t) generalData->myDetectorType;
|
new_header->detType = (uint8_t) generalData->myDetectorType;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
MAINDIR=slsDetectorsPackage
|
MAINDIR=slsDetectorsPackage
|
||||||
SPECDIR=slsReceiverSoftware
|
SPECDIR=slsReceiverSoftware
|
||||||
TMPFILE=gitInfoReceiverTmp.h
|
TMPFILE=include/gitInfoReceiverTmp.h
|
||||||
INCLFILE=gitInfoReceiver.h
|
INCLFILE=include/gitInfoReceiver.h
|
||||||
WD=$PWD
|
WD=$PWD
|
||||||
|
|
||||||
GITREPO1='git remote -v'
|
GITREPO1='git remote -v'
|
||||||
@ -28,7 +28,7 @@ REV=`eval $REV1 $REV2`
|
|||||||
FOLDERREV=`eval $FOLDERREV1 $FOLDERREV2`
|
FOLDERREV=`eval $FOLDERREV1 $FOLDERREV2`
|
||||||
RDATE=`eval $RDATE1`
|
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
|
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
|
./genVersionHeader.sh $SPECDIR/gitInfo.txt $SPECDIR/$TMPFILE $SPECDIR/$INCLFILE
|
||||||
echo "Revision Updated"
|
echo "Revision Updated"
|
||||||
cd $WD
|
cd $WD
|
||||||
|
Reference in New Issue
Block a user