mythen3 rxr

This commit is contained in:
maliakal_d 2019-11-08 18:11:27 +01:00
parent aaeaeab576
commit 38ad5d7931
8 changed files with 48 additions and 14 deletions

View File

@ -419,7 +419,7 @@ void resetPeripheral() {
/* set parameters - dr, roi */ /* set parameters - dr, roi */
int setDynamicRange(int dr){ int setDynamicRange(int dr){
return 16; //TODO return 32; //TODO
} }

View File

@ -2515,9 +2515,13 @@ int set_dynamic_range(int file_des) {
// check dr // check dr
switch(dr) { switch(dr) {
case -1: 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: case 16:
#ifdef EIGERD
case 4: case 8: case 32:
#endif #endif
retval = setDynamicRange(dr); retval = setDynamicRange(dr);
FILE_LOG(logDEBUG1, ("Dynamic range: %d\n", retval)); FILE_LOG(logDEBUG1, ("Dynamic range: %d\n", retval));

View File

@ -331,7 +331,7 @@ private:
packetIndexMask = 0; packetIndexMask = 0;
maxFramesPerFile = SHORT_MAX_FRAMES_PER_FILE; maxFramesPerFile = SHORT_MAX_FRAMES_PER_FILE;
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsDetectorDefs::sls_receiver_header); fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsDetectorDefs::sls_receiver_header);
defaultFifoDepth = 25000; defaultFifoDepth = 75000;
nPixelsXComplete = 1280; nPixelsXComplete = 1280;
nPixelsYComplete = 1; nPixelsYComplete = 1;
imageSizeComplete = 1280 * 2; 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 { class ChipTestBoardData : public GeneralData {

View File

@ -1106,6 +1106,7 @@ int slsReceiverImplementation::setDetectorType(const detectorType d) {
case JUNGFRAU: case JUNGFRAU:
case CHIPTESTBOARD: case CHIPTESTBOARD:
case MOENCH: case MOENCH:
case MYTHEN3:
FILE_LOG(logINFO) << " ***** " << sls::ToString(d) FILE_LOG(logINFO) << " ***** " << sls::ToString(d)
<< " Receiver *****"; << " Receiver *****";
break; break;
@ -1131,6 +1132,9 @@ int slsReceiverImplementation::setDetectorType(const detectorType d) {
case MOENCH: case MOENCH:
generalData = new MoenchData(); generalData = new MoenchData();
break; break;
case MYTHEN3:
generalData = new Mythen3Data();
break;
default: default:
break; break;
} }

View File

@ -472,6 +472,7 @@ int slsReceiverTCPIPInterface::set_detector_type(Interface &socket) {
case CHIPTESTBOARD: case CHIPTESTBOARD:
case MOENCH: case MOENCH:
case JUNGFRAU: case JUNGFRAU:
case MYTHEN3:
break; break;
default: default:
throw RuntimeError("Unknown detector type: " + std::to_string(arg)); throw RuntimeError("Unknown detector type: " + std::to_string(arg));
@ -598,17 +599,21 @@ int slsReceiverTCPIPInterface::set_dynamic_range(Interface &socket) {
VerifyIdle(socket); VerifyIdle(socket);
FILE_LOG(logDEBUG1) << "Setting dynamic range: " << dr; FILE_LOG(logDEBUG1) << "Setting dynamic range: " << dr;
bool exists = false; bool exists = false;
switch (dr) { switch(myDetectorType) {
case 16: case EIGER:
if (dr == 4 || dr == 8 || dr == 16 || dr == 32) {
exists = true; exists = true;
}
break; break;
case 4: case MYTHEN3:
case 8: if (dr == 32) {
case 32:
if (myDetectorType == EIGER)
exists = true; exists = true;
}
break; break;
default: default:
if (dr == 16) {
exists = true;
}
break; break;
} }
if (!exists) { if (!exists) {

View File

@ -525,7 +525,7 @@ struct detParameters {
nChipX = 10; nChipX = 10;
nChipY = 1; nChipY = 1;
nDacs = 16; nDacs = 16;
dynamicRange = 16; dynamicRange = 32;
nGappixelsX = 0; nGappixelsX = 0;
nGappixelsY = 0; nGappixelsY = 0;
break; break;

View File

@ -8,5 +8,5 @@
#define APICTB 0x191106 #define APICTB 0x191106
#define APIJUNGFRAU 0x191106 #define APIJUNGFRAU 0x191106
#define APIEIGER 0x191106 #define APIEIGER 0x191106
#define APIMYTHEN3 0x191107
#define APIGOTTHARD2 0x191108 #define APIGOTTHARD2 0x191108
#define APIMYTHEN3 0x191108