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  2020  2021  2022  2023  <20242025  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  2020  2021  2022  2023  <20242025 
<== Date ==> <== Thread ==>

Subject: RE: ADVimba IOC boot recGblRecordError NDPluginDriver errors
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: Rong Huang <ronghuang at ls-cat.org>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 18 Nov 2024 18:47:59 +0000

Hi Rong,

 

I don’t think any of those messages are too serious.  The driver should be able to collect images, correct?

 

recDynLinkOut: waiting for CA context

recDynLinkOut: got CA context

 

Those are normal informational messages.

 

recGblRecordError: devStringinEnvVar (init_record) Illegal INP parm field Illegal field value PV: 21:FCAMS::TIMEZONE

 

That message means you are running an older version of iocStats on a newer version of EPICS base.  You should upgrade iocStats,

 

2024/11/17 22:01:40.703 NDPluginDriver::deleteCallbackThreads timeout waiting for plugin thread 0 exit message

2024/11/17 22:01:40.703 NDPluginDriver::writeInt32 ERROR, status=3, function=65, paramName=QUEUE_SIZE, value=2000, connectedToArrayPort_=1

2024/11/17 22:01:40.703 21:FCAMS:Edge1:QueueSize devAsynInt32::processCallbackOutput process write error 

 

I believe all these messages are from NDPluginEdge.  That plugin is not part of ADCore.  I am not sure what is causing those messages.

 

Mark

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Rong Huang via Tech-talk
Sent: Sunday, November 17, 2024 10:14 PM
To: tech-talk at aps.anl.gov
Subject: ADVimba IOC boot recGblRecordError NDPluginDriver errors

 

Hello,

 

I compiled ADVimba for AVT manta G-146C camera, and tried to start the IOC with a few plugins: ADPluginEdge, SSCAN, devIocStats, and some Calc records. There are a couple of errors after IOC starts:

 

recDynLinkOut: waiting for CA context

recGblRecordError: devStringinEnvVar (init_record) Illegal INP parm field Illegal field value PV: 21:FCAMS::TIMEZONE

recDynLinkOut: got CA context

2024/11/17 22:01:40.703 NDPluginDriver::deleteCallbackThreads timeout waiting for plugin thread 0 exit message

2024/11/17 22:01:40.703 NDPluginDriver::writeInt32 ERROR, status=3, function=65, paramName=QUEUE_SIZE, value=2000, connectedToArrayPort_=1

2024/11/17 22:01:40.703 21:FCAMS:Edge1:QueueSize devAsynInt32::processCallbackOutput process write error 

 

I am using Ubuntu 22, EPICS-base 7.0.8, areaDetector-R3-13, ADGenICam-R1-10, ADPluginEdge-R1-2, ADVimba-R1-4. 

 

Thank you very much!

 

*********************

The printout of IOC booting:

*********************

 

ls-cat@juniper:/opt/epics/synApps/support/areaDetector-R3-13/ADVimba/iocs/vimbaIOC/iocBoot/iocVimba$ ../../bin/linux-x86_64/vimbaApp st.cmd.original 

# modified from st.cmd.manta_G146C as a test

< envPaths

epicsEnvSet("IOC","iocVimba")

epicsEnvSet("TOP","/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADVimba-R1-4/iocs/vimbaIOC")

epicsEnvSet("ADVIMBA","/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADVimba-R1-4/iocs/vimbaIOC/../..")

epicsEnvSet("SUPPORT","/opt/epics/synApps-R6-2/support")

epicsEnvSet("ASYN","/opt/epics/synApps-R6-2/support/asyn-R4-44-2")

epicsEnvSet("AREA_DETECTOR","/opt/epics/synApps-R6-2/support/areaDetector-R3-13")

epicsEnvSet("ADSUPPORT","/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADSupport")

epicsEnvSet("ADCORE","/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore")

