]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
new version of readoutTrig return code changed to trigCode instead of void.
authorhadaq <hadaq>
Mon, 27 May 2002 21:25:29 +0000 (21:25 +0000)
committerhadaq <hadaq>
Mon, 27 May 2002 21:25:29 +0000 (21:25 +0000)
W. Koenig

hadaq/hwtrig.c

index 13a3fd2ed74a89f50ed3fad9b4fd789882c4b194..e59dcd5ea66dbe8301f8fd95bd248e0ab75178e7 100644 (file)
@@ -1,4 +1,4 @@
-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.27 2002-05-25 09:20:38 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.28 2002-05-27 21:25:29 hadaq Exp $";
 /* modified MU readout producing a dense pack of 16 Bit words. 15-March-2002, W. Koenig */
 
 #define _POSIX_C_SOURCE 199309L
@@ -173,20 +173,20 @@ void Hardware_waitForTrigger(Hardware *my, void *partEvt)
                        /* wait for some time for not disturbing the DSP */
                        struct timespec tS, *t = &tS;
                        t->tv_sec = 0;
-                       t->tv_nsec = 20000000;
+                       t->tv_nsec = 10000000;
                        nanosleep(t, NULL);
                }
+               HwTip_getEndOfData(my->tip);
        }
 #endif
 
 }
 
-void readoutTrig(Hardware *my, void *subEvt)
+int readoutTrig(Hardware *my, void *subEvt)
 {
-       uint32_t *header = (uint32_t *) subEvt;
-       uint16_t *data;
-       uint16_t *dataEnd;
-
+       uint32_t * header = (uint32_t *)subEvt;
+       uint16_t * data;
+       uint16_t * dataEnd;
 
        if (! ((LVme_getW(my->lvme6, MU_FIFO_STATUS) >> 3) &0x1) ) {
                LVme_getW(my->lvme4, MU_FIFO);
@@ -196,7 +196,10 @@ void readoutTrig(Hardware *my, void *subEvt)
          This is not the case, see SubEvt_setDecoding(..)
        */
        *header =((LVme_getW(my->lvme4, MU_FIFO) & 0xffff)>>1) + 8;
-
+       /*
+         *header contains subevent size in char's.
+         It is added to the pointer to evt begin.
+       */
        dataEnd=(uint16_t *)((uint32_t)header + *header);
 
        *++header = LVme_getW(my->lvme4, MU_FIFO) & 0xffff;
@@ -213,6 +216,7 @@ void readoutTrig(Hardware *my, void *subEvt)
 #ifndef NDEBUG
        syslog(LOG_DEBUG, "subEvt: %s", SubEvt_2charP(subEvt));
 #endif
+       return  *(uint16_t *)header;
 }
 
 void Hardware_readout(Hardware *my, void *partEvt)
@@ -229,11 +233,9 @@ void Hardware_readout(Hardware *my, void *partEvt)
 * read out MU
 */
 
-       readoutTrig(my, subEvt);
+       trigTag = readoutTrig(my, subEvt);
 
        trigTag = SubEvt_trigNr(subEvt) & 0xff;
-
-       trigCode = SubEvt_dataValue(subEvt, 0);
        subEvt = SubEvt_next(partEvt, subEvt);
 
 #ifdef TOF_READOUT
@@ -243,7 +245,7 @@ void Hardware_readout(Hardware *my, void *partEvt)
 
 
        for (i = 0; i < NCRATES; i++) {
-         if(HwTip_readSubEvt(my->tip, subEvt) == 0) {
+         if( HwTip_readSubEvt(my->tip, subEvt)==0) {
                if (trigTag != (SubEvt_trigNr(subEvt) & 0xff)) {
                        SubEvt_setId(subEvt, SubEvt_id(subEvt) | 0x80000000UL);
                        SubEvt_setId(partEvt, SubEvt_id(partEvt) | 0x80000000UL);