From 7756ef675a8877497fd1e8dbbc3660d9ecd8c9ae Mon Sep 17 00:00:00 2001 From: hadaq Date: Sat, 25 May 2002 09:20:38 +0000 Subject: [PATCH] Minor changes to speed up the readout. W. Koenig --- hadaq/hwtrig.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hadaq/hwtrig.c b/hadaq/hwtrig.c index 1f5a874..13a3fd2 100644 --- a/hadaq/hwtrig.c +++ b/hadaq/hwtrig.c @@ -1,4 +1,4 @@ -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 @@ -183,12 +183,10 @@ void Hardware_waitForTrigger(Hardware *my, void *partEvt) 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); @@ -197,14 +195,16 @@ void readoutTrig(Hardware *my, void *subEvt) 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); -- 2.43.0