camac.h File Reference

#include <daqdatatypes.h>

Go to the source code of this file.

Defines

#define putbufw(word)   (*bufpt = (INT16)(word)); ++bufpt
#define putbufl(l)
#define savebufpt(var)   var = (INT32)bufpt
#define rstbufpt(var)   bufpt = ((INT16 *)var)
#define IAND(a, b)   ((a) & (b))
#define IOR(a, b)   ((a) | (b))
#define ISHIFT(a, b)   ((a) << (b))
#define EQ   ==
#define NE   !=
#define GT   >
#define GE   >=
#define LT   <
#define LE   <=
#define AND   &&
#define OR   ||
#define NOT   !
#define TRUE   1
#define FALSE   0
#define IF   if
#define THEN   {
#define ELSE   } else {
#define ENDIF   }
#define DO
#define WHILE(expr)   while(expr) {
#define ENDDO   }
#define CALL
#define sleep(sec)   pause_p((int)((sec)*second))
#define LOGICAL   UINT32
#define WORD   INT16
#define INTEGER   INT32
#define REAL   float
#define qstoptobuf(b, c, n, a, f)
#define rdtobuf16(b, c, n, a, f)   putbufw(camread16((b),(c),(n),(a),(f)))
#define rdtobuf24(b, c, n, a, f)   putbufl(camread24((b),(c),(n),(a),(f)))
#define READBIT(b, c, n, a, f, d)
#define INIT811(b, c, n)
#define CLR811(b, c, n)   camctl((b),(c),(n),12,11)
#define READ811(b, c, n, a)   rdtobuf16((b),(c),(n),(a),0)
#define INIT22XX(b, c, n)
#define CLR22XX(b, c, n)   camctl((b),(c),(n),0,9)
#define READ22XX(b, c, n, a)   rdtobuf16((b),(c),(n),(a),0)
#define FERA_OFS   0x8000
#define FERA_CLE   0x4000
#define FERA_CSR   0x2000
#define FERA_CCE   0x1000
#define FERA_CPS   0x0800
#define FERA_EEN   0x0400
#define FERA_ECE   0x0200
#define FERA_EPS   0x0100
#define busy(br, cr, sl)
#define INITFERA(b, c, n, cmd, ped)
#define CLRFERA(b, c, n)   camctl((b),(c),(n),0, 9)
#define READFERA(b, c, n, a)   rdtobuf16((b),(c),(n),(a),2)
#define READFERAALL(b, c, n)   qstoptobuf((b),(c),(n),0,2)
#define INIT812F(b, c, n, cmd, ped)
#define INIT4418(b, c, n, cmd, thrsh)
#define READ4418(b, c, n, a)   rdtobuf16((b),(c),(n),(a), 2)
#define RDHDR4418(b, c, n)   camread16((b),(c),(n),14, 2)
#define RDPAT4418(b, c, n)   camread16((b),(c),(n),15, 2)
#define BLKREAD4418(b, c, n)   qstoptobuf((b),(c),(n),0, 2)
#define INITBIT(b, c, n)
#define CLRBIT(b, c, n)   camctl((b),(c),(n),0,11)
#define RDBIT(b, c, n, a)   rdtobuf16((b),(c),(n),(a),0)
#define NIMOUT(b, c, n, pattern)   camwrite16((b),(c),(n),0,16,pattern)
#define ECLSCL_TEST   0x8000
#define ECLSCL_BD   0x2000
#define ECLSCL_RD   0x0080
#define ECLSCL_CL   0x0040
#define ECLSCL_LD   0X0020
#define ECLSCL_NPOS   8
#define INITGSIS(b, c, n)
#define CLRGSIS(b, c, n)   INITGSIS((b),(c),(n))
#define READALLGSIS(b, c, n)
#define INIT4434(b, c, n)
#define CLR4434(b, c, n)   INIT4434((b),(c),(n))
#define READ4434(b, c, n, a)
#define READALL4434(b, c, n)
#define INIT2551(b, c, n)   camctl((b),(c),(n),0,9)
#define CLR2551(b, c, n)   INIT2551((b),(c),(n))
#define READ2551(b, c, n, a)
#define READALL2551(b, c, n)
#define INIT7164(b, c, n, cmd, ped)
#define INIT7186(b, c, n, ip, ilow, iup, ped)
#define READ7164(b, c, n, a)   putbufw(camread16((b),(c),(n),(a),0) & 0x0fff)
#define READ7186(b, c, n, a)   putbufw(camread16((b),(c),(n),(a),0))
#define CLR7164(b, c, n)   camctl((b),(c),(n),0,9)
#define STARTUSR1TRIG(frequency)   trig1init((frequency))
#define STOPUSR1TRIG   trig1kill
#define msg(txt)   fprintf (stderr, txt)
#define hexout(val)   fprintf (stderr, "%x", val)
#define decout(val)   fprintf (stderr, "%d", val)
#define newline   fprintf (stderr, "\n")
#define Packet(size, type)
#define EndPacket   }
#define VPacket(type)
#define EndVPacket
#define Reserve(ptr, n)   ptr = bufpt; bufpt += (n);

