mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-22 03:40:04 +02:00
fixed gui getting stuck (wrong datathreadmask more than 64 bits cuz of 72 sockets), gotthard detector receiver updated
This commit is contained in:
parent
68bbea17d1
commit
cbd1570a8c
@ -17,7 +17,7 @@
|
|||||||
#include <rapidjson/document.h> //json header in zmq stream
|
#include <rapidjson/document.h> //json header in zmq stream
|
||||||
using namespace rapidjson;
|
using namespace rapidjson;
|
||||||
|
|
||||||
#define DEFAULT_ZMQ_PORTNO 70001
|
#define DEFAULT_ZMQ_PORTNO 30001
|
||||||
|
|
||||||
class ZmqSocket {
|
class ZmqSocket {
|
||||||
|
|
||||||
@ -68,6 +68,15 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Socket Options provided above
|
//Socket Options provided above
|
||||||
|
//ZMQ_LINGER default is already -1 means no messages discarded. use this options if optimizing required
|
||||||
|
//ZMQ_SNDHWM default is 0 means no limit. use this to optimize if optimizing required
|
||||||
|
// eg. int value = -1;
|
||||||
|
int value = -1;
|
||||||
|
if (zmq_setsockopt(socketDescriptor, ZMQ_LINGER, &value,sizeof(value))) {
|
||||||
|
PrintError ();
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//connect socket
|
//connect socket
|
||||||
if (zmq_connect(socketDescriptor, serverAddress) < 0) {
|
if (zmq_connect(socketDescriptor, serverAddress) < 0) {
|
||||||
@ -231,7 +240,7 @@ public:
|
|||||||
modId, xCoord, yCoord, zCoord, debug, roundRNumber,
|
modId, xCoord, yCoord, zCoord, debug, roundRNumber,
|
||||||
detType, version);
|
detType, version);
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
if(!index)
|
//if(!index)
|
||||||
printf("%d Streamer: buf:%s\n", index, buf);
|
printf("%d Streamer: buf:%s\n", index, buf);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -295,7 +304,7 @@ public:
|
|||||||
if ( len > 0 ) {
|
if ( len > 0 ) {
|
||||||
bool dummy = false;
|
bool dummy = false;
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
cprintf( RED,"Header %d Length: %d Header:%s \n", index, length, (char*) zmq_msg_data (&message) );
|
cprintf( BLUE,"Header %d Length: %d Header:%s \n", index, len, (char*) zmq_msg_data (&message) );
|
||||||
#endif
|
#endif
|
||||||
if ( ParseHeader (index, len, message, acqIndex, frameIndex, subframeIndex, filename, dummy)) {
|
if ( ParseHeader (index, len, message, acqIndex, frameIndex, subframeIndex, filename, dummy)) {
|
||||||
zmq_msg_close (&message);
|
zmq_msg_close (&message);
|
||||||
@ -308,6 +317,7 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
cprintf(GREEN,"%d data\n",index);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -324,7 +324,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
|||||||
|
|
||||||
//look for carry over
|
//look for carry over
|
||||||
if (carryOverFlag) {
|
if (carryOverFlag) {
|
||||||
//if(!index) cprintf(RED,"carry flag\n");
|
cprintf(RED,"%d carry flag\n",index);
|
||||||
//check if its the current image packet
|
//check if its the current image packet
|
||||||
// -------------------------- new header ----------------------------------------------------------------------
|
// -------------------------- new header ----------------------------------------------------------------------
|
||||||
if (standardheader) {
|
if (standardheader) {
|
||||||
@ -347,8 +347,21 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
|||||||
return generalData->imageSize;
|
return generalData->imageSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(buf + fifohsize + (pnum * dsize),
|
//copy packet
|
||||||
carryOverPacket + hsize, dsize);
|
switch(myDetectorType) {
|
||||||
|
//for gotthard, 1st packet: 4 bytes fnum, CACA, 1278 bytes data
|
||||||
|
// 2nd packet: 4 bytes fnu, 1282 bytes data !!
|
||||||
|
case GOTTHARD:
|
||||||
|
if(!pnum)
|
||||||
|
memcpy(buf + fifohsize + (pnum * dsize), carryOverPacket + hsize+4, dsize-2);
|
||||||
|
else
|
||||||
|
memcpy(buf + fifohsize + (pnum * dsize) - 2, carryOverPacket + hsize, dsize+2);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
memcpy(buf + fifohsize + (pnum * dsize), carryOverPacket + hsize, dsize);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
carryOverFlag = false;
|
carryOverFlag = false;
|
||||||
numpackets++; //number of packets in this image (each time its copied to buf)
|
numpackets++; //number of packets in this image (each time its copied to buf)
|
||||||
|
|
||||||
@ -430,8 +443,19 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//copy packet
|
//copy packet
|
||||||
memcpy(buf + fifohsize + (pnum * dsize),
|
switch(myDetectorType) {
|
||||||
listeningPacket + hsize, dsize);
|
//for gotthard, 1st packet: 4 bytes fnum, CACA, 1278 bytes data
|
||||||
|
// 2nd packet: 4 bytes fnu, 1282 bytes data !!
|
||||||
|
case GOTTHARD:
|
||||||
|
if(!pnum)
|
||||||
|
memcpy(buf + fifohsize + (pnum * dsize), listeningPacket + hsize+4, dsize-2);
|
||||||
|
else
|
||||||
|
memcpy(buf + fifohsize + (pnum * dsize) - 2, listeningPacket + hsize, dsize+2);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
memcpy(buf + fifohsize + (pnum * dsize), listeningPacket + hsize, dsize);
|
||||||
|
break;
|
||||||
|
}
|
||||||
numpackets++; //number of packets in this image (each time its copied to buf)
|
numpackets++; //number of packets in this image (each time its copied to buf)
|
||||||
if(isHeaderEmpty) {
|
if(isHeaderEmpty) {
|
||||||
// -------------------------- new header ----------------------------------------------------------------------
|
// -------------------------- new header ----------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user