m3: numpackets to 2 or 20 depending on ten giga enable (#123)

This commit is contained in:
Dhanya Thattil 2020-07-30 15:02:33 +02:00 committed by GitHub
parent 6f5635a402
commit 7492f7dbfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 12 deletions

View File

@ -2055,21 +2055,28 @@ void *start_timer(void *arg) {
return NULL; return NULL;
} }
int64_t periodNs = getPeriod(); const int64_t periodNs = getPeriod();
int numFrames = (getNumFrames() * getNumTriggers()); const int numFrames = (getNumFrames() * getNumTriggers());
int64_t expUs = getGatePeriod() / 1000; const int64_t expUs = getGatePeriod() / 1000;
int imagesize = calculateDataBytes(); const int imagesize = calculateDataBytes();
int dataSize = imagesize / PACKETS_PER_FRAME; const int tgEnable = enableTenGigabitEthernet(-1);
int packetSize = dataSize + sizeof(sls_detector_header); 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 // Generate data
char imageData[imagesize]; char imageData[imagesize];
memset(imageData, 0, imagesize); memset(imageData, 0, imagesize);
{ {
int dr = setDynamicRange(-1); const int dr = setDynamicRange(-1);
int numCounters = __builtin_popcount(getCounterMask()); const int numCounters = __builtin_popcount(getCounterMask());
int nchannels = NCHAN_1_COUNTER * NCHIP * numCounters; const int nchannels = NCHAN_1_COUNTER * NCHIP * numCounters;
switch (dr) { switch (dr) {
/*case 1: // TODO: Not implemented in firmware yet /*case 1: // TODO: Not implemented in firmware yet
@ -2111,7 +2118,7 @@ void *start_timer(void *arg) {
int srcOffset = 0; int srcOffset = 0;
// loop packet // loop packet
for (int i = 0; i != PACKETS_PER_FRAME; ++i) { for (int i = 0; i != packetsPerFrame; ++i) {
char packetData[packetSize]; char packetData[packetSize];
memset(packetData, 0, packetSize); memset(packetData, 0, packetSize);

View File

@ -133,7 +133,8 @@ typedef struct udp_header_struct {
uint16_t udp_destport; uint16_t udp_destport;
} udp_header; } udp_header;
#define UDP_IP_HEADER_LENGTH_BYTES (28) #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 */ /** Signal Definitions */
#define SIGNAL_TBLoad_1 (0) #define SIGNAL_TBLoad_1 (0)

View File

@ -7026,7 +7026,8 @@ int get_receiver_parameters(int file_des) {
return printSocketReadError(); return printSocketReadError();
// 10 gbe // 10 gbe
#if defined(EIGERD) || defined(CHIPTESTBOARDD) || defined(MOENCHD) #if defined(EIGERD) || defined(CHIPTESTBOARDD) || defined(MOENCHD) || \
defined(MYTHEN3D)
i32 = enableTenGigabitEthernet(GET_FLAG); i32 = enableTenGigabitEthernet(GET_FLAG);
#else #else
i32 = 0; i32 = 0;

View File

@ -462,6 +462,7 @@ class Mythen3Data : public GeneralData {
*/ */
void SetDynamicRange(int dr, bool tgEnable) { void SetDynamicRange(int dr, bool tgEnable) {
imageSize = nPixelsX * nPixelsY * ((double)dr / 8.00); imageSize = nPixelsX * nPixelsY * ((double)dr / 8.00);
packetsPerFrame = tgEnable ? 2 : 20;
dataSize = imageSize / packetsPerFrame; dataSize = imageSize / packetsPerFrame;
packetSize = headerSizeinPacket + dataSize; packetSize = headerSizeinPacket + dataSize;
LOG(logINFO) << "PacketSize: " << packetSize; LOG(logINFO) << "PacketSize: " << packetSize;