diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index d95875dfd..cc80aa5fd 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -2055,21 +2055,28 @@ void *start_timer(void *arg) { return NULL; } - int64_t periodNs = getPeriod(); - int numFrames = (getNumFrames() * getNumTriggers()); - int64_t expUs = getGatePeriod() / 1000; + const int64_t periodNs = getPeriod(); + const int numFrames = (getNumFrames() * getNumTriggers()); + const int64_t expUs = getGatePeriod() / 1000; - int imagesize = calculateDataBytes(); - int dataSize = imagesize / PACKETS_PER_FRAME; - int packetSize = dataSize + sizeof(sls_detector_header); + const int imagesize = calculateDataBytes(); + const int tgEnable = enableTenGigabitEthernet(-1); + const int packetsPerFrame = + tgEnable ? PACKETS_PER_FRAME_10G : PACKETS_PER_FRAME_1G; + const int dataSize = imagesize / packetsPerFrame; + const int packetSize = dataSize + sizeof(sls_detector_header); + + LOG(logDEBUG1, + ("imagesize:%d tg:%d packets/Frame:%d datasize:%d packetSize:%d\n", + imagesize, tgEnable, packetsPerFrame, dataSize, packetSize)); // Generate data char imageData[imagesize]; memset(imageData, 0, imagesize); { - int dr = setDynamicRange(-1); - int numCounters = __builtin_popcount(getCounterMask()); - int nchannels = NCHAN_1_COUNTER * NCHIP * numCounters; + const int dr = setDynamicRange(-1); + const int numCounters = __builtin_popcount(getCounterMask()); + const int nchannels = NCHAN_1_COUNTER * NCHIP * numCounters; switch (dr) { /*case 1: // TODO: Not implemented in firmware yet @@ -2111,7 +2118,7 @@ void *start_timer(void *arg) { int srcOffset = 0; // loop packet - for (int i = 0; i != PACKETS_PER_FRAME; ++i) { + for (int i = 0; i != packetsPerFrame; ++i) { char packetData[packetSize]; memset(packetData, 0, packetSize); diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index 8f170e0dd..7b5529140 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -133,7 +133,8 @@ typedef struct udp_header_struct { uint16_t udp_destport; } udp_header; #define UDP_IP_HEADER_LENGTH_BYTES (28) -#define PACKETS_PER_FRAME (2) +#define PACKETS_PER_FRAME_10G (2) +#define PACKETS_PER_FRAME_1G (20) /** Signal Definitions */ #define SIGNAL_TBLoad_1 (0) diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 9a001c9a9..2b5d2c1f4 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -7026,7 +7026,8 @@ int get_receiver_parameters(int file_des) { return printSocketReadError(); // 10 gbe -#if defined(EIGERD) || defined(CHIPTESTBOARDD) || defined(MOENCHD) +#if defined(EIGERD) || defined(CHIPTESTBOARDD) || defined(MOENCHD) || \ + defined(MYTHEN3D) i32 = enableTenGigabitEthernet(GET_FLAG); #else i32 = 0; diff --git a/slsReceiverSoftware/src/GeneralData.h b/slsReceiverSoftware/src/GeneralData.h index 687a6f065..90e126cc9 100644 --- a/slsReceiverSoftware/src/GeneralData.h +++ b/slsReceiverSoftware/src/GeneralData.h @@ -462,6 +462,7 @@ class Mythen3Data : public GeneralData { */ void SetDynamicRange(int dr, bool tgEnable) { imageSize = nPixelsX * nPixelsY * ((double)dr / 8.00); + packetsPerFrame = tgEnable ? 2 : 20; dataSize = imageSize / packetsPerFrame; packetSize = headerSizeinPacket + dataSize; LOG(logINFO) << "PacketSize: " << packetSize;