epicsEnvSet("AUTOSAVE","/opt/epics/synApps-R6-2/support/autosave-R5-11")

epicsEnvSet("BUSY","/opt/epics/synApps-R6-2/support/busy-R1-7-4")

epicsEnvSet("CALC","/opt/epics/synApps-R6-2/support/calc-R3-7-5")

epicsEnvSet("SNCSEQ","/opt/epics/synApps-R6-2/support/seq-2-2-9")

epicsEnvSet("SSCAN","/opt/epics/synApps-R6-2/support/sscan-R2-11-6")

epicsEnvSet("DEVIOCSTATS","/opt/epics/synApps-R6-2/support/iocStats-3-1-16")

epicsEnvSet("ADPLUGINEDGE","/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADPluginEdge")

epicsEnvSet("EPICS_BASE","/opt/epics/base")

epicsEnvSet("ADGENICAM","/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADGenICam")

errlogInit(20000)

dbLoadDatabase("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADVimba-R1-4/iocs/vimbaIOC/dbd/vimbaApp.dbd")

vimbaApp_registerRecordDeviceDriver(pdbbase) 

# The maximum image width; used for row profiles in the NDPluginStats plugin

epicsEnvSet("XSIZE",  "1388")

# The maximum image height; used for column profiles in the NDPluginStats plugin

epicsEnvSet("YSIZE",  "1038")

# Define NELEMENTS to be enough for a 2464x2056x3 (color) image

epicsEnvSet("NELEMENTS", "5000000")

# The CAMERA_ID can be either of the following:

#  Camera IP address

#  The camera ID, which is the last part of the string reported by arv-tool

# Camera IP address

#epicsEnvSet("CAMERA_ID", "164.54.160.62")

# CameraID, last part of camera name

#epicsEnvSet("CAMERA_ID", "50-0503419258")

# RH: out camera parameters:

epicsEnvSet( "CAM",            "Spindle:")

#epicsEnvSet( "CAM_IP",         "10.1.18.39")

epicsEnvSet("CAMERA_ID", "10.1.18.39")

epicsEnvSet( "PORT",           "PS1")

epicsEnvSet("PREFIX", "21:FCAMS:")

# comment out PREFIX in st.cmd.base

#epicsEnvSet("GENICAM_DB_FILE", "$(ADGENICAM)/db/AVT_Manta_G146C.template")

epicsEnvSet("GENICAM_DB_FILE", "/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADGenICam/GenICamApp/Db/AVT_Manta17594_ip39.template")

# RH: following line removed the message of "recDynLinkOut: waiting for CA context"

var recDynLinkQsize 1024

< st.cmd.base

# Prefix for all records

#epicsEnvSet("PREFIX", "13VMB1:")

# Location of transport layer definition files

epicsEnvSet("GENICAM_GENTL64_PATH", "/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADVimba-R1-4/iocs/vimbaIOC/../../bin/linux-x86_64")

# The port name for the detector

epicsEnvSet("PORT",   "VMB1")

# 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

# This is for Windows

#epicsEnvSet("EPICS_DB_INCLUDE_PATH", "$(ADCORE)/db;$(ADGENICAM)/db;$(ADVIMBA)/db")

# This is for Linux

epicsEnvSet("EPICS_DB_INCLUDE_PATH", "/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db:/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADGenICam/db:/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADVimba-R1-4/iocs/vimbaIOC/../../db")

# ADVimbaConfig(const char *portName, const char *cameraName, size_t maxMemory, int priority, int stackSize)

ADVimbaConfig("VMB1", "10.1.18.39", 0, 0, 0)

asynSetTraceIOMask(VMB1, 0, 2)

# Set ASYN_TRACE_WARNING and ASYN_TRACE_ERROR

#asynSetTraceMask($(PORT), 0, 0xff)

#asynSetTraceFile($(PORT), 0, "asynTrace.out")

#asynSetTraceInfoMask($(PORT), 0, 0xf)