Functions

bool daq_isJumboBuffer ()
static long getlong (volatile void *a)
static void putlong (INT32 v, volatile void *a)


Define Documentation

#define AND   &&

Definition at line 97 of file camac.h.

#define BLKREAD4418 ( b,
c,
 )     qstoptobuf((b),(c),(n),0, 2)

Definition at line 275 of file camac.h.

#define busy ( br,
cr,
sl   ) 

Value:

{                                                 \
                        fprintf(stderr,                                   \
                                "Module busy during programming: \n");      \
                        fprintf(stderr,                                   \
                                 "Br = %d Cr = %d Slot = %d \n",          \
                                 (br), (cr), (sl));                       \
                        sleep(2);                                 \
                        }

Definition at line 169 of file camac.h.

#define CALL

Definition at line 117 of file camac.h.

#define CLR22XX ( b,
c,
 )     camctl((b),(c),(n),0,9)

Definition at line 156 of file camac.h.

#define CLR2551 ( b,
c,
 )     INIT2551((b),(c),(n))

Definition at line 336 of file camac.h.

#define CLR4434 ( b,
c,
 )     INIT4434((b),(c),(n))

Definition at line 316 of file camac.h.

#define CLR7164 ( b,
c,
 )     camctl((b),(c),(n),0,9)

Definition at line 396 of file camac.h.

#define CLR811 ( b,
c,
 )     camctl((b),(c),(n),12,11)

Definition at line 149 of file camac.h.

#define CLRBIT ( b,
c,
 )     camctl((b),(c),(n),0,11)

Definition at line 283 of file camac.h.

#define CLRFERA ( b,
c,
 )     camctl((b),(c),(n),0, 9)

Definition at line 197 of file camac.h.

#define CLRGSIS ( b,
c,
 )     INITGSIS((b),(c),(n))

Definition at line 304 of file camac.h.

#define decout ( val   )     fprintf (stderr, "%d", val)

Definition at line 409 of file camac.h.

#define DO

Definition at line 114 of file camac.h.

#define ECLSCL_BD   0x2000

Definition at line 293 of file camac.h.

#define ECLSCL_CL   0x0040

Definition at line 295 of file camac.h.

#define ECLSCL_LD   0X0020

Definition at line 296 of file camac.h.

#define ECLSCL_NPOS   8

Definition at line 297 of file camac.h.

#define ECLSCL_RD   0x0080

Definition at line 294 of file camac.h.

#define ECLSCL_TEST   0x8000

Definition at line 292 of file camac.h.

#define ELSE   } else {

Definition at line 112 of file camac.h.

#define ENDDO   }

Definition at line 116 of file camac.h.

#define ENDIF   }

Definition at line 113 of file camac.h.

#define EndPacket   }

Definition at line 429 of file camac.h.

#define EndVPacket

Value:

if (daq_isJumboBuffer()) {                                     \
                               UINT32  __size = bufpt.GetIndex() - _pktstart.GetIndex(); \
                               *_pktstart     = (UINT16)(__size & 0xffff);               \
                               ++_pktstart;                                              \
                               *_pktstart     = (UINT16)((__size >> 16) & 0xffff);       \
                          } else {                                                       \
                               *_pktstart = (UINT16)(bufpt.GetIndex() -                  \
                                                    _pktstart.GetIndex());               \
                          }                                                              \
                        }

