]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
New output format + error bits. Sergey.
authorhadaq <hadaq>
Mon, 14 Jun 2010 14:37:43 +0000 (14:37 +0000)
committerhadaq <hadaq>
Mon, 14 Jun 2010 14:37:43 +0000 (14:37 +0000)
hadaq/evtbuild.c

index f2f08150ab6d3d7c3bfd3f3f69ea29c11038be88..3565c4ed9cec2edbdae8990fb5dbbabf85925d23 100644 (file)
@@ -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 <unistd.h>
 #include <getopt.h>
@@ -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;