]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
v775 is now sub event builder, change structure of readout
authorhades <hades>
Thu, 2 Sep 1999 11:19:15 +0000 (11:19 +0000)
committerhades <hades>
Thu, 2 Sep 1999 11:19:15 +0000 (11:19 +0000)
hadaq/hwv775.c
hadaq/hwv775.h
hadaq/hwv878.c
hadaq/hwv878.h

index 2f894feed134b610bb84a9de1cecf75c51bbb289..88524e7bdc6969304c5e05218301708074983330 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwv775.c,v 1.4 1999-09-02 09:55:55 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwv775.c,v 1.5 1999-09-02 11:19:15 hades Exp $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
@@ -16,7 +16,7 @@ static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/had
 #include "param.h"
 #include "hwv775.h"
 
-int conHwV775(HwV775 * my, const char *name, const Param *param)
+int conHwV775(HwV775 *my, const char *name, const Param *param)
 {
        unsigned long cardBase;
        int i;
@@ -24,7 +24,6 @@ int conHwV775(HwV775 * my, const char *name, const Param *param)
        assert(my != NULL);
 
        strcpy(my->name, name);
-       my->trigNr = 0;
 
        cardBase = Param_getVal(param, my->name, "cardbase");
        my->lvme = allocMem(sizeof(LVme));
@@ -52,29 +51,21 @@ int conHwV775(HwV775 * my, const char *name, const Param *param)
        return 0;
 }
 
-void desHwV775(HwV775 * my)
+void desHwV775(HwV775 *my)
 {
        desLVme(my->lvme);
        freeMem(my->lvme);
 }
 
-void HwV775_requestBuffer(HwV775 * my)
-{
-}
-
-int HwV775_isBusy(HwV775 * my)
-{
-       return HwV775_isEmpty(my);
-}
-
-int HwV775_isEmpty(HwV775 * my)
+int HwV775_isEmpty(HwV775 *my)
 {
        return LVme_tstBitW(my->lvme, V775_STAT_REG_1, 0) == 0;
 }
 
-int HwV775_readSubEvt(HwV775 * my, void *subEvt)
+int HwV775_readData(HwV775 *my, void *subEvt)
 {
-       UInt4 *data = subEvt;
+       UInt4 *data = SubEvt_end(subEvt);
+       UInt4 *first = data;
        UInt4 hdr;
        UInt4 eob;
        int nWords;
@@ -100,12 +91,10 @@ int HwV775_readSubEvt(HwV775 * my, void *subEvt)
        }
 
        trigTag = eob & 0xff;
-
-       SubEvt_setSize(subEvt, (char *) data - (char *) subEvt);
-       SubEvt_setDecoding(subEvt, SubEvtDecoding_32bitData);
-       SubEvt_setId(subEvt, SubEvtId_tofTest);
-       SubEvt_setTrigNr(subEvt, my->trigNr << 24 | trigTag);
-       my->trigNr++;
-
+       if (trigTag != (SubEvt_trigNr(subEvt) & 0xff)) {
+               msglog(LOG_EMERG, "%s trigNr mismatch: 0x%08x != 0x%02x \n",
+                          my->name, SubEvt_trigNr(subEvt), trigTag);
+       }
+       SubEvt_setSize(subEvt, SubEvt_size(subEvt) + (char *) data - (char *) first);
        return 0;
 }
index a6658f922070d236e32d4c6f9f10549cd071eee8..3778517aa7332ba20b48d31b6c37643df1cacae6 100644 (file)
@@ -11,7 +11,6 @@
 typedef struct HwV775S {
   char name[16];
   LVme *lvme;
-  unsigned long trigNr;
 } HwV775;
 
 #define V775_OUT_BUF 0x00
