From: muench Date: Mon, 10 Mar 2003 13:22:26 +0000 (+0000) Subject: Consistency checks -- mm X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=642d762fa3c5f9e2086f426f4683aa06442e2951;p=daqdata.git Consistency checks -- mm --- diff --git a/hadaq/indent.pro b/hadaq/indent.pro index 56d90e0..c25667f 100644 --- a/hadaq/indent.pro +++ b/hadaq/indent.pro @@ -105,6 +105,7 @@ -T Tcl_VarTraceProc -T Tcl_WaitForEventProc -T TheArgs +-T OurArgs -T TheStats -T ThrArgs -T Time diff --git a/hadaq/showevt.c b/hadaq/showevt.c index fe5c519..aa4d67b 100644 --- a/hadaq/showevt.c +++ b/hadaq/showevt.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/showevt.c,v 6.9 2003-03-02 16:25:00 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/showevt.c,v 6.10 2003-03-10 13:22:26 muench Exp $"; #define _ANSI_C_SOURCE @@ -6,16 +6,32 @@ static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hada #include #include -#include #include #include "hldread.h" +typedef struct OurArgsS { + int noPrint; + int debug; +} OurArgs; +static OurArgs ourArgsS = { 0 }, *ourArgs = &ourArgsS; + int startAnalysis(int argc, char **argv) { - syslog(LOG_DEBUG, "startAnalysis called\n"); + int i; + for (i = 0; i < argc; i++) { + if (strcmp(argv[i], "noprint") == 0) { + ourArgs->noPrint = 1; + } + if (strcmp(argv[i], "debug") == 0) { + ourArgs->debug = 1; + } + } + if (ourArgs->debug) { + fprintf(stderr, "startAnalysis called\n"); + } return 0; } @@ -24,60 +40,84 @@ int analyseEvt(void *evt) int i; void *subEvt; - syslog(LOG_DEBUG, "analyseEvt called\n"); + if (ourArgs->debug) { + fprintf(stderr, "analyseEvt called\n"); + } - /* print the event header */ - printf( - "size: 0x%08x decoding: 0x%08x id: 0x%08x seqNr: 0x%08x\n" - "date: %s time: %s runNr: 0x%08x expId: %s\n", - Evt_size(evt), Evt_decoding(evt), Evt_id(evt), Evt_seqNr(evt), - Evt_date2charP(evt), Evt_time2charP(evt), Evt_runNr(evt), - Evt_expId2charP(evt) - ); + if (!ourArgs->noPrint) { + /* print the event header */ + printf("size: 0x%08x decoding: 0x%08x id: 0x%08x seqNr: 0x%08x\n" + "date: %s time: %s runNr: 0x%08x expId: %s\n", + Evt_size(evt), Evt_decoding(evt), Evt_id(evt), Evt_seqNr(evt), + Evt_date2charP(evt), Evt_time2charP(evt), Evt_runNr(evt), Evt_expId2charP(evt) + ); + } + if (Evt_size(evt) < Evt_hdrSize()) { + fprintf(stderr, " evt: %s\n", Evt_2charP(evt)); + fprintf(stderr, "Evt_size(evt) < Evt_hdrSize(), abort\n"); + abort(); + } i = 0; /* loop over all subevents */ for (subEvt = Evt_data(evt); subEvt < Evt_end(evt); subEvt = Evt_next(evt, subEvt)) { - printf("size: 0x%08x decoding: 0x%08x id: 0x%08x trigNr: 0x%08x\n", - SubEvt_size(subEvt), SubEvt_decoding(subEvt), SubEvt_id(subEvt), SubEvt_trigNr(subEvt)); - if (SubEvt_decoding(subEvt) == SubEvtDecoding_32bitData) { - for (i = 0; i < SubEvt_dataSize(subEvt) / sizeof(uint32_t); i++) { - if (i % 4 == 0) { /* newline and the offset in the subEvt */ - printf("\n%08x:", i * sizeof(uint32_t)); + if (!ourArgs->noPrint) { + printf("size: 0x%08x decoding: 0x%08x id: 0x%08x trigNr: 0x%08x\n", + SubEvt_size(subEvt), SubEvt_decoding(subEvt), SubEvt_id(subEvt), SubEvt_trigNr(subEvt)); + if (SubEvt_decoding(subEvt) == SubEvtDecoding_32bitData) { + for (i = 0; i < SubEvt_dataSize(subEvt) / sizeof(uint32_t); i++) { + if (i % 4 == 0) { /* newline and the offset in the subEvt */ + printf("\n%08x:", i * sizeof(uint32_t)); + } + printf(" 0x%08x", SubEvt_dataValue(subEvt, i)); } - printf(" 0x%08x", SubEvt_dataValue(subEvt, i)); - } - } else if (SubEvt_decoding(subEvt) == SubEvtDecoding_16bitData) { - for (i = 0; i < SubEvt_dataSize(subEvt) / sizeof(uint16_t); i++) { - if (i % 8 == 0) { /* newline and the offset in the subEvt */ - printf("\n%08x:", i * sizeof(uint16_t)); + } else if (SubEvt_decoding(subEvt) == SubEvtDecoding_16bitData) { + for (i = 0; i < SubEvt_dataSize(subEvt) / sizeof(uint16_t); i++) { + if (i % 8 == 0) { /* newline and the offset in the subEvt */ + printf("\n%08x:", i * sizeof(uint16_t)); + } + printf(" 0x%04x", SubEvt_dataValue(subEvt, i)); } - printf(" 0x%04x", SubEvt_dataValue(subEvt, i)); - } - } else if (SubEvt_decoding(subEvt) == SubEvtDecoding_8bitData) { - for (i = 0; i < SubEvt_dataSize(subEvt) / sizeof(uint8_t); i++) { - if (i % 16 == 0) { /* newline and the offset in the subEvt */ - printf("\n%08x:", i); + } else if (SubEvt_decoding(subEvt) == SubEvtDecoding_8bitData) { + for (i = 0; i < SubEvt_dataSize(subEvt) / sizeof(uint8_t); i++) { + if (i % 16 == 0) { /* newline and the offset in the subEvt */ + printf("\n%08x:", i); + } + printf(" 0x%02x", SubEvt_dataValue(subEvt, i)); } - printf(" 0x%02x", SubEvt_dataValue(subEvt, i)); - } - } else if (SubEvt_decoding(subEvt) == SubEvtDecoding_text) { - char *data; + } else if (SubEvt_decoding(subEvt) == SubEvtDecoding_text) { + char *data; - printf("%c", '\n'); - data = (char *) SubEvt_data(subEvt); - for (i = 0; i < SubEvt_dataSize(subEvt); i++) { - printf("%c", data[i]); + printf("%c", '\n'); + data = (char *) SubEvt_data(subEvt); + for (i = 0; i < SubEvt_dataSize(subEvt); i++) { + printf("%c", data[i]); + } } + printf("%c", '\n'); + } + if (SubEvt_size(subEvt) < SubEvt_hdrSize()) { + fprintf(stderr, " evt: %s\n", Evt_2charP(evt)); + fprintf(stderr, "subEvt: %s\n", SubEvt_2charP(subEvt)); + fprintf(stderr, "SubEvt_size(subEvt) < SubEvt_hdrSize(), skip rest of event\n"); + break; + } else if (SubEvt_size(subEvt) > Evt_size(evt) - Evt_hdrSize()) { + fprintf(stderr, " evt: %s\n", Evt_2charP(evt)); + fprintf(stderr, "subEvt: %s\n", SubEvt_2charP(subEvt)); + fprintf(stderr, "SubEvt_size(subEvt) < Evt_size(evt) - Evt_hdrSize(), skip rest of event\n"); + break; } + } + if (!ourArgs->noPrint) { printf("%c", '\n'); } - printf("%c", '\n'); return 0; } int stopAnalysis(void) { - syslog(LOG_DEBUG, "stopAnalysis called\n"); + if (ourArgs->debug) { + fprintf(stderr, "stopAnalysis called\n"); + } return 0; }