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: Re: How to check IOC connection
From: Jong Woo Kim via Tech-talk <tech-talk at aps.anl.gov>
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Tue, 28 Jul 2020 18:52:02 +0000
Hi Mark, 

I tested Mono8/None. It was okay at the beginning, but there are many frames to be dropped in the long run. 
I also read the documentation. As it says, our current status is about 200 KB (net.core.rmem_max and net.core.rmem_default). After I increased to 8MB, there is no more issue. Thank you!  
What is the best combination of pixel format/convert format? (Mako G-507) if 12-bits is not supported, 

For GigE cameras the default values of the net.core.rmem_max and net.core.rmem_default are typically much to low (~200 KB) for optimal performance of GigE and 10 GigE cameras. These should be increased to 8 MB. To set the values immediately execute the following commands as root:

Thanks,
Jong Woo


From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Monday, July 27, 2020 4:47 PM
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: RE: How to check IOC connection
 

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

 

Hi Mark, 

 

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. 

 

Thanks,

Jong Woo 


From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Monday, July 27, 2020 1:44 PM
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: RE: How to check IOC connection

 

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

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Jong Woo Kim via Tech-talk
Sent: Monday, July 27, 2020 3:23 PM
To: tech-talk at aps.anl.gov
Subject: Re: How to check IOC connection

 

Dear All, 

 

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

 

Thanks,

Jong Woo

 

 


From: Jong Woo Kim <Jong.Woo.Kim at asu.edu>
Sent: Friday, July 24, 2020 9:19 PM
To: Hu, Yong <yhu at bnl.gov>; Mark Rivers <rivers at cars.uchicago.edu>; John Dobbins <john.dobbins at cornell.edu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: How to check IOC connection

 

Dear All, 

 

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.  

 

Best,

Jong Woo   


From: Hu, Yong <yhu at bnl.gov>
Sent: Friday, July 24, 2020 4:20 AM
To: Mark Rivers <rivers at cars.uchicago.edu>; Jong Woo Kim <Jong.Woo.Kim at asu.edu>; John Dobbins <john.dobbins at cornell.edu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: How to check IOC connection

 

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


Replies:
RE: How to check IOC connection Mark Rivers via Tech-talk
References:
How to check IOC connection Jong Woo Kim via Tech-talk
Re: How to check IOC connection John Dobbins via Tech-talk
Re: How to check IOC connection Mark Rivers via Tech-talk
Re: How to check IOC connection Hu, Yong via Tech-talk
Re: How to check IOC connection Jong Woo Kim via Tech-talk
Re: How to check IOC connection Jong Woo Kim via Tech-talk
RE: How to check IOC connection Mark Rivers via Tech-talk
Re: How to check IOC connection Jong Woo Kim via Tech-talk
RE: How to check IOC connection Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: EPICS support for Linkam T96 controller in Linux. Peterson, Kevin M. via Tech-talk
Next: RE: How to check IOC connection 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 
Navigate by Thread:
Prev: RE: How to check IOC connection Mark Rivers via Tech-talk
Next: RE: How to check IOC connection 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, 28 Jul 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·