]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
Try to introduce the error bit into the event header, not working!
authorhadaq <hadaq>
Wed, 23 Oct 2002 14:56:47 +0000 (14:56 +0000)
committerhadaq <hadaq>
Wed, 23 Oct 2002 14:56:47 +0000 (14:56 +0000)
-- mm

hadaq/evt.h
hadaq/evtbuild.c
hadaq/hwsoft.c
hadaq/netmem.c

index 91edbd92501f67e3304ab0e9bbbdee99a181deef..ada06c0995357fb2af2fb7ce76b3c4aa8960652f 100644 (file)
@@ -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);
index 78c42727b408dc8e9bfdba2fd515414fd4108901..1b2b593e444a01e3e63defe8a6f1066d5b2a0053 100644 (file)
@@ -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 {
index 8a58f5a7b33d27ad11bbb4b2c446aa063ad671e9..0d7e4f54b2fb0fa3cbb7e4a08a88371ad5ffee35 100644 (file)
@@ -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));
 }
index 233f4d277f27900a1379e444de7cc8c46c64f66e..78c816a9865c6dae3f6842050c0c281c828bd3db 100644 (file)
@@ -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;
        }