Definition at line 454 of file camac.h.

#define EQ   ==

Definition at line 91 of file camac.h.

#define FALSE   0

Definition at line 104 of file camac.h.

#define FERA_CCE   0x1000

Definition at line 164 of file camac.h.

#define FERA_CLE   0x4000

Definition at line 162 of file camac.h.

#define FERA_CPS   0x0800

Definition at line 165 of file camac.h.

#define FERA_CSR   0x2000

Definition at line 163 of file camac.h.

#define FERA_ECE   0x0200

Definition at line 167 of file camac.h.

#define FERA_EEN   0x0400

Definition at line 166 of file camac.h.

#define FERA_EPS   0x0100

Definition at line 168 of file camac.h.

#define FERA_OFS   0x8000

Definition at line 161 of file camac.h.

#define GE   >=

Definition at line 94 of file camac.h.

#define GT   >

Definition at line 93 of file camac.h.

#define hexout ( val   )     fprintf (stderr, "%x", val)

Definition at line 408 of file camac.h.

#define IAND ( a,
 )     ((a) & (b))

Definition at line 85 of file camac.h.

#define IF   if

Definition at line 110 of file camac.h.

#define INIT22XX ( b,
c,
 ) 

Value:

camctl((b),(c),(n),0,9); \
                                camctl((b),(c),(n),0,26)

Definition at line 154 of file camac.h.

#define INIT2551 ( b,
c,
 )     camctl((b),(c),(n),0,9)

Definition at line 335 of file camac.h.

#define INIT4418 ( b,
c,
n,
cmd,
thrsh   ) 

Value:

{                                   \
    INT16 i;                                                        \
    INT32 *_p;                                                      \
    do{                                                             \
        camctl(b,c,n,0,9);  /* clear */                             \
        camwrite16(b,c,n,14,20,cmd); /* write status word */        \
        if(!qtst(b))busy(b,c,n);                                    \
    }while(!qtst(b));                                               \
    _p =  &userints[thrsh];                                         \
    do{                                                             \
        camwrite16(b,c,n,9,20,*_p); /* write common threashold */  \
        if(!qtst(b))busy(b,c,n);                                    \
    }while(!qtst(b));                                               \
    ++_p;                                                           \
            /* write LLD value */                                   \
    for(i=8;i<16;_p++,i++)do{                                       \
        camwrite16(b,c,n,i,17,*_p);                                 \
        if(!qtst(b))busy(b,c,n);                                    \
    }while(!qtst(b));                                               \
            /* write offset value */                                \
    for(i=0;i<8;_p++,i++)do{                                        \
        camwrite16(b,c,n,i,20,*_p);                                 \
        if(!qtst(b))busy(b,c,n);                                    \
    }while(!qtst(b));                                               \
            /* write LLD value */                                   \
    for(i=0;i<8;_p++,i++)do{                                        \
        camwrite16(b,c,n,i,17,*_p);                                 \
        if(!qtst(b))busy(b,c,n);                                    \
    }while(!qtst(b));                                               \
}

Definition at line 238 of file camac.h.

#define INIT4434 ( b,
c,
 ) 

Value:

camwrite16((b),(c),(n),0,16, ECLSCL_CL |      \
                                                             ECLSCL_BD)

Definition at line 314 of file camac.h.

#define INIT7164 ( b,
c,
n,
cmd,
ped   ) 

Value:

{                        \
    INT16 i;                                         \
    INT32 *_p;                                       \
    camctl(b,c,n,0,9);               /* clear */     \
    do{                                          \
          camwrite16(b,c,n,0,19,cmd);                    \
          if(!qtst(b))busy(b,c,n);                       \
          }while(!qtst(b));                                \
          _p = &userints[ped];                             \
          for(i=0;i<16;_p++,i++)do{                        \
              camwrite16(b,c,n,0,17,i); /* ped to follow*/ \
            camwrite16(b,c,n,i,20,*_p); /* here it is */ \
            if(!qtst(b))busy(b,c,n);                     \
              }while(!qtst(b));                              \
        camctl(b,c,n,0,26);                              \
}

