diff --git a/slsReceiverSoftware/include/genericSocket.h b/slsReceiverSoftware/include/genericSocket.h index e3404b30c..7c45765f3 100644 --- a/slsReceiverSoftware/include/genericSocket.h +++ b/slsReceiverSoftware/include/genericSocket.h @@ -84,16 +84,6 @@ using namespace std; #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{ @@ -625,49 +615,11 @@ enum communicationProtocol{ //if length given, listens to length, else listens for packetsize till length is reached if(length){ - jfrau_packet_header_t1* header; - int currentpnum; - - cout<<"\ngoing to read header " << endl; - nsent = recv(socketDescriptor,(char*)buf,22, 0); - cout<<"nsent:"<packetNumber)); - cout<<"1 current fnum:"<< ((*( (uint32_t*) header->frameNumber))&0xffffff) <packetNumber)); - cout<<"2 current fnum:"<< ((*( (uint32_t*) header->frameNumber))&0xffffff) <0){ - if(lengthpacket_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); - cprintf(BLUE,"read %d\n",nsent); + nsending = (length>packet_size) ? packet_size:length; + nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length); if(nsent != nsending){ //if((nsent != nsending)){ && (nsent < packet_size)){ if(nsent && (nsent != header_packet_size) && (nsent != -1)) cprintf(RED,"Incomplete Packet size %d\n",nsent); @@ -679,7 +631,6 @@ enum communicationProtocol{ } //listens to only 1 packet else{ - cprintf(BG_RED,"should not be here, length is zero\n"); //normal nsending=packet_size; nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length); diff --git a/slsReceiverSoftware/src/UDPStandardImplementation.cpp b/slsReceiverSoftware/src/UDPStandardImplementation.cpp index 4e659c176..29d6562c1 100644 --- a/slsReceiverSoftware/src/UDPStandardImplementation.cpp +++ b/slsReceiverSoftware/src/UDPStandardImplementation.cpp @@ -2102,45 +2102,36 @@ int UDPStandardImplementation::prepareAndListenBuffer(int ithread, int cSize, ch int currentfnum=-1; - //read first packet header - cout<<"going to read header " << JFRAU_HEADER_LENGTH <ReceiveDataOnly(buffer[ithread] + offset, JFRAU_HEADER_LENGTH); + //read first packet + receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, onePacketSize); if(!receivedSize) return 0; header = (jfrau_packet_header_t*)(buffer[ithread] + offset); currentpnum = (*( (uint8_t*) header->packetNumber)); - cout<<"1 current fnum:"<< ((*( (uint32_t*) header->frameNumber))&frameIndexMask) <frameNumber))&frameIndexMask; cout<<"current fnum:"<<(*((uint32_t*)(buffer[ithread]+8)))<ReceiveDataOnly(buffer[ithread] + offset, oneDataSize); - if(!receivedSize) return 0; - cout<<"got data for " << pnum << endl; + + memcpy(buffer[ithread] + offset,buffer[ithread] + JFRAU_HEADER_LENGTH, oneDataSize); offset+=oneDataSize; - cout<<"offset now at:" << offset << endl; //got a complete frame if(pnum == 0) break; pnum --; - cout<<"going to read header " << JFRAU_HEADER_LENGTH <ReceiveDataOnly(buffer[ithread] + offset, JFRAU_HEADER_LENGTH); + receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, onePacketSize); if(!receivedSize) return 0; header = (jfrau_packet_header_t*)(buffer[ithread] + offset); currentpnum = (*( (uint8_t*) header->packetNumber)); - cout<<"offset:"<frameNumber))&frameIndexMask) <ReceiveDataOnly(buffer[ithread] + offset, oneDataSize); - if(!receivedSize) return 0; - cout<<"going to read header " << JFRAU_HEADER_LENGTH <ReceiveDataOnly(buffer[ithread] + offset, JFRAU_HEADER_LENGTH); + + receivedSize = udpSocket[ithread]->ReceiveDataOnly(buffer[ithread] + offset, onePacketSize); if(!receivedSize) return 0; header = (jfrau_packet_header_t*)(buffer[ithread] + offset); currentpnum = (*( (uint8_t*) header->packetNumber)); cout<<"trying to find currentpnum:"<frameNumber))&frameIndexMask) <