From 38ad5d7931541ef07f0aa8a3fce73642d887b201 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 8 Nov 2019 18:11:27 +0100 Subject: [PATCH] mythen3 rxr --- .../bin/mythen3DetectorServer_developer | Bin 147760 -> 147824 bytes .../slsDetectorFunctionList.c | 2 +- .../src/slsDetectorServer_funcs.c | 8 ++++-- slsReceiverSoftware/include/GeneralData.h | 23 +++++++++++++++++- .../src/slsReceiverImplementation.cpp | 4 +++ .../src/slsReceiverTCPIPInterface.cpp | 21 ++++++++++------ slsSupportLib/include/sls_detector_defs.h | 2 +- slsSupportLib/include/versionAPI.h | 2 +- 8 files changed, 48 insertions(+), 14 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 5eb09b5332637dd020ce3c3266322c2e36870558..9f8919b8b1ac43b75bcc16754466efa470c9ec37 100755 GIT binary patch delta 32750 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 E0|bc5mH+?% diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 1aeb01874..0740690cd 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -419,7 +419,7 @@ void resetPeripheral() { /* set parameters - dr, roi */ int setDynamicRange(int dr){ - return 16; //TODO + return 32; //TODO } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 20a2e4829..04cb49875 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -2515,9 +2515,13 @@ int set_dynamic_range(int file_des) { // check dr switch(dr) { case -1: +#ifdef MYTHEN3D + case 32: +#elif EIGERD + case 4: case 8: case 16: case 32: +#endif +#if defined(GOTTHARD) || defined(JUNGFRAU) || defined(CHIPTESTBOARD) || defined(MOENCH) || defined(GOTTHARD2) case 16: -#ifdef EIGERD - case 4: case 8: case 32: #endif retval = setDynamicRange(dr); FILE_LOG(logDEBUG1, ("Dynamic range: %d\n", retval)); diff --git a/slsReceiverSoftware/include/GeneralData.h b/slsReceiverSoftware/include/GeneralData.h index b3a7537a1..79bc263f2 100755 --- a/slsReceiverSoftware/include/GeneralData.h +++ b/slsReceiverSoftware/include/GeneralData.h @@ -331,7 +331,7 @@ private: packetIndexMask = 0; maxFramesPerFile = SHORT_MAX_FRAMES_PER_FILE; fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsDetectorDefs::sls_receiver_header); - defaultFifoDepth = 25000; + defaultFifoDepth = 75000; nPixelsXComplete = 1280; nPixelsYComplete = 1; imageSizeComplete = 1280 * 2; @@ -527,6 +527,27 @@ class JungfrauData : public GeneralData { } }; +class Mythen3Data : public GeneralData { + + public: + + /** Constructor */ + Mythen3Data(){ + myDetectorType = slsDetectorDefs::MYTHEN3; + nPixelsX = (256* 4 * 512); + nPixelsY = 1; + headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header); + dataSize = 7680;//8192; + packetSize = headerSizeinPacket + dataSize; + packetsPerFrame = 2; + imageSize = dataSize * packetsPerFrame; + maxFramesPerFile = MYTHEN3_MAX_FRAMES_PER_FILE; + fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsDetectorDefs::sls_receiver_header); + defaultFifoDepth = 50000; + standardheader = true; + defaultUdpSocketBufferSize = (1000 * 1024 * 1024); + }; +}; class ChipTestBoardData : public GeneralData { diff --git a/slsReceiverSoftware/src/slsReceiverImplementation.cpp b/slsReceiverSoftware/src/slsReceiverImplementation.cpp index 8ba3c3402..1b7a0d3b7 100755 --- a/slsReceiverSoftware/src/slsReceiverImplementation.cpp +++ b/slsReceiverSoftware/src/slsReceiverImplementation.cpp @@ -1106,6 +1106,7 @@ int slsReceiverImplementation::setDetectorType(const detectorType d) { case JUNGFRAU: case CHIPTESTBOARD: case MOENCH: + case MYTHEN3: FILE_LOG(logINFO) << " ***** " << sls::ToString(d) << " Receiver *****"; break; @@ -1131,6 +1132,9 @@ int slsReceiverImplementation::setDetectorType(const detectorType d) { case MOENCH: generalData = new MoenchData(); break; + case MYTHEN3: + generalData = new Mythen3Data(); + break; default: break; } diff --git a/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp b/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp index 55947bb5e..5401268b8 100755 --- a/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp +++ b/slsReceiverSoftware/src/slsReceiverTCPIPInterface.cpp @@ -472,6 +472,7 @@ int slsReceiverTCPIPInterface::set_detector_type(Interface &socket) { case CHIPTESTBOARD: case MOENCH: case JUNGFRAU: + case MYTHEN3: break; default: throw RuntimeError("Unknown detector type: " + std::to_string(arg)); @@ -598,17 +599,21 @@ int slsReceiverTCPIPInterface::set_dynamic_range(Interface &socket) { VerifyIdle(socket); FILE_LOG(logDEBUG1) << "Setting dynamic range: " << dr; bool exists = false; - switch (dr) { - case 16: - exists = true; - break; - case 4: - case 8: - case 32: - if (myDetectorType == EIGER) + switch(myDetectorType) { + case EIGER: + if (dr == 4 || dr == 8 || dr == 16 || dr == 32) { exists = true; + } + break; + case MYTHEN3: + if (dr == 32) { + exists = true; + } break; default: + if (dr == 16) { + exists = true; + } break; } if (!exists) { diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index 0d97a0baf..b1704852b 100755 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -525,7 +525,7 @@ struct detParameters { nChipX = 10; nChipY = 1; nDacs = 16; - dynamicRange = 16; + dynamicRange = 32; nGappixelsX = 0; nGappixelsY = 0; break; diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index b7bcf378e..63bce4c5f 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -8,5 +8,5 @@ #define APICTB 0x191106 #define APIJUNGFRAU 0x191106 #define APIEIGER 0x191106 -#define APIMYTHEN3 0x191107 #define APIGOTTHARD2 0x191108 +#define APIMYTHEN3 0x191108