}
/* Wait for data ready and Set Socket Timeout */
- FD_ZERO(&fds);
- FD_SET(trb3_sockfd, &fds);
-
- status = pselect(trb3_sockfd + 1, &fds, NULL, NULL, &tv, NULL);
- if (status == -1) {
- trb_errno = TRB_TRB3_SOCKET_ERROR;
- return -1;
- }
- if (FD_ISSET(trb3_sockfd, &fds) == 0) {
- trb_errno = TRB_TRB3_SOCKET_TIMEOUT;
- return -1;
- }
+// FD_ZERO(&fds);
+// FD_SET(trb3_sockfd, &fds);
+//
+// status = pselect(trb3_sockfd + 1, &fds, NULL, NULL, &tv, NULL);
+// if (status == -1) {
+// trb_errno = TRB_TRB3_SOCKET_ERROR;
+// return -1;
+// }
+// if (FD_ISSET(trb3_sockfd, &fds) == 0) {
+// trb_errno = TRB_TRB3_SOCKET_TIMEOUT;
+// return -1;
+// }
+///// JAM2026: moved down into while loop
/* Read Data */
// gk this fragment rewritten to support multi-packet responses
while(1) {
+
+ // JAM2026: moved this inside receiver loop
+ FD_ZERO(&fds);
+ FD_SET(trb3_sockfd, &fds);
+
+ status = pselect(trb3_sockfd + 1, &fds, NULL, NULL, &tv, NULL);
+ if (status == -1) {
+ trb_errno = TRB_TRB3_SOCKET_ERROR;
+ return -1;
+ }
+ if (FD_ISSET(trb3_sockfd, &fds) == 0) {
+ trb_errno = TRB_TRB3_SOCKET_TIMEOUT;
+ return -1;
+ }
+
+ ///////////////////////////////////////
+
+
+
status = recvfrom(trb3_sockfd,
(void*)dataBufferTemp,
if (trb_debug > 2) {
fprintf(stderr, "udp received: %d\n", status);
}
-
-// fprintf(stderr, "dataBufferSize %d status %d pkt_nr %d\n", dataBufferSize, status, pkt_nr);
+
+ //JAM26 debug:
+ //fprintf(stderr, "dataBufferSize %d status %d pkt_nr %d\n", dataBufferSize, status, pkt_nr);
-// for (i = 0; i < status / 2; i+= 2)
-// fprintf(stdout, "%d: %04x %04x\n", i, (unsigned int) dataBufferTemp[i], (unsigned int) dataBufferTemp[i+1]);
+ //for (i = 0; i < status / 2; i+= 2)
+ // for (i = 0; i < 40; i+= 2)
+ // fprintf(stdout, "%d: %04x %04x\n", i, (unsigned int) dataBufferTemp[i], (unsigned int) dataBufferTemp[i+1]);
// workaround for minimal successive packet
//if (pkt_nr > 1 && status == 12) {