mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-04 11:50:05 +02:00
eiger bug fix: 4 bit mode gap pixels, also added quad to shm
This commit is contained in:
parent
2a88bc6a1e
commit
633c646239
@ -129,8 +129,8 @@ void qDrawPlot::SetupWidgetWindow(){
|
|||||||
break;
|
break;
|
||||||
case slsDetectorDefs::EIGER:
|
case slsDetectorDefs::EIGER:
|
||||||
if (myDet->setQuad()) {
|
if (myDet->setQuad()) {
|
||||||
nPixelsX = (myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::X) / 2);
|
nPixelsX /= 2;
|
||||||
nPixelsY = myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::Y) * 2;
|
nPixelsY *= 2;
|
||||||
if (nPixelsX != nPixelsY) {
|
if (nPixelsX != nPixelsY) {
|
||||||
--nPixelsX;
|
--nPixelsX;
|
||||||
}
|
}
|
||||||
@ -606,8 +606,8 @@ void qDrawPlot::SetScanArgument(int scanArg){
|
|||||||
break;
|
break;
|
||||||
case slsDetectorDefs::EIGER:
|
case slsDetectorDefs::EIGER:
|
||||||
if (myDet->setQuad()) {
|
if (myDet->setQuad()) {
|
||||||
nPixelsX = (myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::X) / 2);
|
nPixelsX /= 2;
|
||||||
nPixelsY = myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::Y) * 2;
|
nPixelsY *= 2;
|
||||||
if (nPixelsX != nPixelsY) {
|
if (nPixelsX != nPixelsY) {
|
||||||
--nPixelsX;
|
--nPixelsX;
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -1,9 +1,9 @@
|
|||||||
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
|
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
|
||||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repsitory UUID: c5f22757037a3aab60f5d91514d10d59440a29f6
|
Repsitory UUID: 2a88bc6a1eac9777390af1d1fb9aa02960ebfe2d
|
||||||
Revision: 358
|
Revision: 359
|
||||||
Branch: 4.1.0-rc
|
Branch: 4.1.0-rc
|
||||||
Last Changed Author: Dhanya_Thattil
|
Last Changed Author: Dhanya_Thattil
|
||||||
Last Changed Rev: 4126
|
Last Changed Rev: 4130
|
||||||
Last Changed Date: 2019-08-06 17:19:23.000000001 +0200 ./FebRegisterDefs.h
|
Last Changed Date: 2019-08-14 09:25:41.000000001 +0200 ./xparameters.h
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||||
#define GITREPUUID "c5f22757037a3aab60f5d91514d10d59440a29f6"
|
#define GITREPUUID "2a88bc6a1eac9777390af1d1fb9aa02960ebfe2d"
|
||||||
#define GITAUTH "Dhanya_Thattil"
|
#define GITAUTH "Dhanya_Thattil"
|
||||||
#define GITREV 0x4126
|
#define GITREV 0x4130
|
||||||
#define GITDATE 0x20190806
|
#define GITDATE 0x20190814
|
||||||
#define GITBRANCH "4.1.0-rc"
|
#define GITBRANCH "4.1.0-rc"
|
||||||
|
@ -4988,6 +4988,7 @@ void multiSlsDetector::readFrameFromReceiver() {
|
|||||||
int nDetPixelsX = 0;
|
int nDetPixelsX = 0;
|
||||||
int nDetPixelsY = 0;
|
int nDetPixelsY = 0;
|
||||||
bool gappixelsenable = false;
|
bool gappixelsenable = false;
|
||||||
|
bool quadEnable = false;
|
||||||
bool eiger = false;
|
bool eiger = false;
|
||||||
bool runningList[zmqSocket.size()], connectList[zmqSocket.size()];
|
bool runningList[zmqSocket.size()], connectList[zmqSocket.size()];
|
||||||
int numRunning = 0;
|
int numRunning = 0;
|
||||||
@ -5072,6 +5073,7 @@ void multiSlsDetector::readFrameFromReceiver() {
|
|||||||
eiger = (doc["detType"].GetUint() == (int)EIGER) ? true : false;
|
eiger = (doc["detType"].GetUint() == (int)EIGER) ? true : false;
|
||||||
// gap pixels enable
|
// gap pixels enable
|
||||||
gappixelsenable = (doc["gappixels"].GetUint() == 0) ? false : true;
|
gappixelsenable = (doc["gappixels"].GetUint() == 0) ? false : true;
|
||||||
|
quadEnable = (doc["quad"].GetUint() == 0) ? false : true;
|
||||||
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
cprintf(BLUE, "(Debug) One Time Header Info:\n"
|
cprintf(BLUE, "(Debug) One Time Header Info:\n"
|
||||||
@ -5084,9 +5086,10 @@ void multiSlsDetector::readFrameFromReceiver() {
|
|||||||
"nX: %u\n"
|
"nX: %u\n"
|
||||||
"nY: %u\n"
|
"nY: %u\n"
|
||||||
"eiger: %d\n"
|
"eiger: %d\n"
|
||||||
"gappixelsenable: %d\n",
|
"gappixelsenable: %d\n"
|
||||||
|
"quadEnable: %d\n",
|
||||||
size, multisize, dynamicRange, bytesPerPixel,
|
size, multisize, dynamicRange, bytesPerPixel,
|
||||||
nPixelsX, nPixelsY, nX, nY, eiger, gappixelsenable);
|
nPixelsX, nPixelsY, nX, nY, eiger, gappixelsenable, quadEnable);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
// each time, parse rest of header
|
// each time, parse rest of header
|
||||||
@ -5154,12 +5157,24 @@ void multiSlsDetector::readFrameFromReceiver() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef VERBOSE
|
||||||
|
cprintf(BLUE,"nPixelsX:%d, nPixelsY:%d nx:%d ny:%d quadEnable:%d\n", nDetPixelsX, nDetPixelsY, nX, nY, quadEnable);
|
||||||
|
#endif
|
||||||
//send data to callback
|
//send data to callback
|
||||||
if (data) {
|
if (data) {
|
||||||
// 4bit gap pixels
|
// 4bit gap pixels
|
||||||
if (dynamicRange == 4 && gappixelsenable) {
|
if (dynamicRange == 4 && gappixelsenable) {
|
||||||
int n = processImageWithGapPixels(multiframe, multigappixels);
|
if (quadEnable) {
|
||||||
|
nDetPixelsX += 2;
|
||||||
|
nDetPixelsY += 2;
|
||||||
|
} else {
|
||||||
|
nDetPixelsX = nX * (nPixelsX + 3);
|
||||||
|
nDetPixelsY = nY * (nPixelsY + 1);
|
||||||
|
}
|
||||||
|
#ifdef VERBOSE
|
||||||
|
cprintf(RED,"Corrected nPixelsX:%d, nPixelsY:%d quadEnable:%d\n", nDetPixelsX, nDetPixelsY, quadEnable);
|
||||||
|
#endif
|
||||||
|
int n = processImageWithGapPixels(multiframe, multigappixels, quadEnable);
|
||||||
thisData = new detectorData(NULL, NULL, NULL, getCurrentProgress(),
|
thisData = new detectorData(NULL, NULL, NULL, getCurrentProgress(),
|
||||||
currentFileName.c_str(), nDetPixelsX, nDetPixelsY,
|
currentFileName.c_str(), nDetPixelsX, nDetPixelsY,
|
||||||
multigappixels, n, dynamicRange, currentFileIndex);
|
multigappixels, n, dynamicRange, currentFileIndex);
|
||||||
@ -5211,14 +5226,23 @@ void multiSlsDetector::readFrameFromReceiver() {
|
|||||||
delete[] multigappixels;
|
delete[] multigappixels;
|
||||||
}
|
}
|
||||||
|
|
||||||
int multiSlsDetector::processImageWithGapPixels(char* image, char*& gpImage) {
|
int multiSlsDetector::processImageWithGapPixels(char* image, char*& gpImage, bool quadEnable) {
|
||||||
// eiger 4 bit mode
|
// eiger 4 bit mode (divided by 2 already)
|
||||||
int nxb = thisMultiDetector->numberOfDetector[X] * (512 + 3);
|
int nxb = thisMultiDetector->numberOfDetector[X] * (512 + 3);
|
||||||
int nyb = thisMultiDetector->numberOfDetector[Y] * (256 + 1);
|
int nyb = thisMultiDetector->numberOfDetector[Y] * (256 + 1);
|
||||||
int gapdatabytes = nxb * nyb;
|
int nchipInRow = 4;
|
||||||
|
|
||||||
int nxchip = thisMultiDetector->numberOfDetector[X] * 4;
|
int nxchip = thisMultiDetector->numberOfDetector[X] * 4;
|
||||||
int nychip = thisMultiDetector->numberOfDetector[Y] * 1;
|
int nychip = thisMultiDetector->numberOfDetector[Y] * 1;
|
||||||
|
if (quadEnable) {
|
||||||
|
nxb = thisMultiDetector->numberOfDetector[X] * (256 + 1);
|
||||||
|
nyb = thisMultiDetector->numberOfDetector[Y] * (512 + 2);
|
||||||
|
nxchip /= 2;
|
||||||
|
nychip *= 2;
|
||||||
|
nchipInRow /= 2;
|
||||||
|
}
|
||||||
|
int gapdatabytes = nxb * nyb;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// allocate
|
// allocate
|
||||||
if (gpImage == NULL)
|
if (gpImage == NULL)
|
||||||
@ -5234,13 +5258,13 @@ int multiSlsDetector::processImageWithGapPixels(char* image, char*& gpImage) {
|
|||||||
// copying line by line
|
// copying line by line
|
||||||
src = image;
|
src = image;
|
||||||
dst = gpImage;
|
dst = gpImage;
|
||||||
for (int row = 0; row < nychip; ++row) { // for each chip in a row
|
for (int row = 0; row < nychip; ++row) { // for each chip row
|
||||||
for (int ichipy = 0; ichipy < b1chipy; ++ichipy) { //for each row in a chip
|
for (int ichipy = 0; ichipy < b1chipy; ++ichipy) { //for each row in a chip
|
||||||
for (int col = 0; col < nxchip; ++col) {
|
for (int col = 0; col < nxchip; ++col) { // for each chip in a row
|
||||||
memcpy(dst, src, b1chipx);
|
memcpy(dst, src, b1chipx);
|
||||||
src += b1chipx;
|
src += b1chipx;
|
||||||
dst += b1chipx;
|
dst += b1chipx;
|
||||||
if ((col + 1) % 4)
|
if ((col + 1) % nchipInRow) // 1, 2, and 3rd chip, skip gap pixels
|
||||||
++dst;
|
++dst;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5253,11 +5277,11 @@ int multiSlsDetector::processImageWithGapPixels(char* image, char*& gpImage) {
|
|||||||
uint8_t temp, g1, g2;
|
uint8_t temp, g1, g2;
|
||||||
int mod;
|
int mod;
|
||||||
dst = gpImage;
|
dst = gpImage;
|
||||||
for (int row = 0; row < nychip; ++row) { // for each chip in a row
|
for (int row = 0; row < nychip; ++row) { // for each chip row
|
||||||
for (int ichipy = 0; ichipy < b1chipy; ++ichipy) { //for each row in a chip
|
for (int ichipy = 0; ichipy < b1chipy; ++ichipy) { //for each row in a chip
|
||||||
for (int col = 0; col < nxchip; ++col) {
|
for (int col = 0; col < nxchip; ++col) { // for each chip in a row
|
||||||
dst += b1chipx;
|
dst += b1chipx;
|
||||||
mod = (col + 1) % 4;
|
mod = (col + 1) % nchipInRow; // 1, 2, and 3rd chip, get gap pixels
|
||||||
// copy gap pixel(chip 0, 1, 2)
|
// copy gap pixel(chip 0, 1, 2)
|
||||||
if (mod) {
|
if (mod) {
|
||||||
// neighbouring gap pixels to left
|
// neighbouring gap pixels to left
|
||||||
@ -5288,8 +5312,8 @@ int multiSlsDetector::processImageWithGapPixels(char* image, char*& gpImage) {
|
|||||||
{
|
{
|
||||||
uint8_t temp, g1, g2;
|
uint8_t temp, g1, g2;
|
||||||
char* dst_prevline = 0;
|
char* dst_prevline = 0;
|
||||||
dst = gpImage;
|
dst = gpImage;
|
||||||
for (int row = 0; row < nychip; ++row) { // for each chip in a row
|
for (int row = 0; row < nychip; ++row) { // for each chip row
|
||||||
dst += (b1chipy * nxb);
|
dst += (b1chipy * nxb);
|
||||||
// horizontal copying of gap pixels from neighboring past line (bottom parts)
|
// horizontal copying of gap pixels from neighboring past line (bottom parts)
|
||||||
if (row < nychip - 1) {
|
if (row < nychip - 1) {
|
||||||
|
@ -1926,9 +1926,10 @@ private:
|
|||||||
* add gap pixels to the image (only for Eiger in 4 bit mode)
|
* add gap pixels to the image (only for Eiger in 4 bit mode)
|
||||||
* @param image pointer to image without gap pixels
|
* @param image pointer to image without gap pixels
|
||||||
* @param gpImage poiner to image with gap pixels, if NULL, allocated inside function
|
* @param gpImage poiner to image with gap pixels, if NULL, allocated inside function
|
||||||
|
* @param quadEnable quad enabled
|
||||||
* @returns number of data bytes of image with gap pixels
|
* @returns number of data bytes of image with gap pixels
|
||||||
*/
|
*/
|
||||||
int processImageWithGapPixels(char* image, char*& gpImage);
|
int processImageWithGapPixels(char* image, char*& gpImage, bool quadEnable);
|
||||||
|
|
||||||
|
|
||||||
/** Multi detector Id */
|
/** Multi detector Id */
|
||||||
|
@ -752,6 +752,7 @@ void slsDetector::initializeDetectorStructure(detectorType type) {
|
|||||||
thisDetector->activated = true;
|
thisDetector->activated = true;
|
||||||
thisDetector->receiver_deactivatedPaddingEnable = true;
|
thisDetector->receiver_deactivatedPaddingEnable = true;
|
||||||
thisDetector->receiver_silentMode = false;
|
thisDetector->receiver_silentMode = false;
|
||||||
|
thisDetector->quadEnable = false;
|
||||||
|
|
||||||
// get the detector parameters based on type
|
// get the detector parameters based on type
|
||||||
detParameterList detlist;
|
detParameterList detlist;
|
||||||
@ -2367,6 +2368,12 @@ int slsDetector::updateDetectorNoWait() {
|
|||||||
getTotalNumberOfChannels();
|
getTotalNumberOfChannels();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(thisDetector->myDetectorType == EIGER){
|
||||||
|
n += controlSocket->ReceiveDataOnly( &nm,sizeof(int32_t));
|
||||||
|
thisDetector->quadEnable = nm;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!n)
|
if (!n)
|
||||||
printf("n: %d\n", n);
|
printf("n: %d\n", n);
|
||||||
@ -5306,6 +5313,9 @@ string slsDetector::setReceiver(string receiverIP) {
|
|||||||
|
|
||||||
if(thisDetector->myDetectorType == GOTTHARD)
|
if(thisDetector->myDetectorType == GOTTHARD)
|
||||||
sendROI(-1, NULL);
|
sendROI(-1, NULL);
|
||||||
|
if (thisDetector->myDetectorType == EIGER) {
|
||||||
|
setQuad(-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9778,6 +9788,7 @@ int slsDetector::setQuad(int val) {
|
|||||||
setErrorMask((getErrorMask())|(SOME_ERROR));
|
setErrorMask((getErrorMask())|(SOME_ERROR));
|
||||||
}
|
}
|
||||||
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
||||||
|
thisDetector->quadEnable = retval;
|
||||||
disconnectControl();
|
disconnectControl();
|
||||||
if (ret==FORCE_UPDATE)
|
if (ret==FORCE_UPDATE)
|
||||||
updateDetector();
|
updateDetector();
|
||||||
@ -9790,11 +9801,11 @@ int slsDetector::setQuad(int val) {
|
|||||||
if (ret != FAIL) {
|
if (ret != FAIL) {
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
|
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
|
||||||
|
if(val ==-1) {
|
||||||
|
val = thisDetector->quadEnable;
|
||||||
|
}
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
if(val ==-1)
|
std::cout<< "Setting Receiver Quad Mode to " << val << endl;
|
||||||
std::cout<< "Getting Receiver Quad mode" << endl;
|
|
||||||
else
|
|
||||||
std::cout<< "Setting Receiver Quad Mode to " << val << endl;
|
|
||||||
#endif
|
#endif
|
||||||
if (connectData() == OK){
|
if (connectData() == OK){
|
||||||
ret=thisReceiver->sendInt(fnum2,retval,val);
|
ret=thisReceiver->sendInt(fnum2,retval,val);
|
||||||
|
@ -19,7 +19,7 @@ class multiSlsDetector;
|
|||||||
class SharedMemory;
|
class SharedMemory;
|
||||||
class receiverInterface;
|
class receiverInterface;
|
||||||
|
|
||||||
#define SLS_SHMVERSION 0x180629
|
#define SLS_SHMVERSION 0x180630
|
||||||
#define NMODMAXX 24
|
#define NMODMAXX 24
|
||||||
#define NMODMAXY 24
|
#define NMODMAXY 24
|
||||||
#define NCHIPSMAX 10
|
#define NCHIPSMAX 10
|
||||||
@ -384,6 +384,9 @@ private:
|
|||||||
/** silent receiver */
|
/** silent receiver */
|
||||||
bool receiver_silentMode;
|
bool receiver_silentMode;
|
||||||
|
|
||||||
|
/** quad enable */
|
||||||
|
bool quadEnable;
|
||||||
|
|
||||||
} sharedSlsDetector;
|
} sharedSlsDetector;
|
||||||
|
|
||||||
|
|
||||||
|
@ -3734,6 +3734,14 @@ int send_update(int file_des) {
|
|||||||
if (n < 0) return printSocketReadError();
|
if (n < 0) return printSocketReadError();
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef EIGERD
|
||||||
|
#ifdef SLS_DETECTOR_FUNCTION_LIST
|
||||||
|
nm=getQuad();
|
||||||
|
#endif
|
||||||
|
n = sendData(file_des,&nm,sizeof(int32_t),INT32);
|
||||||
|
if (n < 0) return printSocketReadError();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (lockStatus==0) {
|
if (lockStatus==0) {
|
||||||
strcpy(lastClientIP,thisClientIP);
|
strcpy(lastClientIP,thisClientIP);
|
||||||
}
|
}
|
||||||
|
@ -32,9 +32,10 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject {
|
|||||||
* @param sm pointer to silent mode
|
* @param sm pointer to silent mode
|
||||||
* @param nd pointer to number of detectors in each dimension
|
* @param nd pointer to number of detectors in each dimension
|
||||||
* @param gpEnable pointer to gap pixels enable
|
* @param gpEnable pointer to gap pixels enable
|
||||||
|
* @param qe pointer to quad Enable
|
||||||
*/
|
*/
|
||||||
DataStreamer(int ind, Fifo*& f, uint32_t* dr, std::vector<ROI>* r,
|
DataStreamer(int ind, Fifo*& f, uint32_t* dr, std::vector<ROI>* r,
|
||||||
uint64_t* fi, int fd, char* ajh, bool* sm, int* nd, bool* gpEnable);
|
uint64_t* fi, int fd, char* ajh, bool* sm, int* nd, bool* gpEnable, bool* qe);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor
|
* Destructor
|
||||||
@ -227,5 +228,7 @@ class DataStreamer : private virtual slsReceiverDefs, public ThreadObject {
|
|||||||
/** Gap Pixels Enable */
|
/** Gap Pixels Enable */
|
||||||
bool* gapPixelsEnable;
|
bool* gapPixelsEnable;
|
||||||
|
|
||||||
|
/** quad enable */
|
||||||
|
bool* quadEnable;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ public:
|
|||||||
uint16_t modId = 0, uint16_t row = 0, uint16_t column = 0, uint16_t reserved = 0,
|
uint16_t modId = 0, uint16_t row = 0, uint16_t column = 0, uint16_t reserved = 0,
|
||||||
uint32_t debug = 0, uint16_t roundRNumber = 0,
|
uint32_t debug = 0, uint16_t roundRNumber = 0,
|
||||||
uint8_t detType = 0, uint8_t version = 0, uint32_t gapPixelsEnable = 0, uint32_t flippedDataX = 0,
|
uint8_t detType = 0, uint8_t version = 0, uint32_t gapPixelsEnable = 0, uint32_t flippedDataX = 0,
|
||||||
char* additionalJsonHeader = 0) {
|
uint32_t quadEnable = 0, char* additionalJsonHeader = 0) {
|
||||||
|
|
||||||
|
|
||||||
char buf[MAX_STR_LENGTH] = "";
|
char buf[MAX_STR_LENGTH] = "";
|
||||||
@ -308,7 +308,8 @@ public:
|
|||||||
|
|
||||||
//additional stuff
|
//additional stuff
|
||||||
"\"gappixels\":%u, "
|
"\"gappixels\":%u, "
|
||||||
"\"flippedDataX\":%u"
|
"\"flippedDataX\":%u, "
|
||||||
|
"\"quad\":%u"
|
||||||
|
|
||||||
;//"}\n";
|
;//"}\n";
|
||||||
int length = sprintf(buf, jsonHeaderFormat,
|
int length = sprintf(buf, jsonHeaderFormat,
|
||||||
@ -321,7 +322,8 @@ public:
|
|||||||
|
|
||||||
//additional stuff
|
//additional stuff
|
||||||
gapPixelsEnable,
|
gapPixelsEnable,
|
||||||
flippedDataX
|
flippedDataX,
|
||||||
|
quadEnable
|
||||||
);
|
);
|
||||||
if (additionalJsonHeader && strlen(additionalJsonHeader)) {
|
if (additionalJsonHeader && strlen(additionalJsonHeader)) {
|
||||||
length = sprintf(buf, "%s, %s}\n", buf, additionalJsonHeader);
|
length = sprintf(buf, "%s, %s}\n", buf, additionalJsonHeader);
|
||||||
|
@ -16,7 +16,7 @@ const std::string DataStreamer::TypeName = "DataStreamer";
|
|||||||
|
|
||||||
|
|
||||||
DataStreamer::DataStreamer(int ind, Fifo*& f, uint32_t* dr, std::vector<ROI>* r,
|
DataStreamer::DataStreamer(int ind, Fifo*& f, uint32_t* dr, std::vector<ROI>* r,
|
||||||
uint64_t* fi, int fd, char* ajh, bool* sm, int* nd, bool* gpEnable) :
|
uint64_t* fi, int fd, char* ajh, bool* sm, int* nd, bool* gpEnable, bool* qe) :
|
||||||
ThreadObject(ind),
|
ThreadObject(ind),
|
||||||
runningFlag(0),
|
runningFlag(0),
|
||||||
generalData(0),
|
generalData(0),
|
||||||
@ -33,7 +33,8 @@ DataStreamer::DataStreamer(int ind, Fifo*& f, uint32_t* dr, std::vector<ROI>* r,
|
|||||||
firstAcquisitionIndex(0),
|
firstAcquisitionIndex(0),
|
||||||
firstMeasurementIndex(0),
|
firstMeasurementIndex(0),
|
||||||
completeBuffer(0),
|
completeBuffer(0),
|
||||||
gapPixelsEnable(gpEnable)
|
gapPixelsEnable(gpEnable),
|
||||||
|
quadEnable(qe)
|
||||||
{
|
{
|
||||||
numDet[0] = nd[0];
|
numDet[0] = nd[0];
|
||||||
numDet[1] = nd[1];
|
numDet[1] = nd[1];
|
||||||
@ -279,7 +280,7 @@ int DataStreamer::SendHeader(sls_receiver_header* rheader, uint32_t size, uint32
|
|||||||
header.modId, header.row, header.column, header.reserved,
|
header.modId, header.row, header.column, header.reserved,
|
||||||
header.debug, header.roundRNumber,
|
header.debug, header.roundRNumber,
|
||||||
header.detType, header.version,
|
header.detType, header.version,
|
||||||
*gapPixelsEnable ? 1 : 0, flippedDataX,
|
*gapPixelsEnable ? 1 : 0, flippedDataX, *quadEnable,
|
||||||
additionJsonHeader
|
additionJsonHeader
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -338,7 +338,7 @@ int UDPStandardImplementation::setDataStreamEnable(const bool enable) {
|
|||||||
nd[1] = 2;
|
nd[1] = 2;
|
||||||
}
|
}
|
||||||
DataStreamer* s = new DataStreamer(i, fifo[i], &dynamicRange,
|
DataStreamer* s = new DataStreamer(i, fifo[i], &dynamicRange,
|
||||||
&roi, &fileIndex, fd, additionalJsonHeader, &silentMode, (int*)nd, &gapPixelsEnable);
|
&roi, &fileIndex, fd, additionalJsonHeader, &silentMode, (int*)nd, &gapPixelsEnable, &quadEnable);
|
||||||
dataStreamer.push_back(s);
|
dataStreamer.push_back(s);
|
||||||
dataStreamer[i]->SetGeneralData(generalData);
|
dataStreamer[i]->SetGeneralData(generalData);
|
||||||
dataStreamer[i]->CreateZmqSockets(&numThreads, streamingPort, streamingSrcIP);
|
dataStreamer[i]->CreateZmqSockets(&numThreads, streamingPort, streamingSrcIP);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user