-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.1 1999-09-02 08:36:41 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.2 1999-09-02 08:58:50 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include "hardware.h"
+#define NV775S 1
+
+typedef struct ModulesS {
+ HwV775 *v775[NV775S];
+} Modules;
+
size_t Hardware_maxSubEvtSize(const Hardware *my)
{
return my->maxSubEvtSize;
{
Hardware *my;
Param paramS, *param = ¶mS;
- HwV775 *v775;
+ HwV775 *v775[NV775S];
int i;
if (0 > conParam(param, "param.tcl")) {
return NULL;
}
my = allocMem(sizeof(Hardware));
- my->specific = allocMem(sizeof(v775));
+ my->specific = allocMem(sizeof(Modules));
- my->maxSubEvtSize = SubEvt_hdrSize() + (2564 * sizeof(UInt4));
+ my->maxSubEvtSize = SubEvt_hdrSize() + (NV775S * 34 * sizeof(UInt4));
- v775 = allocMem(sizeof(HwV775));
- if (0 > conHwV775(v775, "tdc0", param)) {
- msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
- return NULL;
+ for (i = 0; i < NV775S; i++) {
+ char buf[16];
+
+ v775[i] = allocMem(sizeof(HwV775));
+ sprintf(buf, "tdc%d", i);
+ if (0 > conHwV775(v775[i], buf, param)) {
+ msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno));
+ return NULL;
+ }
+ ((Modules *) my->specific)->v775[i] = v775[i];
}
- my->specific = (void *) v775;
desParam(param);
void deleteHardware(Hardware *my)
{
- HwV775 *v775 = (HwV775 *) my->specific;
+ int i;
+ HwV775 **v775 = ((Modules *) my->specific)->v775;
- desHwV775(v775);
- freeMem(v775);
+ for (i = 0; i < NV775S; i++) {
+ desHwV775(v775[i]);
+ freeMem(v775[i]);
+ }
freeMem(my);
}
void Hardware_waitForTrigger(const Hardware *my, void *subEvt)
{
- HwV775 *v775 = (HwV775 *) my->specific;
+ HwV775 **v775 = ((Modules *) my->specific)->v775;
- if (HwV775_isEmpty(v775)) {
- HwV775_requestBuffer(v775);
- while (HwV775_isBusy(v775)) {
+ if (HwV775_isEmpty(v775[0])) {
+ HwV775_requestBuffer(v775[0]);
+ while (HwV775_isBusy(v775[0])) {
#if 1
struct timespec tS, *t = &tS;
t->tv_sec = 0;
void Hardware_readout(const Hardware *my, void *subEvt)
{
- HwV775 *v775 = (HwV775 *) my->specific;
-
- HwV775_readSubEvt(v775, subEvt);
+ int i;
+ HwV775 **v775 = ((Modules *) my->specific)->v775;
+ void *currSubEvt;
+
+ for (
+ i = 0, currSubEvt = subEvt;
+ i < NV775S;
+ i++, currSubEvt = SubEvt_end(subEvt)
+ ) {
+ HwV775_readSubEvt(v775[i], currSubEvt);
+ }
}