-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.41 2002-06-07 13:54:15 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.42 2002-06-07 14:07:34 hadaq Exp $";
#define _POSIX_C_SOURCE 199506L
typedef struct TheArgsS {
unsigned long nrOfMsgs;
- unsigned long skipMsgs[NTRIGTYPES];
char outPath[PARAM_MAX_VALUE_LEN];
char outDev[PARAM_MAX_VALUE_LEN];
unsigned long runNr;
static void usage(const char *progName)
{
syslog(LOG_ERR, "Usage: %s [-x expId]", progName);
- syslog(LOG_ERR, "Usage: [-m nrOfMsgs] [-t skipMsgs ...] [-r runNr]");
+ syslog(LOG_ERR, "Usage: [-m nrOfMsgs] [-r runNr]");
syslog(LOG_ERR, "Usage: [-f slowCtrlFile ...] [-o outPath] [-d null|tape|file]");
syslog(LOG_ERR, "Usage: [-a (agent)] [-p priority]");
}
int i;
syslog(LOG_DEBUG, "nrOfMsgs: %d", my->nrOfMsgs);
- for (i = 0; i < NTRIGTYPES; i++) {
- syslog(LOG_DEBUG, "skipMsgs[%d]: 0x%08x", i, my->skipMsgs[i]);
- }
for (i = 0; i < my->slowCtrlFileCnt; i++) {
syslog(LOG_DEBUG, "slowCtrlFiles[%d]: %s", i, my->slowCtrlFiles[i]);
}
int i;
my->nrOfMsgs = 0;
- for (i = 0; i < NTRIGTYPES; i++) {
- my->skipMsgs[i] = 0;
- }
for (i = 0; i < PARAM_MAX_ARRAY_LEN; i++) {
my->slowCtrlFiles[i] = my->slowCtrlFilesS[i];
}
int i;
int trigType = 0;
- while ((i = getopt(argc, argv, "am:t:f:s:r:o:d:q:p:v:x:")) != -1) {
+ while ((i = getopt(argc, argv, "am:f:s:r:o:d:q:p:v:x:")) != -1) {
switch (i) {
case 'm':
my->nrOfMsgs = strtoul(optarg, NULL, 0);
break;
- case 't':
- my->skipMsgs[trigType++] = strtoul(optarg, NULL, 0);
- break;
case 'f':
strcpy(my->slowCtrlFiles[my->slowCtrlFileCnt++], optarg);
break;
conSetupParam(param, getenv("DAQ_SETUP"));
Param_getInt(param, argv[0], "nrofmsgs", ¶mWasFound, &my->nrOfMsgs);
- Param_getIntArray(param, argv[0], "skipmsgs",
- NTRIGTYPES, ¶mWasFound, my->skipMsgs);
Param_getStringArray(param, argv[0], "slwctrlfile",
PARAM_MAX_ARRAY_LEN, &my->slowCtrlFileCnt, my->slowCtrlFiles);
Param_getString(param, argv[0], "outpath", ¶mWasFound, my->outPath);
strftime(s, 20, "%Y-%m-%dT%H:%M:%S", localtime(&t));
Param_storeString(p, n, "startdate", s);
Param_storeInt(p, n, "nrofmsgs", my->nrOfMsgs);
- for (i = 0; i < NTRIGTYPES; i++) {
- sprintf(s, "skipmsgs%d", i);
- Param_storeInt(p, n, s, my->skipMsgs[i]);
- }
for (i = 0; i < my->slowCtrlFileCnt; i++) {
sprintf(s, "slwctrlfile%d", i);
Param_storeString(p, n, s, my->slowCtrlFiles[i]);
statsDump(theArgs, theStats, 1);
evt = newEvt(EvtDecoding_64bitAligned, EvtId_data, theArgs->runNr, theArgs->expId);
for (i = 0; i < theArgs->nrOfMsgs && !evtIsBroken; i += step) {
- if (theArgs->skipMsgs[currId] & (1 << i)) {
- step = 1;
- } else {
- uint32_t trigNr;
-
- if (hadTuQueue[i] == NULL) {
- void *storage;
-
- storage = ShmTrans_recv(shmTrans[i]);
- hadTuQueue[i] = malloc(HadTuQueue_sizeOf());
- conHadTuQueue_voidP(hadTuQueue[i], storage);
- }
- subEvt = HadTuQueue_front(hadTuQueue[i]);
+ uint32_t trigNr;
+
+ if (hadTuQueue[i] == NULL) {
+ void *storage;
+
+ storage = ShmTrans_recv(shmTrans[i]);
+ hadTuQueue[i] = malloc(HadTuQueue_sizeOf());
+ conHadTuQueue_voidP(hadTuQueue[i], storage);
+ }
+ subEvt = HadTuQueue_front(hadTuQueue[i]);
#ifndef NDEBUG
- syslog(LOG_DEBUG,
- "hadTuQueue[%d]: %p = subEvt: %s",
- i, subEvt, SubEvt_2charP(subEvt));
+ syslog(LOG_DEBUG,
+ "hadTuQueue[%d]: %p = subEvt: %s",
+ i, subEvt, SubEvt_2charP(subEvt));
#endif
- (*theStats->trigNr[i]) = SubEvt_trigNr(subEvt);
+ (*theStats->trigNr[i]) = SubEvt_trigNr(subEvt);
- if (i == 0) {
- currTrigNr = SubEvt_trigNr(subEvt) >> 8;
- currId = SubEvt_id(subEvt);
- Evt_setId(evt, currId);
+ if (i == 0) {
+ currTrigNr = SubEvt_trigNr(subEvt) >> 8;
+ currId = SubEvt_id(subEvt);
+ Evt_setId(evt, currId);
#ifndef NDEBUG
- syslog(LOG_DEBUG,
- "currTrigNr: 0x%08x, currId 0x%08x", currTrigNr, currId);
+ syslog(LOG_DEBUG,
+ "currTrigNr: 0x%08x, currId 0x%08x", currTrigNr, currId);
#endif
- }
+ }
- trigNr = SubEvt_trigNr(subEvt) >> 8;
- if (trigNr == currTrigNr) {
- evt = Evt_appendSubEvt(evt, subEvt);
- HadTuQueue_pop(hadTuQueue[i]);
- step = 1;
- } else if (trigNr < currTrigNr) {
- /* BUGBUG subevt discarded, not in statistic */
- HadTuQueue_pop(hadTuQueue[i]);
- step = 0;
- } else {
- evtIsBroken = 1;
- }
- if (HadTuQueue_empty(hadTuQueue[i])) {
- desHadTuQueue(hadTuQueue[i]);
- free(hadTuQueue[i]);
- hadTuQueue[i] = NULL;
- ShmTrans_free(shmTrans[i]);
- }
+ trigNr = SubEvt_trigNr(subEvt) >> 8;
+ if (trigNr == currTrigNr) {
+ evt = Evt_appendSubEvt(evt, subEvt);
+ HadTuQueue_pop(hadTuQueue[i]);
+ step = 1;
+ } else if (trigNr < currTrigNr) {
+ /* BUGBUG subevt discarded, not in statistic */
+ HadTuQueue_pop(hadTuQueue[i]);
+ step = 0;
+ } else {
+ evtIsBroken = 1;
+ }
+ if (HadTuQueue_empty(hadTuQueue[i])) {
+ desHadTuQueue(hadTuQueue[i]);
+ free(hadTuQueue[i]);
+ hadTuQueue[i] = NULL;
+ ShmTrans_free(shmTrans[i]);
}
}
if (!evtIsBroken) {