1 #!../../bin/windows-x64-debug/isisdaeTest
3 ## You may have to change isisdaeTest to something else
4 ## everywhere it appears in this file
10 epicsEnvSet "DETECTOR_DIR" "$(ICPCONFIGROOT)/tables"
21 ## Register all support components
22 dbLoadDatabase
"dbd/isisdaeTest.dbd"
23 isisdaeTest_registerRecordDeviceDriver
pdbbase
25 ##ISIS## Run IOC initialisation
26 < $(IOCSTARTUP)/init.cmd
28 # Prefix
for all records
30 # The port name for the detector
31 #epicsEnvSet("PORT", "icp")
32 # The queue size for all plugins
33 #epicsEnvSet("QSIZE", "20")
34 # The maximim image width; used to set the maximum size for this driver and for row profiles in the NDPluginStats plugin
35 #epicsEnvSet("XSIZE", "10")
36 # The maximim image height; used to set the maximum size for this driver and for column profiles in the NDPluginStats plugin
37 #epicsEnvSet("YSIZE", "10")
38 # The search path for database files
39 epicsEnvSet(
"EPICS_DB_INCLUDE_PATH",
"$(ADCORE)/db")
43 ## used for restarting and checking EPICS block archiver via web URL
47 ## local dae, no dcom/labview
49 ## pass 1 as second arg to signify DCOM to either local or remote dae
50 #isisdaeConfigure("icp", 1, "localhost")
51 #isisdaeConfigure("icp", 1, "ndxchipir", "spudulike", "reliablebeam")
60 ## Load record instances
62 ##ISIS## Load common DB records
63 < $(IOCSTARTUP)/dbload.cmd
65 dbLoadRecords(
"$(TOP)/db/isisdae.db",
"S=$(MYPVPREFIX), P=$(MYPVPREFIX),Q=DAE:, WIRINGLIST=WLIST, DETECTORLIST=DLIST, SPECTRALIST=SLIST, PERIODLIST=PLIST, TCBLIST=TLIST")
66 dbLoadRecords(
"$(TOP)/db/dae_diag.db",
"P=$(MYPVPREFIX),Q=DAE:")
68 dbLoadRecords("$(TOP)/db/ADisisdae.template","P=$(MYPVPREFIX),R=DAE:,PORT=icp,ADDR=0,TIMEOUT=1")
72 # This waveform allows transporting 8-bit images
73 # needs to fit in EPICS_CA_MAX_ARRAY_BYTES
76 dbLoadRecords(
"NDStdArrays.template",
"P=$(MYPVPREFIX),R=DAE:image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=icp,TYPE=Int8,FTVL=UCHAR,NELEMENTS=150000,ENABLED=1")
77 # This waveform allows transporting 32-bit images
78 #dbLoadRecords("NDStdArrays.template", "P=$(MYPVPREFIX),R=DAE:image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=icp,TYPE=Int32,FTVL=LONG,NELEMENTS=12000000,ENABLED=1")
80 ## Create an FFT plugin
81 #NDFFTConfigure("FFT1", 3, 0, "icp", 0)
82 #dbLoadRecords("NDFFT.template", "P=$(PREFIX),R=DAE:FFT1:,PORT=FFT1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),NAME=FFT1,NCHANS=2048")
85 ## ffmpegStreamConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxMemory)
87 dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegStream.template", "P=$(MYPVPREFIX),R=DAE:Stream:,PORT=C1.MJPG,ADDR=0,TIMEOUT=1,NDARRAY_PORT=icp,ENABLED=1")
89 ## ffmpegFileConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr)
91 dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegFile.template", "P=$(MYPVPREFIX),R=DAE:File:,PORT=C1.FILE,ADDR=0,TIMEOUT=1,NDARRAY_PORT=icp,ENABLED=1")
94 dbLoadRecords("NDPva.template", "P=$(MYPVPREFIX),R=DAE:V4:,PORT=PVA,ADDR=0,TIMEOUT=1,NDARRAY_PORT=icp,ENABLED=1")
96 ##ISIS## Stuff that needs to be done after all records are loaded but before iocInit is called
97 < $(IOCSTARTUP)/preiocinit.cmd
99 ## 0=none,0x1=err,0x2=IO_device,0x4=IO_filter,0x8=IO_driver,0x10=flow,0x20=warning
100 #asynSetTraceMask(
"icp", -1, 0x11)
101 #asynSetTraceMask("Image1", -1, 0x11)
103 cd ${TOP}/iocBoot/${IOC}
106 ## Start any sequence programs
107 #seq sncxxx,"user=faa59Host"
109 ##ISIS## Stuff that needs to be done after iocInit is called e.g. sequence programs
110 < $(IOCSTARTUP)/postiocinit.cmd
ffmpegServerConfigure(8081)
Create an FFT plugin ;.
webgetConfigure("arch1")
used for restarting and checking EPICS block archiver via web URL ;
ffmpegStreamConfigure("C1.MJPG", 2, 0,"icp","0")
ffmpegStreamConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxMemory) ;
epicsEnvSet WIRING_PATTERN *wiring *epicsEnvSet DETECTOR_DIR(ICPCONFIGROOT)/tables"
epicsEnvSet("EPICS_DB_INCLUDE_PATH","$(ADCORE)/db")
ISIS## Run IOC initialisation ;.
dbLoadRecords("$(TOP)/db/isisdae.db","S=$(MYPVPREFIX), P=$(MYPVPREFIX),Q=DAE:, WIRINGLIST=WLIST, DETECTORLIST=DLIST, SPECTRALIST=SLIST, PERIODLIST=PLIST, TCBLIST=TLIST")
Load record instances ;.
FileListConfigure("WLIST","$(WIRING_DIR)","$(WIRING_PATTERN)", 1)
pass 1 as second arg to signify DCOM to either local or remote dae ;
NDPvaConfigure("PVA", 3, 0,"icp", 0,"v4pvname")
isisdaeConfigure("icp", 1)
local dae, no dcom/labview ;
asynSetMinTimerPeriod(0.001)
ffmpegFileConfigure("C1.FILE", 16, 0,"icp", 0)
ffmpegFileConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) ; ...
epicsEnvSet TCB_PATTERN *tcb * cd
ISIS## Stuff that needs to be done after all records are loaded but before iocInit is called ;...
isisdaeTest_registerRecordDeviceDriver pdbbase
epicsEnvSet SPECTRA_PATTERN *spec *epicsEnvSet PERIOD_DIR(ICPCONFIGROOT)/tables"
epicsEnvSet PERIOD_PATTERN *period *epicsEnvSet TCB_DIR(ICPCONFIGROOT)/tcb"
NDStdArraysConfigure("Image1", 3, 0,"icp", 0, 0)
epicsEnvSet DETECTOR_PATTERN *det *epicsEnvSet SPECTRA_DIR(ICPCONFIGROOT)/tables"