]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
*** empty log message ***
authormuench <muench>
Wed, 6 Oct 1999 17:02:06 +0000 (17:02 +0000)
committermuench <muench>
Wed, 6 Oct 1999 17:02:06 +0000 (17:02 +0000)
12 files changed:
hadaq/Makefile
hadaq/evtbuild.c
hadaq/hadaq.tcl
hadaq/ht99.tcl
hadaq/hwmdc.c
hadaq/hwsam.c
hadaq/hwsam.h
hadaq/hwsoft.c
hadaq/netmem.c
hadaq/nettrans.c
hadaq/readout.c
hadaq/sam_defs.h

index a020140c9e16f2ad5204c07091be9e7905db3727..2e82d84f36c00827acebd9d43eb1a6ebce74bddf 100644 (file)
@@ -6,11 +6,11 @@
 #DEFINES = -UNDEBUG -DHADESSTD_NEXITSTAT -DHADESSTD_NGETOPT
 
 # UNIX w/o ATM
-CC = c89
-RPCGEN = rpcgen
-LOADLIBES = -L/usr/local/lib/ -lhadesstd -llvme -lrt -ltk -lX11 -ltcl -lm
-INCLUDES = -I/usr/local/include -I/usr/fore/include
-DEFINES = -UNDEBUG -DHADESSTD_NEXITSTAT -DHADESSTD_NGETOPT -DNOATM
+#CC = c89
+#RPCGEN = rpcgen
+#LOADLIBES = -L/usr/local/lib/ -lhadesstd -llvme -lrt -ltk -lX11 -ltcl -lm
+#INCLUDES = -I/usr/local/include -I/usr/fore/include
+#DEFINES = -UNDEBUG -DHADESSTD_NEXITSTAT -DHADESSTD_NGETOPT -DNOATM
 
 # Linux
 #CC = gcc
@@ -20,11 +20,11 @@ DEFINES = -UNDEBUG -DHADESSTD_NEXITSTAT -DHADESSTD_NGETOPT -DNOATM
 #DEFINES = -UNDEBUG -DHADESSTD_NEXITSTAT -DHADESSTD_NGETOPT -DNOATM
 
 # LynxOS
-#CC = gcc
-#RPCGEN = rpcgen
-#LOADLIBES = -L/usr/local/lib -L$(HOME)/lib/$(SYSTYPE) -lhadesstd -llvme -ltcl -lm -lrpc -lnetinet -L/lib/ces -lvme -lbma -luio
-#INCLUDES = -I/usr/local/include -I$(HOME)/include
-#DEFINES = -UNDEBUG -DHADESSTD_NEXITSTAT -DNOATM
+CC = gcc
+RPCGEN = rpcgen
+LOADLIBES = -L/usr/local/lib -L$(HOME)/lib/$(SYSTYPE) -lhadesstd -llvme -ltcl -lm -lrpc -lnetinet -L/lib/ces -lvme -lbma -luio
+INCLUDES = -I/usr/local/include -I$(HOME)/include
+DEFINES = -UNDEBUG -DHADESSTD_NEXITSTAT
 
 # LynxOS
 #CC = gcc
index d982d1924543a3b32b28c95ad8d83f701fa42cf4..108dc302573c88d5c1f3a741071a7e82347f2259 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.5 1999-09-09 14:54:44 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.6 1999-10-06 17:02:06 muench Exp $";
 
 #define _XOPEN_SOURCE
 #include <unistd.h>
@@ -166,7 +166,7 @@ int main(int argc, char *argv[])
        outDev = "null";
        priority = 0;
        runNr = time(NULL);
