From: hadaq Date: Mon, 14 Jun 2010 14:37:43 +0000 (+0000) Subject: New output format + error bits. Sergey. X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=aa153f39f62a1a4cc6c1539c4abd16e2bdf643c6;p=daqdata.git New output format + error bits. Sergey. --- diff --git a/hadaq/evtbuild.c b/hadaq/evtbuild.c index f2f0815..3565c4e 100644 --- a/hadaq/evtbuild.c +++ b/hadaq/evtbuild.c @@ -1,8 +1,8 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.107 2010-06-05 23:02:18 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.108 2010-06-14 14:37:43 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #define SYSLOG_NAMES -#undef RFIO +#define RFIO #include #include @@ -126,6 +126,7 @@ typedef struct TheStatsS { unsigned long *bytesWritten; unsigned long *evtId[NEVTIDS]; unsigned long *trigNr[MAXINPATH]; + unsigned long *errBit[MAXINPATH]; unsigned long *evtsRes; unsigned long *evtbuildBuff[MAXINPATH]; unsigned long *nrOfMsgs; @@ -649,6 +650,10 @@ static void add2Stat(TheArgs *theArgs, TheStats *my, float interval, ShmTrans ** dT = t - t_0; if (dT >= interval) { + + printf("\n"); + printf("%s ", "%"); + for (i = 0; i < theArgs->nrOfMsgs; i++) { buffSize = 2 * theArgs->queueSize[i]; queueSize = HadTuQueue_size(shmtr[i]->rdQueue); @@ -657,9 +662,16 @@ static void add2Stat(TheArgs *theArgs, TheStats *my, float interval, ShmTrans ** fillLevel = (unsigned long) (100. * queueSize + 0.5) / buffSize; (*my->evtbuildBuff[i]) = fillLevel; - /* printf("q[%02d]%5d\%\n",i,fillLevel); */ + printf("%3d", fillLevel); } t_0 = t; + + printf("\n"); + printf("Q ", i, fillLevel); + for (i = 0; i < theArgs->nrOfMsgs; i++) { + printf("%3d", i); + } + printf("\n"); } } @@ -860,31 +872,37 @@ static void statsDump(TheArgs *theArgs, TheStats *my, int interval) if (dT >= interval) { int col = 0; - 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)); - fprintf(stderr, "%19s:%6s", "evtsTagError ", unit(*my->evtsTagError)); - fputc('\n', stderr); - - if ((long) (*my->evtsComplete) - (long) lastEC < 0) { - lastEC = 0; - lastED = 0; - lastBW = 0; - lastEE = 0; - lastTE = 0; + fputs + ("=======================================================================================================================\n", + stderr); + if ((long) (*my->evtsComplete) - (long) lastEC > 0) { + fprintf(stderr, "%13s:%6s", "evtsComplete", unit(*my->evtsComplete)); + fprintf(stderr, "%17s:%6s", "evtsComplete/s", unit((*my->evtsComplete - lastEC) / dT)); + fprintf(stderr, "%17s:%6s", "evtsDiscarded", unit(*my->evtsDiscarded)); + fprintf(stderr, "%17s:%6s", "evtsDiscarded/s", unit((*my->evtsDiscarded - lastED) / dT)); + fprintf(stderr, "%17s:%7s", "bytesWritten", unit(*my->bytesWritten)); + fputc('\n', stderr); + fprintf(stderr, "%13s:%6s", "evtsDataError", unit(*my->evtsDataError)); + fprintf(stderr, "%17s:%6s", "evtsDataError/s", unit((*my->evtsDataError - lastEE) / dT)); + fprintf(stderr, "%17s:%6s", "evtsTagError", unit(*my->evtsTagError)); + fprintf(stderr, "%17s:%6s", "evtsTagError/s", unit((*my->evtsTagError - lastTE) / dT)); + fprintf(stderr, "%17s:%6s", "bytesWritten/s", unit((*my->bytesWritten - lastBW) / dT)); + fputc('\n', stderr); + } else { + fprintf(stderr, "%13s:%6s", "evtsComplete", unit(*my->evtsComplete)); + fprintf(stderr, "%17s:%6s", "evtsComplete/s", "0"); + fprintf(stderr, "%17s:%6s", "evtsDiscarded", unit(*my->evtsDiscarded)); + fprintf(stderr, "%17s:%6s", "evtsDiscarded/s", "0"); + fprintf(stderr, "%17s:%7s", "bytesWritten", unit(*my->bytesWritten)); + fputc('\n', stderr); + fprintf(stderr, "%13s:%6s", "evtsDataError", unit(*my->evtsDataError)); + fprintf(stderr, "%17s:%6s", "evtsDataError/s", "0"); + fprintf(stderr, "%17s:%6s", "evtsTagError", unit(*my->evtsTagError)); + fprintf(stderr, "%17s:%6s", "evtsTagError/s", "0"); + fprintf(stderr, "%17s:%6s", "bytesWritten/s", "0"); + fputc('\n', stderr); } - fprintf(stderr, "%19s:%6s", "evtsComplete/s", unit((*my->evtsComplete - lastEC) / dT)); - fprintf(stderr, "%19s:%6s", "evtsDiscarded/s", unit((*my->evtsDiscarded - lastED) / dT)); - fprintf(stderr, "%19s:%6s", "bytesWritten/s", unit((*my->bytesWritten - lastBW) / dT)); - fputc('\n', stderr); - fprintf(stderr, "%19s:%6s", "evtsDataError/s", unit((*my->evtsDataError - lastEE) / dT)); - fprintf(stderr, "%19s:%6s", "evtsTagError/s", unit((*my->evtsTagError - lastTE) / dT)); - fputc('\n', stderr); - if (*my->evtsDiscarded - lastED > 0) storeEvtStat(theArgs, *my->evtsDiscarded - lastED); @@ -894,7 +912,9 @@ static void statsDump(TheArgs *theArgs, TheStats *my, int interval) lastED = *my->evtsDiscarded; lastBW = *my->bytesWritten; - fputs("------------------------------------------------------------------------------\n", stderr); + fputs + ("-----------------------------------------------------------------------------------------------------------------------\n", + stderr); col = 0; for (i = 0; i < NEVTIDS; i++) { if (*my->evtId[i] != 0) { @@ -908,12 +928,29 @@ static void statsDump(TheArgs *theArgs, TheStats *my, int interval) if (col != 0) { fputc('\n', stderr); } + + fputs + ("---------------------------- trigger numbers --------------------------------------------------------------------------\n", + stderr); col = 0; + for (i = 0; i < theArgs->nrOfMsgs; i++) { + fprintf(stderr, "%2d: 0x%08x ", i, *my->trigNr[i]); + if (++col == 8) { + fputc('\n', stderr); + col = 0; + } + } + if (col != 0) { + fputc('\n', stderr); + } - fputs("------------------------------------------------------------------------------\n", stderr); + fputs + ("---------------------------- error bits -------------------------------------------------------------------------------\n", + stderr); + col = 0; for (i = 0; i < theArgs->nrOfMsgs; i++) { - fprintf(stderr, "%12s%02d: 0x%08x", "trigNr", i, *my->trigNr[i]); - if (++col == 3) { + fprintf(stderr, "%2d: 0x%08x ", i, *my->errBit[i]); + if (++col == 8) { fputc('\n', stderr); col = 0; } @@ -921,6 +958,7 @@ static void statsDump(TheArgs *theArgs, TheStats *my, int interval) if (col != 0) { fputc('\n', stderr); } + t0 = t; } } @@ -1731,6 +1769,12 @@ int main(int argc, char *argv[]) sprintf(buf, "trigNr%d", i); theStats->trigNr[i] = Worker_addStatistic(worker, buf); } + for (i = 0; i < theArgs->nrOfMsgs; i++) { + char buf[WORKER_MAX_NAME_LEN]; + + sprintf(buf, "errBit%d", i); + theStats->errBit[i] = Worker_addStatistic(worker, buf); + } /* Add statistic for fill levels of buffers. */ for (i = 0; i < theArgs->nrOfMsgs; i++) { @@ -1750,6 +1794,9 @@ int main(int argc, char *argv[]) rfio_openConnection(theArgs); #endif + uint32_t lastCurrTrigNr = 0; + int gap = 0; + currId = 0; while (setjmp(terminateJmp) == 0) { void *evt; @@ -1839,6 +1886,7 @@ int main(int argc, char *argv[]) #endif (*theStats->trigNr[i]) = SubEvt_trigNr(subEvt); + (*theStats->errBit[i]) = SubEvt_errBit(subEvt); if (i == 0) { currTrigNr = SubEvt_trigNr(subEvt) >> 8;