EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Buffer full issue with ADAravis
From: Katie Matusik via Tech-talk <tech-talk at aps.anl.gov>
To: tech-talk at aps.anl.gov
Date: Thu, 20 Feb 2020 11:43:06 -0800
ADAravis_MEDM.png
I'm trying to use ADAravis to control a Teledyne Dalsa Shad-o-Box 3K flat-panel detector. It's a  14-bit 2304 x 1300 px detector that communicates via GigE. I was able to read and push the detector attributes to an .xml file and generate the relevant database and adl files. Launching the IOC gives the following output (which doesn't seem to have any fatal errors):
/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/iocBoot/iocAravis# ../../bin/linux-x86_64/ADAravisApp st.cmd
< envPaths
epicsEnvSet("IOC","iocAravis")
epicsEnvSet("TOP","/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC")
epicsEnvSet("ADARAVIS","/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/../..")
epicsEnvSet("SUPPORT","/opt/epics/synApps/support")
epicsEnvSet("ASYN","/opt/epics/synApps/support/asyn-R4-38")
epicsEnvSet("AREA_DETECTOR","/opt/epics/synApps/support/areaDetector-master")
epicsEnvSet("ADSUPPORT","/opt/epics/synApps/support/areaDetector-master/ADSupport")
epicsEnvSet("ADCORE","/opt/epics/synApps/support/areaDetector-master/ADCore")
epicsEnvSet("AUTOSAVE","/opt/epics/synApps/support/autosave-R5-10")
epicsEnvSet("BUSY","/opt/epics/synApps/support/busy-R1-7-2")
epicsEnvSet("CALC","/opt/epics/synApps/support/calc-R3-7-3")
epicsEnvSet("SNCSEQ","/opt/epics/synApps/support/seq-2-2-6")
epicsEnvSet("SSCAN","/opt/epics/synApps/support/sscan-R2-11-3")
epicsEnvSet("DEVIOCSTATS","/opt/epics/synApps/support/iocStats-3-1-16")
epicsEnvSet("EPICS_BASE","/opt/epics/base")
epicsEnvSet("ADGENICAM","/opt/epics/synApps/support/areaDetector-master/ADGenICam")
errlogInit(20000)
dbLoadDatabase("/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/dbd/ADAravisApp.dbd")
ADAravisApp_registerRecordDeviceDriver(pdbbase)
# Name of camera as reported by arv-tool
epicsEnvSet("CAMERA_NAME", 10.0.0.230)
# The maximum image width; used for row profiles in the NDPluginStats plugin
epicsEnvSet("XSIZE",  "2304")
# The maximum image height; used for column profiles in the NDPluginStats plugin
epicsEnvSet("YSIZE",  "1300")
# Define NELEMENTS to be enough for a 2464x2056x3 (color) image
epicsEnvSet("NELEMENTS", "2995200")
# Enable register caching
epicsEnvSet("ENABLE_CACHING", "1")
# The database file
epicsEnvSet("GENICAM_DB_FILE", "/opt/epics/synApps/support/areaDetector-master/ADGenICam/GenICamApp/Db/Teledyne_ShadoBox.template")
< st.cmd.base
# Prefix for all records
epicsEnvSet("PREFIX", "ARV1:")
# The port name for the detector
epicsEnvSet("PORT",   "ARV1")
# Really large queue so we can stream to disk at full camera speed
epicsEnvSet("QSIZE",  "2000")  
# 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", "/opt/epics/synApps/support/areaDetector-master/ADCore/db:/opt/epics/synApps/support/areaDetector-master/ADGenICam/GenICamApp/Db:/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/../../db")
# aravisConfig(const char *portName, const char *cameraName, int enableCaching, size_t maxMemory, int priority, int stackSize)
aravisConfig("ARV1", "10.0.0.230", 1, 0, 0, 0)
ADAravis: Looking for camera '10.0.0.230'...
ADAravis: Your tick frequency is 1000000
So your timestamp resolution is 1000.000000 ns
asynSetTraceIOMask(ARV1, 0, 2)
#asynSetTraceMask($(PORT), 0, TRACE_ERROR|TRACEIO_DRIVER|TRACE_FLOW)
#asynSetTraceFile($(PORT), 0, "aravisDebug.txt")
# Main database
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/../../db/aravisCamera.template", "P=ARV1:,R=cam1:,PORT=ARV1")
# Load the autogenerated file of GenICam features
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADGenICam/GenICamApp/Db/Teledyne_ShadoBox.template", "P=ARV1:,R=cam1:,PORT=ARV1")
# Create a standard arrays plugin
NDStdArraysConfigure("Image1", 5, 0, "ARV1", 0, 0)
# Use this line for 8-bit data only
#dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),TYPE=Int8,FTVL=CHAR,NELEMENTS=$(NELEMENTS)")
# Use this line for 8-bit or 16-bit data
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADCore/db/NDStdArrays.template", "P=ARV1:,R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1,TYPE=Int16,FTVL=SHORT,NELEMENTS=2995200")
# Load all other plugins using commonPlugins.cmd
< /opt/epics/synApps/support/areaDetector-master/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", 2000, 0, "ARV1", 0)
dbLoadRecords("NDFileNetCDF.template","P=ARV1:,R=netCDF1:,PORT=FileNetCDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create a TIFF file saving plugin
NDFileTIFFConfigure("FileTIFF1", 2000, 0, "ARV1", 0)
dbLoadRecords("NDFileTIFF.template",  "P=ARV1:,R=TIFF1:,PORT=FileTIFF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create a JPEG file saving plugin
NDFileJPEGConfigure("FileJPEG1", 2000, 0, "ARV1", 0)
dbLoadRecords("NDFileJPEG.template",  "P=ARV1:,R=JPEG1:,PORT=FileJPEG1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create a NeXus file saving plugin
NDFileNexusConfigure("FileNexus1", 2000, 0, "ARV1", 0)
dbLoadRecords("NDFileNexus.template", "P=ARV1:,R=Nexus1:,PORT=FileNexus1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create an HDF5 file saving plugin
NDFileHDF5Configure("FileHDF1", 2000, 0, "ARV1", 0)
dbLoadRecords("NDFileHDF5.template",  "P=ARV1:,R=HDF1:,PORT=FileHDF1,ADDR=0,TIMEOUT=1,XMLSIZE=2048,NDARRAY_PORT=ARV1")
# 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", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template",       "P=ARV1:,R=ROI1:,  PORT=ROI1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
NDROIConfigure("ROI2", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template",       "P=ARV1:,R=ROI2:,  PORT=ROI2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
NDROIConfigure("ROI3", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template",       "P=ARV1:,R=ROI3:,  PORT=ROI3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
NDROIConfigure("ROI4", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template",       "P=ARV1:,R=ROI4:,  PORT=ROI4,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create 8 ROIStat plugins
NDROIStatConfigure("ROISTAT1", 2000, 0, "ARV1", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDROIStat.template",   "P=ARV1:,R=ROIStat1:  ,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:1:,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:2:,PORT=ROISTAT1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:3:,PORT=ROISTAT1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:4:,PORT=ROISTAT1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:5:,PORT=ROISTAT1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:6:,PORT=ROISTAT1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:7:,PORT=ROISTAT1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template",  "P=ARV1:,R=ROIStat1:8:,PORT=ROISTAT1,ADDR=7,TIMEOUT=1,NCHANS=2048")
# Create a processing plugin
NDProcessConfigure("PROC1", 2000, 0, "ARV1", 0, 0, 0)
dbLoadRecords("NDProcess.template",   "P=ARV1:,R=Proc1:,  PORT=PROC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create a TIFF file plugin to read dark and flatfield images into the processing plugin
NDFileTIFFConfigure("PROC1TIFF", 2000, 0, "ARV1", 0)
dbLoadRecords("NDFileTIFF.template",  "P=ARV1:,R=Proc1:TIFF:,PORT=PROC1TIFF,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create a scatter plugin
NDScatterConfigure("SCATTER1", 2000, 0, "ARV1", 0, 0, 0)
dbLoadRecords("NDScatter.template",   "P=ARV1:,R=Scatter1:,  PORT=SCATTER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create a gather plugin with 8 ports
NDGatherConfigure("GATHER1", 2000, 0, 8, 0, 0)
dbLoadRecords("NDGather.template",   "P=ARV1:,R=Gather1:, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=1, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=2, PORT=GATHER1,ADDR=1,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=3, PORT=GATHER1,ADDR=2,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=4, PORT=GATHER1,ADDR=3,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=5, PORT=GATHER1,ADDR=4,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=6, PORT=GATHER1,ADDR=5,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=7, PORT=GATHER1,ADDR=6,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDGatherN.template",   "P=ARV1:,R=Gather1:, N=8, PORT=GATHER1,ADDR=7,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create 5 statistics plugins
NDStatsConfigure("STATS1", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template",     "P=ARV1:,R=Stats1:,  PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2304,YSIZE=1300,NCHANS=2048,NDARRAY_PORT=ARV1")
NDTimeSeriesConfigure("STATS1_TS", 2000, 0, "STATS1", 1, 23)
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADCore/db/NDTimeSeries.template",  "P=ARV1:,R=Stats1:TS:, PORT=STATS1_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS1,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS2", 2000, 0, "ROI1",    0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template",     "P=ARV1:,R=Stats2:,  PORT=STATS2,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2304,YSIZE=1300,NCHANS=2048,NDARRAY_PORT=ARV1")
NDTimeSeriesConfigure("STATS2_TS", 2000, 0, "STATS2", 1, 23)
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADCore/db/NDTimeSeries.template",  "P=ARV1:,R=Stats2:TS:, PORT=STATS2_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS2,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS3", 2000, 0, "ROI2",    0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template",     "P=ARV1:,R=Stats3:,  PORT=STATS3,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2304,YSIZE=1300,NCHANS=2048,NDARRAY_PORT=ARV1")
NDTimeSeriesConfigure("STATS3_TS", 2000, 0, "STATS3", 1, 23)
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADCore/db/NDTimeSeries.template",  "P=ARV1:,R=Stats3:TS:, PORT=STATS3_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS3,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS4", 2000, 0, "ROI3",    0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template",     "P=ARV1:,R=Stats4:,  PORT=STATS4,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2304,YSIZE=1300,NCHANS=2048,NDARRAY_PORT=ARV1")
NDTimeSeriesConfigure("STATS4_TS", 2000, 0, "STATS4", 1, 23)
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADCore/db/NDTimeSeries.template",  "P=ARV1:,R=Stats4:TS:, PORT=STATS4_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS4,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS5", 2000, 0, "ROI4",    0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template",     "P=ARV1:,R=Stats5:,  PORT=STATS5,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2304,YSIZE=1300,NCHANS=2048,NDARRAY_PORT=ARV1")
NDTimeSeriesConfigure("STATS5_TS", 2000, 0, "STATS5", 1, 23)
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADCore/db/NDTimeSeries.template",  "P=ARV1:,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", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDTransform.template", "P=ARV1:,R=Trans1:,  PORT=TRANS1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create an overlay plugin with 8 overlays
NDOverlayConfigure("OVER1", 2000, 0, "ARV1", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDOverlay.template", "P=ARV1:,R=Over1:, PORT=OVER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
dbLoadRecords("NDOverlayN.template","P=ARV1:,R=Over1:1:,NAME=ROI1,   SHAPE=1,O=Over1:,XPOS=ARV1:ROI1:MinX_RBV,YPOS=ARV1:ROI1:MinY_RBV,XSIZE=ARV1:ROI1:SizeX_RBV,YSIZE=ARV1:ROI1:SizeY_RBV,PORT=OVER1,ADDR=0,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=ARV1:,R=Over1:2:,NAME=ROI2,   SHAPE=1,O=Over1:,XPOS=ARV1:ROI2:MinX_RBV,YPOS=ARV1:ROI2:MinY_RBV,XSIZE=ARV1:ROI2:SizeX_RBV,YSIZE=ARV1:ROI2:SizeY_RBV,PORT=OVER1,ADDR=1,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=ARV1:,R=Over1:3:,NAME=ROI3,   SHAPE=1,O=Over1:,XPOS=ARV1:ROI3:MinX_RBV,YPOS=ARV1:ROI3:MinY_RBV,XSIZE=ARV1:ROI3:SizeX_RBV,YSIZE=ARV1:ROI3:SizeY_RBV,PORT=OVER1,ADDR=2,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=ARV1:,R=Over1:4:,NAME=ROI4,   SHAPE=1,O=Over1:,XPOS=ARV1:ROI4:MinX_RBV,YPOS=ARV1:ROI4:MinY_RBV,XSIZE=ARV1:ROI4:SizeX_RBV,YSIZE=ARV1:ROI4:SizeY_RBV,PORT=OVER1,ADDR=3,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=ARV1:,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=ARV1:,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=ARV1:,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=ARV1:,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", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=ARV1:,R=CC1:,  PORT=CC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
NDColorConvertConfigure("CC2", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=ARV1:,R=CC2:,  PORT=CC2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create a circular buffer plugin
NDCircularBuffConfigure("CB1", 2000, 0, "ARV1", 0, 500, 0)
dbLoadRecords("NDCircularBuff.template", "P=ARV1:,R=CB1:,  PORT=CB1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ARV1")
# Create an NDAttribute plugin with 8 attributes
NDAttrConfigure("ATTR1", 2000, 0, "ARV1", 0, 8, 0, 0, 0)
dbLoadRecords("NDAttribute.template",  "P=ARV1:,R=Attr1:,    PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048,NDARRAY_PORT=ARV1")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:1:,  PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:2:,  PORT=ATTR1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:3:,  PORT=ATTR1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:4:,  PORT=ATTR1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:5:,  PORT=ATTR1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:6:,  PORT=ATTR1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:7:,  PORT=ATTR1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=ARV1:,R=Attr1:8:,  PORT=ATTR1,ADDR=7,TIMEOUT=1,NCHANS=2048")
NDTimeSeriesConfigure("ATTR1_TS", 2000, 0, "ATTR1", 1, 8)
dbLoadRecords("/opt/epics/synApps/support/areaDetector-master/ADCore/db/NDTimeSeries.template",  "P=ARV1:,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", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDFFT.template", "P=ARV1:, R=FFT1:, PORT=FFT1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=ARV1, NAME=FFT1, NCHANS=2304")
# Create 2 Codec plugins
NDCodecConfigure("CODEC1", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=ARV1:, R=Codec1:, PORT=CODEC1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=ARV1")
NDCodecConfigure("CODEC2", 2000, 0, "ARV1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=ARV1:, R=Codec2:, PORT=CODEC2, ADDR=0, TIMEOUT=1, NDARRAY_PORT=ARV1")
set_requestfile_path("./")
set_requestfile_path("/opt/epics/synApps/support/areaDetector-master/ADCore/ADApp/Db")
set_requestfile_path("/opt/epics/synApps/support/areaDetector-master/ADCore/iocBoot")
set_savefile_path("./autosave")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
save_restoreSet_status_prefix("ARV1:")
dbLoadRecords("/opt/epics/synApps/support/autosave-R5-10/asApp/Db/save_restoreStatus.db", "P=ARV1:")
# 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=$(PORT)")
#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("$(SSCAN)/sscanApp/Db/scan.db", "P=$(PREFIX),MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20,MAXPTS4=10,MAXPTSH=10")
#set_requestfile_path("$(SSCAN)/sscanApp/Db")
# Optional: load sseq record for acquisition sequence
#dbLoadRecords("$(CALC)/calcApp/Db/sseqRecord.db", "P=$(PREFIX), S=AcquireSequence")
#set_requestfile_path("$(CALC)/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("/opt/epics/synApps/support/areaDetector-master/ADGenICam/GenICamApp/Db")
set_requestfile_path("/opt/epics/synApps/support/areaDetector-master/ADAravis/iocs/aravisIOC/../../aravisApp/Db")
iocInit()
Starting iocInit
############################################################################
## EPICS R3.15.6
## EPICS Base built Feb 19 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'

2020/02/20 19:29:55.160 Param[NIMAGES] GenICamFeature::write: node AcquisitionFrameCount is not writable

iocRun: All initialization complete
# save things every thirty seconds
create_monitor_set("auto_settings.req", 30,"P=ARV1:")
Warning: Duplicate EPICS CA Address list entry "10.0.0.20:8174" discarded
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
epics> auto_settings.sav: 1284 of 1284 PV's connected

In the ADAravis MEDM screen, when I try to acquire a single frame, it seems like the buffers fill up immediately (see attached image) and my image counter never increments. I tried adjusting the net.core.rmem_max and net.core.rmem_default settings to 8 MB but it did not make a difference. Any help is appreciated and please let me know what further information you may need; thanks!

-Katie


This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee, you should not disseminate, distribute or copy this email. Please notify the sender immediately by email if you have received this email by mistake and delete this email from your system. If you are not the intended recipient, you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited
Replies:
Re: Buffer full issue with ADAravis Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: MRF Delay Compensation Function Timo Korhonen via Tech-talk
Next: RE: EPICS Archiver appliance MySQL Persistence error Peter Linardakis via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Galil new "all in one" multi-axis amplifier [DLM=For-Official-Use-Only] CLIFT, Mark via Tech-talk
Next: Re: Buffer full issue with ADAravis Mark Rivers via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 20 Feb 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·