]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
Read mor than one subevt
authorhades <hades>
Sat, 11 Nov 2000 11:32:54 +0000 (11:32 +0000)
committerhades <hades>
Sat, 11 Nov 2000 11:32:54 +0000 (11:32 +0000)
hadaq/hwtof.c

index 0de59338a825d955e106ed25492f8b8b293ac171..5e2c770492210580035d532f005b81ad05294a86 100644 (file)
@@ -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 <unistd.h>
@@ -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));
 }