]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
*** empty log message ***
authormuench <muench>
Thu, 3 Feb 2000 18:51:45 +0000 (18:51 +0000)
committermuench <muench>
Thu, 3 Feb 2000 18:51:45 +0000 (18:51 +0000)
hadaq/hwtof.c
hadaq/hwv488.c
hadaq/hwv488.h
hadaq/hwv878.h
hadaq/makeenv
hadaq/param.tcl

index 4ee1d4fdb120533f46890362b109d994e1b908e9..7e90a50d982f7be63d83db698f1538f13b4814d8 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.8 1999-11-17 14:06:47 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.9 2000-02-03 18:51:45 muench Stab $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
@@ -23,14 +23,15 @@ struct HardwareS {
 
 #include "hardware.h"
 
-#define NV775S 4
-#define NV878S 4
+#define NV775S 3
+#define NV878S 5
 
 typedef struct ModulesS {
        HwDtu *dtu;
        HwSis3801 *sis3801;
-       HwV488 *v556;
-       HwV488 *v488;
+       HwV488 *adc0;
+       HwV488 *tdc8;
+       HwV488 *tdc9;
        HwV775 *v775[NV775S];
        HwV878 *v878[NV878S];
 }
@@ -53,14 +54,15 @@ Hardware *newHardware(void)
        Param paramS, *param = &paramS;
        HwDtu *dtu;
        HwSis3801 *sis3801;
-       HwV488 *v556;
-       HwV488 *v488;
+       HwV488 *adc0;
+       HwV488 *tdc8;
+       HwV488 *tdc9;
        HwV775 *v775[NV775S];
        HwV878 *v878[NV878S];
        int i;
 
 #if 0
-       system("cd /home/hades/ht99/slow; ./tof init >/dev/null 2>&1");
+       system("cd /home/hades/lt99/slow; ./tof init >/dev/null 2>&1");
 #endif
        if (0 > conParam(param, "param.tcl")) {
                msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
@@ -90,18 +92,24 @@ Hardware *newHardware(void)
        }
        ((Modules *) my->specific)->sis3801 = sis3801;
 
-       v556 = allocMem(sizeof(HwV488));
-       if (0 > conHwV488(v556, "adc0", param)) {
+       adc0 = allocMem(sizeof(HwV488));
+       if (0 > conHwV488(adc0, "adc0", param)) {
                msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
                return NULL;
        }
-       ((Modules *) my->specific)->v556 = v556;
-       v488 = allocMem(sizeof(HwV488));
-       if (0 > conHwV488(v488, "tdc8", param)) {
+       ((Modules *) my->specific)->adc0 = adc0;
+       tdc9 = allocMem(sizeof(HwV488));
+       if (0 > conHwV488(tdc9, "tdc9", param)) {
                msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
                return NULL;
        }
-       ((Modules *) my->specific)->v488 = v488;
+       ((Modules *) my->specific)->tdc9 = tdc9;
+       tdc8 = allocMem(sizeof(HwV488));
+       if (0 > conHwV488(tdc8, "tdc8", param)) {
+               msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
+               return NULL;
+       }
+       ((Modules *) my->specific)->tdc8 = tdc8;
        for (i = 0; i < NV775S; i++) {
                char buf[16];
 
@@ -117,7 +125,7 @@ Hardware *newHardware(void)
                char buf[16];
 
                v878[i] = allocMem(sizeof(HwV878));
-               sprintf(buf, "tdc%d", i + 4);
+               sprintf(buf, "tdc%d", i + NV775S);
                if (0 > conHwV878(v878[i], buf, param)) {
                        msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
                        return NULL;
@@ -134,8 +142,9 @@ void deleteHardware(Hardware *my)
        int i;
        HwDtu *dtu = ((Modules *) my->specific)->dtu;
        HwSis3801 *sis3801 = ((Modules *) my->specific)->sis3801;
-       HwV488 *v556 = ((Modules *) my->specific)->v556;
-       HwV488 *v488 = ((Modules *) my->specific)->v488;
+       HwV488 *adc0 = ((Modules *) my->specific)->adc0;
+       HwV488 *tdc8 = ((Modules *) my->specific)->tdc8;
+       HwV488 *tdc9 = ((Modules *) my->specific)->tdc9;
        HwV775 **v775 = ((Modules *) my->specific)->v775;
        HwV878 **v878 = ((Modules *) my->specific)->v878;
 
@@ -147,10 +156,12 @@ void deleteHardware(Hardware *my)
                desHwV775(v775[i]);
                freeMem(v775[i]);
        }
-       desHwV488(v488);
-       freeMem(v488);
-       desHwV488(v556);
-       freeMem(v556);
+       desHwV488(tdc9);
+       freeMem(tdc9);
+       desHwV488(tdc8);
+       freeMem(tdc8);
+       desHwV488(adc0);
+       freeMem(adc0);
        desHwSis3801(sis3801);
        freeMem(sis3801);
        desHwDtu(dtu);
@@ -161,7 +172,13 @@ void deleteHardware(Hardware *my)
 
 void Hardware_waitForTrigger(Hardware *my, void *subEvt)
 {
+       int i;
        HwDtu *dtu = ((Modules *) my->specific)->dtu;
+       HwV775 **v775 = ((Modules *) my->specific)->v775;
+       HwV878 **v878 = ((Modules *) my->specific)->v878;
+       HwV488 *adc0 = ((Modules *) my->specific)->adc0;
+       HwV488 *tdc8 = ((Modules *) my->specific)->tdc8;
+       HwV488 *tdc9 = ((Modules *) my->specific)->tdc9;
        static int nextId = SubEvtId_trigCode;
        static int doReadOut;
        static UInt1 trigTag = 0;
@@ -171,7 +188,7 @@ void Hardware_waitForTrigger(Hardware *my, void *subEvt)
        case SubEvtId_trigCode:
                do {
                        while (HwDtu_isEmpty(dtu)) {
-#if 1
+#if 0
                                struct timespec tS, *t = &tS;
                                t->tv_sec = 0;
                                t->tv_nsec = 020000000;
@@ -198,6 +215,21 @@ void Hardware_waitForTrigger(Hardware *my, void *subEvt)
                nextId = SubEvtId_tofTest;
                break;
        case SubEvtId_tofTest:
+               do {
+#if 0
+                       struct timespec tS, *t = &tS;
+                       t->tv_sec = 0;
+                       t->tv_nsec = 020000000;
+                       nanosleep(t, NULL);
+#endif
+                       doReadOut = 1;
+                       for (i = 0; i < NV775S; i++) {
+                               doReadOut &= !HwV775_isEmpty(v775[i]);
+                       }
+                       for (i = 0; i < NV878S; i++) {
+                               doReadOut &= !HwV878_isEmpty(v878[i]);
+                       }
+               } while (!doReadOut);
                SubEvt_setSize(subEvt, SubEvt_hdrSize());
                SubEvt_setDecoding(subEvt, SubEvtDecoding_32bitData);
                SubEvt_setTrigNr(subEvt, trigNr << 8 | trigTag);
@@ -216,12 +248,13 @@ void Hardware_waitForTrigger(Hardware *my, void *subEvt)
        }
 }
 
-static void readoutDummy(void *subEvt)
+static void readoutDummy(Hardware *my, void *subEvt)
 {
+       HwDtu *dtu = ((Modules *) my->specific)->dtu;
        UInt4 *data = SubEvt_data(subEvt);
        UInt4 *first = data;
 
-       *data++ = 0x01;
+       *data++ = dtu->trigCode;
 
        SubEvt_setSize(subEvt, SubEvt_size(subEvt) + sizeof(UInt4) * (data - first));
 }
@@ -232,17 +265,18 @@ void Hardware_readout(Hardware *my, void *subEvt)
        int i;
        HwDtu *dtu = ((Modules *) my->specific)->dtu;
        HwSis3801 *sis3801 = ((Modules *) my->specific)->sis3801;
-       HwV488 *v556 = ((Modules *) my->specific)->v556;
-       HwV488 *v488 = ((Modules *) my->specific)->v488;
+       HwV488 *adc0 = ((Modules *) my->specific)->adc0;
+       HwV488 *tdc8 = ((Modules *) my->specific)->tdc8;
+       HwV488 *tdc9 = ((Modules *) my->specific)->tdc9;
        HwV775 **v775 = ((Modules *) my->specific)->v775;
        HwV878 **v878 = ((Modules *) my->specific)->v878;
 
        switch (SubEvt_pureId(subEvt)) {
        case SubEvtId_trigCode:
-               readoutDummy(subEvt);
+               readoutDummy(my, subEvt);
                break;
        case SubEvtId_tofTest:
-               for (i = 0; i < NV775S; i++) {
+               for ( i = 0; i < NV775S; i++) {
                        HwV775_readData(v775[i], subEvt);
                }
                for (i = 0; i < NV878S; i++) {
@@ -250,8 +284,9 @@ void Hardware_readout(Hardware *my, void *subEvt)
                }
                break;
        case SubEvtId_trigInfo:
-               HwV488_readData(v556, subEvt);
-               HwV488_readData(v488, subEvt);
+               HwV488_readData(adc0, subEvt);
+               HwV488_readData(tdc8, subEvt);
+               HwV488_readData(tdc9, subEvt);
                HwSis3801_readData(sis3801, subEvt);
                break;
        }
index 55db62743f5a77b841f31d6223836ba74a2209e5..29787da423ed3f5eed48e25fb1f9605f42846fb1 100644 (file)
@@ -1,4 +1,4 @@
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwv488.c,v 1.3 1999-11-01 08:33:00 muench Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwv488.c,v 1.4 2000-02-03 18:52:37 muench Stab $";
 
 #define _POSIX_C_SOURCE 199309L
 #include <unistd.h>
@@ -16,8 +16,6 @@ static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/had
 #include "param.h"
 #include "hwv488.h"
 
-#define V556_BROKEN
-
 int conHwV488(HwV488 * my, const char *name, const Param *param)
 {
        unsigned long cardBase;
@@ -31,7 +29,7 @@ int conHwV488(HwV488 * my, const char *name, const Param *param)
        cardBase = Param_getVal(param, my->name, "cardbase");
        my->lvme = allocMem(sizeof(LVme));
 
-       if (0 > conLVme(my->lvme, cardBase, 0x10000, 0x39, V488_SERIAL, 2)) {
+       if (0 > conLVme(my->lvme, cardBase, 0x10000, 0x39, V488_TYPE, 2)) {
                msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
                return -1;
        }
@@ -41,6 +39,7 @@ int conHwV488(HwV488 * my, const char *name, const Param *param)
        LVme_setW(my->lvme, V488_THRL, Param_getVal(param, my->name, "thrl"));
        LVme_setW(my->lvme, V488_THRH, Param_getVal(param, my->name, "thrh"));
        LVme_setW(my->lvme, V488_RANGE, Param_getVal(param, my->name, "range"));
+       my->id = Param_getVal(param, my->name, "id");
 
        return 0;
 }
@@ -63,15 +62,7 @@ int HwV488_readData(HwV488 * my, void *subEvt)
        UInt1 trigTag;
 
        msglog(LOG_DEBUG, "V488 Readout\n");
-#ifdef V556_BROKEN
-       if (LVme_getW(my->lvme, V488_SERIAL) != 0x2005) {
-               *data++ = 0x1007;
-       } else {
-               *data++ = LVme_getW(my->lvme, V488_SERIAL);
-       }
-#else
-       *data++ = LVme_getW(my->lvme, V488_SERIAL);
-#endif
+       *data++ = my->id;
        if (!HwV488_isEmpty(my)) {
                *data++ = hdr = LVme_getW(my->lvme, V488_OUT_BUF);
                if ((hdr & 0x8000) != 0x8000) {
index 26353182b60b80b48f66c44124a7b28fdb971604..c5224fdc93d620ed0b8226651fac4c76d61ba7d9 100644 (file)
@@ -8,6 +8,7 @@
 
 typedef struct HwV488S {
   char name[16];
+  UInt2 id;
   LVme *lvme;
   unsigned long trigNr;
 } HwV488;
@@ -18,7 +19,7 @@ typedef struct HwV488S {
 #define V488_THRH 0x12
 #define V488_THRL 0x10
 #define V488_RESET 0x1c
-#define V488_SERIAL 0xfe
+#define V488_TYPE 0xfc
 #define V488_HF_REG 0x1e
 #define V488_FF_REG 0x16
 
index 97b00675fd9b4679e3996d244d09b450352a5a7d..7df0ec59a6185ee282837466b806dd8890f95b0f 100644 (file)
@@ -27,6 +27,7 @@ typedef struct HwV878S {
 #define V878_VSET 0x1060
 #define V878_VOFF 0x1062
 #define V878_CLR_TIME 0x1066
+#define V878_SLIDE 0x106a
 #define V878_THRESH 0x1080
 
 
index 206b635c849579386473dd0f8fe4e627c16e1bd3..665539b7926416fb9d64ab90ea4ee98dd8948cbc 100644 (file)
@@ -41,7 +41,7 @@ fi
 if test $HW_CONF = "SOFT"
 then
 export HW_OBJS="hwsoft.o"
-elif test $HW_CONF = "TOF"
+elif test $HW_CONF = "SEB"
 then
 export HW_OBJS="hwtof.o hwv775.o hwv878.o hwv488.o hwdtu.o hwsis3801.o"
 elif test $HW_CONF = "RICH"
index 02a1acba2bbe99e216b66ebef712bc8864468ee0..6998f06d0a50fd1a39d4feb4b809caef41055791 100644 (file)
@@ -146,9 +146,10 @@ set tdc3(threshold28) 0
 set tdc3(threshold29) 0
 set tdc3(threshold30) 0
 set tdc3(threshold31) 0
-set tdc3(range) 255
-set tdc3(vset) 254
+set tdc3(vset) 148
 set tdc3(voff) 0
+set tdc3(fclr_win) 254
+set tdc3(clr_time) 0x8085
 
 set tdc4(cardbase) 0xdd000000
 set tdc4(threshold00) 0
@@ -303,15 +304,25 @@ set tdc7(fclr_win) 254
 set tdc7(clr_time) 0x8085
 
 set tdc8(cardbase) 0x200000
+set tdc8(id) 0x2005
 set tdc8(ctrl) 0x00ff
 set tdc8(thrl) 1
 set tdc8(thrh) 198
-set tdc8(range) 144 ;# 0 = 90ns, 224 = 770ns
+set tdc8(range) 120;# 0 = 90ns, 224 = 770ns
+
+set tdc9(cardbase) 0x400000
+set tdc9(id) 0x2006
+set tdc9(ctrl) 0x00ff
+set tdc9(thrl) 1
+set tdc9(thrh) 198
+set tdc9(range) 120; #0 = 90 ns, 224 = 770ns
 
 set adc0(cardbase) 0x000000
+set adc0(id) 0x1007
 set adc0(ctrl) 0x00ff
-set adc0(thrl) 8
+set adc0(thrl) 1
 set adc0(thrh) 198
 set adc0(delay) 0
+set adc0(range) 0
 
 set scaler0(cardbase) 0xa0000000