@@ -34,8 +33,6 @@ typedef struct HwV775S {
 int conHwV775(HwV775 *my, const char *name, const Param *param);
 void desHwV775(HwV775 *my);
 
-void HwV775_requestBuffer(HwV775 *my);
-int HwV775_isBusy(HwV775 *my);
 int HwV775_isEmpty(HwV775 *my);
 int HwV775_readSubEvt(HwV775 *my, void *subEvt);
 
index 8b93d758b7c987087f3e14adb07f01aa68139794..49b0d639eab4f58c73145ad12279ac3736556bf2 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwv878.c,v 1.2 1999-09-02 09:55:55 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwv878.c,v 1.3 1999-09-02 11:19:15 hades Exp $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
@@ -16,7 +16,7 @@ static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/had
 #include "param.h"
 #include "hwv878.h"
 
-int conHwV878(HwV878 * my, const char *name, const Param *param)
+int conHwV878(HwV878 *my, const char *name, const Param *param)
 {
        unsigned long cardBase;
        int i;
@@ -24,7 +24,6 @@ int conHwV878(HwV878 * my, const char *name, const Param *param)
        assert(my != NULL);
 
        strcpy(my->name, name);
-       my->trigNr = 0;
 
        cardBase = Param_getVal(param, my->name, "cardbase");
        my->lvme = allocMem(sizeof(LVme));
@@ -51,29 +50,21 @@ int conHwV878(HwV878 * my, const char *name, const Param *param)
        return 0;
 }
 
-void desHwV878(HwV878 * my)
+void desHwV878(HwV878 *my)
 {
        desLVme(my->lvme);
        freeMem(my->lvme);
 }
 
-void HwV878_requestBuffer(HwV878 * my)
-{
-}
-
-int HwV878_isBusy(HwV878 * my)
-{
-       return HwV878_isEmpty(my);
-}
-
-int HwV878_isEmpty(HwV878 * my)
+int HwV878_isEmpty(HwV878 *my)
 {
        return LVme_tstBitW(my->lvme, V878_STAT_REG_1, 0) == 0;
 }
 
-int HwV878_readSubEvt(HwV878 * my, void *subEvt)
+int HwV878_readData(HwV878 *my, void *subEvt)
 {
-       UInt4 *data = subEvt;
+       UInt4 *data = SubEvt_end(subEvt);
+       UInt4 *first = data;
        UInt4 hdr;
        UInt4 eob;
        int nWords;
@@ -99,12 +90,10 @@ int HwV878_readSubEvt(HwV878 * my, void *subEvt)
        }
 
        trigTag = eob & 0xff;
-
-       SubEvt_setSize(subEvt, (char *) data - (char *) subEvt);
-       SubEvt_setDecoding(subEvt, SubEvtDecoding_32bitData);
-       SubEvt_setId(subEvt, SubEvtId_tofTest);
-       SubEvt_setTrigNr(subEvt, my->trigNr << 24 | trigTag);
-       my->trigNr++;
-
+       if (trigTag != (SubEvt_trigNr(subEvt) & 0xff)) {
+               msglog(LOG_EMERG, "%s trigNr mismatch: 0x%08x != 0x%02x \n",
+                          my->name, SubEvt_trigNr(subEvt), trigTag);
+       }
+       SubEvt_setSize(subEvt, SubEvt_size(subEvt) + (char *) data - (char *) first);
        return 0;
 }
index 47d0edeace4ceb9469f4c4e9d6d870a8ec0292b3..69d14cf92466a6eb2f54dd411563207dcc96408f 100644 (file)
@@ -11,7 +11,6 @@
 typedef struct HwV878S {
   char name[16];
   LVme *lvme;
-  unsigned long trigNr;
 } HwV878;
 
 #define V878_OUT_BUF 0x0000
@@ -31,8 +30,6 @@ typedef struct HwV878S {
 int conHwV878(HwV878 *my, const char *name, const Param *param);
 void desHwV878(HwV878 *my);
 
-void HwV878_requestBuffer(HwV878 *my);
-int HwV878_isBusy(HwV878 *my);
 int HwV878_isEmpty(HwV878 *my);
 int HwV878_readSubEvt(HwV878 *my, void *subEvt);