unsigned int dataCtr = 0;
int packageCtr = -1;
unsigned int endPointCtr = 0;
-
+
unsigned int timeout = 0;
/* Determin FIFO-Address */
}
if (timeout >= MAX_TIME_OUT) {
- trb_errno = TRB_FIFO_TIMEOUT;
trb_fifo_flush(channel);
+ trb_errno = TRB_FIFO_TIMEOUT;
return -1;
}
}
/* Read Next Word */
+ if (headerType == HEADER_TRM) {
+ break;
+ }
if (trb_dma == 1) {
tmp++;
} else {
- timeout = 0;
- do {
- read32_from_FPGA(fifoBuffer, tmp);
- } while (((*tmp & MASK_FIFO_VALID) == 0) && (++timeout < MAX_TIME_OUT));
+ timeout = 0;
+ do {
+ read32_from_FPGA(fifoBuffer, tmp);
+ } while (((*tmp & MASK_FIFO_VALID) == 0) && (++timeout < MAX_TIME_OUT));
+
if (timeout >= MAX_TIME_OUT) {
- trb_errno = TRB_FIFO_TIMEOUT;
- trb_fifo_flush(channel);
- return -1;
- }
+ trb_fifo_flush(channel);
+ trb_errno = TRB_FIFO_TIMEOUT;
+ fprintf(stderr,"timeout\n");
+ return -1;
+ }
}
}
-
-
+
/* Copy StatusBits and Sequenze of TerminationPackage */
trb_term.status_common = package.F2;
trb_term.status_channel = package.F1;