Definition at line 354 of file camac.h.

#define INIT7186 ( b,
c,
n,
ip,
ilow,
iup,
ped   ) 

Value:

{                 \
        INT16 i,ibit,icmd=0;                             \
        INT32 *_p;                                       \
        camctl(b,c,n,0,9);              /* clear */      \
        if(ip)icmd |= 1;     /* set pedestals */         \
        if(ilow)icmd |= 2;   /* set lower thresh */      \
        if(iup)icmd |= 4;    /* set upper thresh */      \
        camwrite16(b,c,n,0,19,icmd);                     \
        _p = &userints[ped];                             \
        for(ibit=0;ibit<3; ibit++){ /* ped, low, upper */ \
          if((1 < ibit) & icmd){                         \
            camwrite16(b,c,n,ibit,17,0);                 \
            for(i=0; i<16; _p++,i++)do{                  \
              camwrite16(b,c,n,i,20,*_p);                \
              if(!qtst(b))busy(b,c,n);                   \
            }while(!qtst(b));                            \
          }                                              \
        }                                                \
        camctl(b,c,n,0,26);    /* enable LAM */          \
}

Definition at line 370 of file camac.h.

#define INIT811 ( b,
c,
 ) 

Value:

camctl((b),(c),(n),12,11); \
                                camctl((b),(c),(n),12,26)

Definition at line 147 of file camac.h.

#define INIT812F ( b,
c,
n,
cmd,
ped   ) 

Value:

{ INT16 _sub;                        \
                                          INT32 *_p;                         \
                                          do                                 \
                                          {                                  \
                                           camctl((b),(c),(n),0,9);          \
                                           camwrite16((b),(c),(n),0,16,cmd); \
                                           if(!qtst(b))                      \
                                              busy((b),(c),(n));             \
                                          }while (!qtst((b)));               \
                                          _p = &userints[ped];               \
                                          for(_sub=0;_sub<=7; _p++,_sub++)  \
                                            do                               \
                                            {                                \
                                              camctl((b),(c),(n),0,9);       \
                                              camwrite16((b),(c),(n),_sub,   \
                                                          17,*_p);           \
                                              if(!qtst(b))                   \
                                                 busy((b),(c),(n));          \
                                            } while(!qtst(b));               \
                                        }

Definition at line 205 of file camac.h.

#define INITBIT ( b,
c,
 ) 

Value:

camctl((b),(c),(n),0,11);                     \
                                camctl((b),(c),(n),0,26)

Definition at line 281 of file camac.h.

#define INITFERA ( b,
c,
n,
cmd,
ped   ) 

Value:

{ INT16 _sub;                        \
                                          INT32 *_p;                         \
                                          do                                 \
                                          {                                  \
                                           camctl((b),(c),(n),0,9);          \
                                           camwrite16((b),(c),(n),0,16,cmd); \
                                           if(!qtst(b))                      \
                                              busy((b),(c),(n));             \
                                          }while (!qtst((b)));               \
                                          _p = &userints[ped];               \
                                          for(_sub=0;_sub<=15; _p++,_sub++)  \
                                            do                               \
                                            {                                \
                                              camctl((b),(c),(n),0,9);       \
                                              camwrite16((b),(c),(n),_sub,   \
                                                          17,*_p);           \
                                              if(!qtst(b))                   \
                                                 busy((b),(c),(n));          \
                                            } while(!qtst(b));               \
                                        }

Definition at line 177 of file camac.h.

#define INITGSIS ( b,
c,
 ) 

Value:

{ camwrite16((b),(c),(n),0,16,0);   \
                                  camctl((b),(c),(n),0,9);          \
                                  camctl((b),(c),(n),0,1); }

Definition at line 300 of file camac.h.

#define INTEGER   INT32

Definition at line 126 of file camac.h.

#define IOR ( a,
 )     ((a) | (b))

Definition at line 86 of file camac.h.

#define ISHIFT ( a,
 )     ((a) << (b))

Definition at line 87 of file camac.h.

