}
void HwTip_requestBuffer(HwTip *my) {
- LVme_clrBitL(my->lvme, EXT_DAQ, my->daqRq);
+
+ do {
+ LVme_clrBitL(my->lvme, EXT_DAQ, my->daqRq);
+ } while(LVme_tstBitL(my->lvme, EXT_DAQ, my->daqRq));
+
while (LVme_tstBitL(my->lvme, EXT_STATUS, my->daqGr)) {
#if 1
struct timespec tS, *t = &tS;
#endif
}
msglog(LOG_DEBUG, "data available\n");
- LVme_setBitL(my->lvme, EXT_DAQ, my->daqRq);
+ do {
+ LVme_setBitL(my->lvme, EXT_DAQ, my->daqRq);
+ } while(!LVme_tstBitL(my->lvme, EXT_DAQ, my->daqRq));
my->currAddr = my->fifo + 0x8;
}
size_t size;
UInt1 trigTag;
-#if 1
- size = LVme_getL(my->lvme, my->currAddr);
+ do {
+ size = LVme_getL(my->lvme, my->currAddr);
+ } while (size == 0xffffffff);
/* copy one sub evt from RC to memory */
for (firstAddr = my->currAddr; my->currAddr - firstAddr < size; my->currAddr += 4) {
- *data++ = LVme_getL(my->lvme, my->currAddr);
+ do {
+ *data = LVme_getL(my->lvme, my->currAddr);
+ } while (*data == 0xffffffff);
+ data++;
}
trigTag = SubEvt_trigNr(subEvt) & 0xff;
-#else
- my->currAddr = 0xffffffff;
- SubEvt_setDecoding(subEvt, 0x00020001);
- SubEvt_setSize(subEvt, 16);
- SubEvt_setId(subEvt, 1);
-#endif
/* normal extension of trigger tag */
SubEvt_setTrigNr(subEvt, my->trigNr << 8 | trigTag);
return 0;
}
+
+
+
+