diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 5eb09b533..9f8919b8b 100755 Binary files a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer and b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer differ 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