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);
-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
typedef struct TheStatsS {
unsigned long *evtsDiscarded;
unsigned long *evtsComplete;
+ unsigned long *evtsDataError;
unsigned long *bytesWritten;
unsigned long *triggerType[NTRIGTYPES];
unsigned long *trigNr[32];
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;
) {
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) {
}
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) {
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];
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;
}
Evt_online(evt);
(*theStats->evtsComplete)++;
+ if (Evt_dataError(subEvt)) {
+ (*theStats->evtsDataError)++;
+ }
(*theStats->triggerType[currId])++;
(*theStats->bytesWritten) += Evt_size(evt);
} else {
-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
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
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++;
}
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));
}
-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
&& 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));
"bytesReceived", i, unit(*my[i]->bytesReceived - lastBR[i]));
lastBR[i] = *my[i]->bytesReceived;
fputc('\n', stderr);
- fputs("------------------------------------------------------------------------------", stderr);
+ fputs("------------------------------------------------------------------------------\n", stderr);
}
lastTime += dT;
}