mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 01:58:00 +02:00
veto header smaller size
This commit is contained in:
@ -50,6 +50,7 @@ class GeneralData {
|
||||
uint32_t vetoDataSize{0};
|
||||
uint32_t vetoPacketSize{0};
|
||||
uint32_t vetoImageSize{0};
|
||||
uint32_t vetoHsize{0};
|
||||
|
||||
GeneralData(){};
|
||||
virtual ~GeneralData(){};
|
||||
@ -61,14 +62,17 @@ class GeneralData {
|
||||
* @param oddStartingPacket odd starting packet (gotthard)
|
||||
* @param frameNumber frame number
|
||||
* @param packetNumber packet number
|
||||
* @param bunchId bunch Id
|
||||
*/
|
||||
virtual void GetHeaderInfo(int index, char *packetData,
|
||||
bool oddStartingPacket, uint64_t &frameNumber,
|
||||
uint32_t &packetNumber) const {
|
||||
uint32_t &packetNumber,
|
||||
uint64_t &bunchId) const {
|
||||
frameNumber = ((uint32_t)(*((uint32_t *)(packetData))));
|
||||
frameNumber++;
|
||||
packetNumber = frameNumber & packetIndexMask;
|
||||
frameNumber = (frameNumber & frameIndexMask) >> frameIndexOffset;
|
||||
bunchId = -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -194,9 +198,11 @@ class GotthardData : public GeneralData {
|
||||
* @param oddStartingPacket odd starting packet (gotthard)
|
||||
* @param frameNumber frame number
|
||||
* @param packetNumber packet number
|
||||
* @param bunchId bunch Id
|
||||
*/
|
||||
void GetHeaderInfo(int index, char *packetData, bool oddStartingPacket,
|
||||
uint64_t &frameNumber, uint32_t &packetNumber) const {
|
||||
uint64_t &frameNumber, uint32_t &packetNumber,
|
||||
uint64_t &bunchId) const {
|
||||
if (nPixelsX == 1280) {
|
||||
frameNumber = *reinterpret_cast<uint32_t *>(packetData);
|
||||
if (oddStartingPacket)
|
||||
@ -207,6 +213,7 @@ class GotthardData : public GeneralData {
|
||||
frameNumber = *reinterpret_cast<uint32_t *>(packetData);
|
||||
packetNumber = 0;
|
||||
}
|
||||
bunchId = -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -490,6 +497,7 @@ class Gotthard2Data : public GeneralData {
|
||||
vetoDataSize = 160;
|
||||
vetoPacketSize = headerSizeinPacket + vetoDataSize;
|
||||
vetoImageSize = vetoDataSize * packetsPerFrame;
|
||||
vetoHsize = 24;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -506,6 +514,23 @@ class Gotthard2Data : public GeneralData {
|
||||
threadsPerReceiver = 1;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get Header Infomation (frame number, packet number) for veto packets
|
||||
* @param index thread index for debugging purposes
|
||||
* @param packetData pointer to data
|
||||
* @param oddStartingPacket odd starting packet (gotthard)
|
||||
* @param frameNumber frame number
|
||||
* @param packetNumber packet number
|
||||
* @param bunchId bunch Id
|
||||
*/
|
||||
void GetHeaderInfo(int index, char *packetData, bool oddStartingPacket,
|
||||
uint64_t &frameNumber, uint32_t &packetNumber,
|
||||
uint64_t &bunchId) const {
|
||||
frameNumber = *reinterpret_cast<uint64_t *>(packetData);
|
||||
bunchId = *reinterpret_cast<uint64_t *>(packetData + 8);
|
||||
packetNumber = 0;
|
||||
}
|
||||
};
|
||||
|
||||
class ChipTestBoardData : public GeneralData {
|
||||
|
@ -270,22 +270,25 @@ uint32_t Listener::ListenToAnImage(char *buf) {
|
||||
int rc = 0;
|
||||
uint64_t fnum = 0;
|
||||
uint32_t pnum = 0;
|
||||
uint64_t bnum = 0;
|
||||
uint32_t numpackets = 0;
|
||||
uint32_t dsize = generalData->dataSize;
|
||||
uint32_t imageSize = generalData->imageSize;
|
||||
uint32_t packetSize = generalData->packetSize;
|
||||
uint32_t hsize = generalData->headerSizeinPacket;
|
||||
uint32_t fifohsize = generalData->fifoBufferHeaderSize;
|
||||
bool standardheader = generalData->standardheader;
|
||||
if (myDetectorType == GOTTHARD2 && index != 0) {
|
||||
dsize = generalData->vetoDataSize;
|
||||
imageSize = generalData->vetoImageSize;
|
||||
packetSize = generalData->vetoPacketSize;
|
||||
hsize = generalData->vetoHsize;
|
||||
standardheader = false;
|
||||
}
|
||||
uint32_t hsize = generalData->headerSizeinPacket;
|
||||
uint32_t fifohsize = generalData->fifoBufferHeaderSize;
|
||||
uint32_t pperFrame = generalData->packetsPerFrame;
|
||||
bool isHeaderEmpty = true;
|
||||
sls_detector_header *old_header = nullptr;
|
||||
sls_receiver_header *new_header = nullptr;
|
||||
bool standardheader = generalData->standardheader;
|
||||
uint32_t corrected_dsize = dsize - ((pperFrame * dsize) - imageSize);
|
||||
|
||||
// reset to -1
|
||||
@ -329,7 +332,7 @@ uint32_t Listener::ListenToAnImage(char *buf) {
|
||||
// -----------------------------------------------------------------------------
|
||||
else {
|
||||
generalData->GetHeaderInfo(index, &carryOverPacket[0],
|
||||
oddStartingPacket, fnum, pnum);
|
||||
oddStartingPacket, fnum, pnum, bnum);
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
if (fnum != currentFrameIndex) {
|
||||
@ -403,6 +406,7 @@ uint32_t Listener::ListenToAnImage(char *buf) {
|
||||
// ------------------------------------------------------------------------------
|
||||
else {
|
||||
new_header->detHeader.frameNumber = fnum;
|
||||
new_header->detHeader.bunchId = bnum;
|
||||
new_header->detHeader.row = row;
|
||||
new_header->detHeader.column = column;
|
||||
new_header->detHeader.detType =
|
||||
@ -470,7 +474,7 @@ uint32_t Listener::ListenToAnImage(char *buf) {
|
||||
}
|
||||
|
||||
generalData->GetHeaderInfo(index, &listeningPacket[0],
|
||||
oddStartingPacket, fnum, pnum);
|
||||
oddStartingPacket, fnum, pnum, bnum);
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@ -569,6 +573,7 @@ uint32_t Listener::ListenToAnImage(char *buf) {
|
||||
// ------------------------------------------------------------------------------
|
||||
else {
|
||||
new_header->detHeader.frameNumber = fnum;
|
||||
new_header->detHeader.bunchId = bnum;
|
||||
new_header->detHeader.row = row;
|
||||
new_header->detHeader.column = column;
|
||||
new_header->detHeader.detType =
|
||||
|
Reference in New Issue
Block a user