{
UInt4 *data = SubEvt_data(subEvt);
UInt4 *first = data;
+ size_t size;
- switch (SubEvt_id(subEvt)) {
+ switch (SubEvt_pureId(subEvt)) {
case SubEvtId_trigCode:
*data++ = 0x00000001;
break;
*data++ = 0x55aa00FF;
*data++ = 0x55aa00FF;
*data++ = 0x55aa00FF;
-#if 0
- data += (int) ((10000.0 * rand()) / RAND_MAX);
- data += (int) ((10000.0 * rand()) / RAND_MAX);
- data += (int) ((10000.0 * rand()) / RAND_MAX);
- data += (int) ((10000.0 * rand()) / RAND_MAX);
+#if 1
+ data += (int) ((1000.0 * rand()) / RAND_MAX);
+ data += (int) ((1000.0 * rand()) / RAND_MAX);
+ data += (int) ((1000.0 * rand()) / RAND_MAX);
+ data += (int) ((1000.0 * rand()) / RAND_MAX);
+ data += (int) ((1000.0 * rand()) / RAND_MAX);
+ data += (int) ((1000.0 * rand()) / RAND_MAX);
#endif
break;
}
- SubEvt_setSize(subEvt, SubEvt_size(subEvt) + sizeof(UInt4) * (data - first));
+ size = SubEvt_size(subEvt) + sizeof(UInt4) * (data - first);
+ if (size > my->maxSubEvtSize) {
+ SubEvt_setId(subEvt, SubEvt_id(subEvt) | 0x80000000);
+ size = my->maxSubEvtSize;
+ }
+ SubEvt_setSize(subEvt, size);
}
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.7 1999-11-01 08:33:00 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.8 1999-11-17 14:06:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
HwV775 **v775 = ((Modules *) my->specific)->v775;
HwV878 **v878 = ((Modules *) my->specific)->v878;
- switch (SubEvt_id(subEvt)) {
+ switch (SubEvt_pureId(subEvt)) {
case SubEvtId_trigCode:
readoutDummy(subEvt);
break;
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.2 1999-10-06 17:05:08 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.3 1999-11-17 14:06:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
size_t queueSize;
unsigned long *trigAccepted;
unsigned long *subevtsRead;
+ unsigned long *subevtsDataErr;
isStandalone = 1;
outPath = "subevtqueue";
}
trigAccepted = Worker_addStatistic(worker, "trigAccepted");
subevtsRead = Worker_addStatistic(worker, "subevtsRead");
+ subevtsDataErr = Worker_addStatistic(worker, "subevtsDataErr");
Worker_initEnd(worker);
Hardware_readout(hw, subEvt);
(*subevtsRead)++;
+ if (SubEvt_dataError(subEvt)) {
+ (*subevtsDataErr)++;
+ }
(*trigAccepted) = SubEvt_trigNr(subEvt) >> 8;
#ifndef NDEBUG
msglog(LOG_DEBUG, "hadTuQueue: %p = subEvt: %s\n", subEvt, SubEvt_2charP(subEvt));
-static char rcsId[] = "$Id: subevt.c,v 6.2 1999-09-04 15:39:25 hades Exp $";
+static char rcsId[] = "$Id: subevt.c,v 6.3 1999-11-17 14:06:47 hades Stab $";
#include <stdlib.h>
#include <errno.h>
return SubEvt_hdrValue(my, SubEvtIdx_id);
}
+UInt4 SubEvt_pureId(const void *my)
+{
+ return SubEvt_hdrValue(my, SubEvtIdx_id) & 0x7fffffffU;
+}
+
+int SubEvt_dataError(const void *my)
+{
+ return (SubEvt_hdrValue(my, SubEvtIdx_id) & 0x80000000) != 0;
+}
+
void SubEvt_setId(void *my, UInt4 id)
{
SubEvt_setHdrValue(my, SubEvtIdx_id, id);
char *SubEvt_2charP(const void *my);
UInt4 SubEvt_id(const void *my);
+UInt4 SubEvt_pureId(const void *my);
+int SubEvt_dataError(const void *my);
void SubEvt_setId(void *my, UInt4 id);
UInt4 SubEvt_trigNr(const void *my);
void SubEvt_setTrigNr(void *my, UInt4 trigNr);