-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.26 2002-05-19 23:14:32 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.27 2002-05-25 09:20:38 hadaq Exp $";
/* modified MU readout producing a dense pack of 16 Bit words. 15-March-2002, W. Koenig */
#define _POSIX_C_SOURCE 199309L
void readoutTrig(Hardware *my, void *subEvt)
{
- uint32_t *header;
+ uint32_t *header = (uint32_t *) subEvt;
uint16_t *data;
uint16_t *dataEnd;
- header = SubEvt_begin(subEvt);
-
if (! ((LVme_getW(my->lvme6, MU_FIFO_STATUS) >> 3) &0x1) ) {
LVme_getW(my->lvme4, MU_FIFO);
old MU assumes its 16 bit words get expanded to 32 Bit.
This is not the case, see SubEvt_setDecoding(..)
*/
- *header++ =((LVme_getW(my->lvme4, MU_FIFO) & 0xffff)>>1) + 8;
- *header++ = LVme_getW(my->lvme4, MU_FIFO) & 0xffff;
- *header++ = LVme_getW(my->lvme4, MU_FIFO) & 0xffff;
- *header++ = LVme_getW(my->lvme4, MU_FIFO) & 0xffff;
+ *header =((LVme_getW(my->lvme4, MU_FIFO) & 0xffff)>>1) + 8;
+
+ dataEnd=(uint16_t *)((uint32_t)header + *header);
+
+ *++header = LVme_getW(my->lvme4, MU_FIFO) & 0xffff;
+ *++header = LVme_getW(my->lvme4, MU_FIFO) & 0xffff;
+ *++header = LVme_getW(my->lvme4, MU_FIFO) & 0xffff;
SubEvt_setDecoding(subEvt, SubEvtDecoding_16bitData);
- data=(uint16_t *)header;
- dataEnd=(uint16_t *)SubEvt_end(subEvt);
+ data=(uint16_t *)++header;
while (data < dataEnd) {
*data++ = (uint16_t) LVme_getW(my->lvme4, MU_FIFO);