#define LE   <=

Definition at line 96 of file camac.h.

#define LOGICAL   UINT32

Definition at line 124 of file camac.h.

#define LT   <

Definition at line 95 of file camac.h.

#define msg ( txt   )     fprintf (stderr, txt)

Definition at line 407 of file camac.h.

Referenced by sis3820tests::AllChannelsCount(), sis3820tests::ClearChannels(), sis3820tests::ClearOnLatch(), sis3600tests::Construction(), sis3600tests::FClearWindow(), sis3820tests::LatchTest(), sis3820tests::MapTestFail(), sis3820tests::MapTestOk(), sis3600tests::Read1(), sis3820tests::Read1Channel(), CCAENV830::ReadCounter(), CCAENV560::ReadCounter(), CAENV890::SetWindowOffset(), CAENcard_767::slotInit(), sis3820tests::TestInputModes(), sis3820tests::TestLNESource(), ThrowIfBadChannel(), ThrowIfBadSection(), ThrowIntString(), and CSIS3820::ValidChannel().

#define NE   !=

Definition at line 92 of file camac.h.

#define newline   fprintf (stderr, "\n")

Definition at line 410 of file camac.h.

#define NIMOUT ( b,
c,
n,
pattern   )     camwrite16((b),(c),(n),0,16,pattern)

Definition at line 288 of file camac.h.

#define NOT   !

Definition at line 99 of file camac.h.

#define OR   ||

Definition at line 98 of file camac.h.

#define Packet ( size,
type   ) 

Value:

{ if (daq_isJumboBuffer()) {                  \
                                putbufl(size); putbufw(type);            \
                             } else {                                    \
                                putbufw(size); putbufw(type);            \
                             }

Definition at line 422 of file camac.h.

#define putbufl (  ) 

Value:

{                                       \
                                  UINT32 tmp = (l);                         \
                                  putbufw((tmp&0xffff));                  \
                                  putbufw((tmp >> 16));                   \
                                }

Definition at line 74 of file camac.h.

#define putbufw ( word   )     (*bufpt = (INT16)(word)); ++bufpt

Definition at line 73 of file camac.h.

#define qstoptobuf ( b,
c,
n,
a,
 ) 

Value:

do {                            \
                                putbufw(camread16(b,c,n,a,f));  \
                              } while(qtst(b));                 \
                              --bufpt;

Definition at line 132 of file camac.h.

#define RDBIT ( b,
c,
n,
 )     rdtobuf16((b),(c),(n),(a),0)

Definition at line 284 of file camac.h.

#define RDHDR4418 ( b,
c,
 )     camread16((b),(c),(n),14, 2)

Definition at line 273 of file camac.h.

#define RDPAT4418 ( b,
c,
 )     camread16((b),(c),(n),15, 2)

Definition at line 274 of file camac.h.

#define rdtobuf16 ( b,
c,
n,
a,
 )     putbufw(camread16((b),(c),(n),(a),(f)))

Definition at line 137 of file camac.h.

#define rdtobuf24 ( b,
c,
n,
a,
 )     putbufl(camread24((b),(c),(n),(a),(f)))

Definition at line 138 of file camac.h.

#define READ22XX ( b,
c,
n,
 )     rdtobuf16((b),(c),(n),(a),0)

Definition at line 157 of file camac.h.

#define READ2551 ( b,
c,
n,
 ) 

Value:

putbufl(                                     \
                                camread24((b),(c),(n),(a),0))

Definition at line 337 of file camac.h.

#define READ4418 ( b,
c,
n,
 )     rdtobuf16((b),(c),(n),(a), 2)

Definition at line 272 of file camac.h.

#define READ4434 ( b,
c,
n,
 ) 

Value:

camwrite16((b),(c),(n),0,16,          \
                                                             (ECLSCL_LD) |    \
                                                             (a));         \
                                          rdtobuf24((b),(c),(n),0,0);

Definition at line 317 of file camac.h.

#define READ7164 ( b,
c,
n,
 )     putbufw(camread16((b),(c),(n),(a),0) & 0x0fff)

Definition at line 394 of file camac.h.

