mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 16:20:03 +02:00
trying
This commit is contained in:
parent
13d225377d
commit
59ade286c2
@ -84,16 +84,6 @@ using namespace std;
|
|||||||
#define DEFAULT_ZMQ_PORTNO 70001
|
#define DEFAULT_ZMQ_PORTNO 70001
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned char emptyHeader[6];
|
|
||||||
unsigned char reserved[4];
|
|
||||||
unsigned char packetNumber[1];
|
|
||||||
unsigned char frameNumber[3];
|
|
||||||
unsigned char bunchid[8];
|
|
||||||
} jfrau_packet_header_t1;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class genericSocket{
|
class genericSocket{
|
||||||
|
|
||||||
@ -625,49 +615,11 @@ enum communicationProtocol{
|
|||||||
//if length given, listens to length, else listens for packetsize till length is reached
|
//if length given, listens to length, else listens for packetsize till length is reached
|
||||||
if(length){
|
if(length){
|
||||||
|
|
||||||
jfrau_packet_header_t1* header;
|
|
||||||
int currentpnum;
|
|
||||||
|
|
||||||
cout<<"\ngoing to read header " << endl;
|
|
||||||
nsent = recv(socketDescriptor,(char*)buf,22, 0);
|
|
||||||
cout<<"nsent:"<<nsent<<endl;
|
|
||||||
header = (jfrau_packet_header_t1*)(buf);
|
|
||||||
currentpnum = (*( (uint8_t*) header->packetNumber));
|
|
||||||
cout<<"1 current fnum:"<< ((*( (uint32_t*) header->frameNumber))&0xffffff) <<endl;
|
|
||||||
cout<<"1 currentpnum:"<<currentpnum<<endl;
|
|
||||||
|
|
||||||
cout<<"\ngoing to read data " << endl;
|
|
||||||
nsent = recv(socketDescriptor,(char*)buf,8192, 0);
|
|
||||||
cout<<"nsent:"<<nsent<<endl;
|
|
||||||
|
|
||||||
|
|
||||||
cout<<"\ngoing to read header " << endl;
|
|
||||||
nsent = recv(socketDescriptor,(char*)buf,22, 0);
|
|
||||||
cout<<"nsent:"<<nsent<<endl;
|
|
||||||
header = (jfrau_packet_header_t1*)(buf);
|
|
||||||
currentpnum = (*( (uint8_t*) header->packetNumber));
|
|
||||||
cout<<"2 current fnum:"<< ((*( (uint32_t*) header->frameNumber))&0xffffff) <<endl;
|
|
||||||
cout<<"3 currentpnum:"<<currentpnum<<endl;
|
|
||||||
|
|
||||||
exit(-1);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*int k = 0;*/
|
/*int k = 0;*/
|
||||||
|
|
||||||
while(length>0){
|
while(length>0){
|
||||||
if(length<packet_size)
|
nsending = (length>packet_size) ? packet_size:length;
|
||||||
nsending = length; //works for jungfrau to read packet header
|
|
||||||
else{
|
|
||||||
cprintf(BG_RED,"should not be here, wrong nsending\n");
|
|
||||||
nsending = (length>packet_size) ? packet_size:length; //works for eiger to get packets to discard image header packets
|
|
||||||
}
|
|
||||||
nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length);
|
nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length);
|
||||||
cprintf(BLUE,"read %d\n",nsent);
|
|
||||||
if(nsent != nsending){ //if((nsent != nsending)){ && (nsent < packet_size)){
|
if(nsent != nsending){ //if((nsent != nsending)){ && (nsent < packet_size)){
|
||||||
if(nsent && (nsent != header_packet_size) && (nsent != -1))
|
if(nsent && (nsent != header_packet_size) && (nsent != -1))
|
||||||
cprintf(RED,"Incomplete Packet size %d\n",nsent);
|
cprintf(RED,"Incomplete Packet size %d\n",nsent);
|
||||||
@ -679,7 +631,6 @@ enum communicationProtocol{
|
|||||||
}
|
}
|
||||||
//listens to only 1 packet
|
//listens to only 1 packet
|
||||||
else{
|
else{
|
||||||
cprintf(BG_RED,"should not be here, length is zero\n");
|
|
||||||
//normal
|
//normal
|
||||||
nsending=packet_size;
|
nsending=packet_size;
|
||||||
nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length);
|
nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length);
|
||||||
|
@ -2102,45 +2102,36 @@ int UDPStandardImplementation::prepareAndListenBuffer(int ithread, int cSize, ch
|
|||||||
int currentfnum=-1;
|
int currentfnum=-1;
|
||||||
|
|
||||||
|
|
||||||
//read first packet header
|
//read first packet
|
||||||
cout<<"going to read header " << JFRAU_HEADER_LENGTH <<endl;
|
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, onePacketSize);
|
||||||
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, JFRAU_HEADER_LENGTH);
|
|
||||||
if(!receivedSize) return 0;
|
if(!receivedSize) return 0;
|
||||||
header = (jfrau_packet_header_t*)(buffer[ithread] + offset);
|
header = (jfrau_packet_header_t*)(buffer[ithread] + offset);
|
||||||
currentpnum = (*( (uint8_t*) header->packetNumber));
|
currentpnum = (*( (uint8_t*) header->packetNumber));
|
||||||
cout<<"1 current fnum:"<< ((*( (uint32_t*) header->frameNumber))&frameIndexMask) <<endl;
|
|
||||||
cout<<"1 currentpnum:"<<currentpnum<<endl;
|
cout<<"1 currentpnum:"<<currentpnum<<endl;
|
||||||
|
|
||||||
|
|
||||||
while(true){
|
while(true){
|
||||||
|
|
||||||
//correct packet
|
//correct packet
|
||||||
if(currentpnum == pnum){
|
if(currentpnum == pnum){
|
||||||
cout<<"correct packet"<<endl;
|
cout<<"correct packet"<<endl;
|
||||||
//complete frame, get frame number while u can
|
if(pnum == packetsPerFrame-1){
|
||||||
if(pnum == 0){
|
|
||||||
(*((uint32_t*)(buffer[ithread]+8))) = (*( (uint32_t*) header->frameNumber))&frameIndexMask;
|
(*((uint32_t*)(buffer[ithread]+8))) = (*( (uint32_t*) header->frameNumber))&frameIndexMask;
|
||||||
cout<<"current fnum:"<<(*((uint32_t*)(buffer[ithread]+8)))<<endl;
|
cout<<"current fnum:"<<(*((uint32_t*)(buffer[ithread]+8)))<<endl;
|
||||||
}
|
}
|
||||||
//get data
|
|
||||||
cout<<"going to read data " << oneDataSize <<endl;
|
memcpy(buffer[ithread] + offset,buffer[ithread] + JFRAU_HEADER_LENGTH, oneDataSize);
|
||||||
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, oneDataSize);
|
|
||||||
if(!receivedSize) return 0;
|
|
||||||
cout<<"got data for " << pnum << endl;
|
|
||||||
offset+=oneDataSize;
|
offset+=oneDataSize;
|
||||||
cout<<"offset now at:" << offset << endl;
|
|
||||||
//got a complete frame
|
//got a complete frame
|
||||||
if(pnum == 0)
|
if(pnum == 0)
|
||||||
break;
|
break;
|
||||||
pnum --;
|
pnum --;
|
||||||
|
|
||||||
cout<<"going to read header " << JFRAU_HEADER_LENGTH <<endl;
|
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, onePacketSize);
|
||||||
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, JFRAU_HEADER_LENGTH);
|
|
||||||
if(!receivedSize) return 0;
|
if(!receivedSize) return 0;
|
||||||
header = (jfrau_packet_header_t*)(buffer[ithread] + offset);
|
header = (jfrau_packet_header_t*)(buffer[ithread] + offset);
|
||||||
currentpnum = (*( (uint8_t*) header->packetNumber));
|
currentpnum = (*( (uint8_t*) header->packetNumber));
|
||||||
cout<<"offset:"<<offset<<endl;
|
|
||||||
cout<<"next currentpnum :"<<currentpnum<<endl;
|
cout<<"next currentpnum :"<<currentpnum<<endl;
|
||||||
cout<<"next current fnum:"<< ((*( (uint32_t*) header->frameNumber))&frameIndexMask) <<endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//wrong packet
|
//wrong packet
|
||||||
@ -2150,16 +2141,12 @@ int UDPStandardImplementation::prepareAndListenBuffer(int ithread, int cSize, ch
|
|||||||
offset = fifoBufferHeaderSize;
|
offset = fifoBufferHeaderSize;
|
||||||
//find the start of next image
|
//find the start of next image
|
||||||
while(currentpnum != (packetsPerFrame-1)){
|
while(currentpnum != (packetsPerFrame-1)){
|
||||||
cout<<"going to read data " << oneDataSize <<endl;
|
|
||||||
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, oneDataSize);
|
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, onePacketSize);
|
||||||
if(!receivedSize) return 0;
|
|
||||||
cout<<"going to read header " << JFRAU_HEADER_LENGTH <<endl;
|
|
||||||
receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, JFRAU_HEADER_LENGTH);
|
|
||||||
if(!receivedSize) return 0;
|
if(!receivedSize) return 0;
|
||||||
header = (jfrau_packet_header_t*)(buffer[ithread] + offset);
|
header = (jfrau_packet_header_t*)(buffer[ithread] + offset);
|
||||||
currentpnum = (*( (uint8_t*) header->packetNumber));
|
currentpnum = (*( (uint8_t*) header->packetNumber));
|
||||||
cout<<"trying to find currentpnum:"<<currentpnum<<endl;
|
cout<<"trying to find currentpnum:"<<currentpnum<<endl;
|
||||||
cout<<"trying to find current fnum:"<< ((*( (uint32_t*) header->frameNumber))&frameIndexMask) <<endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}//----- got a whole frame -------
|
}//----- got a whole frame -------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user