|
|
Experimental Physics and
| ||||||||||||||
|
|
Hi everyone,
The camera that I am connecting to via GigE is a Basler Racer line scan camera (12288 x 1 px) model raL12288-8gm. When I run the camera with binning 1x1 and 8-bit pixel format at 1kHz (slowest frame rate), the driver keeps up until about 30K frames, at which point I start accumulating frame failures and underruns. With a higher frame rate, it happens almost immediately. I am using the latest areaDetector-master with ADAravis R1-3 and ADGenICam-master. I am running this IOC in a Docker using the host network which has MTU set to 9000. I made a slight adjustment to the ADAravis.cpp driver regarding setting the packet size to jumbo packets rather than determining optimum packet size, which was interfering with my network (lines 379-381 in ADAravis.cpp): 377 if (ARV_IS_GV_DEVICE(this->device)) { 378 // Automatically determine optimum packet size 379 // arv_gv_device_auto_packet_size(ARV_GV_DEVICE(this->device)); 380 // Uncomment this line to set jumbo packets 381 arv_gv_device_set_packet_size(ARV_GV_DEVICE(this->device), 9000); 382 } I'm attaching snapshots of my camera features settings as well as my st.cmd and st.cmd.base files. Please let me know what other information you need. When I run this using the Basler pylonViewer software, I do not see these skipped frames. Best, Katie < envPaths
errlogInit(20000)
dbLoadDatabase("$(TOP)/dbd/ADAravisApp.dbd")
ADAravisApp_registerRecordDeviceDriver(pdbbase)
# Name of camera as reported by arv-tool
epicsEnvSet("CAMERA_NAME", ${DET_IP})
# The maximum image width; used for row profiles in the NDPluginStats plugin
epicsEnvSet("XSIZE", "12288")
# The maximum image height; used for column profiles in the NDPluginStats plugin
epicsEnvSet("YSIZE", "1")
# Define NELEMENTS to be enough for a 12288x1x3 (color) image
epicsEnvSet("NELEMENTS", "40000")
# Enable register caching
epicsEnvSet("ENABLE_CACHING", "1")
# The database file
epicsEnvSet("GENICAM_DB_FILE", "$(ADGENICAM)/GenICamApp/Db/Basler.template")
< st.cmd.base
Attachment:
ADAravis_IOC.png Attachment:
Basler-features-1.png Attachment:
Basler-features-2.png Attachment:
Basler-features-3.png Attachment:
Basler-features-4.png
# Prefix for all records
epicsEnvSet("PREFIX", "BASLER1:")
# The port name for the detector
epicsEnvSet("PORT", "BASLER")
# Really large queue so we can stream to disk at full camera speed
epicsEnvSet("QSIZE", "2000")
# The maximum number of time series points in the NDPluginStats plugin
epicsEnvSet("NCHANS", "2048")
# The maximum number of frames buffered in the NDPluginCircularBuff plugin
epicsEnvSet("CBUFFS", "500")
# The search path for database files
epicsEnvSet("EPICS_DB_INCLUDE_PATH", "$(ADCORE)/db:$(ADGENICAM)/db:$(ADARAVIS)/db")
# aravisConfig(const char *portName, const char *cameraName, int enableCaching, size_t maxMemory, int priority, int stackSize)
aravisConfig("$(PORT)", "$(CAMERA_NAME)", $(ENABLE_CACHING), 0, 0, 0)
asynSetTraceIOMask($(PORT), 0, 2)
#asynSetTraceMask($(PORT), 0, TRACE_ERROR|TRACEIO_DRIVER|TRACE_FLOW)
#asynSetTraceFile($(PORT), 0, "aravisDebug.txt")
# Main database
dbLoadRecords("$(ADARAVIS)/db/aravisCamera.template", "P=$(PREFIX),R=cam1:,PORT=$(PORT)")
# Load the autogenerated file of GenICam features
dbLoadRecords("$(GENICAM_DB_FILE)", "P=$(PREFIX),R=cam1:,PORT=$(PORT)")
# Create a standard arrays plugin
NDStdArraysConfigure("Image1", 5, 0, "$(PORT)", 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("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),TYPE=Int16,FTVL=SHORT,NELEMENTS=$(NELEMENTS)")
# Load all other plugins using commonPlugins.cmd
< $(ADCORE)/iocBoot/commonPlugins.cmd
set_requestfile_path("$(ADGENICAM)/GenICamApp/Db")
set_requestfile_path("$(ADARAVIS)/aravisApp/Db")
iocInit()
# save things every thirty seconds
create_monitor_set("auto_settings.req", 30,"P=$(PREFIX)")
| ||||||||||||||
| ANJ, 19 Mar 2026 |
·
Home
·
News
·
About
·
Talk
·
Base
·
Modules
·
Extensions
·
· Distributions · Download · Documents · Links · Licensing · |