-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrace.c,v 6.21 2002-10-15 18:15:29 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrace.c,v 6.22 2002-10-16 08:09:40 hadaq Exp $";
#define _POSIX_C_SOURCE 199309L
#define RACE_NODATASIZE 0x10
int HwRace_readSubEvt(HwRace *my, void *subEvt)
{
- uint32_t *data = (uint32_t *) subEvt;
- int lastAddr;
- int currAddr;
- int size;
+ int readSubEvtR;
+ unsigned long size;
+ unsigned long lastAddr;
- currAddr = my->currAddr;
- size = Rc_readMem(my->rc, currAddr);
+ size = Rc_readMem(my->rc, my->currAddr);
lastAddr = my->currAddr + size;
- /* align my->currAddr to next page */
- my->currAddr = lastAddr + (RCPAGESIZE - 1) & ~(RCPAGESIZE - 1);
-
if (size <= RACE_NODATASIZE) {
- size = 0;
+ my->currAddr = lastAddr;
+ readSubEvtR = 1;
+ syslog(LOG_DEBUG, "subEvt: empty, skipped");
} else {
+ uint32_t *data = (uint32_t *) subEvt;
+
/* copy one sub evt from RC to memory */
- *data++ = size;
- while ((currAddr += 4) < lastAddr) {
- *data++ = Rc_readMem(my->rc, currAddr);
+ while (my->currAddr < lastAddr) {
+ *data++ = Rc_readMem(my->rc, my->currAddr);
+ my->currAddr += 4;
}
+ readSubEvtR = 0;
syslog(LOG_DEBUG, "subEvt: %s", SubEvt_2charP(subEvt));
}
- return size;
+ /* align currAddr to next page */
+ my->currAddr = lastAddr + (RCPAGESIZE - 1) & ~(RCPAGESIZE - 1);
+
+ return readSubEvtR;
}
-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.27 2002-10-15 16:27:24 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.28 2002-10-16 08:09:40 hadaq Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
void *subEvt = SubEvt_data(partEvt);
static uint32_t trigNr = 0;
uint32_t trigTag;
- int size;
/* init partial event, necessary for SubEvt_next() */
SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts);
/* read all races, check for common trigger tag */
for (i = 0; i < my->nRaces; i++) {
- if ((size = HwRace_readSubEvt(my->race[i], subEvt)) > 0) {
+ if (HwRace_readSubEvt(my->race[i], subEvt) == 0) {
if (firstRace < 0) {
trigTag = SubEvt_trigNr(subEvt) & 0xff;
firstRace = i;