From: hadaq Date: Wed, 23 Oct 2002 14:56:47 +0000 (+0000) Subject: Try to introduce the error bit into the event header, not working! X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=2a55bda6c33c1d4b8fb23f833903b4f09166247b;p=daqdata.git Try to introduce the error bit into the event header, not working! -- mm --- diff --git a/hadaq/evt.h b/hadaq/evt.h index 91edbd9..ada06c0 100644 --- a/hadaq/evt.h +++ b/hadaq/evt.h @@ -49,7 +49,27 @@ char *Evt_expId2charP(const void *my); void Evt_setExpIdCharP(void *my, const char *expId); uint32_t Evt_id(const void *my); + +static uint32_t Evt_pureId(const void *my) +{ + return Evt_id(my) & 0x7fffffffUL; +} + +static int Evt_dataError(const void *my) +{ + return (Evt_id(my) & 0x80000000UL) != 0; +} + void Evt_setId(void *my, uint32_t id); + +static int Evt_setDataError(void *my) { + Evt_setId(my, Evt_id(my) | 0x80000000UL); +} + +static int Evt_clrDataError(void *my) { + Evt_setId(my, Evt_id(my) & ~0x80000000UL); +} + uint32_t Evt_seqNr(const void *my); void Evt_setSeqNr(void *my, uint32_t seqNr); uint32_t Evt_date(const void *my); diff --git a/hadaq/evtbuild.c b/hadaq/evtbuild.c index 78c4272..1b2b593 100644 --- a/hadaq/evtbuild.c +++ b/hadaq/evtbuild.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.45 2002-10-17 12:16:18 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.46 2002-10-23 14:56:47 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -52,6 +52,7 @@ typedef struct TheArgsS { typedef struct TheStatsS { unsigned long *evtsDiscarded; unsigned long *evtsComplete; + unsigned long *evtsDataError; unsigned long *bytesWritten; unsigned long *triggerType[NTRIGTYPES]; unsigned long *trigNr[32]; @@ -230,6 +231,7 @@ static char *unit(unsigned long v) { static void statsDump(TheArgs *theArgs, TheStats *my, int interval) { static unsigned long lastEC; + static unsigned long lastEE; static unsigned long lastED; static unsigned long lastBW; static time_t lastTime = 0; @@ -243,21 +245,26 @@ static void statsDump(TheArgs *theArgs, TheStats *my, int interval) { ) { int col = 0; - fputs("==============================================================================", stderr); + fputs("==============================================================================\n", stderr); fprintf(stderr, "%19s:%6s", "evtsComplete ", unit(*my->evtsComplete)); fprintf(stderr, "%19s:%6s", "evtsDiscarded ", unit(*my->evtsDiscarded)); fprintf(stderr, "%19s:%6s", "bytesWritten ", unit(*my->bytesWritten)); fputc('\n', stderr); + fprintf(stderr, "%19s:%6s", "evtsDataError ", unit(*my->evtsDataError)); + fputc('\n', stderr); fprintf(stderr, "%19s:%6s", "evtsComplete/s", unit(*my->evtsComplete - lastEC)); fprintf(stderr, "%19s:%6s", "evtsDiscarded/s", unit(*my->evtsDiscarded - lastED)); fprintf(stderr, "%19s:%6s", "bytesWritten/s", unit(*my->bytesWritten - lastBW)); fputc('\n', stderr); + fprintf(stderr, "%19s:%6s", "evtsDataError/s", unit(*my->evtsDataError - lastEE)); + fputc('\n', stderr); lastEC = *my->evtsComplete; + lastEE = *my->evtsDataError; lastED = *my->evtsDiscarded; lastBW = *my->bytesWritten; - fputs("------------------------------------------------------------------------------", stderr); + fputs("------------------------------------------------------------------------------\n", stderr); col = 0; for (i = 0; i < NTRIGTYPES; i++) { if (*my->triggerType[i] != 0) { @@ -273,7 +280,7 @@ static void statsDump(TheArgs *theArgs, TheStats *my, int interval) { } col = 0; - fputs("------------------------------------------------------------------------------", stderr); + fputs("------------------------------------------------------------------------------\n", stderr); for (i = 0; i < theArgs->nrOfMsgs; i++) { fprintf(stderr, "%12s%02d: 0x%08x", "trigNr", i, *my->trigNr[i]); if (++col == 3) { @@ -455,6 +462,7 @@ int main(int argc, char *argv[]) theStats->evtsDiscarded = Worker_addStatistic(worker, "evtsDiscarded"); theStats->evtsComplete = Worker_addStatistic(worker, "evtsComplete"); + theStats->evtsDataError = Worker_addStatistic(worker, "evtsDataError"); theStats->bytesWritten = Worker_addStatistic(worker, "bytesWritten"); for (i = 0; i < NTRIGTYPES; i++) { char buf[WORKER_MAX_NAME_LEN]; @@ -523,6 +531,9 @@ int main(int argc, char *argv[]) trigNr = SubEvt_trigNr(subEvt) >> 8; if (trigNr == currTrigNr) { + if (SubEvt_dataError(subEvt)) { + Evt_setDataError(evt); + } evt = Evt_appendSubEvt(evt, subEvt); HadTuQueue_pop(hadTuQueue[i]); step = 1; @@ -548,6 +559,9 @@ int main(int argc, char *argv[]) } Evt_online(evt); (*theStats->evtsComplete)++; + if (Evt_dataError(subEvt)) { + (*theStats->evtsDataError)++; + } (*theStats->triggerType[currId])++; (*theStats->bytesWritten) += Evt_size(evt); } else { diff --git a/hadaq/hwsoft.c b/hadaq/hwsoft.c index 8a58f5a..0d7e4f5 100644 --- a/hadaq/hwsoft.c +++ b/hadaq/hwsoft.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsoft.c,v 6.23 2001-11-18 11:56:21 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsoft.c,v 6.24 2002-10-23 14:56:47 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -122,9 +122,9 @@ void readoutSoft(void *subEvt) size = (char *)data - (char *)subEvt; id = SubEvtId_test1; -#if 0 - if (size > 1000) { - size = 1000; +#if 1 + if (size > 5000) { + size = 5000; id |= 0x80000000; } #endif @@ -144,8 +144,12 @@ void Hardware_readout(Hardware *my, void *partEvt) uint8_t trigCode; SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts); + SubEvt_setId(partEvt, trigCode); readoutTrig(subEvt); + if (SubEvt_dataError(subEvt)) { + SubEvt_setDataError(partEvt); + } if (trigTag > SubEvt_trigNr(subEvt)) { trigNr++; } @@ -154,10 +158,12 @@ void Hardware_readout(Hardware *my, void *partEvt) subEvt = SubEvt_next(partEvt, subEvt); readoutSoft(subEvt); + if (SubEvt_dataError(subEvt)) { + SubEvt_setDataError(partEvt); + } subEvt = SubEvt_next(partEvt, subEvt); SubEvt_setSize(partEvt, (char *)subEvt - (char *)partEvt); - SubEvt_setId(partEvt, trigCode); SubEvt_setTrigNr(partEvt, (trigNr << 8) | trigTag); syslog(LOG_DEBUG, "partEvt: %s", SubEvt_2charP(partEvt)); } diff --git a/hadaq/netmem.c b/hadaq/netmem.c index 233f4d2..78c816a 100644 --- a/hadaq/netmem.c +++ b/hadaq/netmem.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.22 2002-10-17 12:16:18 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.23 2002-10-23 14:56:47 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -141,7 +141,7 @@ static void statsDump(TheArgs *theArgs, NetTrans **my, int interval) { && strcmp(theArgs->verbosity, "info") == 0 && (dT = (time(NULL) - lastTime)) >= interval ) { - fputs("==============================================================================", stderr); + fputs("==============================================================================\n", stderr); for (i = 0; i < theArgs->nrOfMsgs; i++) { fprintf(stderr, "%17s%02d:%6s", "pktsReceived", i, unit(*my[i]->pktsReceived)); @@ -158,7 +158,7 @@ static void statsDump(TheArgs *theArgs, NetTrans **my, int interval) { "bytesReceived", i, unit(*my[i]->bytesReceived - lastBR[i])); lastBR[i] = *my[i]->bytesReceived; fputc('\n', stderr); - fputs("------------------------------------------------------------------------------", stderr); + fputs("------------------------------------------------------------------------------\n", stderr); } lastTime += dT; }