Hi Jogn Woo,
Ø
Mono12/None gives an error and every frame is lost
That combination is not supported, and you will see lots of error messages on the IOC. It is not supported because the data would be 12-bits which is not a supported data type.
What I asked you to test was Mono8/None. Do you see frames being dropped with that setting?
Have you set increased your Linux network buffer sizes as described in this areaDetector documentation page:
https://areadetector.github.io/master/ADGenICam/ADGenICam.html#linux-usb-and-gige-system-settings
Mark
From: Jong Woo Kim <Jong.Woo.Kim at asu.edu>
Sent: Monday, July 27, 2020 6:24 PM
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: tech-talk at aps.anl.gov
Subject: Re: How to check IOC connection
It really depends on frame rate (frequency). If it is more than 5, 20-30% are lost. If it is less than 2.5, about 1% of frames are lost. There is no big difference between Mono12/Mono16
and Mono12/Mono8. but More12/None gives an error and every frame is lost. * total pixel size (roi) is 2,000 x 2,000.
Hi Jong Woo,
Ø
Everything works fine, but the following message comes out every second.
What is the frame rate? Are you getting that message on every frame, every 10’th frame, etc.?
Ø
Do you have any idea on this message?
Ø
2020/07/27 10:49:47.748 ADVimba::processFrame error GetReceiveStatus returned 0 frameStatus=-1
That message is printed at the beginning of ADVimba::processFrame in this code:
VmbFrameStatusType frameStatus = VmbFrameStatusIncomplete;
vmbStatus = pFrame->GetReceiveStatus(frameStatus);
if (VmbErrorSuccess != vmbStatus || VmbFrameStatusComplete != frameStatus) {
asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
"%s::%s error GetReceiveStatus returned %d frameStatus=%d\n",
driverName, functionName, vmbStatus, frameStatus);
status = asynError;
goto done;
}
pFrame->GetReceiveStatus(frameStatus) is a function in the vendor SDK.
The problem is that frameStatus is -1, which it should not be. These are the enum values for VmbFrameStatusType.
VimbaC.h:typedef enum VmbFrameStatusType
VimbaC.h: VmbFrameStatusComplete = 0, // Frame has been completed without errors
VimbaC.h: VmbFrameStatusIncomplete = -1, // Frame could not be filled to the end
VimbaC.h: VmbFrameStatusTooSmall = -2, // Frame buffer was too small
VimbaC.h: VmbFrameStatusInvalid = -3, // Frame buffer was invalid
VimbaC.h:} VmbFrameStatusType;
So the status VmbFrameStatusIncomplete which means “Frame could not be filled to the end”.
If you change to PixelFormat=Mono8 and ConvertFormat=None do you see the errors?
In the Mono12/Mono16 mode are you getting any good images in your viewer?
Mark
Everything works fine, but the following message comes out every second.
The camera is Mako G-507B.
Pixel format is Mono12 and Convert format is Mono16
Do you have any idea on this message?
__________________________________________________
07-27-2020 10:49:47.748 [T] Trashed frame! 7406,1287 0
2020/07/27 10:49:47.748 ADVimba::processFrame error GetReceiveStatus returned 0 frameStatus=-1
Thank you all for your help. The main cause turned out to be a firewall.
To John, max array thing was something that I needed to adjust. good to know it, thanks.
To Yong, I replaced IP address with random numbers on purpose not to be exposed to the public. thank you.
Hi Jong Woo,
Are you able to ping that camera IP from the computer where you use 'camonitor' / medm? Can you use other software (i.e. Vimba) to see the camera? The two lines below seem confusing:
epicsEnvSet("CAMERA_ID","19.119.2.17")
ADVimbaConfig("VMB1", 10.139.1.11,0,0,0)
Also, you probably should use double quotation marks, i.e. "10.139.1.11" in ADVimbaConfig although it probably does not matter in your case.
Good luck!
Yong
________________________________
On 7/23/20, 12:26 PM, "Tech-talk on behalf of Mark Rivers via Tech-talk" <tech-talk-bounces at aps.anl.gov
on behalf of tech-talk at aps.anl.gov> wrote:
> You may need to set EPICS_CA_MAX_ARRAY_BYTES on server and client.
I don't think that is the current problem. That will only prevent receiving large arrays (images), but PVs should connect. I think the problem is most likely a firewall.
It could also be an incorrect setting of EPICS_CA_AUTO_ADDR_LIST and EPICS_CA_ADDR_LIST. Check to make sure those environment variables are not defined, or if they are defined that they are correct.
Mark
________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of John Dobbins via Tech-talk <tech-talk at aps.anl.gov>
Sent: Thursday, July 23, 2020 11:20 AM
To: tech-talk at aps.anl.gov; Jong Woo Kim
Subject: Re: How to check IOC connection
Jong Woo,
You may need to set EPICS_CA_MAX_ARRAY_BYTES on server and client.
John Dobbins
________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Jong Woo Kim via Tech-talk <tech-talk at aps.anl.gov>
Sent: Thursday, July 23, 2020 12:16 PM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: How to check IOC connection
Dear All,
I connected IOC for camera without error. But I cannot see any PVs with 'camonitor' neither with medm.
Could you let me know what's wrong?
____________________________________________________________________________
[jkim@localhost iocVimba]$ ../../bin/linux-x86_64/vimbaApp st.cmd
< envPaths
epicsEnvSet("IOC","iocVimba")
epicsEnvSet("TOP","/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADVimba/iocs/vimbaIOC")
epicsEnvSet("ADVIMBA","/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADVimba/iocs/vimbaIOC/../..")
epicsEnvSet("SUPPORT","/usr/local/EPICS_NEW/synApps_6_1/support")
epicsEnvSet("ASYN","/usr/local/EPICS_NEW/synApps_6_1/support/asyn4-38")
epicsEnvSet("AREA_DETECTOR","/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector")
epicsEnvSet("ADSUPPORT","/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADSupport")
epicsEnvSet("ADCORE","/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore")
epicsEnvSet("AUTOSAVE","/usr/local/EPICS_NEW/synApps_6_1/support/autosave-R5-10")
epicsEnvSet("BUSY","/usr/local/EPICS_NEW/synApps_6_1/support/busy-R1-7-2")
epicsEnvSet("CALC","/usr/local/EPICS_NEW/synApps_6_1/support/calc-R3-7-3")
epicsEnvSet("SNCSEQ","/usr/local/EPICS_NEW/synApps_6_1/support/seq-2-2-6")
epicsEnvSet("SSCAN","/usr/local/EPICS_NEW/synApps_6_1/support/sscan-R2-11-3")
epicsEnvSet("DEVIOCSTATS","/usr/local/EPICS_NEW/synApps_6_1/support/iocStats-3-1-16")
epicsEnvSet("ALIVE","/usr/local/EPICS_NEW/synApps_6_1/support/alive-R1-1-1")
epicsEnvSet("EPICS_BASE","/usr/local/EPICS_NEW/base-3.15.6")
epicsEnvSet("ADGENICAM","/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADGenICam")
errlogInit(20000)
dbLoadDatabase("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADVimba/iocs/vimbaIOC/dbd/vimbaApp.dbd")
vimbaApp_registerRecordDeviceDriver(pdbbase)
# Location of transport layer definition files
epicsEnvSet("GENICAM_GENTL64_PATH", "/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADVimba/iocs/vimbaIOC/../../bin/linux-x86_64")
epicsEnvSet("GENICAM_DB_FILE", "/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADGenICam/db/AVT_Mako_G507B.template")
# Prefix for all records
epicsEnvSet("PREFIX","13VMB1:")
epicsEnvSet("CAMERA_ID","19.119.2.17")
epicsEnvSet("MODULE","cam1:")
# The port name for the detector
epicsEnvSet("PORT", "VMB1")
# Really large queue so we can stream to disk at full camera speed
epicsEnvSet("QSIZE", "2000000")
# The maximim image width; used for row profiles in the NDPluginStats plugin
epicsEnvSet("XSIZE", "2464")
# The maximim image height; used for column profiles in the NDPluginStats plugin
epicsEnvSet("YSIZE", "2056")
# 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","/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db:/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADGenICam/db:/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADVimba/iocs/vimbaIOC/../../db")
# Define NELEMENTS to be enough for a 2048x2048x3 (color) image
epicsEnvSet("NELEMENTS","15197952")
# ADVimbaConfig(const char *portName, const char *cameraId,
# size_t maxMemory, int priority, int stackSize)
ADVimbaConfig("VMB1", 10.139.1.11,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("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADVimba/iocs/vimbaIOC/../../db/vimba.template", "P=13VMB1:,R=cam1:, PORT=VMB1")
# Load the autogenerated file of GenICam features
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADGenICam/db/AVT_Mako_G507B.template", "P=13VMB1:,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("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db/NDStdArrays.template", "P=13VMB1:,R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1,TYPE=Int16,FTVL=SHORT,NELEMENTS=15197952")
# Load all other plugins using commonPlugins.cmd
< /usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/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", 2000000, 0, "VMB1", 0)
dbLoadRecords("NDFileNetCDF.template","P=13VMB1:,R=netCDF1:,PORT=FileNetCDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create a TIFF file saving plugin
NDFileTIFFConfigure("FileTIFF1", 2000000, 0, "VMB1", 0)
dbLoadRecords("NDFileTIFF.template", "P=13VMB1:,R=TIFF1:,PORT=FileTIFF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create a JPEG file saving plugin
NDFileJPEGConfigure("FileJPEG1", 2000000, 0, "VMB1", 0)
dbLoadRecords("NDFileJPEG.template", "P=13VMB1:,R=JPEG1:,PORT=FileJPEG1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create a NeXus file saving plugin
NDFileNexusConfigure("FileNexus1", 2000000, 0, "VMB1", 0)
dbLoadRecords("NDFileNexus.template", "P=13VMB1:,R=Nexus1:,PORT=FileNexus1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create an HDF5 file saving plugin
NDFileHDF5Configure("FileHDF1", 2000000, 0, "VMB1", 0)
dbLoadRecords("NDFileHDF5.template", "P=13VMB1:,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", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=13VMB1:,R=ROI1:, PORT=ROI1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
NDROIConfigure("ROI2", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=13VMB1:,R=ROI2:, PORT=ROI2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
NDROIConfigure("ROI3", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=13VMB1:,R=ROI3:, PORT=ROI3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
NDROIConfigure("ROI4", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDROI.template", "P=13VMB1:,R=ROI4:, PORT=ROI4,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create 8 ROIStat plugins
NDROIStatConfigure("ROISTAT1", 2000000, 0, "VMB1", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDROIStat.template", "P=13VMB1:,R=ROIStat1: ,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:1:,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:2:,PORT=ROISTAT1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:3:,PORT=ROISTAT1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:4:,PORT=ROISTAT1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:5:,PORT=ROISTAT1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:6:,PORT=ROISTAT1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:7:,PORT=ROISTAT1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDROIStatN.template", "P=13VMB1:,R=ROIStat1:8:,PORT=ROISTAT1,ADDR=7,TIMEOUT=1,NCHANS=2048")
# Create a processing plugin
NDProcessConfigure("PROC1", 2000000, 0, "VMB1", 0, 0, 0)
dbLoadRecords("NDProcess.template", "P=13VMB1:,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", 2000000, 0, "VMB1", 0)
dbLoadRecords("NDFileTIFF.template", "P=13VMB1:,R=Proc1:TIFF:,PORT=PROC1TIFF,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create a scatter plugin
NDScatterConfigure("SCATTER1", 2000000, 0, "VMB1", 0, 0, 0)
dbLoadRecords("NDScatter.template", "P=13VMB1:,R=Scatter1:, PORT=SCATTER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create a gather plugin with 8 ports
NDGatherConfigure("GATHER1", 2000000, 0, 8, 0, 0)
dbLoadRecords("NDGather.template", "P=13VMB1:,R=Gather1:, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=1, PORT=GATHER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=2, PORT=GATHER1,ADDR=1,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=3, PORT=GATHER1,ADDR=2,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=4, PORT=GATHER1,ADDR=3,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=5, PORT=GATHER1,ADDR=4,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=6, PORT=GATHER1,ADDR=5,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=7, PORT=GATHER1,ADDR=6,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDGatherN.template", "P=13VMB1:,R=Gather1:, N=8, PORT=GATHER1,ADDR=7,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create 5 statistics plugins
NDStatsConfigure("STATS1", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=13VMB1:,R=Stats1:, PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2464,YSIZE=2056,NCHANS=2048,NDARRAY_PORT=VMB1")
NDTimeSeriesConfigure("STATS1_TS", 2000000, 0, "STATS1", 1, 23)
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db/NDTimeSeries.template", "P=13VMB1:,R=Stats1:TS:, PORT=STATS1_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS1,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS2", 2000000, 0, "ROI1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=13VMB1:,R=Stats2:, PORT=STATS2,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2464,YSIZE=2056,NCHANS=2048,NDARRAY_PORT=VMB1")
NDTimeSeriesConfigure("STATS2_TS", 2000000, 0, "STATS2", 1, 23)
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db/NDTimeSeries.template", "P=13VMB1:,R=Stats2:TS:, PORT=STATS2_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS2,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS3", 2000000, 0, "ROI2", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=13VMB1:,R=Stats3:, PORT=STATS3,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2464,YSIZE=2056,NCHANS=2048,NDARRAY_PORT=VMB1")
NDTimeSeriesConfigure("STATS3_TS", 2000000, 0, "STATS3", 1, 23)
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db/NDTimeSeries.template", "P=13VMB1:,R=Stats3:TS:, PORT=STATS3_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS3,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS4", 2000000, 0, "ROI3", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=13VMB1:,R=Stats4:, PORT=STATS4,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2464,YSIZE=2056,NCHANS=2048,NDARRAY_PORT=VMB1")
NDTimeSeriesConfigure("STATS4_TS", 2000000, 0, "STATS4", 1, 23)
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db/NDTimeSeries.template", "P=13VMB1:,R=Stats4:TS:, PORT=STATS4_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS4,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")
NDStatsConfigure("STATS5", 2000000, 0, "ROI4", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDStats.template", "P=13VMB1:,R=Stats5:, PORT=STATS5,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=2464,YSIZE=2056,NCHANS=2048,NDARRAY_PORT=VMB1")
NDTimeSeriesConfigure("STATS5_TS", 2000000, 0, "STATS5", 1, 23)
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db/NDTimeSeries.template", "P=13VMB1:,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", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDTransform.template", "P=13VMB1:,R=Trans1:, PORT=TRANS1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create an overlay plugin with 8 overlays
NDOverlayConfigure("OVER1", 2000000, 0, "VMB1", 0, 8, 0, 0, 0, 0, 5)
dbLoadRecords("NDOverlay.template", "P=13VMB1:,R=Over1:, PORT=OVER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
dbLoadRecords("NDOverlayN.template","P=13VMB1:,R=Over1:1:,NAME=ROI1, SHAPE=1,O=Over1:,XPOS=13VMB1:ROI1:MinX_RBV,YPOS=13VMB1:ROI1:MinY_RBV,XSIZE=13VMB1:ROI1:SizeX_RBV,YSIZE=13VMB1:ROI1:SizeY_RBV,PORT=OVER1,ADDR=0,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=13VMB1:,R=Over1:2:,NAME=ROI2, SHAPE=1,O=Over1:,XPOS=13VMB1:ROI2:MinX_RBV,YPOS=13VMB1:ROI2:MinY_RBV,XSIZE=13VMB1:ROI2:SizeX_RBV,YSIZE=13VMB1:ROI2:SizeY_RBV,PORT=OVER1,ADDR=1,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=13VMB1:,R=Over1:3:,NAME=ROI3, SHAPE=1,O=Over1:,XPOS=13VMB1:ROI3:MinX_RBV,YPOS=13VMB1:ROI3:MinY_RBV,XSIZE=13VMB1:ROI3:SizeX_RBV,YSIZE=13VMB1:ROI3:SizeY_RBV,PORT=OVER1,ADDR=2,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=13VMB1:,R=Over1:4:,NAME=ROI4, SHAPE=1,O=Over1:,XPOS=13VMB1:ROI4:MinX_RBV,YPOS=13VMB1:ROI4:MinY_RBV,XSIZE=13VMB1:ROI4:SizeX_RBV,YSIZE=13VMB1:ROI4:SizeY_RBV,PORT=OVER1,ADDR=3,TIMEOUT=1")
dbLoadRecords("NDOverlayN.template","P=13VMB1:,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=13VMB1:,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=13VMB1:,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=13VMB1:,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", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=13VMB1:,R=CC1:, PORT=CC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
NDColorConvertConfigure("CC2", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDColorConvert.template", "P=13VMB1:,R=CC2:, PORT=CC2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create a circular buffer plugin
NDCircularBuffConfigure("CB1", 2000000, 0, "VMB1", 0, 500, 0)
dbLoadRecords("NDCircularBuff.template", "P=13VMB1:,R=CB1:, PORT=CB1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=VMB1")
# Create an NDAttribute plugin with 8 attributes
NDAttrConfigure("ATTR1", 2000000, 0, "VMB1", 0, 8, 0, 0, 0)
dbLoadRecords("NDAttribute.template", "P=13VMB1:,R=Attr1:, PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048,NDARRAY_PORT=VMB1")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:1:, PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:2:, PORT=ATTR1,ADDR=1,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:3:, PORT=ATTR1,ADDR=2,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:4:, PORT=ATTR1,ADDR=3,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:5:, PORT=ATTR1,ADDR=4,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:6:, PORT=ATTR1,ADDR=5,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:7:, PORT=ATTR1,ADDR=6,TIMEOUT=1,NCHANS=2048")
dbLoadRecords("NDAttributeN.template", "P=13VMB1:,R=Attr1:8:, PORT=ATTR1,ADDR=7,TIMEOUT=1,NCHANS=2048")
NDTimeSeriesConfigure("ATTR1_TS", 2000000, 0, "ATTR1", 1, 8)
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/db/NDTimeSeries.template", "P=13VMB1:,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", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDFFT.template", "P=13VMB1:, R=FFT1:, PORT=FFT1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=VMB1, NAME=FFT1, NCHANS=2464")
# Create 2 Codec plugins
NDCodecConfigure("CODEC1", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=13VMB1:, R=Codec1:, PORT=CODEC1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=VMB1")
NDCodecConfigure("CODEC2", 2000000, 0, "VMB1", 0, 0, 0, 0, 0, 5)
dbLoadRecords("NDCodec.template", "P=13VMB1:, R=Codec2:, PORT=CODEC2, ADDR=0, TIMEOUT=1, NDARRAY_PORT=VMB1")
set_requestfile_path("./")
set_requestfile_path("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/ADApp/Db")
set_requestfile_path("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADCore/iocBoot")
set_savefile_path("./autosave")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
save_restoreSet_status_prefix("13VMB1:")
dbLoadRecords("/usr/local/EPICS_NEW/synApps_6_1/support/autosave-R5-10/asApp/Db/save_restoreStatus.db", "P=13VMB1:")
# 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("/usr/local/EPICS_NEW/synApps_6_1/support/calc-R3-7-3/calcApp/Db/sseqRecord.db", "P=13VMB1:, S=AcquireSequence")
set_requestfile_path("/usr/local/EPICS_NEW/synApps_6_1/support/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("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADGenICam/GenICamApp/Db")
set_requestfile_path("/usr/local/EPICS_NEW/synApps_6_1/support/areaDetector/ADVimba/iocs/vimbaIOC/../../vimbaApp/Db")
iocInit()
Starting iocInit
############################################################################
## EPICS R3.15.6
## EPICS Base built Jul 14 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) ***
save_restore:myFileCopy: Can't open file './autosave/auto_settings.sav_200723-120837'
save_restore: Can't write backup file.
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=13VMB1:")
# Wait for enum callbacks to complete
epicsThreadSleep(1.0)
auto_settings.sav: 2287 of 2287 PV's connected
# Wait for callbacks on the property limits (DRVL, DRVH) to complete
epicsThreadSleep(1.0)
epics>
Best,
Jong Woo
|