From: muench Date: Thu, 3 Feb 2000 18:51:45 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=f443e45e3568e0955deaa61732771d68289c3e52;p=daqdata.git *** empty log message *** --- diff --git a/hadaq/hwtof.c b/hadaq/hwtof.c index 4ee1d4f..7e90a50 100644 --- a/hadaq/hwtof.c +++ b/hadaq/hwtof.c @@ -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 @@ -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 = ¶mS; 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; } diff --git a/hadaq/hwv488.c b/hadaq/hwv488.c index 55db627..29787da 100644 --- a/hadaq/hwv488.c +++ b/hadaq/hwv488.c @@ -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 @@ -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) { diff --git a/hadaq/hwv488.h b/hadaq/hwv488.h index 2635318..c5224fd 100644 --- a/hadaq/hwv488.h +++ b/hadaq/hwv488.h @@ -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 diff --git a/hadaq/hwv878.h b/hadaq/hwv878.h index 97b0067..7df0ec5 100644 --- a/hadaq/hwv878.h +++ b/hadaq/hwv878.h @@ -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 diff --git a/hadaq/makeenv b/hadaq/makeenv index 206b635..665539b 100644 --- a/hadaq/makeenv +++ b/hadaq/makeenv @@ -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" diff --git a/hadaq/param.tcl b/hadaq/param.tcl index 02a1acb..6998f06 100644 --- a/hadaq/param.tcl +++ b/hadaq/param.tcl @@ -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