Esempio n. 1
0
static void
__go()
{
  int ii, jj, id, slot;

  logMsg("INFO: Entering Go 1\n",1,2,3,4,5,6);

  /* set sync event interval (in blocks) */
vmeBusLock();
 tsSetSyncEventInterval(0/*10000*//*block_level*/);
vmeBusUnlock();






  /* always clear exceptions */
  jlabgefClearException(1);

  nusertrig = 0;
  ndone = 0;

  CDOENABLE(TSPRIMARY,TIR_SOURCE,0); /* bryan has (,1,1) ... */

  logMsg("INFO: Go 1 Executed\n",1,2,3,4,5,6);
}
Esempio n. 2
0
int 
main(int argc, char *argv[]) {

    int stat;

    printf("\nJLAB TS Tests\n");
    printf("----------------------------\n");

    vmeOpenDefaultWindows();

  /* Setup Address and data modes for DMA transfers
   *   
   *  vmeDmaConfig(addrType, dataType, sstMode);
   *
   *  addrType = 0 (A16)    1 (A24)    2 (A32)
   *  dataType = 0 (D16)    1 (D32)    2 (BLK32) 3 (MBLK) 4 (2eVME) 5 (2eSST)
   *  sstMode  = 0 (SST160) 1 (SST267) 2 (SST320)
   */
    vmeDmaConfig(2,5,1);

    /* INIT dmaPList */

    dmaPFreeAll();
    vmeIN  = dmaPCreate("vmeIN",1024,500,0);
    vmeOUT = dmaPCreate("vmeOUT",0,0,0);
    
    dmaPStatsAll();

    dmaPReInitAll();

/*     gefVmeSetDebugFlags(vmeHdl,0x0); */
    /* Set the TS structure pointer */
    tsInit((21<<19),TS_READOUT_EXT_POLL,0);
    if(tsCheckAddresses()==ERROR)
      goto CLOSE;

    tsStatus(1);

    tsSetSyncEventInterval(20);

    tsSetBlockLevel(BLOCKLEVEL);

    
    tsLoadTriggerTable();

    stat = tsIntConnect(TS_INT_VEC, mytsISR, 0);
    if (stat != OK) 
      {
	printf("ERROR: tsIntConnect failed \n");
	goto CLOSE;
      } 
    else 
      {
	printf("INFO: Attached TS Interrupt\n");
      }

    tsSetTriggerSource(5);

    tsSetFPInput(0x0);
    tsSetGenInput(0xffff);
    tsSetGTPInput(0x0);

    tsSetBusySource(TS_BUSY_LOOPBACK,1);

    tsSetBlockLimit(20);

    tsSetBlockBufferLevel(1);

    tsTrigLinkReset();
    taskDelay(1);

    tsStatus(1);
    int again=0;

 AGAIN:
    tsSyncReset(1);

    taskDelay(1);

    tsGetCurrentBlockLevel();
    
    tsStatus(1);

    printf("Hit enter to start triggers\n");
    getchar();

    tsIntEnable(0);
    tsStatus(1);
#define SOFTTRIG
#ifdef SOFTTRIG
    tsSetRandomTrigger(1,0x7);
    taskDelay(10);
/*     tsSoftTrig(1,BLOCKLEVEL-3,0x700,0); */
#endif

    printf("Hit any key to Disable triggers.\n");
    getchar();
    tsStatus(1);
    tsSetBlockLimit(1014);
    printf("Hit any key to Disable triggers.\n");
    getchar();
    tsDisableTriggerSource(1);
    tsStatus(1);
    tsPrintScalers(1);
    tsPrintScalers(2);
    tsPrintScalers(3);

#ifdef SOFTTRIG
    /* No more soft triggers */
/*     tidSoftTrig(0x0,0x8888,0); */
    tsSoftTrig(1,0,0x700,0);
    tsDisableRandomTrigger();
#endif

    printf("Hit any key to Disconnect and exit.\n");
    getchar();

    tsIntDisable();

    tsIntDisconnect();

    tsStatus(1);

    again=0;
    if(again==1)
      {
	again=0;
	goto AGAIN;
      }

 CLOSE:

    vmeCloseDefaultWindows();

    exit(0);
}