From e8c1e168275a05b5b194c9f3ad73099589b08752 Mon Sep 17 00:00:00 2001 From: hadaq Date: Tue, 19 Nov 2002 02:32:14 +0000 Subject: [PATCH] Status during beam taking this night -- mm --- hadaq/hwrace.c | 4 ++-- hadaq/hwrich.c | 24 +++++++++++++++++++++++- hadaq/hwsam.c | 6 +++--- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/hadaq/hwrace.c b/hadaq/hwrace.c index e37284f..de40613 100644 --- a/hadaq/hwrace.c +++ b/hadaq/hwrace.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrace.c,v 6.24 2002-10-17 08:20:40 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrace.c,v 6.25 2002-11-19 02:32:53 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -71,7 +71,7 @@ void HwRace_requestBuffer(HwRace *my) my->endOfData = 0; } -#define RACE_NODATASIZE 0x10 +#define RACE_NODATASIZE 0x00 int HwRace_readSubEvt(HwRace *my, void *subEvt) { int readSubEvtR; diff --git a/hadaq/hwrich.c b/hadaq/hwrich.c index ba8b0ac..d9cb53a 100644 --- a/hadaq/hwrich.c +++ b/hadaq/hwrich.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.35 2002-11-18 18:39:40 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.36 2002-11-19 02:32:53 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -120,16 +120,22 @@ void Hardware_readout(Hardware *my, void *partEvt) static unsigned long trigNr = 0; unsigned trigTag; int dataError; + int nErr; + uint32_t errList[32]; + /* init partial event, necessary for SubEvt_next() */ SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts); dataError = 0; SubEvt_setId(partEvt, 0); + nErr = 0; + /* read all races, check for common trigger tag */ for (i = 0; i < my->nRaces; i++) { if (HwRace_readSubEvt(my->race[i], subEvt) == 0) { if (SubEvt_dataError(subEvt)) { + errList[nErr++] = SubEvt_id(subEvt); dataError = 1; } else { if (firstRace < 0) { @@ -147,6 +153,22 @@ void Hardware_readout(Hardware *my, void *partEvt) } } + if (nErr > 0) { + int i; + uint32_t *data = SubEvt_data(subEvt); + + SubEvt_setSize(subEvt, SubEvt_hdrSize() + (nErr + 1) * 4); + SubEvt_setDecoding(subEvt, SubEvtDecoding_32bitData); + SubEvt_setId(subEvt, 600); + SubEvt_setTrigNr(subEvt, trigTag); + + *data++ = nErr; + for (i = 0; i < nErr; i++) { + *data++ = errList[i]; + } + subEvt = SubEvt_next(partEvt, subEvt); + } + if (dataError) { SubEvt_setDataError(partEvt); } diff --git a/hadaq/hwsam.c b/hadaq/hwsam.c index a956ace..00dedb2 100644 --- a/hadaq/hwsam.c +++ b/hadaq/hwsam.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsam.c,v 6.15 2002-11-06 18:36:04 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsam.c,v 6.16 2002-11-19 02:32:14 hadaq Exp $"; #include #include @@ -95,8 +95,8 @@ void HwSam_getEndOfData(HwSam *my) my->endOfData = 1; } -/* 5 RC Headers + Subevent Header + some data */ -#define SAM_NODATASIZE 0 +/* Subevent Header + some data */ +#define SAM_NODATASIZE 16 int HwSam_readSubEvt(HwSam *my, void *subEvt) { uint32_t * data = (uint32_t *) subEvt; -- 2.43.0