]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
Running with 1 IPC
authorhades <hades>
Sun, 28 May 2000 14:44:39 +0000 (14:44 +0000)
committerhades <hades>
Sun, 28 May 2000 14:44:39 +0000 (14:44 +0000)
hadaq/hwshow.c
hadaq/param.tcl

index fbf59be36b096b57430604928c739fb60f69c1d4..6e3b388858bcf379844d9e8713ed0cf4637987cf 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwshow.c,v 6.5 2000-05-27 06:01:48 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwshow.c,v 6.6 2000-05-28 14:44:39 hades Exp $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
@@ -45,7 +45,7 @@ Hardware *newHardware(void)
        }
        my = allocMem(sizeof(Hardware));
 
-       my->maxSubEvtSize = SubEvt_hdrSize() + (1600 * sizeof(UInt4));
+       my->maxSubEvtSize = SubEvt_hdrSize() + (NSHIPS * 1600 * sizeof(UInt4));
        my->shipToRead = 0;
 
        for (i = 0; i < NSHIPS; i++) {
@@ -78,23 +78,37 @@ void deleteHardware(Hardware *my)
 
 void Hardware_waitForTrigger(Hardware *my, void *subEvt)
 {
-       if (HwShip_isEmpty(my->ship[my->shipToRead])) {
-               HwShip_requestBuffer(my->ship[my->shipToRead]);
-               while (HwShip_isBusy(my->ship[my->shipToRead])) {
-#if 1
-                       struct timespec tS, *t = &tS;
-                       t->tv_sec = 0;
-                       t->tv_nsec = 020000000;
-                       nanosleep(t, NULL);
-#endif
-               }
-       }
 }
 
-void Hardware_readout(Hardware *my, void *subEvt)
+void Hardware_readout(Hardware *my, void *partEvt)
 {
-       HwShip_readSubEvt(my->ship[my->shipToRead], subEvt);
-       if (++my->shipToRead == NSHIPS ) {
-               my->shipToRead = 0;
+       void *subEvt = SubEvt_data(partEvt);
+
+       SubEvt_setDecoding(partEvt, SubEvtDecoding_SubEvts);
+
+       for (my->shipToRead = 0; my->shipToRead < NSHIPS; my->shipToRead++) {
+               if (HwShip_isEmpty(my->ship[my->shipToRead])) {
+                       HwShip_requestBuffer(my->ship[my->shipToRead]);
+                       while (HwShip_isBusy(my->ship[my->shipToRead])) {
+#if 0
+/*
+ * This sleep prevents a tight loop which stops work on real
+ * time systems if the priority of readout is not lowered.
+ * When not using the sleep use option -p -2 for daq_readout.
+*/
+                               struct timespec tS, *t = &tS;
+                               t->tv_sec = 0;
+                               t->tv_nsec = 020000000;
+                               nanosleep(t, NULL);
+#endif
+                       }
+               }
+               HwShip_readSubEvt(my->ship[my->shipToRead], subEvt);
+               SubEvt_setTrigNr(partEvt, SubEvt_trigNr(subEvt));
+               subEvt = SubEvt_next(partEvt, subEvt);
        }
+
+       SubEvt_setSize(partEvt, (char *)subEvt - (char *)partEvt);
+       SubEvt_setId(partEvt, 0);
+       msglog(LOG_DEBUG, "partEvt: %s\n", SubEvt_2charP(partEvt));
 }
index 688f54f013699ccd2dca6278e8c905cee92aebc5..096baceb7f84491bca58480589449621238021be 100644 (file)
@@ -2,7 +2,7 @@ set soft(size) 1024
 
 set dtu(cardbase) 0x44100000
 
-set ship0(cardbase) 0xC00000
+set ship0(cardbase) 0x100000
 set ship1(cardbase) 0x800000
 set race0(cardbase) 0x00000000
 set race1(cardbase) 0x10000000