From this version onwards, it is possible to pass all the data to ndpluginschemas and then to kafka newest versions, intead of passing straight to kafka.
73 lines
2.6 KiB
Batchfile
73 lines
2.6 KiB
Batchfile
require adorca
|
|
require ndpluginschemas
|
|
require adpluginkafka
|
|
|
|
epicsEnvSet("PREFIX", "YMIR-Det1:")
|
|
epicsEnvSet("PORT", "ORCA")
|
|
epicsEnvSet("QSIZE", "21")
|
|
epicsEnvSet("XSIZE", "2048")
|
|
epicsEnvSet("YSIZE", "2048")
|
|
epicsEnvSet("NCHANS", "2048")
|
|
# Number of Elements
|
|
epicsEnvSet("NELEMENTS", "4194304")
|
|
epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", "64000000")
|
|
|
|
#EVR settings
|
|
epicsEnvSet("EVR", "YMIR-TS:Ctrl-EVR-03")
|
|
epicsEnvSet("EVR_EVENT", "B")
|
|
|
|
# iocshLoad("$(adorca_DIR)ADOrca.iocsh")
|
|
|
|
devOrcaConfig("$(PORT)", 0, 0, 0, 0, 10)
|
|
|
|
dbLoadRecords("$(adorca_DIR)db/orca.db","P=$(PREFIX),R=cam1:,EVR=$(EVR),E=$(EVR_EVENT),PORT=$(PORT),ADDR=0,TIMEOUT=1")
|
|
|
|
#asynSetTraceMask("$(PORT)",-1,0x10)
|
|
#asynSetTraceIOMask("$(PORT)",-1,0x2)
|
|
|
|
|
|
# =========================================================================================================
|
|
# Create a PVA arrays plugin
|
|
# NDPvaConfigure (const char *portName, int queueSize, int blockingCallbacks,
|
|
# const char *NDArrayPort, int NDArrayAddr, const char *pvName,
|
|
# size_t maxMemory, int priority, int stackSize)
|
|
NDPvaConfigure("PVA1", $(QSIZE), 0, "$(PORT)", 0, "$(PREFIX)Pva1:Image", 0, 0, 0)
|
|
dbLoadRecords("$(adcore_DIR)/db/NDPva.template", "P=$(PREFIX),R=Pva1:, PORT=PVA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
|
|
#
|
|
|
|
NDSchemasConfigure("Schemas1", "$(QSIZE)", 0, "$(PORT)", 0, 0, 0, "test-orca-lab", 0)
|
|
dbLoadRecords("$(ndpluginschemas_DB)/NDPluginSchemas.template", "P=$(PREFIX), R=schemas:, PORT=Schemas1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=$(PORT)")
|
|
|
|
# Create a standard arrays plugin, set it to get data from orca driver.
|
|
NDStdArraysConfigure("Image1", "$(QSIZE)", 0, "$(PORT)", 0, 0)
|
|
dbLoadRecords("NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),TYPE=Int32,FTVL=LONG,NELEMENTS=$(NELEMENTS)")
|
|
|
|
# Create a kafka plugin, set it to get data from orca driver.
|
|
epicsEnvSet("KFK_TOPIC", "ymir_camera")
|
|
|
|
# Kafka plugin
|
|
#epicsEnvSet("KFK_CONFIG_FILE_PATH", "/etc/kafka/kafka.conf")
|
|
|
|
KafkaPluginConfigure("Kafka1", 3, 1, "Schemas1", 0, -1, "$(KFK_TOPIC)","$(KFK_CONFIG_FILE_PATH)")
|
|
dbLoadRecords("$(adpluginkafka_DB)/adpluginkafka.db", "P=$(PREFIX), R=Kfk1:, PORT=Kafka1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=Schemas1")
|
|
|
|
# startPVAServer
|
|
iocInit()
|
|
|
|
dbpf $(PREFIX)cam1:PoolUsedMem.SCAN 0
|
|
dbpf $(PREFIX)image1:EnableCallbacks 1
|
|
|
|
dbpf $(PREFIX)cam1:AcquireTime .05
|
|
dbpf $(PREFIX)cam1:AcquirePeriod .1
|
|
dbpf $(PREFIX)cam1:NumImages 10
|
|
dbpf $(PREFIX)cam1:ImageMode 1
|
|
|
|
#dbpf Orca:cam1:TriggerPolarity-S # 2-positive, 1-negative
|
|
|
|
epicsThreadSleep(1.0)
|
|
|
|
dbpf $(PREFIX)cam1:PoolUsedMem.SCAN 0
|
|
dbpf $(PREFIX)image1:EnableCallbacks 1
|
|
|
|
epicsThreadSleep(1.0)
|