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

Subject: RE: Driver for Eiger1 with SIMPLON 1.8.0
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: Tue, 25 Jun 2024 19:00:25 +0000

The areaDetector driver works with Simplon 1.8.0.  See the screenshot here:

https://areadetector.github.io/areaDetector/ADEiger/eiger.html#medm-screens

 

The unknown parameters are only present in the Simplon 1.6, not 1.8.0.  The driver only tries to create those parameters if it thinks the detector is running Simplon 1.6.0.

https://github.com/areaDetector/ADEiger/blob/9603656227ba50007401f6dcc1b4c24fb977b9bf/eigerApp/src/eigerDetector.cpp#L352

 

I can think of 2 possible reasons for the error messages:

  • You are running an old version of the driver that did not do this test.
  • The driver is not correctly detecting that your detector is running the Simplon 1.8.0 API.

 

This is where it reads the API version:

https://github.com/areaDetector/ADEiger/blob/9603656227ba50007401f6dcc1b4c24fb977b9bf/eigerApp/src/eigerDetector.cpp#L197

 

You could add some debugging to see what value it is getting in that call.

 

Mark

 

 

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Rong Huang via Tech-talk
Sent: Tuesday, June 25, 2024 1:07 PM
To: tech-talk at aps.anl.gov
Subject: Driver for Eiger1 with SIMPLON 1.8.0

 

Hello,

 

We have an Eiger X Si 9M detector using SIMPLON 1.8.0, and we would like to use EPICS areaDetector driver. 

Simply tried areaDetector-R3-13, iocEiger1, but it has IOC startup errors. I am not sure about the version of ADEiger, but likely a recent release on github.

Should we roll back to SIMPLON 1.6? Or is there something I have overlooked during installation? Or the IOC startup errors can just be ignored? (cannot find parameters of DCU_BUF_FREE, CLEAR, LINK_0, LINK_1, LINK_2, LINK_3).

 

Thanks,

Rong

 

######## IOC startup printout #############

#!../../bin/linux-x86_64/eigerDetectorApp

< envPaths

epicsEnvSet("IOC","iocEiger1")

epicsEnvSet("TOP","/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC")

epicsEnvSet("ADEIGER","/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../..")

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

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

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

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

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

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

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

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

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

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

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

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

errlogInit(20000)

dbLoadDatabase("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/dbd/eigerDetectorApp.dbd")

eigerDetectorApp_registerRecordDeviceDriver(pdbbase)

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

epicsEnvSet("PORT",   "EIG")

epicsEnvSet("QSIZE",  "20") # The queue size for all plugins

epicsEnvSet("XSIZE",  "3110")  # The maximim image width; 

# used for row profiles in the NDPluginStats plugin # RH: # of pixels

epicsEnvSet("YSIZE",  "3269")  # The maximim image height; 

# used for column profiles in the NDPluginStats plugin # RH: # of pixels

epicsEnvSet("NCHANS", "2048")  

# The maximum number of time series points in the NDPluginStats plugin

epicsEnvSet("CBUFFS", "500")   

# The maximum number of frames buffered in the NDPluginCircularBuff plugin

# This is an Eiger1 500K

# epicsEnvSet("EIGERIP", "10.54.160.234")

epicsEnvSet("EIGERIP", "164.54.252.45")    # fig

epicsEnvSet("EPICS_DB_INCLUDE_PATH", "/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db:/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../../db")

epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", "5000000")

eigerDetectorConfig("EIG", "164.54.252.45", 0, 0)

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../../db/eiger1.template", "P=21EIG1:,R=cam1:,PORT=EIG,ADDR=0,TIMEOUT=1")

# Debug

#asynSetTraceMask("$(PORT)", 0, 0x11)

# Create a standard arrays plugin

NDStdArraysConfigure("Image1", 5, 0, "EIG", 0, 0)

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDStdArrays.template", "P=21EIG1:,R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,TYPE=Int32,FTVL=LONG,NELEMENTS=1096950, NDARRAY_PORT=EIG")

NDStdArraysConfigure("Image2", 5, 0, "EIG", 1, 0)

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDStdArrays.template", "P=21EIG1:,R=image2:,PORT=Image2,ADDR=0,TIMEOUT=1,TYPE=Int32,FTVL=LONG,NELEMENTS=1096950, NDARRAY_PORT=EIG")

