From: hadaq Date: Fri, 18 Jun 2010 11:19:19 +0000 (+0000) Subject: Trigger type to event header is done. Sergey. X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=5941d8243c199a74d8532b180f8e01a631c7340f;p=daqdata.git Trigger type to event header is done. Sergey. --- diff --git a/hadaq/subevt.c b/hadaq/subevt.c index dcb6655..4665625 100644 --- a/hadaq/subevt.c +++ b/hadaq/subevt.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/subevt.c,v 6.14 2010-06-16 14:45:05 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/subevt.c,v 6.15 2010-06-18 11:19:19 hadaq Exp $"; #include #include @@ -45,27 +45,32 @@ uint32_t SubEvt_dataValue(const void *my, unsigned idx) return val; } -uint32_t SubEvt_errBit(const void *my) +unsigned SubEvt_nrOfDataWords(const void *my) { unsigned i; - uint32_t val; if (SubEvt_decoding(my) == SubEvtDecoding_32bitData) { i = SubEvt_dataSize(my) / sizeof(uint32_t) - 1; - - val = SubEvt_dataValue(my, i); } else if (SubEvt_decoding(my) == SubEvtDecoding_16bitData) { i = SubEvt_dataSize(my) / sizeof(uint16_t) - 1; - - val = SubEvt_dataValue(my, i); } else if (SubEvt_decoding(my) == SubEvtDecoding_8bitData) { i = SubEvt_dataSize(my) / sizeof(uint8_t) - 1; - - val = SubEvt_dataValue(my, i); } else { fprintf(stderr, " Unknown decoding: %i\n", SubEvt_decoding(my)); } + return i; +} + +uint32_t SubEvt_errBit(const void *my) +{ + unsigned i; + uint32_t val; + + i = SubEvt_nrOfDataWords(my); + + val = SubEvt_dataValue(my, i); + return val; } @@ -73,26 +78,19 @@ uint32_t SubEvt_debugWord(const void *my) { unsigned i; uint32_t val; - unsigned wordNumber = -1; + unsigned wordNr = -1; + /* Define debug word for the RICH */ if (SubEvt_id(my) == 0x00008300UL || SubEvt_id(my) == 0x00008310UL || SubEvt_id(my) == 0x00008320UL) { - wordNumber = 2; + wordNr = 2; } - if (SubEvt_decoding(my) == SubEvtDecoding_32bitData) { - i = SubEvt_dataSize(my) / sizeof(uint32_t) - 1; - } else if (SubEvt_decoding(my) == SubEvtDecoding_16bitData) { - i = SubEvt_dataSize(my) / sizeof(uint16_t) - 1; - } else if (SubEvt_decoding(my) == SubEvtDecoding_8bitData) { - i = SubEvt_dataSize(my) / sizeof(uint8_t) - 1; - } else { - fprintf(stderr, " Unknown decoding: %i\n", SubEvt_decoding(my)); - } + i = SubEvt_nrOfDataWords(my); - if (wordNumber == -1) { + if (wordNr == -1) { val = 0; - } else if (i > wordNumber) { - val = SubEvt_dataValue(my, wordNumber - 1); + } else if (i > wordNr) { + val = SubEvt_dataValue(my, wordNr - 1); } else { val = 0; } @@ -100,6 +98,23 @@ uint32_t SubEvt_debugWord(const void *my) return val; } +uint32_t SubEvt_trigType(const void *my, uint32_t wordNr, uint32_t bitmask, uint32_t bitshift) +{ + unsigned i; + uint32_t trigType; + uint32_t val; + + i = SubEvt_nrOfDataWords(my); + + if (i > wordNr) { + val = SubEvt_dataValue(my, wordNr - 1); + } else { + return 0; + } + + return (val & bitmask) >> bitshift; +} + char *SubEvt_2charP(const void *my) { static char buf[132];