lappend workerList $worker
regexp {^([^:]*):([^:]*)$} $worker workers($worker.name) workers($worker.agent) workers($worker.file)
- set workers($worker.file) daq_$workers($worker.file)
+ set workers($worker.file) ./daq_$workers($worker.file)
set workers($worker.opts) $opts
set workers($worker.addOpts) {}
set workers($worker.status) down
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.6 1999-11-21 16:27:23 hades Rel $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.7 2000-02-18 13:44:54 muench Exp $";
#define _XOPEN_SOURCE
#include <unistd.h>
#include "nettrans.h"
#include "shmtrans.h"
+#define MAXINPATH 32
+
static jmp_buf terminateJmp;
void sigHandler(int sig)
static void usage(const char *progName)
{
- msglog(LOG_ERR, "Usage: %s -m nrOfMsgs [-p priority]\n", progName);
+ msglog(LOG_ERR, "Usage: %s -i inPath [-i inPath] -m nrOfMsgs [-p priority]\n", progName);
msglog_usage();
}
void **hadTu;
size_t *hadTuSize;
int priority;
+ char *inPath[MAXINPATH];
+ int inPathCnt;
int isStandalone;
int nrOfMsgs;
size_t queueSize;
msglog_setlevel(argv[0], "info");
+ inPathCnt = 0;
priority = 0;
isStandalone = 1;
nrOfMsgs = 0;
queueSize = 1 * 1024 * 1024;
- while ((i = getopt(argc, argv, "am:p:v:")) != -1) {
+ while ((i = getopt(argc, argv, "ai:m:p:v:")) != -1) {
switch (i) {
case 'a':
isStandalone = 0;
case 'm':
nrOfMsgs = atoi(optarg);
break;
+ case 'i':
+ inPath[inPathCnt++] = optarg;
+ break;
case 'p':
priority = atoi(optarg);
break;
break;
}
}
- if (nrOfMsgs == 0) {
- msglog(LOG_ERR, "missing nrOfMsgs\n");
+ if (inPathCnt == 0 || nrOfMsgs == 0 || inPathCnt != nrOfMsgs) {
usage(argv[0]);
exit(EXIT_FAILURE);
}
exit(EXIT_FAILURE);
}
for (i = 0; i < nrOfMsgs; i++) {
- char buf[80];
-
- sprintf(buf, "ATM:0:%d", i + 50);
- netTrans[i] = NetTrans_create(buf, 0, worker);
+ netTrans[i] = NetTrans_create(inPath[i], 0, worker);
if (netTrans[i] == NULL) {
msglog(LOG_ERR, "%s, %d: %s\n", __FILE__, __LINE__, strerror(errno));
exit(EXIT_FAILURE);
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/nettrans.c,v 6.9 2000-02-18 11:59:24 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/nettrans.c,v 6.10 2000-02-18 13:40:12 muench Exp $";
#define _XOPEN_SOURCE_EXTENDED
#include <unistd.h>
retVal = LAtm_send(my->lAtm, my->pkt, Pkt_size(my->pkt));
break;
case NetTransType_udp:
+#if 1 /* This limits the output data rate to 100 * mtuSize / s */
+ {
+ static int i = 0;
+ if (i++ % 2 != 0) {
+ struct timespec tS, *t = &tS;
+ t->tv_sec = 0;
+ t->tv_nsec = 020000000;
+ nanosleep(t, NULL);
+ }
+ }
+#endif
retVal = send(my->fd, my->pkt, Pkt_size(my->pkt), 0);
break;
}
NetTransType type;
LAtm *lAtm;
size_t mtuSize;
+ int fd;
void *pkt;
UInt4 seqNr;
size_t offset;
-agent create hades24 root /home/hades/lt99/eb/hadaq
-agent create hades23 hades /home/hades/lt99/show/hadaq
-agent create hades21 hades /home/hades/lt99/mdc/hadaq
-agent create hades20 hades /home/hades/lt99/rich/hadaq
-agent create hades19 hades /home/hades/lt99/tof/hadaq
-worker create hades24:evtbuild -a -p -2 -s 8 -m 4 -f runinfo.tcl
-worker create hades24:netmem -a -p -1 -m 4
-worker create hades23:memnet -a -p -1 -o ATM:0:50 -w 2500
-worker create hades23:readout -a -p -2
-worker create hades21:memnet -a -p -1 -o ATM:0:51 -w 2500
-worker create hades21:readout -a -p -2
-worker create hades20:memnet -a -p -1 -o ATM:0:52 -w 2500
-worker create hades20:readout -a -p -2
-worker create hades19:memnet -a -p -1 -o ATM:0:53 -w 2500
-worker create hades19:readout -a -p -2
-worker create hades20:ctrlctu -a -p 0
+agent create acheron muench /home/muench/hdev/daq/hadaq
+agent create mimas muench /home/muench/hdev/daq/hadaq
+worker create acheron:evtbuild -a -p -2 -s 2 -m 1
+worker create acheron:netmem -a -p -1 -m 1 -i UDP:0.0.0.0:3000
+worker create mimas:memnet -a -p -1 -w 2500 -o UDP:129.187.154.22:3000
+worker create mimas:readout -a -p -2
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 hades20:memnet
-group add acquisition hades20:readout
-group add acquisition hades19:memnet
-group add acquisition hades19:readout
-group add acquisition hades20:ctrlctu
-group add run hades24:evtbuild
-group add run hades24:netmem
+group add acquisition mimas:memnet
+group add acquisition mimas:readout
+group add run acheron:evtbuild
+group add run acheron:netmem
#include "psxshm.h"
typedef struct StatisticS {
- char name[32];
+ char name[256];
unsigned long value;
} Statistic;