# Load all other plugins using commonPlugins.cmd

< /opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/iocBoot/commonPlugins.cmd

# This is an example file for creating plugins

# It uses the following environment variable macros

# Many of the parameters defined in this file are also in commonPlugins_settings.req so if autosave is being

# use the autosave value will replace the value passed to this file.

# $(PREFIX)      Prefix for all records

# $(PORT)        The port name for the detector.  In autosave.

# $(QSIZE)       The queue size for all plugins.  In autosave.

# $(XSIZE)       The maximum image width; used to set the maximum size for row profiles in the NDPluginStats plugin and 1-D FFT

#                   profiles in NDPluginFFT.

# $(YSIZE)       The maximum image height; used to set the maximum size for column profiles in the NDPluginStats plugin

# $(NCHANS)      The maximum number of time series points in the NDPluginStats, NDPluginROIStats, and NDPluginAttribute plugins

# $(CBUFFS)      The maximum number of frames buffered in the NDPluginCircularBuff plugin

# $(MAX_THREADS) The maximum number of threads for plugins which can run in multiple threads. Defaults to 5.

# Create a netCDF file saving plugin

NDFileNetCDFConfigure("FileNetCDF1", 20, 0, "EIG", 0)

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

# Create a TIFF file saving plugin

NDFileTIFFConfigure("FileTIFF1", 20, 0, "EIG", 0)

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

# Create a JPEG file saving plugin

NDFileJPEGConfigure("FileJPEG1", 20, 0, "EIG", 0)

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

# Create a NeXus file saving plugin

NDFileNexusConfigure("FileNexus1", 20, 0, "EIG", 0)

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

# Create an HDF5 file saving plugin

NDFileHDF5Configure("FileHDF1", 20, 0, "EIG", 0)

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

# Create a Magick file saving plugin

#NDFileMagickConfigure("FileMagick1", $(QSIZE), 0, "$(PORT)", 0)

#dbLoadRecords("NDFileMagick.template","P=$(PREFIX),R=Magick1:,PORT=FileMagick1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")

# Create 4 ROI plugins

