From 223cb9717b6418735d5464cdd4a191547d1d417a Mon Sep 17 00:00:00 2001 From: hadaq Date: Tue, 29 Oct 2002 17:43:38 +0000 Subject: [PATCH] Forward sub event data errors to crate event -- mm --- hadaq/Makefile.in | 2 +- hadaq/configure | 82 +++++++++++++++++++++++++++++++++++++++++----- hadaq/configure.in | 5 +++ hadaq/hwmdc.c | 13 ++++++-- hadaq/hwrich.c | 13 ++++++-- hadaq/hwshow.c | 13 ++++++-- hadaq/hwtrig.c | 16 +++++++-- 7 files changed, 123 insertions(+), 21 deletions(-) diff --git a/hadaq/Makefile.in b/hadaq/Makefile.in index 1006e70..e690256 100644 --- a/hadaq/Makefile.in +++ b/hadaq/Makefile.in @@ -162,7 +162,7 @@ DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best DEP_FILES = .deps/agent.P .deps/agent_clnt.P .deps/agent_svc.P \ .deps/agent_xdr.P .deps/ansiTape.P .deps/ansiTapeChar.P \ diff --git a/hadaq/configure b/hadaq/configure index 563b520..b09c0ee 100644 --- a/hadaq/configure +++ b/hadaq/configure @@ -2050,6 +2050,72 @@ if test "$ac_cv_search_conLVme" != "no"; then else : +fi +if test "x$ac_cv_search_conLVme" = "xno" +then +unset ac_cv_search_conLVme + +echo $ac_n "checking for library containing conLVme""... $ac_c" 1>&6 +echo "configure:2060: checking for library containing conLVme" >&5 +if eval "test \"`echo '$''{'ac_cv_search_conLVme'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_func_search_save_LIBS="$LIBS" +ac_cv_search_conLVme="no" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_search_conLVme="none required" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +test "$ac_cv_search_conLVme" = "no" && for i in lvme; do +LIBS="-l$i -llynx $ac_func_search_save_LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_search_conLVme="-l$i" +break +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +done +LIBS="$ac_func_search_save_LIBS" +fi + +echo "$ac_t""$ac_cv_search_conLVme" 1>&6 +if test "$ac_cv_search_conLVme" != "no"; then + test "$ac_cv_search_conLVme" = "none required" || LIBS="$ac_cv_search_conLVme $LIBS" + LIBS="-llvme -llynx $LIBS" +else : + +fi fi if test x$ac_cv_search_conLVme = xno then @@ -2057,14 +2123,14 @@ unset ac_cv_search_conLVme LIBS="-L/lib/ces $LIBS" echo $ac_n "checking for library containing conLVme""... $ac_c" 1>&6 -echo "configure:2061: checking for library containing conLVme" >&5 +echo "configure:2127: checking for library containing conLVme" >&5 if eval "test \"`echo '$''{'ac_cv_search_conLVme'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_conLVme="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_conLVme="none required" else @@ -2086,7 +2152,7 @@ rm -f conftest* test "$ac_cv_search_conLVme" = "no" && for i in lvme; do LIBS="-l$i -lvme -lbma -luio $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_conLVme="-l$i" break @@ -2125,7 +2191,7 @@ fi echo $ac_n "checking for SYSLOG_syslog in -lcompat""... $ac_c" 1>&6 -echo "configure:2129: checking for SYSLOG_syslog in -lcompat" >&5 +echo "configure:2195: checking for SYSLOG_syslog in -lcompat" >&5 ac_lib_var=`echo compat'_'SYSLOG_syslog | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2133,7 +2199,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcompat $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else diff --git a/hadaq/configure.in b/hadaq/configure.in index b406008..805b652 100644 --- a/hadaq/configure.in +++ b/hadaq/configure.in @@ -72,6 +72,11 @@ AC_ERROR([ATM library not found]) fi AC_SEARCH_LIBS(conLVme, lvme) +if test "x$ac_cv_search_conLVme" = "xno" +then +unset ac_cv_search_conLVme +AC_SEARCH_LIBS(conLVme, lvme, LIBS="-llvme -llynx $LIBS",, -llynx) +fi if test x$ac_cv_search_conLVme = xno then unset ac_cv_search_conLVme diff --git a/hadaq/hwmdc.c b/hadaq/hwmdc.c index 008548c..f3306eb 100644 --- a/hadaq/hwmdc.c +++ b/hadaq/hwmdc.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwmdc.c,v 6.26 2002-10-29 17:35:46 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwmdc.c,v 6.27 2002-10-29 17:43:38 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -103,9 +103,11 @@ void Hardware_waitForTrigger(Hardware *my, void *partEvt) void *subEvt = SubEvt_data(partEvt); static unsigned long trigNr = 0; unsigned trigTag; + int dataError; /* init partial event, necessary for SubEvt_next() */ SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts); + dataError = 0; SubEvt_setId(partEvt, 0); for (i = 0; i < my->nSams; i++) { @@ -121,13 +123,15 @@ void Hardware_waitForTrigger(Hardware *my, void *partEvt) if (!HwSam_isBusy(my->sam[i])) { HwSam_getEndOfData(my->sam[i]); if (HwSam_readSubEvt(my->sam[i], subEvt) == 0) { + if (SubEvt_dataError(subEvt)) { + dataError = 1; + } if (firstSam < 0) { trigTag = SubEvt_trigNr(subEvt) & 0xff; firstSam = i; } else { if (trigTag != (SubEvt_trigNr(subEvt) & 0xff)) { - SubEvt_setDataError(subEvt); - SubEvt_setDataError(partEvt); + dataError = 1; syslog(LOG_ERR, "(%s)Trigger tag mismatch: 0x%08x (%d) != 0x%08x", my->sam[i]->name, trigTag, firstSam, SubEvt_trigNr(subEvt)); } @@ -153,6 +157,9 @@ void Hardware_waitForTrigger(Hardware *my, void *partEvt) #endif } while (nRequests); + if (dataError) { + SubEvt_setDataError(partEvt); + } SubEvt_setTrigNr(partEvt, trigNr << 8 | trigTag); SubEvt_setSize(partEvt, (char *) subEvt - (char *) partEvt); trigNr++; diff --git a/hadaq/hwrich.c b/hadaq/hwrich.c index b124bce..9d86196 100644 --- a/hadaq/hwrich.c +++ b/hadaq/hwrich.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.33 2002-10-27 09:11:14 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.34 2002-10-29 17:43:48 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -119,21 +119,25 @@ void Hardware_readout(Hardware *my, void *partEvt) void *subEvt = SubEvt_data(partEvt); static unsigned long trigNr = 0; unsigned trigTag; + int dataError; /* init partial event, necessary for SubEvt_next() */ SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts); + dataError = 0; SubEvt_setId(partEvt, 0); /* read all races, check for common trigger tag */ for (i = 0; i < my->nRaces; i++) { if (HwRace_readSubEvt(my->race[i], subEvt) == 0) { + if (SubEvt_dataError(subEvt)) { + dataError = 1; + } if (firstRace < 0) { trigTag = SubEvt_trigNr(subEvt) & 0xff; firstRace = i; } else { if (trigTag != (SubEvt_trigNr(subEvt) & 0xff)) { - SubEvt_setDataError(subEvt); - SubEvt_setDataError(partEvt); + dataError = 1; syslog(LOG_ERR, "(%s)Trigger tag mismatch: 0x%08x (%d) != 0x%08x", my->race[i]->name, trigTag, firstRace, SubEvt_trigNr(subEvt)); } @@ -142,6 +146,9 @@ void Hardware_readout(Hardware *my, void *partEvt) } } + if (dataError) { + SubEvt_setDataError(partEvt); + } SubEvt_setTrigNr(partEvt, trigNr << 8 | trigTag); SubEvt_setSize(partEvt, (char *) subEvt - (char *) partEvt); trigNr++; diff --git a/hadaq/hwshow.c b/hadaq/hwshow.c index b284c9e..7e1ef92 100644 --- a/hadaq/hwshow.c +++ b/hadaq/hwshow.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwshow.c,v 6.31 2002-10-27 12:26:33 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwshow.c,v 6.32 2002-10-29 17:44:06 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -143,21 +143,25 @@ void Hardware_readout(Hardware *my, void *partEvt) void *subEvt = SubEvt_data(partEvt); static unsigned long trigNr = 0; unsigned trigTag; + int dataError; /* init partial event, necessary for SubEvt_next() */ SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts); + dataError = 0; SubEvt_setId(partEvt, 0); /* read all ships, check for common trigger tag */ for (i = 0; i < my->nShips; i++) { if (HwShip_readSubEvt(my->ship[i], subEvt) == 0) { + if (SubEvt_dataError(subEvt)) { + dataError = 1; + } if (firstShip < 0) { trigTag = SubEvt_trigNr(subEvt) & 0xff; firstShip = i; } else { if (trigTag != (SubEvt_trigNr(subEvt) & 0xff)) { - SubEvt_setDataError(subEvt); - SubEvt_setDataError(partEvt); + dataError = 1; syslog(LOG_ERR, "(%s)Trigger tag mismatch: 0x%08x (%d) != 0x%08x", my->ship[i]->name, trigTag, firstShip, SubEvt_trigNr(subEvt)); } @@ -166,6 +170,9 @@ void Hardware_readout(Hardware *my, void *partEvt) } } + if (dataError) { + SubEvt_setDataError(partEvt); + } SubEvt_setTrigNr(partEvt, trigNr << 8 | trigTag); SubEvt_setSize(partEvt, (char *) subEvt - (char *) partEvt); trigNr++; diff --git a/hadaq/hwtrig.c b/hadaq/hwtrig.c index d6023f7..42c234d 100644 --- a/hadaq/hwtrig.c +++ b/hadaq/hwtrig.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.32 2002-10-25 10:04:15 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.33 2002-10-29 17:44:44 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -230,11 +230,16 @@ void Hardware_readout(Hardware *my, void *partEvt) unsigned trigTag; int trigCode; int i; + int dataError; SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts); + dataError = 0; syslog(LOG_DEBUG, "read out MU"); trigCode = readoutTrig(my, subEvt); + if (SubEvt_dataError(subEvt)) { + dataError = 1; + } SubEvt_setId(partEvt, trigCode); trigTag = SubEvt_trigNr(subEvt) & 0xff; @@ -255,9 +260,11 @@ void Hardware_readout(Hardware *my, void *partEvt) for (i = 0; i < NCRATES; i++) { header = HwTip_readSubEvt(my->tip, data); + if (SubEvt_dataError(subEvt)) { + dataError = 1; + } if (trigTag != ((header >> 16) & 0xff)) { - SubEvt_setDataError(subEvt); - SubEvt_setDataError(partEvt); + dataError = 1; syslog(LOG_ERR, "(%s)Trigger tag mismatch: (crate: %d) 0x%08x (MU) != 0x%08x", my->tip->name, i, trigTag, (header >> 16) & 0xff); } @@ -269,6 +276,9 @@ void Hardware_readout(Hardware *my, void *partEvt) subEvt = SubEvt_next(partEvt, subEvt); } + if (dataError) { + SubEvt_setDataError(partEvt); + } SubEvt_setTrigNr(partEvt, trigNr << 8 | trigTag); SubEvt_setSize(partEvt, (char *) subEvt - (char *) partEvt); trigNr++; -- 2.43.0