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 */
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
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));

View File

@ -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 {

View File

@ -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;
}

View File

@ -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) {

View File

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

View File

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