-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 <unistd.h>
my->endOfData = 0;
}
-#define RACE_NODATASIZE 0x10
+#define RACE_NODATASIZE 0x00
int HwRace_readSubEvt(HwRace *my, void *subEvt)
{
int readSubEvtR;
-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 <unistd.h>
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) {
}
}
+ 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);
}
-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 <assert.h>
#include <string.h>
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;