From a65831ad13d8afc4c400ae5d4333735fafb4f045 Mon Sep 17 00:00:00 2001 From: hades Date: Sat, 11 Nov 2000 11:32:54 +0000 Subject: [PATCH] Read mor than one subevt --- hadaq/hwtof.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/hadaq/hwtof.c b/hadaq/hwtof.c index 0de5933..5e2c770 100644 --- a/hadaq/hwtof.c +++ b/hadaq/hwtof.c @@ -1,4 +1,4 @@ -static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.14 2000-11-08 07:53:23 hades Exp $"; +static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.15 2000-11-11 11:32:54 hades Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -13,6 +13,7 @@ static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/had #include "hwtip.h" /* Set number of RCs here */ +#define NCRATES 2 #define NTIPS 1 struct HardwareS { @@ -45,7 +46,7 @@ Hardware *newHardware(void) } my = allocMem(sizeof(Hardware)); - my->maxSubEvtSize = SubEvt_hdrSize() + (560 * sizeof(UInt4)); + my->maxSubEvtSize = SubEvt_hdrSize() + (NCRATES * 620 * sizeof(UInt4)); my->tipToRead = 0; for (i = 0; i < NTIPS; i++) { @@ -91,10 +92,25 @@ void Hardware_waitForTrigger(Hardware *my, void *subEvt) } } -void Hardware_readout(Hardware *my, void *subEvt) +void Hardware_readout(Hardware *my, void *partEvt) { - HwTip_readSubEvt(my->tip[my->tipToRead], subEvt); - if (++my->tipToRead == NTIPS ) { - my->tipToRead = 0; + static UInt4 trigNr = 0; + UInt1 trigTag; + void *subEvt = SubEvt_data(partEvt); + int i; + + SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts); + + for (i = 0; i < NCRATES; i++) { + HwTip_readSubEvt(my->tip[my->tipToRead], subEvt); + if (i == 0) { + trigTag == SubEvt_trigNr(subEvt); + } + subEvt = SubEvt_next(partEvt, subEvt); } + + SubEvt_setSize(partEvt, (char *)subEvt - (char *)partEvt); + SubEvt_setTrigNr(partEvt, (trigNr++ << 8) | trigTag); + SubEvt_setId(partEvt, 0); + msglog(LOG_DEBUG, "partEvt: %s\n", SubEvt_2charP(partEvt)); } -- 2.43.0