-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.6 2000-05-27 05:22:22 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.7 2000-05-27 06:02:32 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
}
my = allocMem(sizeof(Hardware));
- my->maxSubEvtSize = SubEvt_hdrSize() + (2500 * sizeof(UInt4));
+ my->maxSubEvtSize = SubEvt_hdrSize() + (NRACES * 2500 * sizeof(UInt4));
my->raceToRead = 0;
for (i = 0; i < NRACES; i++) {
void Hardware_waitForTrigger(Hardware *my, void *subEvt)
{
#ifdef SYNCHRONOUS
- int i, j;
static int beginRun = 1; /* eat 1 triggers at begin run */
while (beginRun > 0) {
beginRun--;
}
#endif
- if (HwRace_isEmpty(my->race[my->raceToRead])) {
+}
+
+void Hardware_readout(Hardware *my, void *partEvt)
+{
+ void *subEvt = SubEvt_data(partEvt);
+ int i, j;
+
+ SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts);
+
+ for (my->raceToRead = 0; my->raceToRead < NRACES; my->raceToRead++) {
+ if (HwRace_isEmpty(my->race[my->raceToRead])) {
#ifdef SYNCHRONOUS
- LVme_setL(my->lvme, RELEASE1, 0xee);
- for (i = 0; i < 20000; i++) {
- j = 1 + 1;
- }
-/* msglog(LOG_INFO, "buffer is empty RC %d\n",my->raceToRead); */
+ LVme_setL(my->lvme, RELEASE1, 0xee);
+ for (i = 0; i < 20000; i++) {
+ j = 1 + 1;
+ }
#endif
- HwRace_requestBuffer(my->race[my->raceToRead]);
+ HwRace_requestBuffer(my->race[my->raceToRead]);
#ifdef SYNCHRONOUS
- for (i = 0; i < 20000; i++) {
- j = 1 + 1;
- }
-/* msglog(LOG_INFO, "switch request set\n"); */
+ for (i = 0; i < 20000; i++) {
+ j = 1 + 1;
+ }
#endif
- while (HwRace_isBusy(my->race[my->raceToRead])) {
+ while (HwRace_isBusy(my->race[my->raceToRead])) {
#if 0
/*
* This sleep prevents a tight loop which stops work on real
t->tv_nsec = 020000000;
nanosleep(t, NULL);
#endif
+ }
}
+ HwRace_readSubEvt(my->race[my->raceToRead], subEvt);
+ SubEvt_setTrigNr(partEvt, SubEvt_trigNr(subEvt));
+ subEvt = SubEvt_next(partEvt, subEvt);
}
-}
-void Hardware_readout(Hardware *my, void *subEvt)
-{
- HwRace_readSubEvt(my->race[my->raceToRead], subEvt);
- if (++my->raceToRead == NRACES) {
- my->raceToRead = 0;
- }
+ SubEvt_setSize(partEvt, (char *)subEvt - (char *)partEvt);
+ SubEvt_setId(partEvt, 0);
+ msglog(LOG_DEBUG, "partEvt: %s\n", SubEvt_2charP(partEvt));
}