From e474838ddf1c092d06eb1aabd3b2c608136398ee Mon Sep 17 00:00:00 2001 From: hadaq Date: Wed, 24 Nov 2010 15:02:11 +0000 Subject: [PATCH] prefix code to shared mem added. Sergey --- hadaq/args.c | 27 +++++++++++++++++++++++++++ hadaq/args.h | 1 + hadaq/evtbuild.c | 9 ++++++++- hadaq/stats.h | 1 + 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/hadaq/args.c b/hadaq/args.c index 7f171de..f031a3d 100644 --- a/hadaq/args.c +++ b/hadaq/args.c @@ -467,3 +467,30 @@ void Args_dump(TheArgs *my) } syslog(LOG_DEBUG, "EB numder: %d", my->ebnum); } + +int Args_prefixCode(TheArgs *my) +{ + char alphabet[] = "abcdefghijklmnopqrstuvwxyz"; + int code = 0; + int i, j; + + /* Loop over prefix */ + for (j = 0; j < 2; j++) { + + /* Loop over letters of Alphabet */ + for (i = 0; i < 26; i++) { + + if (alphabet[i] == my->expId[j]) { + + /* + * Build prefix code: + * add 1 to the code to get rid of zero's + * in case of 'aa' prefix. + */ + code = code * 100 + i + 1; + } + } + } + + return code; +} diff --git a/hadaq/args.h b/hadaq/args.h index 5725b63..d2afb0e 100644 --- a/hadaq/args.h +++ b/hadaq/args.h @@ -83,5 +83,6 @@ void Args_default(TheArgs *my); int Args_check(TheArgs *my); int Args_fromParam(TheArgs *my, int argc, char *argv[]); void Args_dump(TheArgs *my); +int Args_prefixCode(TheArgs *my); #endif diff --git a/hadaq/evtbuild.c b/hadaq/evtbuild.c index 438375d..6efb247 100644 --- a/hadaq/evtbuild.c +++ b/hadaq/evtbuild.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.142 2010-10-28 17:27:25 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.143 2010-11-24 15:02:11 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #define SYSLOG_NAMES @@ -1046,6 +1046,13 @@ int main(int argc, char *argv[]) theStats->nrOfMsgs = Worker_addStatistic(worker, "nrOfMsgs"); (*theStats->nrOfMsgs) = theArgs->nrOfMsgs; + /* + * We have to code prefix string to a number since + * we cannot pass a string via shared memory. + */ + theStats->prefixCode = Worker_addStatistic(worker, "prefix"); + (*theStats->prefixCode) = Args_prefixCode(theArgs); + theStats->PID = Worker_addStatistic(worker, "PID"); theStats->coreNr = Worker_addStatistic(worker, "coreNr"); diff --git a/hadaq/stats.h b/hadaq/stats.h index cdc309d..f03f8bf 100644 --- a/hadaq/stats.h +++ b/hadaq/stats.h @@ -38,6 +38,7 @@ typedef struct TheStatsS { unsigned long *diskNrEB; unsigned long *PID; unsigned long *coreNr; + unsigned long *prefixCode; } TheStats; -- 2.43.0