mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 06:50:02 +02:00
fix
This commit is contained in:
parent
ab72d342c9
commit
24168d5e32
@ -2136,77 +2136,72 @@ void *start_timer(void *arg) {
|
|||||||
int srcOffset2 = npixelsx;
|
int srcOffset2 = npixelsx;
|
||||||
|
|
||||||
// loop packet
|
// loop packet
|
||||||
{
|
for (int i = 0; i != numPacketsPerFrame; ++i) {
|
||||||
|
// set header
|
||||||
|
char packetData[packetsize];
|
||||||
|
memset(packetData, 0, packetsize);
|
||||||
|
sls_detector_header *header =
|
||||||
|
(sls_detector_header *)(packetData);
|
||||||
|
header->detType = (uint16_t)myDetectorType;
|
||||||
|
header->version = SLS_DETECTOR_HEADER_VERSION;
|
||||||
|
header->frameNumber = frameNr + iframes;
|
||||||
|
header->packetNumber = i;
|
||||||
|
header->row = row;
|
||||||
|
header->column = colLeft;
|
||||||
|
|
||||||
int i = 0;
|
char packetData2[packetsize];
|
||||||
i != numPacketsPerFrame; ++i) {
|
memset(packetData2, 0, packetsize);
|
||||||
// set header
|
header = (sls_detector_header *)(packetData2);
|
||||||
char packetData[packetsize];
|
header->detType = (uint16_t)myDetectorType;
|
||||||
memset(packetData, 0, packetsize);
|
header->version = SLS_DETECTOR_HEADER_VERSION;
|
||||||
sls_detector_header *header =
|
header->frameNumber = frameNr + iframes;
|
||||||
(sls_detector_header *)(packetData);
|
header->packetNumber = i;
|
||||||
header->detType = (uint16_t)myDetectorType;
|
header->row = row;
|
||||||
header->version = SLS_DETECTOR_HEADER_VERSION;
|
header->column = colRight;
|
||||||
header->frameNumber = frameNr + iframes;
|
if (eiger_virtual_quad_mode) {
|
||||||
header->packetNumber = i;
|
header->row = 1; // right is next row
|
||||||
header->row = row;
|
header->column = 0; // right same first column
|
||||||
header->column = colLeft;
|
}
|
||||||
|
|
||||||
char packetData2[packetsize];
|
// fill data
|
||||||
memset(packetData2, 0, packetsize);
|
int dstOffset = sizeof(sls_detector_header);
|
||||||
header = (sls_detector_header *)(packetData2);
|
int dstOffset2 = sizeof(sls_detector_header);
|
||||||
header->detType = (uint16_t)myDetectorType;
|
{
|
||||||
header->version = SLS_DETECTOR_HEADER_VERSION;
|
for (int psize = 0; psize < datasize; psize += npixelsx) {
|
||||||
header->frameNumber = frameNr + iframes;
|
|
||||||
header->packetNumber = i;
|
|
||||||
header->row = row;
|
|
||||||
header->column = colRight;
|
|
||||||
if (eiger_virtual_quad_mode) {
|
|
||||||
header->row = 1; // right is next row
|
|
||||||
header->column = 0; // right same first column
|
|
||||||
}
|
|
||||||
|
|
||||||
// fill data
|
if (dr == 32 && tgEnable == 0) {
|
||||||
int dstOffset = sizeof(sls_detector_header);
|
memcpy(packetData + dstOffset,
|
||||||
int dstOffset2 = sizeof(sls_detector_header);
|
imageData + srcOffset, npixelsx / 2);
|
||||||
{
|
memcpy(packetData2 + dstOffset2,
|
||||||
for (int psize = 0; psize < datasize;
|
imageData + srcOffset2, npixelsx / 2);
|
||||||
psize += npixelsx) {
|
if (srcOffset % npixelsx == 0) {
|
||||||
|
srcOffset += npixelsx / 2;
|
||||||
if (dr == 32 && tgEnable == 0) {
|
srcOffset2 += npixelsx / 2;
|
||||||
memcpy(packetData + dstOffset,
|
|
||||||
imageData + srcOffset, npixelsx / 2);
|
|
||||||
memcpy(packetData2 + dstOffset2,
|
|
||||||
imageData + srcOffset2, npixelsx / 2);
|
|
||||||
if (srcOffset % npixelsx == 0) {
|
|
||||||
srcOffset += npixelsx / 2;
|
|
||||||
srcOffset2 += npixelsx / 2;
|
|
||||||
}
|
|
||||||
// skip the other half (2 packets in 1 line for
|
|
||||||
// 32 bit)
|
|
||||||
else {
|
|
||||||
srcOffset += npixelsx;
|
|
||||||
srcOffset2 += npixelsx;
|
|
||||||
}
|
|
||||||
dstOffset += npixelsx / 2;
|
|
||||||
dstOffset2 += npixelsx / 2;
|
|
||||||
} else {
|
|
||||||
memcpy(packetData + dstOffset,
|
|
||||||
imageData + srcOffset, npixelsx);
|
|
||||||
memcpy(packetData2 + dstOffset2,
|
|
||||||
imageData + srcOffset2, npixelsx);
|
|
||||||
srcOffset += 2 * npixelsx;
|
|
||||||
srcOffset2 += 2 * npixelsx;
|
|
||||||
dstOffset += npixelsx;
|
|
||||||
dstOffset2 += npixelsx;
|
|
||||||
}
|
}
|
||||||
|
// skip the other half (2 packets in 1 line for
|
||||||
|
// 32 bit)
|
||||||
|
else {
|
||||||
|
srcOffset += npixelsx;
|
||||||
|
srcOffset2 += npixelsx;
|
||||||
|
}
|
||||||
|
dstOffset += npixelsx / 2;
|
||||||
|
dstOffset2 += npixelsx / 2;
|
||||||
|
} else {
|
||||||
|
memcpy(packetData + dstOffset,
|
||||||
|
imageData + srcOffset, npixelsx);
|
||||||
|
memcpy(packetData2 + dstOffset2,
|
||||||
|
imageData + srcOffset2, npixelsx);
|
||||||
|
srcOffset += 2 * npixelsx;
|
||||||
|
srcOffset2 += 2 * npixelsx;
|
||||||
|
dstOffset += npixelsx;
|
||||||
|
dstOffset2 += npixelsx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
usleep(eiger_virtual_transmission_delay_left);
|
|
||||||
sendUDPPacket(0, packetData, packetsize);
|
|
||||||
usleep(eiger_virtual_transmission_delay_right);
|
|
||||||
sendUDPPacket(1, packetData2, packetsize);
|
|
||||||
}
|
}
|
||||||
|
usleep(eiger_virtual_transmission_delay_left);
|
||||||
|
sendUDPPacket(0, packetData, packetsize);
|
||||||
|
usleep(eiger_virtual_transmission_delay_right);
|
||||||
|
sendUDPPacket(1, packetData2, packetsize);
|
||||||
}
|
}
|
||||||
LOG(logINFO, ("Sent frame: %d\n", iframes));
|
LOG(logINFO, ("Sent frame: %d\n", iframes));
|
||||||
clock_gettime(CLOCK_REALTIME, &end);
|
clock_gettime(CLOCK_REALTIME, &end);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user