From 5c577c6f7b1c6d7f61dd225a61c1e198878dda3b Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 2 Sep 1999 11:19:15 +0000 Subject: [PATCH] v775 is now sub event builder, change structure of readout --- hadaq/hwv775.c | 35 ++++++++++++----------------------- hadaq/hwv775.h | 3 --- hadaq/hwv878.c | 35 ++++++++++++----------------------- hadaq/hwv878.h | 3 --- 4 files changed, 24 insertions(+), 52 deletions(-) diff --git a/hadaq/hwv775.c b/hadaq/hwv775.c index 2f894fe..88524e7 100644 --- a/hadaq/hwv775.c +++ b/hadaq/hwv775.c @@ -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 @@ -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; } diff --git a/hadaq/hwv775.h b/hadaq/hwv775.h index a6658f9..3778517 100644 --- a/hadaq/hwv775.h +++ b/hadaq/hwv775.h @@ -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); diff --git a/hadaq/hwv878.c b/hadaq/hwv878.c index 8b93d75..49b0d63 100644 --- a/hadaq/hwv878.c +++ b/hadaq/hwv878.c @@ -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 @@ -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; } diff --git a/hadaq/hwv878.h b/hadaq/hwv878.h index 47d0ede..69d14cf 100644 --- a/hadaq/hwv878.h +++ b/hadaq/hwv878.h @@ -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); -- 2.43.0