# Main database

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADVimba-R1-4/iocs/vimbaIOC/../../db/vimba.template", "P=21:FCAMS:,R=cam1:,PORT=VMB1")

# Load the autogenerated file of GenICam features

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADGenICam/GenICamApp/Db/AVT_Manta17594_ip39.template", "P=21:FCAMS:,R=cam1:,PORT=VMB1")

# Create a standard arrays plugin

NDStdArraysConfigure("Image1", 5, 0, "VMB1", 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-R6-2/support/areaDetector-R3-13/ADCore/db/NDStdArrays.template", "P=21:FCAMS:,R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1,TYPE=Int16,FTVL=SHORT,NELEMENTS=5000000")

# Load all other plugins using commonPlugins.cmd

#< $(ADCORE)/iocBoot/commonPlugins.cmd

# RH use local copy of commonPlugins.cmd to activate a few optionals

<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, "VMB1", 0)

dbLoadRecords("NDFileNetCDF.template","P=21:FCAMS:,R=netCDF1:,PORT=FileNetCDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create a TIFF file saving plugin

NDFileTIFFConfigure("FileTIFF1", 2000, 0, "VMB1", 0)

dbLoadRecords("NDFileTIFF.template",  "P=21:FCAMS:,R=TIFF1:,PORT=FileTIFF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create a JPEG file saving plugin

NDFileJPEGConfigure("FileJPEG1", 2000, 0, "VMB1", 0)

dbLoadRecords("NDFileJPEG.template",  "P=21:FCAMS:,R=JPEG1:,PORT=FileJPEG1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create a NeXus file saving plugin

NDFileNexusConfigure("FileNexus1", 2000, 0, "VMB1", 0)

dbLoadRecords("NDFileNexus.template", "P=21:FCAMS:,R=Nexus1:,PORT=FileNexus1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create an HDF5 file saving plugin

NDFileHDF5Configure("FileHDF1", 2000, 0, "VMB1", 0)

dbLoadRecords("NDFileHDF5.template",  "P=21:FCAMS:,R=HDF1:,PORT=FileHDF1,ADDR=0,TIMEOUT=1,XMLSIZE=2048,NDARRAY_PORT=VMB1")

# 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, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDROI.template",       "P=21:FCAMS:,R=ROI1:,  PORT=ROI1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

NDROIConfigure("ROI2", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDROI.template",       "P=21:FCAMS:,R=ROI2:,  PORT=ROI2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

NDROIConfigure("ROI3", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDROI.template",       "P=21:FCAMS:,R=ROI3:,  PORT=ROI3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

NDROIConfigure("ROI4", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDROI.template",       "P=21:FCAMS:,R=ROI4:,  PORT=ROI4,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create 8 ROIStat plugins

NDROIStatConfigure("ROISTAT1", 2000, 0, "VMB1", 0, 8, 0, 0, 0, 0, 5)

dbLoadRecords("NDROIStat.template",   "P=21:FCAMS:,R=ROIStat1:  ,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:1:,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:2:,PORT=ROISTAT1,ADDR=1,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:3:,PORT=ROISTAT1,ADDR=2,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:4:,PORT=ROISTAT1,ADDR=3,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:5:,PORT=ROISTAT1,ADDR=4,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:6:,PORT=ROISTAT1,ADDR=5,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:7:,PORT=ROISTAT1,ADDR=6,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",  "P=21:FCAMS:,R=ROIStat1:8:,PORT=ROISTAT1,ADDR=7,TIMEOUT=1,NCHANS=2048")

# Create a processing plugin

NDProcessConfigure("PROC1", 2000, 0, "VMB1", 0, 0, 0)

dbLoadRecords("NDProcess.template",   "P=21:FCAMS:,R=Proc1:,  PORT=PROC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create a TIFF file plugin to read dark and flatfield images into the processing plugin

NDFileTIFFConfigure("PROC1TIFF", 2000, 0, "VMB1", 0)

dbLoadRecords("NDFileTIFF.template",  "P=21:FCAMS:,R=Proc1:TIFF:,PORT=PROC1TIFF,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create a scatter plugin

NDScatterConfigure("SCATTER1", 2000, 0, "VMB1", 0, 0, 0)

dbLoadRecords("NDScatter.template",   "P=21:FCAMS:,R=Scatter1:,  PORT=SCATTER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create a gather plugin with 8 ports

NDGatherConfigure("GATHER1", 2000, 0, 8, 0, 0)

dbLoadRecords("NDGather.template",   "P=21:FCAMS:,R=Gather1:, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=1, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=2, PORT=GATHER1,ADDR=1,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=3, PORT=GATHER1,ADDR=2,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=4, PORT=GATHER1,ADDR=3,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=5, PORT=GATHER1,ADDR=4,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=6, PORT=GATHER1,ADDR=5,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=7, PORT=GATHER1,ADDR=6,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDGatherN.template",   "P=21:FCAMS:,R=Gather1:, N=8, PORT=GATHER1,ADDR=7,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create 5 statistics plugins

NDStatsConfigure("STATS1", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDStats.template",     "P=21:FCAMS:,R=Stats1:,  PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1388,YSIZE=1038,NCHANS=2048,NDARRAY_PORT=VMB1")

NDTimeSeriesConfigure("STATS1_TS", 2000, 0, "STATS1", 1, 23)

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21:FCAMS:,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=21:FCAMS:,R=Stats2:,  PORT=STATS2,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1388,YSIZE=1038,NCHANS=2048,NDARRAY_PORT=VMB1")

NDTimeSeriesConfigure("STATS2_TS", 2000, 0, "STATS2", 1, 23)

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21:FCAMS:,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=21:FCAMS:,R=Stats3:,  PORT=STATS3,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1388,YSIZE=1038,NCHANS=2048,NDARRAY_PORT=VMB1")

NDTimeSeriesConfigure("STATS3_TS", 2000, 0, "STATS3", 1, 23)

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21:FCAMS:,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=21:FCAMS:,R=Stats4:,  PORT=STATS4,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1388,YSIZE=1038,NCHANS=2048,NDARRAY_PORT=VMB1")

NDTimeSeriesConfigure("STATS4_TS", 2000, 0, "STATS4", 1, 23)

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21:FCAMS:,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=21:FCAMS:,R=Stats5:,  PORT=STATS5,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1388,YSIZE=1038,NCHANS=2048,NDARRAY_PORT=VMB1")

NDTimeSeriesConfigure("STATS5_TS", 2000, 0, "STATS5", 1, 23)

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21:FCAMS:,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, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDTransform.template", "P=21:FCAMS:,R=Trans1:,  PORT=TRANS1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create an overlay plugin with 8 overlays

NDOverlayConfigure("OVER1", 2000, 0, "VMB1", 0, 8, 0, 0, 0, 0, 5)

dbLoadRecords("NDOverlay.template", "P=21:FCAMS:,R=Over1:, PORT=OVER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

dbLoadRecords("NDOverlayN.template","P=21:FCAMS:,R=Over1:1:,NAME=ROI1,   SHAPE=1,O=Over1:,XPOS=21:FCAMS:ROI1:MinX_RBV,YPOS=21:FCAMS:ROI1:MinY_RBV,XSIZE=21:FCAMS:ROI1:SizeX_RBV,YSIZE=21:FCAMS:ROI1:SizeY_RBV,PORT=OVER1,ADDR=0,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=21:FCAMS:,R=Over1:2:,NAME=ROI2,   SHAPE=1,O=Over1:,XPOS=21:FCAMS:ROI2:MinX_RBV,YPOS=21:FCAMS:ROI2:MinY_RBV,XSIZE=21:FCAMS:ROI2:SizeX_RBV,YSIZE=21:FCAMS:ROI2:SizeY_RBV,PORT=OVER1,ADDR=1,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=21:FCAMS:,R=Over1:3:,NAME=ROI3,   SHAPE=1,O=Over1:,XPOS=21:FCAMS:ROI3:MinX_RBV,YPOS=21:FCAMS:ROI3:MinY_RBV,XSIZE=21:FCAMS:ROI3:SizeX_RBV,YSIZE=21:FCAMS:ROI3:SizeY_RBV,PORT=OVER1,ADDR=2,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=21:FCAMS:,R=Over1:4:,NAME=ROI4,   SHAPE=1,O=Over1:,XPOS=21:FCAMS:ROI4:MinX_RBV,YPOS=21:FCAMS:ROI4:MinY_RBV,XSIZE=21:FCAMS:ROI4:SizeX_RBV,YSIZE=21:FCAMS:ROI4:SizeY_RBV,PORT=OVER1,ADDR=3,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=21:FCAMS:,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=21:FCAMS:,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=21:FCAMS:,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=21:FCAMS:,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, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDColorConvert.template", "P=21:FCAMS:,R=CC1:,  PORT=CC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

NDColorConvertConfigure("CC2", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDColorConvert.template", "P=21:FCAMS:,R=CC2:,  PORT=CC2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create a circular buffer plugin

NDCircularBuffConfigure("CB1", 2000, 0, "VMB1", 0, 500, 0)

dbLoadRecords("NDCircularBuff.template", "P=21:FCAMS:,R=CB1:,  PORT=CB1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

# Create an NDAttribute plugin with 8 attributes

NDAttrConfigure("ATTR1", 2000, 0, "VMB1", 0, 8, 0, 0, 0)

dbLoadRecords("NDAttribute.template",  "P=21:FCAMS:,R=Attr1:,    PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048,NDARRAY_PORT=VMB1")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:1:,  PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:2:,  PORT=ATTR1,ADDR=1,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:3:,  PORT=ATTR1,ADDR=2,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:4:,  PORT=ATTR1,ADDR=3,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:5:,  PORT=ATTR1,ADDR=4,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:6:,  PORT=ATTR1,ADDR=5,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:7:,  PORT=ATTR1,ADDR=6,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=21:FCAMS:,R=Attr1:8:,  PORT=ATTR1,ADDR=7,TIMEOUT=1,NCHANS=2048")

NDTimeSeriesConfigure("ATTR1_TS", 2000, 0, "ATTR1", 1, 8)

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21:FCAMS:,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, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDFFT.template", "P=21:FCAMS:, R=FFT1:, PORT=FFT1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=VMB1, NAME=FFT1, NCHANS=1388")

# Create 2 Codec plugins

NDCodecConfigure("CODEC1", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDCodec.template", "P=21:FCAMS:, R=Codec1:, PORT=CODEC1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=VMB1")

NDCodecConfigure("CODEC2", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDCodec.template", "P=21:FCAMS:, R=Codec2:, PORT=CODEC2, ADDR=0, TIMEOUT=1, NDARRAY_PORT=VMB1")

# Create a bad pixel plugin

NDBadPixelConfigure("BADPIX1", 2000, 0, "VMB1", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDBadPixel.template", "P=21:FCAMS:, R=BadPix1:, PORT=BADPIX1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=VMB1")

set_requestfile_path("./")

set_requestfile_path("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db")

set_requestfile_path("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/iocBoot")

set_requestfile_path("/opt/epics/synApps-R6-2/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("21:FCAMS:")

dbLoadRecords("/opt/epics/synApps-R6-2/support/autosave-R5-11/db/save_restoreStatus.db", "P=21:FCAMS:")

dbLoadRecords("/opt/epics/synApps-R6-2/support/autosave-R5-11/db/configMenu.db", "P=21:FCAMS:, CONFIG=ADAutoSave")

# Load NDPluginPva plugin

NDPvaConfigure("PVA1", 2000, 0, "VMB1", 0, 21:FCAMS:Pva1:Image, 0, 0, 0)

dbLoadRecords("NDPva.template",  "P=21:FCAMS:,R=Pva1:, PORT=PVA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

#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

# RH activate EdgePlugin

NDEdgeConfigure("EDGE1", 2000, 0, "VMB1", 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("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADPluginEdge/db")

dbLoadRecords("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADCore/db/NDEdge.template",  "P=21:FCAMS:,R=Edge1:, PORT=EDGE1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")

set_requestfile_path("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/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

# RH activate SSCAN 

dbLoadRecords("/opt/epics/synApps-R6-2/support/sscan-R2-11-6/db/scan.db", "P=21:FCAMS:,MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20,MAXPTS4=10,MAXPTSH=10")

set_requestfile_path("/opt/epics/synApps-R6-2/support/sscan-R2-11-6/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)

# RH activate devIocStats

dbLoadRecords("/opt/epics/synApps-R6-2/support/iocStats-3-1-16/db/iocAdminSoft.db", "IOC=21:FCAMS:")

# RH add this two modules currently used at LS-CAT:

dbLoadRecords("/opt/epics/synApps-R6-2/support/calc-R3-7-5/calcApp/Db/yySseq.db", "P=21:FCAMS:, S=AcquireSequence")

dbLoadRecords("/opt/epics/synApps-R6-2/support/calc-R3-7-5/calcApp/Db/userCalcOuts10.db", "P=21:FCAMS:")

# 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/support/areaDetector-R3-13/ADGenICam/GenICamApp/Db")

set_requestfile_path("/opt/epics/synApps-R6-2/support/areaDetector-R3-13/ADVimba-R1-4/iocs/vimbaIOC/../../vimbaApp/Db")

# RH added: (this increases connected PVs from 3764 to 5237!)

set_requestfile_path("/opt/epics/synApps-R6-2/support/calc-R3-7-5/calcApp/Db")

iocInit()

Starting iocInit

############################################################################

## EPICS R7.0.8

## Rev. 2024-06-13T17:42-0500

## Rev. Date build date/time: 

############################################################################

recDynLinkOut: waiting for CA context

recGblRecordError: devStringinEnvVar (init_record) Illegal INP parm field Illegal field value PV: 21:FCAMS::TIMEZONE

recDynLinkOut: got CA context

2024/11/17 22:01:40.703 NDPluginDriver::deleteCallbackThreads timeout waiting for plugin thread 0 exit message

2024/11/17 22:01:40.703 NDPluginDriver::writeInt32 ERROR, status=3, function=65, paramName=QUEUE_SIZE, value=2000, connectedToArrayPort_=1

2024/11/17 22:01:40.703 21:FCAMS:Edge1:QueueSize devAsynInt32::processCallbackOutput process write error 

iocRun: All initialization complete

# save things every thirty seconds

create_monitor_set("auto_settings.req", 30,"P=21:FCAMS:")

epics> auto_settings.sav: 5237 of 5237 PV's connected

 


Replies:
Re: ADVimba IOC boot recGblRecordError NDPluginDriver errors Rong Huang via Tech-talk
References:
ADVimba IOC boot recGblRecordError NDPluginDriver errors Rong Huang via Tech-talk

Navigate by Date:
Prev: Including display information in NTTables Érico Nogueira Rolim via Tech-talk
Next: RE: Asyn device support does not reconnect 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  2020  2021  2022  2023  <20242025 
Navigate by Thread:
Prev: ADVimba IOC boot recGblRecordError NDPluginDriver errors Rong Huang via Tech-talk
Next: Re: ADVimba IOC boot recGblRecordError NDPluginDriver errors Rong Huang 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  2020  2021  2022  2023  <20242025 
ANJ, 18 Nov 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·