-       queueSize = 100 * 1024;
+       queueSize = 10 * 1024;
 
        while ((i = getopt(argc, argv, "am:f:r:s:o:d:p:v:")) != -1) {
                switch (i) {
@@ -248,14 +248,14 @@ int main(int argc, char *argv[])
                exit(EXIT_FAILURE);
        }
        if (nrOfMsgs == 0) {
-               /*
-       no '-m' option was on command line, we assume that the readout task
-       (daq_readout) is running on the same node and communicates directly
-       via shared memory */
+               /* 
+                  no '-m' option was on command line, we assume that the readout task
+                  (daq_readout) is running on the same node and communicates directly
+                  via shared memory */
                shmTrans = allocMem(sizeof(ShmTrans *));
                hadTuQueue = allocMem(sizeof(HadTuQueue *));
 
-               shmTrans[0] = ShmTrans_create("subevtqueue", 2 * queueSize);
+               shmTrans[0] = ShmTrans_create("subevtqueue", 100 * queueSize);
                hadTuQueue[0] = NULL;
                nrOfMsgs = 1;
        } else {
@@ -266,7 +266,7 @@ int main(int argc, char *argv[])
                        char buf[_POSIX_PATH_MAX];
 
                        sprintf(buf, "netqueue%d", i);
-                       shmTrans[i] = ShmTrans_create(buf, 2 * queueSize);
+                       shmTrans[i] = ShmTrans_create(buf, 100 * queueSize);
                        hadTuQueue[i] = NULL;
                }
        }
