diff --git a/RELEASE.txt b/RELEASE.txt index cf6096e94..1830e3919 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -21,6 +21,7 @@ This document describes the differences between 4.2.0 and 4.1.1 releases. - (Eiger) Deactivate a module - (Eiger) Setting all trimbits argument check - (Eiger client) Changing dynamic range changes to different clock divider + - (Eiger Receiver) different rx_fifodepth defaults - (Receiver) rx_fifodepth has a higher range - (Receiver) subperiod in master file - (Receiver) performance (memory allocation and alignment, file buffering) @@ -44,6 +45,9 @@ This document describes the differences between 4.2.0 and 4.1.1 releases. from start. Removed file buffering when writing to file. Replaced pausing on keepRunning variable with semaphore to reduce cpu load. + 2. (Eiger) rx_fifodepth default is 100 for 32 bit mode, but 1000 + for other modes. Changing dynamic range changes bit mode to + their defaults. Client ------ diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 0a69c8776..84dee9712 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -2972,7 +2972,7 @@ int multiSlsDetector::setDynamicRange(int p) { } //for usability for the user - if (getDetectorsType() == EIGER) { + if (getDetectorsType() == EIGER && p != -1) { if (p == 32) { std::cout << "Setting Clock to Quarter Speed to cope with Dynamic Range of 32" << std::endl; setSpeed(CLOCK_DIVIDER, 2); @@ -2980,8 +2980,10 @@ int multiSlsDetector::setDynamicRange(int p) { std::cout << "Setting Clock to Full Speed for Dynamic Range of " << p << std::endl; setSpeed(CLOCK_DIVIDER, 0); } - if (p != -1) - updateOffsets(); + updateOffsets(); + if (thisMultiDetector->receiverOnlineFlag == ONLINE_FLAG) { + std::cout << "Setting receiver fifo depth to default" << std::endl; + } } return ret; } diff --git a/slsReceiverSoftware/include/GeneralData.h b/slsReceiverSoftware/include/GeneralData.h index 0737c47ac..d4923fab5 100644 --- a/slsReceiverSoftware/include/GeneralData.h +++ b/slsReceiverSoftware/include/GeneralData.h @@ -616,7 +616,7 @@ class EigerData : public GeneralData { imageSize = dataSize*packetsPerFrame; maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE; fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsReceiverDefs::sls_receiver_header); - defaultFifoDepth = 100; + defaultFifoDepth = 1000; threadsPerReceiver = 2; headerPacketSize = 40; standardheader = true; @@ -630,6 +630,7 @@ class EigerData : public GeneralData { void SetDynamicRange(int dr, bool tgEnable) { packetsPerFrame = (tgEnable ? 4 : 16) * dr; imageSize = dataSize*packetsPerFrame; + defaultFifoDepth = (dr == 32 ? 100 : 1000); } /** diff --git a/slsReceiverSoftware/src/UDPStandardImplementation.cpp b/slsReceiverSoftware/src/UDPStandardImplementation.cpp index 446c5d16c..85c853dad 100644 --- a/slsReceiverSoftware/src/UDPStandardImplementation.cpp +++ b/slsReceiverSoftware/src/UDPStandardImplementation.cpp @@ -388,6 +388,7 @@ int UDPStandardImplementation::setDynamicRange(const uint32_t i) { for (std::vector::const_iterator it = dataProcessor.begin(); it != dataProcessor.end(); ++it) (*it)->SetPixelDimension(); + fifoDepth = generalData->defaultFifoDepth; numberofJobs = -1; //changes to imagesize has to be noted to recreate fifo structure if (SetupFifoStructure() == FAIL) return FAIL;