After "mAPIVersion = mApi.getAPIVersion();", I added "std::cout << "mAPIVersion: " << mAPIVersion << std::endl;" and the printout is:
The areaDetector driver works with Simplon 1.8.0. See the screenshot here:
https://areadetector.github.io/areaDetector/ADEiger/eiger.html#medm-screens
The unknown parameters are only present in the Simplon 1.6, not 1.8.0. The driver only tries to create those parameters if it thinks the detector is running Simplon 1.6.0.
https://github.com/areaDetector/ADEiger/blob/9603656227ba50007401f6dcc1b4c24fb977b9bf/eigerApp/src/eigerDetector.cpp#L352
I can think of 2 possible reasons for the error messages:
- You are running an old version of the driver that did not do this test.
- The driver is not correctly detecting that your detector is running the Simplon 1.8.0 API.
This is where it reads the API version:
https://github.com/areaDetector/ADEiger/blob/9603656227ba50007401f6dcc1b4c24fb977b9bf/eigerApp/src/eigerDetector.cpp#L197
You could add some debugging to see what value it is getting in that call.
Mark
Hello,
We have an Eiger X Si 9M detector using SIMPLON 1.8.0, and we would like to use EPICS areaDetector driver.
Simply tried areaDetector-R3-13, iocEiger1, but it has IOC startup errors. I am not sure about the version of ADEiger, but likely a recent release on github.
Should we roll back to SIMPLON 1.6? Or is there something I have overlooked during installation? Or the IOC startup errors can just be ignored? (cannot find parameters of DCU_BUF_FREE, CLEAR, LINK_0, LINK_1, LINK_2, LINK_3).
Thanks,
Rong
######## IOC startup printout #############
#!../../bin/linux-x86_64/eigerDetectorApp
< envPaths
epicsEnvSet("IOC","iocEiger1")
epicsEnvSet("TOP","/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC")
epicsEnvSet("ADEIGER","/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../..")
epicsEnvSet("SUPPORT","/opt/epics/synApps-R6-2-1/support")
epicsEnvSet("ASYN","/opt/epics/synApps-R6-2-1/support/asyn-R4-44-2")
epicsEnvSet("AREA_DETECTOR","/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13")
epicsEnvSet("ADSUPPORT","/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADSupport")
epicsEnvSet("ADCORE","/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore")
epicsEnvSet("AUTOSAVE","/opt/epics/synApps-R6-2-1/support/autosave-R5-11")
epicsEnvSet("BUSY","/opt/epics/synApps-R6-2-1/support/busy-R1-7-4")
epicsEnvSet("CALC","/opt/epics/synApps-R6-2-1/support/calc-R3-7-5")
epicsEnvSet("SNCSEQ","/opt/epics/synApps-R6-2-1/support/seq-R2-2-9")
epicsEnvSet("SSCAN","/opt/epics/synApps-R6-2-1/support/sscan-R2-11-6")
epicsEnvSet("DEVIOCSTATS","/opt/epics/synApps-R6-2-1/support/iocStats-3-2-0")
epicsEnvSet("EPICS_BASE","/opt/epics/base")
errlogInit(20000)
dbLoadDatabase("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/dbd/eigerDetectorApp.dbd")
eigerDetectorApp_registerRecordDeviceDriver(pdbbase)
epicsEnvSet("PREFIX", "21EIG1:")
epicsEnvSet("PORT", "EIG")
epicsEnvSet("QSIZE", "20") # The queue size for all plugins
epicsEnvSet("XSIZE", "3110") # The maximim image width;
# used for row profiles in the NDPluginStats plugin # RH: # of pixels
epicsEnvSet("YSIZE", "3269") # The maximim image height;
# used for column profiles in the NDPluginStats plugin # RH: # of pixels
epicsEnvSet("NCHANS", "2048")
# The maximum number of time series points in the NDPluginStats plugin
epicsEnvSet("CBUFFS", "500")
# The maximum number of frames buffered in the NDPluginCircularBuff plugin
# This is an Eiger1 500K
# epicsEnvSet("EIGERIP", "10.54.160.234")
epicsEnvSet("EIGERIP", "164.54.252.45") # fig
epicsEnvSet("EPICS_DB_INCLUDE_PATH", "/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db:/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../../db")
epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", "5000000")
eigerDetectorConfig("EIG", "164.54.252.45", 0, 0)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../../db/eiger1.template", "P=21EIG1:,R=cam1:,PORT=EIG,ADDR=0,TIMEOUT=1")
# Debug
#asynSetTraceMask("$(PORT)", 0, 0x11)
# Create a standard arrays plugin
NDStdArraysConfigure("Image1", 5, 0, "EIG", 0, 0)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDStdArrays.template", "P=21EIG1:,R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,TYPE=Int32,FTVL=LONG,NELEMENTS=1096950,
NDARRAY_PORT=EIG")
NDStdArraysConfigure("Image2", 5, 0, "EIG", 1, 0)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDStdArrays.template", "P=21EIG1:,R=image2:,PORT=Image2,ADDR=0,TIMEOUT=1,TYPE=Int32,FTVL=LONG,NELEMENTS=1096950,
NDARRAY_PORT=EIG")
# Load all other plugins using commonPlugins.cmd
< /opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/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, "EIG", 0)
dbLoadRecords("NDFileNetCDF.template","P=21EIG1:,R=netCDF1:,PORT=FileNetCDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create a TIFF file saving plugin
NDFileTIFFConfigure("FileTIFF1", 20, 0, "EIG", 0)
dbLoadRecords("NDFileTIFF.template", "P=21EIG1:,R=TIFF1:,PORT=FileTIFF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create a JPEG file saving plugin
NDFileJPEGConfigure("FileJPEG1", 20, 0, "EIG", 0)
dbLoadRecords("NDFileJPEG.template", "P=21EIG1:,R=JPEG1:,PORT=FileJPEG1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create a NeXus file saving plugin
NDFileNexusConfigure("FileNexus1", 20, 0, "EIG", 0)
dbLoadRecords("NDFileNexus.template", "P=21EIG1:,R=Nexus1:,PORT=FileNexus1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create an HDF5 file saving plugin
NDFileHDF5Configure("FileHDF1", 20, 0, "EIG", 0)
dbLoadRecords("NDFileHDF5.template", "P=21EIG1:,R=HDF1:,PORT=FileHDF1,ADDR=0,TIMEOUT=1,XMLSIZE=2048,NDARRAY_PORT=EIG")
# 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, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=21EIG1:,R=ROI1:, PORT=ROI1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
NDROIConfigure("ROI2", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=21EIG1:,R=ROI2:, PORT=ROI2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
NDROIConfigure("ROI3", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=21EIG1:,R=ROI3:, PORT=ROI3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
NDROIConfigure("ROI4", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=21EIG1:,R=ROI4:, PORT=ROI4,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create 8 ROIStat plugins
NDROIStatConfigure("ROISTAT1", 20, 0, "EIG", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDROIStat.template", "P=21EIG1:,R=ROIStat1: ,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:1:,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:2:,PORT=ROISTAT1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:3:,PORT=ROISTAT1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:4:,PORT=ROISTAT1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:5:,PORT=ROISTAT1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:6:,PORT=ROISTAT1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:7:,PORT=ROISTAT1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=21EIG1:,R=ROIStat1:8:,PORT=ROISTAT1,ADDR=7,TIMEOUT=1,NCHANS=2048")
# Create a processing plugin
NDProcessConfigure("PROC1", 20, 0, "EIG", 0, 0, 0)
dbLoadRecords("NDProcess.template", "P=21EIG1:,R=Proc1:, PORT=PROC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create a TIFF file plugin to read dark and flatfield images into the processing plugin
NDFileTIFFConfigure("PROC1TIFF", 20, 0, "EIG", 0)
dbLoadRecords("NDFileTIFF.template", "P=21EIG1:,R=Proc1:TIFF:,PORT=PROC1TIFF,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create a scatter plugin
NDScatterConfigure("SCATTER1", 20, 0, "EIG", 0, 0, 0)
dbLoadRecords("NDScatter.template", "P=21EIG1:,R=Scatter1:, PORT=SCATTER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create a gather plugin with 8 ports
NDGatherConfigure("GATHER1", 20, 0, 8, 0, 0)
dbLoadRecords("NDGather.template", "P=21EIG1:,R=Gather1:, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=1, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=2, PORT=GATHER1,ADDR=1,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=3, PORT=GATHER1,ADDR=2,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=4, PORT=GATHER1,ADDR=3,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=5, PORT=GATHER1,ADDR=4,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=6, PORT=GATHER1,ADDR=5,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=7, PORT=GATHER1,ADDR=6,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDGatherN.template", "P=21EIG1:,R=Gather1:, N=8, PORT=GATHER1,ADDR=7,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create 5 statistics plugins
NDStatsConfigure("STATS1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=21EIG1:,R=Stats1:, PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")
NDTimeSeriesConfigure("STATS1_TS", 20, 0, "STATS1", 1, 23)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template", "P=21EIG1:,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=21EIG1:,R=Stats2:, PORT=STATS2,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")
NDTimeSeriesConfigure("STATS2_TS", 20, 0, "STATS2", 1, 23)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template", "P=21EIG1:,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=21EIG1:,R=Stats3:, PORT=STATS3,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")
NDTimeSeriesConfigure("STATS3_TS", 20, 0, "STATS3", 1, 23)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template", "P=21EIG1:,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=21EIG1:,R=Stats4:, PORT=STATS4,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")
NDTimeSeriesConfigure("STATS4_TS", 20, 0, "STATS4", 1, 23)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template", "P=21EIG1:,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=21EIG1:,R=Stats5:, PORT=STATS5,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")
NDTimeSeriesConfigure("STATS5_TS", 20, 0, "STATS5", 1, 23)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template", "P=21EIG1:,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, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDTransform.template", "P=21EIG1:,R=Trans1:, PORT=TRANS1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create an overlay plugin with 8 overlays
NDOverlayConfigure("OVER1", 20, 0, "EIG", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDOverlay.template", "P=21EIG1:,R=Over1:, PORT=OVER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:1:,NAME=ROI1, SHAPE=1,O=Over1:,XPOS=21EIG1:ROI1:MinX_RBV,YPOS=21EIG1:ROI1:MinY_RBV,XSIZE=21EIG1:ROI1:SizeX_RBV,YSIZE=21EIG1:ROI1:SizeY_RBV,PORT=OVER1,ADDR=0,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:2:,NAME=ROI2, SHAPE=1,O=Over1:,XPOS=21EIG1:ROI2:MinX_RBV,YPOS=21EIG1:ROI2:MinY_RBV,XSIZE=21EIG1:ROI2:SizeX_RBV,YSIZE=21EIG1:ROI2:SizeY_RBV,PORT=OVER1,ADDR=1,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:3:,NAME=ROI3, SHAPE=1,O=Over1:,XPOS=21EIG1:ROI3:MinX_RBV,YPOS=21EIG1:ROI3:MinY_RBV,XSIZE=21EIG1:ROI3:SizeX_RBV,YSIZE=21EIG1:ROI3:SizeY_RBV,PORT=OVER1,ADDR=2,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:4:,NAME=ROI4, SHAPE=1,O=Over1:,XPOS=21EIG1:ROI4:MinX_RBV,YPOS=21EIG1:ROI4:MinY_RBV,XSIZE=21EIG1:ROI4:SizeX_RBV,YSIZE=21EIG1:ROI4:SizeY_RBV,PORT=OVER1,ADDR=3,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:5:,NAME=Cursor1,SHAPE=1,O=Over1:,XPOS=junk, YPOS=junk, XSIZE=junk,
YSIZE=junk, PORT=OVER1,ADDR=4,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:6:,NAME=Cursor2,SHAPE=1,O=Over1:,XPOS=junk, YPOS=junk, XSIZE=junk,
YSIZE=junk, PORT=OVER1,ADDR=5,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:7:,NAME=Box1, SHAPE=1,O=Over1:,XPOS=junk, YPOS=junk, XSIZE=junk,
YSIZE=junk, PORT=OVER1,ADDR=6,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:8:,NAME=Box2, SHAPE=1,O=Over1:,XPOS=junk, YPOS=junk, XSIZE=junk,
YSIZE=junk, PORT=OVER1,ADDR=7,TIMEOUT=1")
# Create 2 color conversion plugins
NDColorConvertConfigure("CC1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=21EIG1:,R=CC1:, PORT=CC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
NDColorConvertConfigure("CC2", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=21EIG1:,R=CC2:, PORT=CC2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create a circular buffer plugin
NDCircularBuffConfigure("CB1", 20, 0, "EIG", 0, 500, 0)
dbLoadRecords("NDCircularBuff.template", "P=21EIG1:,R=CB1:, PORT=CB1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
# Create an NDAttribute plugin with 8 attributes
NDAttrConfigure("ATTR1", 20, 0, "EIG", 0, 8, 0, 0, 0)
dbLoadRecords("NDAttribute.template", "P=21EIG1:,R=Attr1:, PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048,NDARRAY_PORT=EIG")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:1:, PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:2:, PORT=ATTR1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:3:, PORT=ATTR1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:4:, PORT=ATTR1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:5:, PORT=ATTR1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:6:, PORT=ATTR1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:7:, PORT=ATTR1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=21EIG1:,R=Attr1:8:, PORT=ATTR1,ADDR=7,TIMEOUT=1,NCHANS=2048")
NDTimeSeriesConfigure("ATTR1_TS", 20, 0, "ATTR1", 1, 8)
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template", "P=21EIG1:,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, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDFFT.template", "P=21EIG1:, R=FFT1:, PORT=FFT1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=EIG, NAME=FFT1, NCHANS=3110")
# Create 2 Codec plugins
NDCodecConfigure("CODEC1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=21EIG1:, R=Codec1:, PORT=CODEC1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=EIG")
NDCodecConfigure("CODEC2", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=21EIG1:, R=Codec2:, PORT=CODEC2, ADDR=0, TIMEOUT=1, NDARRAY_PORT=EIG")
# Create a bad pixel plugin
NDBadPixelConfigure("BADPIX1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDBadPixel.template", "P=21EIG1:, R=BadPix1:, PORT=BADPIX1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=EIG")
set_requestfile_path("./")
set_requestfile_path("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db")
set_requestfile_path("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/iocBoot")
set_requestfile_path("/opt/epics/synApps-R6-2-1/support/autosave-R5-11/db")
set_savefile_path("./autosave")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
save_restoreSet_status_prefix("21EIG1:")
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/autosave-R5-11/db/save_restoreStatus.db", "P=21EIG1:")
dbLoadRecords("/opt/epics/synApps-R6-2-1/support/autosave-R5-11/db/configMenu.db", "P=21EIG1:, CONFIG=ADAutoSave")
# Load NDPluginPva plugin
NDPvaConfigure("PVA1", 20, 0, "EIG", 0, 21EIG1:Pva1:Image, 0, 0, 0)
dbLoadRecords("NDPva.template", "P=21EIG1:,R=Pva1:, PORT=PVA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=EIG")
#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=$(PORT)")
#ffmpegFileConfigure("FfmFile1", 16, 0, "$(PORT)", 0, -1, 0)
#dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegFile.template", "P=$(PREFIX),R=ffmfile1:,PORT=FfmFile1,NDARRAY_PORT=$(PORT)")
#set_requestfile_path("$(FFMPEGSERVER)/db")
# 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)/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)/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)/db")
# Optional: load scan records
#dbLoadRecords("$(SSCAN)/db/scan.db", "P=$(PREFIX),MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20,MAXPTS4=10,MAXPTSH=10")
#set_requestfile_path("$(SSCAN)/db")
# Optional: load sseq record for acquisition sequence
#dbLoadRecords("$(CALC)/db/sseqRecord.db", "P=$(PREFIX), S=AcquireSequence")
#set_requestfile_path("$(CALC)/db")
# Optional: load devIocStats records (requires DEVIOCSTATS module)
#dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db", "IOC=$(PREFIX)")
# Optional: load alive record (requires ALIVE module)
#dbLoadRecords("$(ALIVE)/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("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../../eigerApp/Db")
# RH: to remove error of "unable to open file sseq_settings.req. Exiting"
# triggered by "auto_settings.req" -> "commonPlugin_settings.req" -> "NDStats_settings.req"
# -> "sseq_settings.req".
https://epics.anl.gov/tech-talk/2020/msg00305.php
set_requestfile_path("/opt/epics/synApps-R6-2-1/support/calc-R3-7-5/calcApp/Db")
iocInit()
Starting iocInit
############################################################################
## EPICS R7.0.8
## Rev. 2024-04-05T14:18-0500
## Rev. Date build date/time:
############################################################################
2024/06/25 12:54:49.891 asynPortDriver:drvUserCreate: addr=0, cannot find parameter DCU_BUF_FREE
21EIG1:cam1:DCUBufferFree_RBV devAsynFloat64::initCommon drvUserCreate
2024/06/25 12:54:49.900 asynPortDriver:drvUserCreate: addr=0, cannot find parameter CLEAR
21EIG1:cam1:FWClear devAsynInt32::initCommon drvUserCreate
recGblRecordError: ao: init_record Error (514,11) PV: 21EIG1:cam1:FWClear
2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_0
21EIG1:cam1:Link0_RBV devAsynInt32::initCommon drvUserCreate
2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_1
21EIG1:cam1:Link1_RBV devAsynInt32::initCommon drvUserCreate
2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_2
21EIG1:cam1:Link2_RBV devAsynInt32::initCommon drvUserCreate
2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_3
21EIG1:cam1:Link3_RBV devAsynInt32::initCommon drvUserCreate
iocRun: All initialization complete
# Avoid deluge of messages when debugging
#dbpf $(PREFIX)cam1:PoolUsedMem.SCAN Passive
# save things every thirty seconds
create_monitor_set("auto_settings.req", 30, "P=21EIG1:")
epics> auto_settings.sav: 2372 of 2372 PV's connected