NDROIConfigure("ROI1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

NDROIConfigure("ROI2", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

NDROIConfigure("ROI3", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

NDROIConfigure("ROI4", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

# Create 8 ROIStat plugins

NDROIStatConfigure("ROISTAT1", 20, 0, "EIG", 0, 8, 0, 0, 0, 0, 5)

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

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

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

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

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

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

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

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

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

# Create a processing plugin

NDProcessConfigure("PROC1", 20, 0, "EIG", 0, 0, 0)

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

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

NDFileTIFFConfigure("PROC1TIFF", 20, 0, "EIG", 0)

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

# Create a scatter plugin

NDScatterConfigure("SCATTER1", 20, 0, "EIG", 0, 0, 0)

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

# Create a gather plugin with 8 ports

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

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

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

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

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

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

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

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

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

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

# Create 5 statistics plugins

NDStatsConfigure("STATS1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDStats.template",     "P=21EIG1:,R=Stats1:,  PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")

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

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21EIG1:,R=Stats1:TS:, PORT=STATS1_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS1,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")

NDStatsConfigure("STATS2", 20, 0, "ROI1",    0, 0, 0, 0, 0, 5)

dbLoadRecords("NDStats.template",     "P=21EIG1:,R=Stats2:,  PORT=STATS2,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")

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

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21EIG1:,R=Stats2:TS:, PORT=STATS2_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS2,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")

NDStatsConfigure("STATS3", 20, 0, "ROI2",    0, 0, 0, 0, 0, 5)

dbLoadRecords("NDStats.template",     "P=21EIG1:,R=Stats3:,  PORT=STATS3,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")

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

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21EIG1:,R=Stats3:TS:, PORT=STATS3_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS3,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")

NDStatsConfigure("STATS4", 20, 0, "ROI3",    0, 0, 0, 0, 0, 5)

dbLoadRecords("NDStats.template",     "P=21EIG1:,R=Stats4:,  PORT=STATS4,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")

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

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21EIG1:,R=Stats4:TS:, PORT=STATS4_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS4,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")

NDStatsConfigure("STATS5", 20, 0, "ROI4",    0, 0, 0, 0, 0, 5)

dbLoadRecords("NDStats.template",     "P=21EIG1:,R=Stats5:,  PORT=STATS5,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=3110,YSIZE=3269,NCHANS=2048,NDARRAY_PORT=EIG")

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

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21EIG1:,R=Stats5:TS:, PORT=STATS5_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=STATS5,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")

# Create a transform plugin

NDTransformConfigure("TRANS1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

# Create an overlay plugin with 8 overlays

NDOverlayConfigure("OVER1", 20, 0, "EIG", 0, 8, 0, 0, 0, 0, 5)

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

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

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

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

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

dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:5:,NAME=Cursor1,SHAPE=1,O=Over1:,XPOS=junk,                  YPOS=junk,                  XSIZE=junk,                   YSIZE=junk,                   PORT=OVER1,ADDR=4,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:6:,NAME=Cursor2,SHAPE=1,O=Over1:,XPOS=junk,                  YPOS=junk,                  XSIZE=junk,                   YSIZE=junk,                   PORT=OVER1,ADDR=5,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:7:,NAME=Box1,   SHAPE=1,O=Over1:,XPOS=junk,                  YPOS=junk,                  XSIZE=junk,                   YSIZE=junk,                   PORT=OVER1,ADDR=6,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=21EIG1:,R=Over1:8:,NAME=Box2,   SHAPE=1,O=Over1:,XPOS=junk,                  YPOS=junk,                  XSIZE=junk,                   YSIZE=junk,                   PORT=OVER1,ADDR=7,TIMEOUT=1")

# Create 2 color conversion plugins

NDColorConvertConfigure("CC1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

NDColorConvertConfigure("CC2", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

# Create a circular buffer plugin

NDCircularBuffConfigure("CB1", 20, 0, "EIG", 0, 500, 0)

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

# Create an NDAttribute plugin with 8 attributes

NDAttrConfigure("ATTR1", 20, 0, "EIG", 0, 8, 0, 0, 0)

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

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

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

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

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

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

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

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

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

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

dbLoadRecords("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADCore/db/NDTimeSeries.template",  "P=21EIG1:,R=Attr1:TS:, PORT=ATTR1_TS,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ATTR1,NDARRAY_ADDR=1,NCHANS=2048,ENABLED=1")

# Create an FFT plugin

NDFFTConfigure("FFT1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

dbLoadRecords("NDFFT.template", "P=21EIG1:, R=FFT1:, PORT=FFT1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=EIG, NAME=FFT1, NCHANS=3110")

# Create 2 Codec plugins

NDCodecConfigure("CODEC1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

NDCodecConfigure("CODEC2", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

# Create a bad pixel plugin

NDBadPixelConfigure("BADPIX1", 20, 0, "EIG", 0, 0, 0, 0, 0, 5)

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

set_requestfile_path("./")

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

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

set_requestfile_path("/opt/epics/synApps-R6-2-1/support/autosave-R5-11/db")

set_savefile_path("./autosave")

set_pass0_restoreFile("auto_settings.sav")

set_pass1_restoreFile("auto_settings.sav")

save_restoreSet_status_prefix("21EIG1:")

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

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

# Load NDPluginPva plugin

NDPvaConfigure("PVA1", 20, 0, "EIG", 0, 21EIG1:Pva1:Image, 0, 0, 0)

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

#Must start PVA server if this is enabled

startPVAServer

# Optional: load ffmpegServer plugin

#ffmpegServerConfigure(8081)

#ffmpegStreamConfigure("FfmStream1", 2, 0, "$(PORT)", 0, -1, 0)

#dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegStream.template", "P=$(PREFIX),R=ffmstream1:,PORT=FfmStream1,NDARRAY_PORT=$(PORT)")

#ffmpegFileConfigure("FfmFile1", 16, 0, "$(PORT)", 0, -1, 0)

#dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegFile.template", "P=$(PREFIX),R=ffmfile1:,PORT=FfmFile1,NDARRAY_PORT=$(PORT)")

#set_requestfile_path("$(FFMPEGSERVER)/db")

# Optional: load NDPluginEdge plugin

#NDEdgeConfigure("EDGE1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0)

#dbLoadRecords("$(ADPLUGINEDGE)/db/NDEdge.template",  "P=$(PREFIX),R=Edge1:, PORT=EDGE1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")

#set_requestfile_path("$(ADPLUGINEDGE)/db")

# Optional: load NDPluginCV plugin

#NDCVConfigure("CV1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))

#dbLoadRecords("$(ADCOMPVISION)/db/NDCV.template",  "P=$(PREFIX),R=CV1:, PORT=CV1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")

#set_requestfile_path("$(ADCOMPVISION)/db")

# Optional: load NDPluginBar plugin

#NDBarConfigure("BAR1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))

#dbLoadRecords("$(ADPLUGINBAR)/db/NDBar.template",  "P=$(PREFIX),R=Bar1:, PORT=BAR1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")

#set_requestfile_path("$(ADPLUGINBAR)/db")

# Optional: load scan records

#dbLoadRecords("$(SSCAN)/db/scan.db", "P=$(PREFIX),MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20,MAXPTS4=10,MAXPTSH=10")

#set_requestfile_path("$(SSCAN)/db")

# Optional: load sseq record for acquisition sequence

#dbLoadRecords("$(CALC)/db/sseqRecord.db", "P=$(PREFIX), S=AcquireSequence")

#set_requestfile_path("$(CALC)/db")

# Optional: load devIocStats records (requires DEVIOCSTATS module)

#dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db", "IOC=$(PREFIX)")

# Optional: load alive record (requires ALIVE module)

#dbLoadRecords("$(ALIVE)/db/alive.db", "P=$(PREFIX),RHOST=192.168.1.254")

# Set the callback queue size to 5000, up from default of 2000 in base.

# This can be needed to avoid errors "callbackRequest: cbLow ring buffer full".

callbackSetQueueSize(5000)

set_requestfile_path("/opt/epics/synApps-R6-2-1/support/areaDetector-R3-13/ADEiger/iocs/eigerIOC/../../eigerApp/Db")

# RH: to remove error of "unable to open file sseq_settings.req. Exiting"

# triggered by "auto_settings.req" -> "commonPlugin_settings.req" -> "NDStats_settings.req"

# -> "sseq_settings.req".  https://epics.anl.gov/tech-talk/2020/msg00305.php

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

iocInit()

Starting iocInit

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

## EPICS R7.0.8

## Rev. 2024-04-05T14:18-0500

## Rev. Date build date/time: 

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

2024/06/25 12:54:49.891 asynPortDriver:drvUserCreate: addr=0, cannot find parameter DCU_BUF_FREE

21EIG1:cam1:DCUBufferFree_RBV devAsynFloat64::initCommon drvUserCreate 

2024/06/25 12:54:49.900 asynPortDriver:drvUserCreate: addr=0, cannot find parameter CLEAR

21EIG1:cam1:FWClear devAsynInt32::initCommon drvUserCreate 

recGblRecordError: ao: init_record Error (514,11) PV: 21EIG1:cam1:FWClear

2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_0

21EIG1:cam1:Link0_RBV devAsynInt32::initCommon drvUserCreate 

2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_1

21EIG1:cam1:Link1_RBV devAsynInt32::initCommon drvUserCreate 

2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_2

21EIG1:cam1:Link2_RBV devAsynInt32::initCommon drvUserCreate 

2024/06/25 12:54:49.943 asynPortDriver:drvUserCreate: addr=0, cannot find parameter LINK_3

21EIG1:cam1:Link3_RBV devAsynInt32::initCommon drvUserCreate 

iocRun: All initialization complete

# Avoid deluge of messages when debugging

#dbpf $(PREFIX)cam1:PoolUsedMem.SCAN Passive

# save things every thirty seconds

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

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

 


Replies:
Re: Driver for Eiger1 with SIMPLON 1.8.0 Rong Huang via Tech-talk
References:
Driver for Eiger1 with SIMPLON 1.8.0 Rong Huang via Tech-talk

Navigate by Date:
Prev: Archiver Appliance PV by Policy Paul Sichta via Tech-talk
Next: Re: Driver for Eiger1 with SIMPLON 1.8.0 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  <2024
Navigate by Thread:
Prev: Driver for Eiger1 with SIMPLON 1.8.0 Rong Huang via Tech-talk
Next: Re: Driver for Eiger1 with SIMPLON 1.8.0 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  <2024
ANJ, 11 Sep 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·