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); }
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); }