@@ -305,22 +305,29 @@ int main(int argc, char *argv[])
                        if (NULL != (subEvt = HadTuQueue_front(hadTuQueue[i]))) {
 #ifndef NDEBUG
                                msglog(LOG_DEBUG, "hadTuQueue[%d]: %p = subEvt: %s\n", i, subEvt, SubEvt_2charP(subEvt));
+                               msglog(LOG_DEBUG, "currTrigNr: 0x%08x, currNrOfSubEvts %d\n", currTrigNr, currNrOfSubEvts);
+                               msglog(LOG_DEBUG, "evtsComplete: %d, evtsDiscarded %d\n", *evtsComplete, *evtsDiscarded);
 #endif
                                if (i == 0 && currNrOfSubEvts == 0) {
-                                       /* upper 24 bit of trigNr should be a sequence */
-                                       (*evtsDiscarded) += (SubEvt_trigNr(subEvt) >> 8)
-                                               - ((currTrigNr + 0x100) >> 8);
-
+#if 0
+                                       if (currTrigNr != 0xffffffff) {
+                                               /* upper 24 bit of trigNr should be a sequence */
+                                               (*evtsDiscarded) += (SubEvt_trigNr(subEvt) >> 8)
+                                                       - ((currTrigNr + 0x100) >> 8);
+                                       }
+#endif
                                        currTrigNr = SubEvt_trigNr(subEvt);
                                }
                                if (SubEvt_id(subEvt) == SubEvtId_trigCode) {
-                                       /* BUGBUG, this is indeed no header word */
-                                       Evt_setId(evt, SubEvt_hdrValue(subEvt, 4));
+                                       Evt_setId(evt, SubEvt_dataValue(subEvt, 0));
                                }
                                if (SubEvt_trigNr(subEvt) == currTrigNr) {
                                        evt = Evt_appendSubEvt(evt, subEvt);
                                        HadTuQueue_pop(hadTuQueue[i]);
                                        currNrOfSubEvts++;
+                               } else if (SubEvt_trigNr(subEvt) < currTrigNr) {
+                                       HadTuQueue_pop(hadTuQueue[i]);
+                                       /* BUGBUG subevt discarded, not in statistic */
                                } else {
                                        tryNext = 1;
                                }
index fdf7f4bbdfcfbaf4dad45355eecb2d11db5a0a39..97d558b02e7b5ce136a4b6aee91381f04d281570 100644 (file)
@@ -337,6 +337,8 @@ proc updateAcquisitionButtons {} {
 }
 
 proc startAcquisitionCmd {} {
+       #exec rsh hades19 sh -c {'cd ht99/slow; PATH=$PATH:/usr/local/bin:$HOME/bin; ./tof init'} </dev/null >>&hadaq.log
+       #exec rsh hades21 sh -c {'cd ht99/slow; PATH=$PATH:/usr/local/bin:$HOME/bin; ./mdc init'} </dev/null >>&hadaq.log
        group start acquisition
        updateAcquisitionButtons
 }
@@ -435,6 +437,7 @@ proc loadTapeCmd {} {
                        set tapeInfo(vol) "VOL1ULTRIX                           HADES                                     3"
                        exec mt rewind
                } else {
+                       set tapeInfo(vol) {}
                        exec mt seod
                        exec mt bsf 1
                }
index 64dc30e2f0a4fa86af217a0c28592e0f701d3c64..020629839aae2fb59994c28909b81b8cdb2b6bdb 100644 (file)
@@ -1,12 +1,24 @@
-agent create hades12 root /home/hades/ht99/daq/hadaq
-agent create hades19 hades /home/hades/ht99/daq/hadaq
-worker create hades12:evtbuild -a -p -2 -s 2 -m 1 -f runinfo.tcl
-worker create hades12:netmem -a -p -1 -m 1
-worker create hades19:memnet -a -p -1 -o 0:50 -w 0
+agent create acheron root /home/hades/ht99/eb/hadaq
+agent create hades23 hades /home/hades/ht99/show/hadaq
+agent create hades21 hades /home/hades/ht99/mdc/hadaq
+agent create hades19 hades /home/hades/ht99/tof/hadaq
+worker create acheron:evtbuild -a -p -2 -s 6 -m 3 -f runinfo.tcl
+worker create acheron:netmem -a -p -1 -m 3
+worker create hades23:memnet -a -p -1 -o 0:50 -w 9638
+worker create hades23:readout -a -p -2
+worker create hades21:memnet -a -p -1 -o 0:51 -w 175
+worker create hades21:readout -a -p -2
+worker create hades19:memnet -a -p -1 -o 0:52 -w 537
 worker create hades19:readout -a -p -2
+worker create hades19:ctrlctu -a -p 0
 group create acquisition
 group create run
+group add acquisition hades23:memnet
+group add acquisition hades23:readout
+group add acquisition hades21:memnet
+group add acquisition hades21:readout
 group add acquisition hades19:memnet
 group add acquisition hades19:readout
-group add run hades12:evtbuild
-group add run hades12:netmem
+group add acquisition hades19:ctrlctu
+group add run acheron:evtbuild
+group add run acheron:netmem
index a07d8fd4ed72adfa49cf5e6420543302169b7d50..f623cb0972128180bf1c315f766f096c27a63092 100644 (file)
@@ -1,15 +1,23 @@
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwmdc.c,v 6.2 1999-10-06 17:02:06 muench Exp $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
+
+#include <errno.h>
+#include <stdio.h>
+#include <string.h> 
 #include <sys/time.h>
 
 #include "param.h"
 #include "subevt.h"
 #include "hwsam.h"
 
+#define NSAMS 1
+
 struct HardwareS {
        size_t maxSubEvtSize;
-       void *specific;
+       HwSam *sam[NSAMS];
+       unsigned samToRead;
 };
 
 #include "hardware.h"
@@ -28,24 +36,31 @@ Hardware *newHardware(void)
 {
        Hardware *my;
        Param paramS, *param = &paramS;
-       HwSam *sam;
        int i;
 
+#if 0
+       system("cd /home/hades/ht99/slow; mdc init >/dev/null 2>&1");
+#endif
+
        if (0 > conParam(param, "param.tcl")) {
                msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
                return NULL;
        }
        my = allocMem(sizeof(Hardware));
-       my->specific = allocMem(sizeof(sam));
 
-       my->maxSubEvtSize = SubEvt_hdrSize();
+       my->maxSubEvtSize = SubEvt_hdrSize() + (2564 * sizeof(UInt4));
+       my->samToRead = 0;
 
-       sam = allocMem(sizeof(HwSam));
-       if (0 > conHwSam(sam, "sam", param)) {
-               msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
-               return NULL;
+       for (i = 0; i < NSAMS; i++) {
+               char buf[16];
+
+               my->sam[i] = allocMem(sizeof(HwSam));
+               sprintf(buf, "sam%d", i);
+               if (0 > conHwSam(my->sam[i], buf, param)) {
+                       msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
+                       return NULL;
+               }
        }
-       (HwSam *) my->specific = sam;
 
 
        desParam(param);
@@ -54,31 +69,35 @@ Hardware *newHardware(void)
 
 void deleteHardware(Hardware *my)
 {
-       HwSam *sam = (HwSam *) my->specific;
+       int i;
 
-       desHwSam(sam);
-       freeMem(sam);
+       for (i = 0; i < NSAMS; i++) {
+               desHwSam(my->sam[i]);
+               freeMem(my->sam[i]);
+       }
 
        freeMem(my);
 }
 
-void Hardware_waitForTrigger(const Hardware *my, void *subEvt)
+void Hardware_waitForTrigger(Hardware *my, void *subEvt)
 {
-       HwSam *sam = (HwSam *) my->specific;
-
-       while (HwSam_isBusy(sam) || HwSam_isEmpty(sam)) {
+       if (HwSam_isEmpty(my->sam[my->samToRead])) {
+               HwSam_requestBuffer(my->sam[my->samToRead]);
+               while (HwSam_isBusy(my->sam[my->samToRead])) {
 #if 1
-               struct timespec tS, *t = &tS;
-               t->tv_sec = 0;
-               t->tv_nsec = 020000000;
-               nanosleep(t, NULL);
+                       struct timespec tS, *t = &tS;
+                       t->tv_sec = 0;
+                       t->tv_nsec = 020000000;
+                       nanosleep(t, NULL);
 #endif
+               }
        }
 }
 
-void Hardware_readout(const Hardware *my, void *subEvt)
+void Hardware_readout(Hardware *my, void *subEvt)
 {
-       HwSam *sam = (HwSam *) my->specific;
-
-       HwSam_readSubEvt(sam, subEvt);
+       HwSam_readSubEvt(my->sam[my->samToRead], subEvt);
+       if (++my->samToRead == NSAMS ) {
+               my->samToRead = 0;
+       }
 }
index 5d147c2ffd690ca6a76637a8f3fcc41db33f1974..098823a9b7fe6f952dcc1f3d7e1e9293b810bcdc 100644 (file)
-
 #include <assert.h>
 #include <string.h>
 
 #include <hadesstd.h>
 #include <lvme.h>
 
-#include "param.h"
+#include <param.h>
 
+#include "subevt.h"
 #include "sam_defs.h"
 #include "hwsam.h"
 
 #define BUFSIZE 0x1000
 
-static int bankRequested(HwSam *my)
-{
-       return LVme_getBitL(my->lvme, CRR, 0);
+static int bankRequested(HwSam *my) {
+  return LVme_tstBitL(my->cram, CRR, 0);
 }
 
-static int bankConfirmed(HwSam *my)
-{
-       return LVme_getBitL(my->lvme, VMSR, 0);
+static int bankConfirmed(HwSam *my) {
+  return LVme_tstBitL(my->regs, VMSR, 0);
 }
 
-static int endOfData(HwSam *my)
-{
-       int i;
+static int endOfData(HwSam *my) {
+  int i;
 
-       i = BUFSIZE * bankRequested(my);
-       return i + LVme_getL(my->lvme, i);
+  i = BUFSIZE * bankRequested(my);
+  return i + LVme_getL(my->cram, i);
 }
 
-static void standbyMode(HwSam *my)
-{
-       LVme_clrBitL(my->lvme, KSR, 0);
-       do {
-               LVme_setL(my->lvme, CRR, 0);
-       } while (LVme_getL(my->lvme, CRR) != 0);
+static void standbyMode(HwSam *my) {
+  LVme_clrBitL(my->regs, KSR, 0);
+  do {
+       LVme_setL(my->cram, CRR, 0);
+  } while (LVme_getL(my->cram, CRR) != 0);
+  my->currAddr = BUFSIZE;
 }
 
-static void acquireMode(HwSam *my)
-{
-       LVme_setBitL(my->lvme, KSR, 0);
+static void acquireMode(HwSam *my) {
+  LVme_setBitL(my->regs, KSR, 0);
 }
 
-int conHwSam(HwSam *my, const char *name, const Param *param)
+int conHwSam(HwSam * my, const char *name, const Param *param)
 {
-       unsigned long cardBase;
-       int i;
-
-       assert(my != NULL);
-
-       strcpy(my->name, name);
-
-       cardBase = Param_getVal(param, my->name, "cardbase");
-       my->lvme = allocMem(sizeof(LVme));
-       if (0 > conLVme(my->lvme, 0x4c000000, 0x04000000L, 0x09, 0x01000004, 4)) {
-               msglog(LOG_ERR, "HwSam on %p not found\n", cardBase);
-               return -1;
-       }
-       standbyMode(my);
-       acquireMode(my);
-       return 0;
+  unsigned long cardBase;
+  int i;
+
+  assert(my != NULL);
+
+  strcpy(my->name, name);
+
+  cardBase = Param_getVal(param, my->name, "cardbase");
+  my->cram = allocMem(sizeof(LVme));
+  if (0 > conLVme(my->cram, cardBase, 0x10000L, 0x09, 0x0, 4)) {
+    msglog(LOG_ERR, "HwSam on %p not found\n", cardBase);
+    return -1;
+  }
+  my->regs = allocMem(sizeof(LVme));
+  if (0 > conLVme(my->regs, cardBase + 0x01000000, 0x10000L, 0x09, 0x4, 4)) {
+    msglog(LOG_ERR, "HwSam on %p not found\n", cardBase);
+    return -1;
+  }
+  my->trigNr = 0;
+
+  standbyMode(my);
+  acquireMode(my);
+  return 0;
 }
 
-void desHwSam(HwSam *my)
+void desHwSam(HwSam * my)
 {
-       standbyMode(my);
-       desLVme(my->lvme);
+  standbyMode(my);
+  desLVme(my->regs);
+  desLVme(my->cram);
 }
 
-void HwSam_requestBuffer(HwSam *my)
-{
-       int i;
-
-       i = bankRequested(my) == 1 ? 0 : 1;
-       do {
-               if (i == 1) {
-                       LVme_setBitL(my->lvme, CRR, 0);
-               } else {
-                       LVme_clrBitL(my->lvme, CRR, 0);
-               }
-       } while (LVme_getBitL(my->lvme, CRR) != i);
-
-       my->currAddr = BUFSIZE * bankRequested(my) + 8;
+void HwSam_requestBuffer(HwSam *my) {
+  int i;
+
+  msglog(LOG_DEBUG, "requestBuffer in\n");
+  i = bankRequested(my) == 1 ? 0 : 1;
+  do {
+    if (i == 1) {
+      LVme_setBitL(my->cram, CRR, 0);
+    } else {
+      LVme_clrBitL(my->cram, CRR, 0);
+    }
+  } while (LVme_tstBitL(my->cram, CRR, 0) != i);
+
+  my->currAddr = BUFSIZE * bankRequested(my) + 8;
+  msglog(LOG_DEBUG, "requestBuffer out\n");
 }
 
-int HwSam_isBusy(HwSam *my)
-{
-       return bankRequested(my) != bankConfirmed(my);
+int HwSam_isBusy(HwSam *my) {
+  return bankRequested(my) != bankConfirmed(my);
 }
 
-int HwSam_isEmpty(HwSam *my)
-{
-       return my->currAddr >= endOfData(my);
+int HwSam_isEmpty(HwSam *my) {
+  return my->currAddr >= endOfData(my);
 }
 
-void *HwSam_nextSubEvt(HwSam *my, void *subEvt)
-{
-       UInt4 *data = (UInt4 *) subEvt;
-       int firstAddr;
-       int size;
-
-       size = LVme_getL(my->lvme, my->currAddr);
-
-       /* copy one sub evt from RC to memory */
-       for (firstAddr = my->currAddr; my->currAddr - firstAddr < size; my->currAddr += 4) {
-               *data++ = LVme_getL(my->lvme, my->currAddr);
-       }
-       return 0;
+void *HwSam_readSubEvt(HwSam *my, void *subEvt) {
+  UInt4 *data = (UInt4 *)subEvt;
+  int firstAddr;
+  int size;
+  UInt1 trigTag;
+
+  msglog(LOG_DEBUG, "readSubEvt in\n");
+  size = LVme_getL(my->cram, my->currAddr);
+  msglog(LOG_DEBUG, "readSubEvt currAddr: 0x%08x\n", my->currAddr);
+
+  if (my->currAddr + size > endOfData(my)) {
+    msglog(LOG_EMERG,"subEvt throw away\n");
+    /* create impossible subEvt */
+    SubEvt_setSize(subEvt, SubEvt_hdrSize());
+    SubEvt_setDecoding(subEvt, SubEvtDecoding_16bitData);
+    SubEvt_setId(subEvt, SubEvtId_mdc);
+    SubEvt_setTrigNr(subEvt, 0x00000001); /* impossible with 1:1 */
+    my->currAddr = endOfData(my);  /* lie you have read whole bank */
+  } else {
+    /* copy one sub evt from RC to memory */
+    for (firstAddr = my->currAddr; my->currAddr - firstAddr < size; my->currAddr += 4) {
+         *data++ = LVme_getL(my->cram, my->currAddr);
+    }
+  
+    msglog(LOG_DEBUG, "readSubEvt subevt: %s\n", SubEvt_2charP(subEvt));
+
+    /* normal extension of trigger tag */
+    trigTag = SubEvt_trigNr(subEvt);
+    trigTag--; /* BUGBUG Workaround for wrong Tag from HW */
+  
+    /* BUGBUG if soft & hardware trigNr differ, HW gets precedence */
+    if (trigTag != (my->trigNr & 0xff)) {
+      msglog(LOG_EMERG,"readSubEvt trigTag differ\n");
+    }
+    if (trigTag < (my->trigNr & 0xff)) {
+      my->trigNr += 0x100;
+    }
+    my->trigNr = (my->trigNr & 0xffffff00) | trigTag;
+    SubEvt_setTrigNr(subEvt, my->trigNr << 8 | trigTag);
+    my->trigNr++;
+  }
+
+  msglog(LOG_DEBUG, "readSubEvt out\n");
+  return 0;
 }
index ad7533adc0f04b61566f87fd4efddcedf134317a..1ec60abe67f6b7db7d46f79877e3258546c270b2 100644 (file)
@@ -7,9 +7,11 @@
 
 typedef struct HwSamS {
   char name[16];
-  LVme *lvme;
+  LVme *cram;
+  LVme *regs;
   int bufSize;
   int currAddr;
+  int trigNr;
 } HwSam;
 
 
index 4ff9623b03af2d7925f7b644a2ac1210d06faefa..edbf0678468353f4523ff3cd2452198249cceab9 100644 (file)
@@ -55,7 +55,7 @@ void Hardware_waitForTrigger(Hardware *my, void *subEvt)
 
        switch (nextId) {
        case SubEvtId_trigCode:
-#if 1
+#if 0
                t->tv_sec = 0;
                t->tv_nsec = 100000000;
                nanosleep(t, NULL);
@@ -94,11 +94,11 @@ void Hardware_readout(Hardware *my, void *subEvt)
                *data++ = 0x55aa00FF;
                *data++ = 0x55aa00FF;
                *data++ = 0x55aa00FF;
-#if 0
-               data += (int) ((100.0 * rand()) / RAND_MAX);
-               data += (int) ((100.0 * rand()) / RAND_MAX);
-               data += (int) ((100.0 * rand()) / RAND_MAX);
-               data += (int) ((100.0 * rand()) / RAND_MAX);
+#if 1
+               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);
 #endif
                break;
        }
index 48b7b35aee1561c854fd96cb1a7c4d41a760427a..14108b2bc8625284f9e398643b5e2958b0267fe6 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.1 1999-08-31 10:37:24 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.2 1999-10-06 17:02:06 muench Exp $";
 
 #define _XOPEN_SOURCE
 #include <unistd.h>
@@ -19,112 +19,112 @@ static jmp_buf terminateJmp;
 
 void sigHandler(int sig)
 {
-       longjmp(terminateJmp, sig);
+  longjmp(terminateJmp, sig);
 }
 
 static void usage(const char *progName)
 {
-       msglog(LOG_ERR, "Usage: %s -m nrOfMsgs [-p priority]\n", progName);
-       msglog_usage();
+  msglog(LOG_ERR, "Usage: %s -m nrOfMsgs [-p priority]\n", progName);
+  msglog_usage();
 }
 
 int main(int argc, char *argv[])
 {
-       int i;
-       Worker *worker;
-       NetTrans **netTrans;
-       ShmTrans **shmTrans;
-       void **hadTu;
-       size_t *hadTuSize;
-       int priority;
-       int isStandalone;
-       int nrOfMsgs;
-       size_t queueSize;
-
-       msglog_setlevel(argv[0], "info");
-       priority = 0;
-       isStandalone = 1;
-       nrOfMsgs = 0;
-       queueSize = 100 * 1024;
-
-       while ((i = getopt(argc, argv, "am:p:v:")) != -1) {
-               switch (i) {
-               case 'a':
-                       isStandalone = 0;
-                       break;
-               case 'm':
-                       nrOfMsgs = atoi(optarg);
-                       break;
-               case 'p':
-                       priority = atoi(optarg);
-                       break;
-               case 'v':
-                       if (msglog_setlevel(argv[0], optarg) == 1) {
-                               break;
-                       }                                       /* FALLTHROUGH to default */
-               default:
-                       usage(argv[0]);
-                       exit(EXIT_FAILURE);
-                       break;
-               }
-       }
-       if (nrOfMsgs == 0) {
-               msglog(LOG_ERR, "missing nrOfMsgs\n");
-               usage(argv[0]);
-               exit(EXIT_FAILURE);
-       }
-       netTrans = allocMem(nrOfMsgs * sizeof(NetTrans *));
-       shmTrans = allocMem(nrOfMsgs * sizeof(ShmTrans *));
-       hadTu = allocMem(nrOfMsgs * sizeof(void *));
-       hadTuSize = allocMem(nrOfMsgs * sizeof(size_t));
-
-       if (NULL == (worker = Worker_initBegin(argv[0], sigHandler, priority, isStandalone))) {
-               msglog(LOG_ERR, "%s, %d: %s\n", __FILE__, __LINE__, strerror(errno));
-               exit(EXIT_FAILURE);
-       }
-       for (i = 0; i < nrOfMsgs; i++) {
-               char buf[80];
-
-               sprintf(buf, "0:%d", i + 50);
-               netTrans[i] = NetTrans_create(buf, 0, worker);
-
-               sprintf(buf, "netqueue%d", i);
-               shmTrans[i] = ShmTrans_open(buf, 2 * queueSize);
-
-               hadTu[i] = NULL;
-               hadTuSize[i] = queueSize - HadTu_hdrSize();
-       }
-       Worker_initEnd(worker);
-
-       if (setjmp(terminateJmp) == 0) {
-               while (1) {
-                       long msgsCompleted;
-
-                       Worker_dump(worker, 1);
-
-                       for (i = 0; i < nrOfMsgs; i++) {
-                               if (hadTu[i] == NULL) {
-                                       ShmTrans_requestSpace(shmTrans[i]);
-                                       hadTu[i] = ShmTrans_tryAlloc(shmTrans[i], hadTuSize[i]);
-                               }
-                       }
-
-                       msgsCompleted = NetTrans_multiRecv(netTrans, hadTu, hadTuSize, nrOfMsgs);
-
-                       for (i = 0; i < nrOfMsgs; i++) {
-                               if ((msgsCompleted & (1 << i)) != 0) {
-                                       ShmTrans_send(shmTrans[i]);
-                                       hadTu[i] = NULL;
-                               }
-                       }
-               }
-       }
-       Worker_dump(worker, 0);
-
-       for (i = 0; i < nrOfMsgs; i++) {
-               ShmTrans_remove(shmTrans[i]);
-               NetTrans_remove(netTrans[i]);
-       }
-       Worker_fini(worker);
-       exit(EXIT_SUCCESS);
+  int i;
+  Worker *worker;
+  NetTrans **netTrans;
+  ShmTrans **shmTrans;
+  void **hadTu;
+  size_t *hadTuSize;
+  int priority;
+  int isStandalone;
+  int nrOfMsgs;
+  size_t queueSize;
+
+  msglog_setlevel(argv[0], "info");
+  priority = 0;
+  isStandalone = 1;
+  nrOfMsgs = 0;
+  queueSize = 10 * 1024;
+
+  while ((i = getopt(argc, argv, "am:p:v:")) != -1) {
+    switch (i) {
+    case 'a':
+      isStandalone = 0;
+      break;
+    case 'm':
+      nrOfMsgs = atoi(optarg);
+      break;
+    case 'p':
+      priority = atoi(optarg);
+      break;
+    case 'v':
+      if (msglog_setlevel(argv[0], optarg) == 1) {
+        break;
+      }                         /* FALLTHROUGH to default */
+    default:
+      usage(argv[0]);
+      exit(EXIT_FAILURE);
+      break;
+    }
+  }
+  if (nrOfMsgs == 0) {
+    msglog(LOG_ERR, "missing nrOfMsgs\n");
+    usage(argv[0]);
+    exit(EXIT_FAILURE);
+  }
+  netTrans = allocMem(nrOfMsgs * sizeof(NetTrans *));
+  shmTrans = allocMem(nrOfMsgs * sizeof(ShmTrans *));
+  hadTu = allocMem(nrOfMsgs * sizeof(void *));
+  hadTuSize = allocMem(nrOfMsgs * sizeof(size_t));
+
+  if (NULL == (worker = Worker_initBegin(argv[0], sigHandler, priority, isStandalone))) {
+    msglog(LOG_ERR, "%s, %d: %s\n", __FILE__, __LINE__, strerror(errno));
+    exit(EXIT_FAILURE);
+  }
+  for (i = 0; i < nrOfMsgs; i++) {
+    char buf[80];
+
+    sprintf(buf, "0:%d", i + 50);
+    netTrans[i] = NetTrans_create(buf, 0, worker);
+
+    sprintf(buf, "netqueue%d", i);
+    shmTrans[i] = ShmTrans_open(buf, 100 * queueSize);
+
+    hadTu[i] = NULL;
+    hadTuSize[i] = queueSize - HadTu_hdrSize();
+  }
+  Worker_initEnd(worker);
+
+  if (setjmp(terminateJmp) == 0) {
+    while (1) {
+      long msgsCompleted;
+
+      Worker_dump(worker, 1);
+
+      for (i = 0; i < nrOfMsgs; i++) {
+        if (hadTu[i] == NULL) {
+          ShmTrans_requestSpace(shmTrans[i]);
+          hadTu[i] = ShmTrans_tryAlloc(shmTrans[i], hadTuSize[i]);
+        }
+      }
+
+      msgsCompleted = NetTrans_multiRecv(netTrans, hadTu, hadTuSize, nrOfMsgs);
+
+      for (i = 0; i < nrOfMsgs; i++) {
+        if ((msgsCompleted & (1 << i)) != 0) {
+          ShmTrans_send(shmTrans[i]);
+          hadTu[i] = NULL;
+        }
+      }
+    }
+  }
+  Worker_dump(worker, 0);
+
+  for (i = 0; i < nrOfMsgs; i++) {
+    ShmTrans_remove(shmTrans[i]);
+    NetTrans_remove(netTrans[i]);
+  }
+  Worker_fini(worker);
+  exit(EXIT_SUCCESS);
 }
index 0a0e1b0c897f694f4b82dc1b2fb7382392dfc058..64f82182f15a8faf8b24083677006c6b92c9e0f1 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/nettrans.c,v 6.1 1999-08-31 10:37:24 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/nettrans.c,v 6.2 1999-10-06 17:05:08 muench Exp $";
 
 #define _XOPEN_SOURCE_EXTENDED
 #include <unistd.h>
@@ -61,7 +61,7 @@ NetTrans *NetTrans_create(const char *name, size_t bandwidth, Worker *worker)
                lAtmClose(my->fd);
                return NULL;
        }
-       my->mtuSize = 8192;
+       my->mtuSize = 65535;
 
        my->pkt = allocMem(my->mtuSize);
        my->seqNr = 0;
@@ -115,7 +115,7 @@ NetTrans *NetTrans_open(const char *name, size_t bandwidth, Worker *worker)
                lAtmClose(my->fd);
                return NULL;
        }
-       my->mtuSize = 8192;
+       my->mtuSize = 65535;
 
        my->pkt = allocMem(my->mtuSize);
        my->seqNr = 0;
index 8893ad75be57d533840191f731ee3a929559a5d0..0008eef8a08063b963b531d897460167aa9639e4 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.1 1999-08-31 10:37:25 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.2 1999-10-06 17:05:08 muench Exp $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
@@ -106,10 +106,10 @@ void main(int argc, char *argv[])
 #endif
                while (NULL != (subEvt = HadTuQueue_alloc(hadTuQueue, Hardware_maxSubEvtSize(hw)))) {
                        Hardware_waitForTrigger(hw, subEvt);
-                       (*trigAccepted)++;
 
                        Hardware_readout(hw, subEvt);
                        (*subevtsRead)++;
+                       (*trigAccepted) = SubEvt_trigNr(subEvt) >> 8;
 #ifndef NDEBUG
                        msglog(LOG_DEBUG, "hadTuQueue: %p = subEvt: %s\n", subEvt, SubEvt_2charP(subEvt));
 #endif
index 116fd666dc160677ef71dbc9d550b2797921450c..b9f859b658f7effe5229208377c01bc24c2d2155 100644 (file)
@@ -1,9 +1,9 @@
 #ifndef SAM_DEFS_H
 #define SAM_DEFS_H
 
-#define VMSR  0x01000008
-#define KSR   0x01000004
-#define CRAM  0x00000000
-#define CRR   0x00001ffc
+#define VMSR  0x0008
+#define KSR   0x0004
+#define CRAM  0x0000
+#define CRR   0x1ffc
 
 #endif