]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
not working, intermediate with specific pointer
authorhades <hades>
Sun, 5 Sep 1999 20:23:22 +0000 (20:23 +0000)
committerhades <hades>
Sun, 5 Sep 1999 20:23:22 +0000 (20:23 +0000)
hadaq/hwrich.c

index e62273ae47dc6cbaf7c563944b03a18d21f413d9..b365301f0fe17295c88e59c1abeac765e303fdfc 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.1 1999-08-31 10:37:24 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.2 1999-09-05 20:23:22 hades Exp $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
@@ -19,6 +19,12 @@ struct HardwareS {
 
 #include "hardware.h"
 
+#define NRACES 2
+
+typedef struct ModulesS {
+       HwRace *race[NRACES];
+}
+
 size_t Hardware_maxSubEvtSize(const Hardware *my)
 {
        return my->maxSubEvtSize;
@@ -41,16 +47,22 @@ Hardware *newHardware(void)
                return NULL;
        }
        my = allocMem(sizeof(Hardware));
-       my->specific = allocMem(sizeof(race));
+       my->specific = allocMem(sizeof(Modules));
 
        my->maxSubEvtSize = SubEvt_hdrSize() + (2564 * sizeof(UInt4));
 
-       race = allocMem(sizeof(HwRace));
-       if (0 > conHwRace(race, "race", param)) {
-               msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
-               return NULL;
-       }
        (HwRace *) my->specific = race;
+       for (i = 0; i < NRACES; i++) {
+               char buf[16];
+
+               race[i] = allocMem(sizeof(HwRace));
+               sprintf(buf, "race%d", i);
+               if (0 > conHwRace(race[i], buf, param)) {
+                       msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
+                       return NULL;
+               }
+               ((Modules *) my->specific)->race[i] = race[i];
+       }
 
 
        desParam(param);
@@ -59,17 +71,20 @@ Hardware *newHardware(void)
 
 void deleteHardware(Hardware *my)
 {
-       HwRace *race = (HwRace *) my->specific;
+       HwRace **race = ((Modules *) my->specific)->race;
+       int i;
 
-       desHwRace(race);
-       freeMem(race);
+       for (i = 0; i < NRACES; i++) {
+               desHwRace(race[i]);
+               freeMem(race[i]);
+       }
 
        freeMem(my);
 }
 
 void Hardware_waitForTrigger(const Hardware *my, void *subEvt)
 {
-       HwRace *race = (HwRace *) my->specific;
+       HwRace **race = ((Modules *) my->specific)->race;
 
        if (HwRace_isEmpty(race)) {
                HwRace_requestBuffer(race);
@@ -86,7 +101,7 @@ void Hardware_waitForTrigger(const Hardware *my, void *subEvt)
 
 void Hardware_readout(const Hardware *my, void *subEvt)
 {
-       HwRace *race = (HwRace *) my->specific;
+       HwRace **race = ((Modules *) my->specific)->race;
 
        HwRace_readSubEvt(race, subEvt);
 }