>I have fixed the problems with dynamic builds of ADPcoWin. There is a fix_dynamic branch on Github and a pull request >pending for master.
For the future: should I use the _dynamic build or can I stay with static? Is there any difference for me?
Concerning my edm struggle:
>If you send the errors we can
probably help figure them out.
I think I first stay with CSStudio
mentioned by Oksana. I managed to open the .opi screens with that, but only inside of the whole studio programm and not as a standalone window. How can I open that and give my PVs from console like:
start medm -x -macro "P=13PCO1:,
R=cam1:" pointGrey.adl &
And this is how my IOC-startup
looks like: (the PCO.1600 is connected via USB)
PS C:\epics\inst-7.0.3.1\areaDetector-R3-9\ADPcoWin\iocs\pcowinIOC\iocBoot\iocPco1600Win> C:\epics\inst-7.0.3.1\a
reaDetector-R3-9\ADPcoWin\iocs\pcowinIOC\bin\windows-x64-static\pcowinApp.exe .\st.cmd
< envPaths
epicsEnvSet("IOC","iocPco1600Win")
epicsEnvSet("TOP","C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC")
epicsEnvSet("ADPCOWIN","C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../..")
epicsEnvSet("SUPPORT","C:/epics/inst-7.0.3.1")
epicsEnvSet("ASYN","C:/epics/inst-7.0.3.1/asyn-R4-39")
epicsEnvSet("AREA_DETECTOR","C:/epics/inst-7.0.3.1/areaDetector-R3-9")
epicsEnvSet("ADSUPPORT","C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADSupport")
epicsEnvSet("ADCORE","C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore")
epicsEnvSet("AUTOSAVE","C:/epics/inst-7.0.3.1/autosave-R5-10")
epicsEnvSet("BUSY","C:/epics/inst-7.0.3.1/busy-R1-7-2")
epicsEnvSet("CALC","C:/epics/inst-7.0.3.1/calc-R3-7-3")
epicsEnvSet("SSCAN","C:/epics/inst-7.0.3.1/sscan-R2-11-3")
epicsEnvSet("EPICS_BASE","C:/epics/base-7.0.3.1")
errlogInit(20000)
dbLoadDatabase("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/dbd/pcowinApp.dbd")
pcowinApp_registerRecordDeviceDriver(pdbbase)
# PREFIX for all records
epicsEnvSet("PREFIX", "PCO1600:")
# The port name for the detector
epicsEnvSet("PORT", "PCO1")
# Larger queue size may be need to stream to disk at full camera speed, up tp 2000
epicsEnvSet("QSIZE", "20")
# The maximim image width; used for row profiles in the NDPluginStats plugin
epicsEnvSet("XSIZE", "2560")
# The maximim image height; used for column profiles in the NDPluginStats plugin
epicsEnvSet("YSIZE", "2160")
# The maximum number of time series points in the NDPluginStats plugin
epicsEnvSet("NCHANS", "2048")
# The maximum number of frames buffered in the NDPluginCircularBuff plugin
epicsEnvSet("CBUFFS", "500")
# The search path for database files
epicsEnvSet("EPICS_DB_INCLUDE_PATH", "C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db")
# Define NELEMENTS to be enough for a 2048x2048x3 (color) image
epicsEnvSet("NELEMENTS", "11059200")
# pcoConfig(const char* portName, int maxBuffers, size_t maxMemory)
pcoConfig("PCO1", 0, 0, 8)
# pcoApiConfig(const char* portName)
pcoApiConfig("PCO1")
# Asyn tracing
asynSetTraceIOMask(PCO1, 0, 2)
#asynSetTraceMask($(PORT), 0, 0xFF)
#asynSetTraceFile($(PORT), 0, "asynTrace.out")
#asynSetTraceInfoMask($(PORT), 0, 0xf)
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco.template", "P=PCO1600:,R=cam
1:,PORT=PCO1,ADDR=0,TIMEOUT=1")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=0")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=1")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=2")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=3")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=4")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=5")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=6")
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../db/pco_device_firmware.template", "
P=PCO1600:,R=cam1:,PORT=PCO1,N=7")
# What other database files need to be loaded?
# Create a standard arrays plugin
NDStdArraysConfigure("Image1", 5, 0, "PCO1", 0, 0)
# Use this line for 8-bit data only
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDStdArrays.template", "P=PCO1600:,R=image1:,PORT=Image
1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1,TYPE=Int8,FTVL=CHAR,NELEMENTS=11059200")
# Use this line for 8-bit or 16-bit data
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDStdArrays.template", "P=PCO1600:,R=image1:,PORT=Image
1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1,TYPE=Int16,FTVL=SHORT,NELEMENTS=11059200")
# Use this line for 8-bit, 16-bit, or 32-bit data
#dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(P
ORT),TYPE=Int32,FTVL=LONG,NELEMENTS=$(NELEMENTS)")
# Load all other plugins using commonPlugins.cmd
< C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/iocBoot/commonPlugins.cmd
# This is an example file for creating plugins
# It uses the following environment variable macros
# Many of the parameters defined in this file are also in commonPlugins_settings.req so if autosave is being
# use the autosave value will replace the value passed to this file.
# $(PREFIX) Prefix for all records
# $(PORT) The port name for the detector. In autosave.
# $(QSIZE) The queue size for all plugins. In autosave.
# $(XSIZE) The maximum image width; used to set the maximum size for row profiles in the NDPluginStats plugin and
1-D FFT
# profiles in NDPluginFFT.
# $(YSIZE) The maximum image height; used to set the maximum size for column profiles in the NDPluginStats plugin
# $(NCHANS) The maximum number of time series points in the NDPluginStats, NDPluginROIStats, and NDPluginAttribute
plugins
# $(CBUFFS) The maximum number of frames buffered in the NDPluginCircularBuff plugin
# $(MAX_THREADS) The maximum number of threads for plugins which can run in multiple threads. Defaults to 5.
# Create a netCDF file saving plugin
NDFileNetCDFConfigure("FileNetCDF1", 20, 0, "PCO1", 0)
dbLoadRecords("NDFileNetCDF.template","P=PCO1600:,R=netCDF1:,PORT=FileNetCDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create a TIFF file saving plugin
NDFileTIFFConfigure("FileTIFF1", 20, 0, "PCO1", 0)
dbLoadRecords("NDFileTIFF.template", "P=PCO1600:,R=TIFF1:,PORT=FileTIFF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create a JPEG file saving plugin
NDFileJPEGConfigure("FileJPEG1", 20, 0, "PCO1", 0)
dbLoadRecords("NDFileJPEG.template", "P=PCO1600:,R=JPEG1:,PORT=FileJPEG1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create a NeXus file saving plugin
NDFileNexusConfigure("FileNexus1", 20, 0, "PCO1", 0)
dbLoadRecords("NDFileNexus.template", "P=PCO1600:,R=Nexus1:,PORT=FileNexus1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create an HDF5 file saving plugin
NDFileHDF5Configure("FileHDF1", 20, 0, "PCO1", 0)
dbLoadRecords("NDFileHDF5.template", "P=PCO1600:,R=HDF1:,PORT=FileHDF1,ADDR=0,TIMEOUT=1,XMLSIZE=2048,NDARRAY_PORT=PCO1"
)
# Create a Magick file saving plugin
#NDFileMagickConfigure("FileMagick1", $(QSIZE), 0, "$(PORT)", 0)
#dbLoadRecords("NDFileMagick.template","P=$(PREFIX),R=Magick1:,PORT=FileMagick1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
# Create 4 ROI plugins
NDROIConfigure("ROI1", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=PCO1600:,R=ROI1:, PORT=ROI1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
NDROIConfigure("ROI2", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=PCO1600:,R=ROI2:, PORT=ROI2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
NDROIConfigure("ROI3", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=PCO1600:,R=ROI3:, PORT=ROI3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
NDROIConfigure("ROI4", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=PCO1600:,R=ROI4:, PORT=ROI4,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create 8 ROIStat plugins
NDROIStatConfigure("ROISTAT1", 20, 0, "PCO1", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDROIStat.template", "P=PCO1600:,R=ROIStat1: ,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1,NCHANS=
2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:1:,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:2:,PORT=ROISTAT1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:3:,PORT=ROISTAT1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:4:,PORT=ROISTAT1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:5:,PORT=ROISTAT1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:6:,PORT=ROISTAT1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:7:,PORT=ROISTAT1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=PCO1600:,R=ROIStat1:8:,PORT=ROISTAT1,ADDR=7,TIMEOUT=1,NCHANS=2048")
# Create a processing plugin
NDProcessConfigure("PROC1", 20, 0, "PCO1", 0, 0, 0)
dbLoadRecords("NDProcess.template", "P=PCO1600:,R=Proc1:, PORT=PROC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create a TIFF file plugin to read dark and flatfield images into the processing plugin
NDFileTIFFConfigure("PROC1TIFF", 20, 0, "PCO1", 0)
dbLoadRecords("NDFileTIFF.template", "P=PCO1600:,R=Proc1:TIFF:,PORT=PROC1TIFF,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create a scatter plugin
NDScatterConfigure("SCATTER1", 20, 0, "PCO1", 0, 0, 0)
dbLoadRecords("NDScatter.template", "P=PCO1600:,R=Scatter1:, PORT=SCATTER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create a gather plugin with 8 ports
NDGatherConfigure("GATHER1", 20, 0, 8, 0, 0)
dbLoadRecords("NDGather.template", "P=PCO1600:,R=Gather1:, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=1, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=2, PORT=GATHER1,ADDR=1,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=3, PORT=GATHER1,ADDR=2,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=4, PORT=GATHER1,ADDR=3,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=5, PORT=GATHER1,ADDR=4,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=6, PORT=GATHER1,ADDR=5,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=7, PORT=GATHER1,ADDR=6,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDGatherN.template", "P=PCO1600:,R=Gather1:, N=8, PORT=GATHER1,ADDR=7,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create 5 statistics plugins
NDStatsConfigure("STATS1", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=PCO1600:,R=Stats1:, PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2560,YSIZ
E=2160,NCHANS=2048,NDARRAY_PORT=PCO1")
NDTimeSeriesConfigure("STATS1_TS", 20, 0, "STATS1", 1, 23)
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDTimeSeries.template", "P=PCO1600:,R=Stats1:TS:, PORT
=STATS1_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS1,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS2", 20, 0, "ROI1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=PCO1600:,R=Stats2:, PORT=STATS2,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2560,YSIZ
E=2160,NCHANS=2048,NDARRAY_PORT=PCO1")
NDTimeSeriesConfigure("STATS2_TS", 20, 0, "STATS2", 1, 23)
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDTimeSeries.template", "P=PCO1600:,R=Stats2:TS:, PORT
=STATS2_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS2,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS3", 20, 0, "ROI2", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=PCO1600:,R=Stats3:, PORT=STATS3,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2560,YSIZ
E=2160,NCHANS=2048,NDARRAY_PORT=PCO1")
NDTimeSeriesConfigure("STATS3_TS", 20, 0, "STATS3", 1, 23)
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDTimeSeries.template", "P=PCO1600:,R=Stats3:TS:, PORT
=STATS3_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS3,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS4", 20, 0, "ROI3", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=PCO1600:,R=Stats4:, PORT=STATS4,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2560,YSIZ
E=2160,NCHANS=2048,NDARRAY_PORT=PCO1")
NDTimeSeriesConfigure("STATS4_TS", 20, 0, "STATS4", 1, 23)
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDTimeSeries.template", "P=PCO1600:,R=Stats4:TS:, PORT
=STATS4_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS4,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS5", 20, 0, "ROI4", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=PCO1600:,R=Stats5:, PORT=STATS5,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2560,YSIZ
E=2160,NCHANS=2048,NDARRAY_PORT=PCO1")
NDTimeSeriesConfigure("STATS5_TS", 20, 0, "STATS5", 1, 23)
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDTimeSeries.template", "P=PCO1600:,R=Stats5:TS:, PORT
=STATS5_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS5,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
# Create a transform plugin
NDTransformConfigure("TRANS1", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDTransform.template", "P=PCO1600:,R=Trans1:, PORT=TRANS1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create an overlay plugin with 8 overlays
NDOverlayConfigure("OVER1", 20, 0, "PCO1", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDOverlay.template", "P=PCO1600:,R=Over1:, PORT=OVER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:1:,NAME=ROI1, SHAPE=1,O=Over1:,XPOS=PCO1600:ROI1:MinX_RBV,YPOS
=PCO1600:ROI1:MinY_RBV,XSIZE=PCO1600:ROI1:SizeX_RBV,YSIZE=PCO1600:ROI1:SizeY_RBV,PORT=OVER1,ADDR=0,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:2:,NAME=ROI2, SHAPE=1,O=Over1:,XPOS=PCO1600:ROI2:MinX_RBV,YPOS
=PCO1600:ROI2:MinY_RBV,XSIZE=PCO1600:ROI2:SizeX_RBV,YSIZE=PCO1600:ROI2:SizeY_RBV,PORT=OVER1,ADDR=1,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:3:,NAME=ROI3, SHAPE=1,O=Over1:,XPOS=PCO1600:ROI3:MinX_RBV,YPOS
=PCO1600:ROI3:MinY_RBV,XSIZE=PCO1600:ROI3:SizeX_RBV,YSIZE=PCO1600:ROI3:SizeY_RBV,PORT=OVER1,ADDR=2,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:4:,NAME=ROI4, SHAPE=1,O=Over1:,XPOS=PCO1600:ROI4:MinX_RBV,YPOS
=PCO1600:ROI4:MinY_RBV,XSIZE=PCO1600:ROI4:SizeX_RBV,YSIZE=PCO1600:ROI4:SizeY_RBV,PORT=OVER1,ADDR=3,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:5:,NAME=Cursor1,SHAPE=1,O=Over1:,XPOS=junk, YPO
S=junk, XSIZE=junk, YSIZE=junk, PORT=OVER1,ADDR=4,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:6:,NAME=Cursor2,SHAPE=1,O=Over1:,XPOS=junk, YPO
S=junk, XSIZE=junk, YSIZE=junk, PORT=OVER1,ADDR=5,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:7:,NAME=Box1, SHAPE=1,O=Over1:,XPOS=junk, YPO
S=junk, XSIZE=junk, YSIZE=junk, PORT=OVER1,ADDR=6,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=PCO1600:,R=Over1:8:,NAME=Box2, SHAPE=1,O=Over1:,XPOS=junk, YPO
S=junk, XSIZE=junk, YSIZE=junk, PORT=OVER1,ADDR=7,TIMEOUT=1")
# Create 2 color conversion plugins
NDColorConvertConfigure("CC1", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=PCO1600:,R=CC1:, PORT=CC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
NDColorConvertConfigure("CC2", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=PCO1600:,R=CC2:, PORT=CC2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create a circular buffer plugin
NDCircularBuffConfigure("CB1", 20, 0, "PCO1", 0, 500, 0)
dbLoadRecords("NDCircularBuff.template", "P=PCO1600:,R=CB1:, PORT=CB1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=PCO1")
# Create an NDAttribute plugin with 8 attributes
NDAttrConfigure("ATTR1", 20, 0, "PCO1", 0, 8, 0, 0, 0)
dbLoadRecords("NDAttribute.template", "P=PCO1600:,R=Attr1:, PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048,NDARRAY_PORT=PCO
1")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:1:, PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:2:, PORT=ATTR1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:3:, PORT=ATTR1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:4:, PORT=ATTR1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:5:, PORT=ATTR1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:6:, PORT=ATTR1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:7:, PORT=ATTR1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=PCO1600:,R=Attr1:8:, PORT=ATTR1,ADDR=7,TIMEOUT=1,NCHANS=2048")
NDTimeSeriesConfigure("ATTR1_TS", 20, 0, "ATTR1", 1, 8)
dbLoadRecords("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/db/NDTimeSeries.template", "P=PCO1600:,R=Attr1:TS:, PORT=
ATTR1_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ATTR1,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
# Create an FFT plugin
NDFFTConfigure("FFT1", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDFFT.template", "P=PCO1600:, R=FFT1:, PORT=FFT1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=PCO1, NAME=FFT1, NCHANS
=2560")
# Create 2 Codec plugins
NDCodecConfigure("CODEC1", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=PCO1600:, R=Codec1:, PORT=CODEC1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=PCO1")
NDCodecConfigure("CODEC2", 20, 0, "PCO1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=PCO1600:, R=Codec2:, PORT=CODEC2, ADDR=0, TIMEOUT=1, NDARRAY_PORT=PCO1")
set_requestfile_path("./")
set_requestfile_path("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/ADApp/Db")
set_requestfile_path("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADCore/iocBoot")
set_savefile_path("./autosave")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
save_restoreSet_status_prefix("PCO1600:")
dbLoadRecords("C:/epics/inst-7.0.3.1/autosave-R5-10/asApp/Db/save_restoreStatus.db", "P=PCO1600:")
# Optional: load NDPluginPva plugin
#NDPvaConfigure("PVA1", $(QSIZE), 0, "$(PORT)", 0, $(PREFIX)Pva1:Image, 0, 0, 0)
#dbLoadRecords("NDPva.template", "P=$(PREFIX),R=Pva1:, PORT=PVA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
# Must start PVA server if this is enabled
#startPVAServer
# Optional: load ffmpegServer plugin
#ffmpegServerConfigure(8081)
#ffmpegStreamConfigure("FfmStream1", 2, 0, "$(PORT)", 0, -1, 0)
#dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegStream.template", "P=$(PREFIX),R=ffmstream1:,PORT=FfmStream1,NDARRAY_PORT=$(POR
T)")
#ffmpegFileConfigure("FfmFile1", 16, 0, "$(PORT)", 0, -1, 0)
#dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegFile.template", "P=$(PREFIX),R=ffmfile1:,PORT=FfmFile1,NDARRAY_PORT=$(PORT)")
# Optional: load NDPluginEdge plugin
#NDEdgeConfigure("EDGE1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0)
#dbLoadRecords("$(ADPLUGINEDGE)/db/NDEdge.template", "P=$(PREFIX),R=Edge1:, PORT=EDGE1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(
PORT)")
#set_requestfile_path("$(ADPLUGINEDGE)/edgeApp/Db")
# Optional: load NDPluginCV plugin
#NDCVConfigure("CV1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))
#dbLoadRecords("$(ADCOMPVISION)/db/NDCV.template", "P=$(PREFIX),R=CV1:, PORT=CV1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)"
)
#set_requestfile_path("$(ADCOMPVISION)/adcvApp/Db")
# Optional: load NDPluginBar plugin
#NDBarConfigure("BAR1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))
#dbLoadRecords("$(ADPLUGINBAR)/db/NDBar.template", "P=$(PREFIX),R=Bar1:, PORT=BAR1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT
)")
#set_requestfile_path("$(ADPLUGINBAR)/barApp/Db")
# Optional: load scan records
dbLoadRecords("C:/epics/inst-7.0.3.1/sscan-R2-11-3/sscanApp/Db/scan.db", "P=PCO1600:,MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20
,MAXPTS4=10,MAXPTSH=10")
set_requestfile_path("C:/epics/inst-7.0.3.1/sscan-R2-11-3/sscanApp/Db")
# Optional: load sseq record for acquisition sequence
dbLoadRecords("C:/epics/inst-7.0.3.1/calc-R3-7-3/calcApp/Db/sseqRecord.db", "P=PCO1600:, S=AcquireSequence")
set_requestfile_path("C:/epics/inst-7.0.3.1/calc-R3-7-3/calcApp/Db")
# Optional: load devIocStats records (requires DEVIOCSTATS module)
#dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db", "IOC=$(PREFIX)")
# Optional: load alive record (requires ALIVE module)
#dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=$(PREFIX),RHOST=192.168.1.254")
# Set the callback queue size to 5000, up from default of 2000 in base.
# This can be needed to avoid errors "callbackRequest: cbLow ring buffer full".
callbackSetQueueSize(5000)
set_requestfile_path("C:/epics/inst-7.0.3.1/areaDetector-R3-9/ADPcoWin/iocs/pcowinIOC/../../pcowinApp/Db")
iocInit()
Starting iocInit
############################################################################
## EPICS R7.0.3.1
## EPICS Base built Feb 28 2020
############################################################################
reboot_restore: entry for file 'auto_settings.sav'
reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.
*** restoring from './autosave/auto_settings.sav' at initHookState 6 (before record/device init) ***
reboot_restore: done with file 'auto_settings.sav'
reboot_restore: entry for file 'auto_settings.sav'
reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.
*** restoring from './autosave/auto_settings.sav' at initHookState 7 (after record/device init) ***
reboot_restore: done with file 'auto_settings.sav'
iocRun: All initialization complete
# save things every thirty seconds
create_monitor_set("auto_settings.req", 30,"P=PCO1600:")
epics> auto_settings.sav: 2277 of 2277 PV's connected
pco.1600
: Found 14 devices on camera
Warning: Not enough parameters available to store camera device information (limit of 8 devices)
epics>
As mentioned by Oksana on the
26.02 I added the ...\areaDetector\ADPcoWin\iocs\pcowinIOC\bin\windows-x64-static .dll to Path.
The last warning comes ~20s after
"epics> auto_settings.sav: 2277 of 2277 PV's connected". Is it just a warning or something to worry about?