#define READ7186 ( b,
c,
n,
 )     putbufw(camread16((b),(c),(n),(a),0))

Definition at line 395 of file camac.h.

#define READ811 ( b,
c,
n,
 )     rdtobuf16((b),(c),(n),(a),0)

Definition at line 150 of file camac.h.

#define READALL2551 ( b,
c,
 ) 

Value:

{ INT16 _a;                                   \
                                  for(_a = 0; _a < 12; _a++)                  \
                                       putbufl(                               \
                                        camread24((b),(c),(n),(_a), 0));              \
                                }

Definition at line 340 of file camac.h.

#define READALL4434 ( b,
c,
 ) 

Value:

{ INT16 _a;                                   \
                                  camwrite16((b),(c),(n),0,16,                \
                                                             (ECLSCL_LD)  |  \
                                                      (31 << ECLSCL_NPOS));   \
                                 for(_a = 31; _a != -1; _a--)                 \
                                 {                                          \
                                   putbufl(                                   \
                                           camread24((b),(c),(n),0,2));       \
                                 }                                            \
                                }

Definition at line 322 of file camac.h.

#define READALLGSIS ( b,
c,
 ) 

Value:

{ INT16 _a;                         \
                                  INITGSIS((b),(c),(n));            \
                                  for(_a = 0; _a <=47; _a++) {      \
                                      rdtobuf24((b),(c),(n),0,0);   \
                                  }                                  \
                                }

Definition at line 307 of file camac.h.

#define READBIT ( b,
c,
n,
a,
f,
 ) 

Value:

d = camread16(b,c,n,a,f);                 \
                                  putbufw(d)

Definition at line 141 of file camac.h.

#define READFERA ( b,
c,
n,
 )     rdtobuf16((b),(c),(n),(a),2)

Definition at line 198 of file camac.h.

#define READFERAALL ( b,
c,
 )     qstoptobuf((b),(c),(n),0,2)

Definition at line 199 of file camac.h.

#define REAL   float

Definition at line 127 of file camac.h.

#define Reserve ( ptr,
 )     ptr = bufpt; bufpt += (n);

Definition at line 471 of file camac.h.

#define rstbufpt ( var   )     bufpt = ((INT16 *)var)

Definition at line 81 of file camac.h.

#define savebufpt ( var   )     var = (INT32)bufpt

Definition at line 80 of file camac.h.

#define sleep ( sec   )     pause_p((int)((sec)*second))

Definition at line 120 of file camac.h.

Referenced by sis3820tests::ClearOnLatch(), sis3820tests::Count2sec(), CAENcard_767::reset(), and CAENcard_767::slotInit().

#define STARTUSR1TRIG ( frequency   )     trig1init((frequency))

Definition at line 402 of file camac.h.

#define STOPUSR1TRIG   trig1kill

Definition at line 403 of file camac.h.

#define THEN   {

Definition at line 111 of file camac.h.

#define TRUE   1

Definition at line 101 of file camac.h.

#define VPacket ( type   ) 

Value:

{                                           \
                            DAQWordBufferPtr _pktstart = bufpt;       \
                            ++bufpt;                                  \
                            if (daq_isJumboBuffer()) ++bufpt;         \
                            putbufw(type);

Definition at line 446 of file camac.h.

#define WHILE ( expr   )     while(expr) {

Definition at line 115 of file camac.h.

#define WORD   INT16

Definition at line 125 of file camac.h.


Function Documentation

bool daq_isJumboBuffer (  ) 

This file describes interfaces into the CAMAC system. At present the following CAMAC interfaces are supported and this file simply includes the one selected at compile time by the value of the CAMACINTERFACE macro:

CESCAMAC - CES CBD8210 VME Camac branch highway interface. VC32CAMAC - WIENER VC32/CC32 VME - single crate controller.

Acknowledgements:

static long getlong ( volatile void *  a  )  [inline, static]

Definition at line 56 of file camac.h.

static void putlong ( INT32  v,
volatile void *  a 
) [inline, static]

Definition at line 64 of file camac.h.


Generated on Wed Sep 17 08:38:09 2008 for NSCL Device support. by  doxygen 1.5.1