fix for xilinx ctb virtual

This commit is contained in:
maliakal_d 2025-05-01 16:42:11 +02:00
parent 22f2662e3b
commit 451b50dfed

View File

@ -1537,8 +1537,12 @@ void *start_timer(void *arg) {
packetSize, packetsPerFrame)); packetSize, packetsPerFrame));
// Generate Data // Generate Data
char imageData[imageSize]; char *imageData = (char *)malloc(imageSize);
memset(imageData, 0, imageSize); memset(imageData, 0, imageSize);
if (imageData == NULL) {
LOG(logERROR, ("Can not allocate image.\n"));
return NULL;
}
for (int i = 0; i < imageSize; i += sizeof(uint16_t)) { for (int i = 0; i < imageSize; i += sizeof(uint16_t)) {
*((uint16_t *)(imageData + i)) = i; *((uint16_t *)(imageData + i)) = i;
} }
@ -1561,6 +1565,7 @@ void *start_timer(void *arg) {
usleep(expUs); usleep(expUs);
int srcOffset = 0; int srcOffset = 0;
int dataSent = 0;
// loop packet // loop packet
for (int i = 0; i != packetsPerFrame; ++i) { for (int i = 0; i != packetsPerFrame; ++i) {
@ -1577,10 +1582,12 @@ void *start_timer(void *arg) {
header->column = detPos[X]; header->column = detPos[X];
// fill data // fill data
int remaining = imageSize - dataSent;
int dataSize = remaining < maxDataSize ? remaining : maxDataSize;
memcpy(packetData + sizeof(sls_detector_header), memcpy(packetData + sizeof(sls_detector_header),
imageData + srcOffset, imageData + srcOffset, dataSize);
(imageSize < maxDataSize ? imageSize : maxDataSize)); srcOffset += dataSize;
srcOffset += maxDataSize; dataSent += dataSize;
sendUDPPacket(0, 0, packetData, packetSize); sendUDPPacket(0, 0, packetData, packetSize);
} }