diff --git a/ADAravis/ADAravis.ibek.support.yaml b/ADAravis/ADAravis.ibek.support.yaml index bf27d77..d0c0ab8 100644 --- a/ADAravis/ADAravis.ibek.support.yaml +++ b/ADAravis/ADAravis.ibek.support.yaml @@ -1,95 +1,61 @@ -# yaml-language-server: $schema=../_global/ibek.defs.schema.json + # yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/1.1.0/ibek.support.schema.json module: ADAravis defs: - - name: ADAravis - description: Defines an ADAravis camera (requires associated ADGenicam instance) - args: - - type: id - name: PORT - description: Port Name for teh camera - - type: str - name: P - description: The PV prefix - - - type: str - name: R - description: The PV suffix - - - type: str - name: ID - description: | - Cam ip address, hostname, MAC address, or ID -, - (e.g. Prosilica-02-2166A-06844) - - - type: int - name: BUFFERS - description: Max NDArray buffers to be created for plugin callbacks - default: 50 - - - type: int - name: MEMORY - description: | - Max memory to allocate, should be maxw*maxh*nbuffer - for driver and all attached plugins or -1 for unlimited - default: -1 - - - type: int - name: TIMEOUT - description: timeout for communication with camera - default: 1 - - - type: str - name: PV_ALIAS - description: | - TODO this need to look into the purpose of this in builder.py - determine its function and see if we can do the equivalent in ibek - default: "" - - pre_init: - - type: function - name: aravisConfig - args: - AsynPortName: "{{ PORT }}" - IpAddressOrName: "{{ ID }}" - MaxMemory: "{{ MEMORY }}" - Priority: 0 - StackSize: 1 - - databases: - - file: aravisCamera.template - args: { P, R, PORT, TIMEOUT, CHANNEL: "0" } - - - name: MantaG235B - description: Defines a Manta G-235B camera instance - args: - - type: object - name: camera - description: reference to ADAravis.ADAravis instance - - databases: - - file: AVT_Manta_G235B.template - args: - P: "{{ camera.P }}" - R: "{{ camera.R }}" - PORT: "{{ camera.PORT }}" - TIMEOUT: "{{ camera.TIMEOUT }}" - ADDR: "0" - - - name: Mako_G234B - description: Defines a Mako G-234B camera instance - args: - - type: object - name: camera - description: reference to ADAravis.ADAravis instance - - databases: - - file: AVT_Mako_G234B.template - args: - P: "{{ camera.P }}" - R: "{{ camera.R }}" - PORT: "{{ camera.PORT }}" - TIMEOUT: "{{ camera.TIMEOUT }}" - ADDR: "0" +- name: iocbuilder.modules.ADAravis.aravisCamera + description: |- + Creates a aravisCamera camera areaDetector driver + + args: + - type: str + name: P + description: PV Prefix + - type: str + name: R + description: PV Suffix + - type: id + name: PORT + description: Port name for the camera + - type: str + name: ID + description: Cam ip address, hostname, MAC address, or ID -, + (e.g. Prosilica-02-2166A-06844) + - type: enum + name: CLASS + description: Camera class for custom commands + - type: enum + name: PV_ALIAS + description: Use alias template to keep some key PV names the same + - type: int + name: BUFFERS + description: Maximum number of NDArray buffers to be created for plugin callbacks + default: 50 + - type: int + name: MEMORY + description: Max memory to allocate, should be maxw*maxh*nbuffer for driver and + all attached plugins + default: -1 + + databases: + - file: $(ADARAVIS)/db/aravisCamera.template + args: # TODO - MISSING ARGS: ADDR, TIMEOUT + P: + R: + ADDR: + TIMEOUT: + PORT: + - file: $(ADGENICAM)/db/AVT_Mako_1_52.template + args: # TODO - MISSING ARGS: ADDR, TIMEOUT + P: + R: + ADDR: + TIMEOUT: + PORT: + + pre_init: + - type: text + value: | + aravisConfig(const char *portName, const char *cameraName, size_t maxMemory, int priority, int stackSize) + aravisConfig("{{PORT}}", "{{ID}}", {{MEMORY}}, 0, 1) diff --git a/ADAravis/ADAravis.sh b/ADAravis/ADAravis.sh deleted file mode 100644 index 47c8c41..0000000 --- a/ADAravis/ADAravis.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash - -########################################################################## -##### install script for ADAravis support module########################## -########################################################################## - -# ARGUMENTS: -# $1 VERSION to install (must match repo tag) -VERSION=${1} -NAME=ADAravis - -# log output and abort on failure -set -xe - -# install required system dependencies -ibek support apt-install --only=dev \ - libboost-all-dev \ - libxext-dev \ - libglib2.0-dev \ - libusb-1.0 \ - libxml2-dev \ - libx11-dev \ - meson \ - intltool \ - pkg-config \ - xz-utils - -# declare packages for installation in the Dockerfile's runtime stage -ibek support apt-install --only=run libglib2.0-bin libusb-1.0 libxml2 - -# build aravis library -( - cd /usr/local && - git clone -b ARAVIS_0_8_1 --depth 1 https://github.com/AravisProject/aravis && - cd aravis && - meson build && - cd build && - ninja && - ninja install && - rm -fr /usr/local/aravis - echo /usr/local/lib64 > /etc/ld.so.conf.d/usr.conf && - ldconfig - # is this necessary? - pip install telnetlib3 -) - -# get the source and fix up the configure/RELEASE files -ibek support git-clone ${NAME} ${VERSION} -ibek support register ${NAME} - -# declare the libs and DBDs that are required in ioc/iocApp/src/Makefile -ibek support add-libs ADAravis -ibek support add-dbds ADAravisSupport.dbd - -# add any required changes to CONFIG_SITE -CONFIG=' -AREA_DETECTOR=$(SUPPORT) -CROSS_COMPILER_TARGET_ARCHS = -GLIBPREFIX=/usr -USR_INCLUDES += -I$(GLIBPREFIX)/include/glib-2.0 -USR_INCLUDES += -I$(GLIBPREFIX)/lib/x86_64-linux-gnu/glib-2.0/include/ -glib-2.0_DIR = $(GLIBPREFIX)/lib/x86_64-linux-gnu -ARAVIS_INCLUDE = /usr/local/include/aravis-0.8/ -' - -ibek support add-to-config-site ${NAME} "${CONFIG}" - -# TODO may need -# ioc_SYS_LIBS += aravis-0.8 -# in the Makefile - -# compile the support module -ibek support compile ${NAME} - -# prepare *.bob, *.pvi, *.ibek.support.yaml for access outside the container. -ibek support generate-links ${NAME} - diff --git a/ADAravis/install.sh b/ADAravis/install.sh new file mode 100644 index 0000000..1bbada8 --- /dev/null +++ b/ADAravis/install.sh @@ -0,0 +1,27 @@ +#!/bin/bash +########################################################################## +###### install script for ADAravis Module ################################ +########################################################################## + +# ARGUMENTS: +# $1 VERSION to install (must match repo tag) +VERSION=${1} +NAME=ADAravis + +# log output and abort on failure +set -xe + +# get the source and fix up the configure/RELEASE files +ibek support git-clone ${NAME} ${VERSION} --org http://github.com/areaDetector/ +ibek support register ${NAME} + +# declare the libs and DBDs that are required in ioc/iocApp/src/Makefile +ibek support add-libs ADAravis +ibek support add-dbds ADAravisSupport.dbd + +# compile the support module +ibek support compile ${NAME} +# prepare *.bob, *.pvi, *.ibek.support.yaml for access outside the container. +ibek support generate-links ${NAME} + + diff --git a/ADCore/ADCore.ibek.support.yaml b/ADCore/ADCore.ibek.support.yaml index dec37c2..8c4466e 100644 --- a/ADCore/ADCore.ibek.support.yaml +++ b/ADCore/ADCore.ibek.support.yaml @@ -1,1935 +1,2304 @@ -# yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/1.1.0/ibek.support.schema.json + # yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/1.1.0/ibek.support.schema.json module: ADCore defs: - - name: NDScatter + +- name: ADCore.NDFileNexus + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDFileNexus plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR description: |- - This plugin is used to distribute processing of NDArrays to multiple downstream plugins + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin can compress NDArrays to Nexus and write them to file + databases: + - file: $(ADCORE)/db/NDFileNexus.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDTimeSeries plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: NAME - description: Label for signal - default: 0 - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDScatter.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDScatterConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDScatterConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDProcess - description: |- - This plugin does image processing like flat field correction, background - subtraction, and recursive filtering + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDFileNexusConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDFileNexusConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) + +- name: ADCore.NDFFT + args: + - type: str + name: P + description: |- + Device prefix + - type: str + name: R + description: |- + Device suffix + - type: id + name: PORT + description: |- + Port name for the NDTimeSeries plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: NCHANS + description: |- + Length of time series waveform + - type: str + name: TIMEOUT + description: |- + Asyn port timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: str + name: TIME_LINK + description: |- + Time in seconds between points (Can point to a record - use CP) + default: '0.1' + - type: int + name: NAME + description: |- + Label for signal + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: PRIORITY + description: |- + Thread priority if ASYN_CANBLOCK is set + - type: int + name: STACKSIZE + description: |- + Stack size if ASYN_CANBLOCK is set + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + description: |- + This plugin is used to calculate the FFT of a time series + databases: + - file: $(ADCORE)/db/NDFFT.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDProcess plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDProcess.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDProcessConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDProcessConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDAttributes - description: |- - Add an attribute to the NDAttributes file for a particular ADDriver or - NDPlugin, and associate it with the NDAttributes file + NDARRAY_PORT: + NAME: + TIME_LINK: + NDARRAY_ADDR: + NCHANS: + ENABLED: + PORT: + P: + R: + TIMEOUT: + SCANRATE: + ADDR: + + pre_init: + - value: | + # NDFFTConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDFFTConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}, {{MAX_THREADS}}) + +- name: ADCore.NDAttrPlot + args: + - type: str + name: P + description: |- + Device prefix + - type: str + name: R + description: |- + Device suffix + - type: id + name: PORT + description: |- + Asyn port name + - type: object + name: NDARRAY_PORT + description: |- + Asyn port of the callback source + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Asyn address of the callback source + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 10000 + - type: int + name: N_CACHE + description: |- + Number of NDArrays to store in cache + default: 10000 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: str + name: ATTR_IND + description: |- + Attribute index + - type: str + name: AXIS + description: |- + Axis name + - type: str + name: DATA_IND + description: |- + Data index + - type: str + name: DATA_ADDR + description: |- + Asyn address for this data array + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(ADCORE)/db/NDAttrPlotAttr.template args: - - type: object - name: port - description: ADDriver or NDPlugin to attach xml file to - - type: str - name: source - description: The EPICS PV (if type=EPICS_PV) or attribute name (if type=PARAM) - - type: id - name: name - description: Object name. You do not need to specify this - - type: str - name: attrname - description: Name of the attribute. If you leave this blank it defaults to - - type: str - name: type - description: Where the data should be picked up from - default: EPICS_PV - - type: str - name: dbrtype - description: DBR type (only used if type=EPICS_PV) - default: DBR_NATIVE - - type: str - name: datatype - description: Data type (only used if type=PARAM) - default: INT - - type: str - name: description - description: Description of the attribute - - type: int - name: addr - description: Asyn address of the parameter (only used if type=PARAM) - default: 0 - post_init: - - type: text - value: | - dbpf %s%sNDAttributesFile, %s/%s.xml - - - name: NDROI - description: |- - This plugin selects a region of interest and optionally scales it to - fit in a particular data type - + P: + R: + PORT: + ATTR_IND: + - file: $(ADCORE)/db/NDAttrPlot.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDROI plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDROI.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDROIConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDROIConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) - - - name: NDCodec - description: |- - This plugin can compress or decompress NDArrays - + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + - file: $(ADCORE)/db/NDAttrPlotData.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDCodec plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Asyn timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDCodec.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDCodecConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDCodecConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) - - - name: NDStats - description: |- - This plugin calculates statistics like X and Y profile, centroid, and plots a histogram of binned pixels + DATA_ADDR: + P: + DATA_IND: + R: + N_CACHE: + PORT: + AXIS: + + pre_init: + - value: | + NDAttrPlotConfig("{{PORT}}", {{N_ATTRS}}, {{N_CACHE}}, + # TODO - MISSING ARGS: N_ATTRS + +- name: ADCore.NDOverlay + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDOverlay plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: int + name: TIMEOUT + description: |- + Timeout + default: 1 + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + - type: str + name: O + description: |- + NDOverlay Device Suffix + - type: str + name: NAME + description: |- + Name for the overlay + - type: str + name: SHAPE + description: |- + Shape of the overlay + - type: str + name: XPOS + description: |- + Link for the XPos of the overlay + - type: str + name: YPOS + description: |- + Link for the YPos of the overlay + - type: str + name: XCENT + description: |- + Link for the XCent of the overlay + - type: str + name: YCENT + description: |- + Link for the YCent of the overlay + - type: str + name: XSIZE + description: |- + Link for the XSize of the overlay + - type: str + name: YSIZE + description: |- + Link for the YSize of the overlay + - type: str + name: XWIDTH + description: |- + Link for the XWidth of the overlay + - type: str + name: YWIDTH + description: |- + Link for the YWdith of the overlay + description: |- + This plugin writes overlays on the array, like cursors and boxes + databases: + - file: $(ADCORE)/db/NDOverlayN.template args: - - type: id - name: PORT - description: Port name for the NDStats plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: int - name: HIST_SIZE - description: Maximum size of Pixel binning histogram (e.g. 256 for Int8) - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: int - name: XSIZE - description: XSIZE, Maximum size of X histograms (e.g. 1024) - - type: int - name: YSIZE - description: Maximum size of Y histograms (e.g. 768) - - type: int - name: ENABLED - description: Plugin Enabled at startup? - default: 0 - - type: int - name: NCHANS - description: - Maximum length of time series (initialises waveform NELM, fixed on - IOC boot) - default: 2048 - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: int - name: TIMEOUT - description: Timeout - default: 1 - - type: int - name: ADDR - description: Asyn Port address - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDStats.template - args: # TODO - MISSING ARGS: SCANRATE, TS_PORT - NDARRAY_PORT: - ADDR: - SCANRATE: - NDARRAY_ADDR: - YSIZE: - ENABLED: - HIST_SIZE: - P: - R: - NCHANS: - TIMEOUT: - XSIZE: - TS_PORT: - PORT: - - pre_init: - - type: text - when: first - value: | - # ADCore path for manual NDTimeSeries.template to find base plugin template - epicsEnvSet "EPICS_DB_INCLUDE_PATH", "$(ADCORE)/db"\n - - type: text - value: | - # NDStatsConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDStatsConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) - # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals) - NDTimeSeriesConfigure("{{PORT}}_TS", {{QUEUE}}, {{BLOCK}}, "{{PORT}}", 1, 23) - # Load time series records - dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template", "P={{P}},R={{R}}, PORT={{PORT}} ,ADDR={{ADDR}},TIMEOUT={{TIMEOUT}},NDARRAY_PORT={{NDARRAY_PORT}},NDARRAY_ADDR={{NDARRAY_ADDR}},NCHANS={{NCHANS}},ENABLED={{ENABLED}}") - - - name: NDOverlay - description: |- - This plugin writes overlays on the array, like cursors and boxes + XPOS: + NAME: + YWIDTH: + YSIZE: + YPOS: + O: + PORT: + P: + SHAPE: + R: + TIMEOUT: + XCENT: + XWIDTH: + XSIZE: + YCENT: + ADDR: + - file: $(ADCORE)/db/NDOverlay.template + args: + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDOverlayConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, NOverlays, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDOverlayConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, {{NOverlays}}, 0, 0, 0, 0, {{MAX_THREADS}}) + # TODO - MISSING ARGS: NOverlays + +- name: ADCore.NDColorConvert + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDColorConvert plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + description: |- + This plugin converts arrays from one colour type to another, e.g. Bayer -> RGB1 + databases: + - file: $(ADCORE)/db/NDColorConvert.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDOverlay plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: int - name: TIMEOUT - description: Timeout - default: 1 - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDOverlayN.template - args: # TODO - MISSING ARGS: XPOS, NAME, YWIDTH, YSIZE, YPOS, O, SHAPE, XSIZE, XCENT, YCENT, XWIDTH - XPOS: - NAME: - YWIDTH: - YSIZE: - YPOS: - O: - P: - SHAPE: - R: - XWIDTH: - TIMEOUT: - XCENT: - YCENT: - XSIZE: - PORT: - ADDR: - - file: $(ADCORE)/db/NDOverlay.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDOverlayConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, NOverlays, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDOverlayConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, {{NOverlays}}, 0, 0, 0, 0, {{MAX_THREADS}}) - # TODO - MISSING ARGS: NOverlays - - - name: NDFileNetCDF - description: |- - This plugin can compress NDArrays to NetCDF and write them to file + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDColorConvertConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDColorConvertConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) + +- name: ADCore.NDFileHDF5 + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDFileHDF5 plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Asyn Port timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: str + name: XMLSIZE + description: |- + Number of elements of the XML layout waveform record + default: '2048' + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin can compress NDArrays to HDF5 and write them to file + databases: + - file: $(ADCORE)/db/NDFileHDF5.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: object - name: NDARRAY_PORT - description: Input array port - - type: id - name: PORT - description: Port name for the NDFileNetCDF plugin - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDFileNetCDF.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDFileNetCDFConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDFileNetCDFConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDFileHDF5 - description: |- - This plugin can compress NDArrays to HDF5 and write them to file + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + XMLSIZE: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDFileHDF5Configure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDFileHDF5Configure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) + +- name: ADCore.NDStdArrays + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDStdArrays plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TYPE + description: |- + Asyn Type e.g. Int32 + - type: enum + name: FTVL + description: |- + Field Type of Value + - type: str + name: NELEMENTS + description: |- + Number of elements + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + description: |- + This plugin provides a waveform record that can display the NDArrays + produced by its NDARRAY_PORT + + databases: + - file: $(ADCORE)/db/NDStdArrays.template + args: + NDARRAY_PORT: + FTVL: + ADDR: + SCANRATE: + NELEMENTS: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + TYPE: + PORT: + + pre_init: + - value: | + # NDStdArraysConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDStdArraysConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) + +- name: ADCore._NDCircularBuff + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: str + name: PORT + description: |- + Asyn Port name + - type: str + name: NDARRAY_PORT + description: |- + Input Array Port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: str + name: NDARRAY_ADDR + description: |- + Input Array Address + default: '0' + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: str + name: PRECOUNT + description: |- + Pre-trigger frame count + default: '100' + - type: str + name: POSTCOUNT + description: |- + Post-trigger frame count + default: '100' + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(ADCORE)/db/NDCircularBuff.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDFileHDF5 plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Asyn Port timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: str - name: XMLSIZE - description: Number of elements of the XML layout waveform record - default: "2048" - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDFileHDF5.template - args: - NDARRAY_PORT: - ADDR: - SCANRATE: - NDARRAY_ADDR: - ENABLED: - XMLSIZE: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDFileHDF5Configure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDFileHDF5Configure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDFileNexus - description: |- - This plugin can compress NDArrays to Nexus and write them to file + NDARRAY_PORT: + ADDR: + SCANRATE: + PRECOUNT: + NDARRAY_ADDR: + ENABLED: + P: + POSTCOUNT: + R: + TIMEOUT: + PORT: + +- name: ADCore.NDFileMagick + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDFileMagick plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin can compress NDArrays to a range of formats supported by + graphics magick and write them to file + databases: + - file: $(ADCORE)/db/NDFileMagick.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDFileNexus plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDFileNexus.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDFileNexusConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDFileNexusConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDColorConvert - description: |- - This plugin converts arrays from one colour type to another, e.g. Bayer -> RGB1 + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDFileMagickConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDFileMagickConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) + +- name: ADCore.NDCircularBuff + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the FFT_calc plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: int + name: ENABLED + description: |- + Plugin Enabled at startup? + default: 1 + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: str + name: PRECOUNT + description: |- + Pre-trigger frame count + default: '100' + - type: str + name: POSTCOUNT + description: |- + Post-trigger frame count + default: '100' + - type: int + name: QUEUE + description: |- + Input array queue size + default: 50 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_BUFFERS + description: |- + Max buffer size in number of frames + default: 128 + description: |- + This plugin provides a pre and post external trigger frame capture buffer + databases: + - file: $(ADCORE)/db/NDCircularBuff.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDColorConvert plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDColorConvert.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDColorConvertConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDColorConvertConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) - - - name: NDFileMagick - description: |- - This plugin can compress NDArrays to a range of formats supported by - graphics magick and write them to file + NDARRAY_PORT: + ADDR: + SCANRATE: + PRECOUNT: + NDARRAY_ADDR: + ENABLED: + P: + POSTCOUNT: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDCircularBuffConfigure(portName, queueSize, blockingCallbacks, + NDCircularBuffConfigure( + +- name: ADCore.NDPosPlugin + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDPosPlugin plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Asyn timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: PRIORITY + description: |- + Max buffers to allocate + - type: int + name: STACKSIZE + description: |- + Max buffers to allocate + description: |- + This plugin attaches position information to NDArrays + databases: + - file: $(ADCORE)/db/NDPosPlugin.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDFileMagick plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDFileMagick.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDFileMagickConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDFileMagickConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDFFT - description: |- - This plugin is used to calculate the FFT of a time series + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDPosPluginConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize) + NDPosPluginConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}) + +- name: ADCore.NDCodec + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDCodec plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Asyn timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + description: |- + This plugin can compress or decompress NDArrays + databases: + - file: $(ADCORE)/db/NDCodec.template args: - - type: str - name: P - description: Device prefix - - type: str - name: R - description: Device suffix - - type: id - name: PORT - description: Port name for the NDTimeSeries plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: NCHANS - description: Length of time series waveform - - type: str - name: TIMEOUT - description: Asyn port timeout - default: "1" - - type: str - name: ADDR - description: Asyn port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: str - name: TIME_LINK - description: Time in seconds between points (Can point to a record - use CP) - default: "0.1" - - type: int - name: NAME - description: Label for signal - default: 0 - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: PRIORITY - description: "Thread priority if ASYN_CANBLOCK is set " - default: 0 - - type: int - name: STACKSIZE - description: Stack size if ASYN_CANBLOCK is set - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDFFT.template - args: - NDARRAY_PORT: - NAME: - SCANRATE: - NDARRAY_ADDR: - TIME_LINK: - ENABLED: - P: - R: - NCHANS: - TIMEOUT: - PORT: - ADDR: - - pre_init: - - type: text - value: | - # NDFFTConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDFFTConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}, {{MAX_THREADS}}) - - - name: NDGather - description: |- - This plugin is used to gather NDArrays from multiple upstream plugins and merge them into a single stream + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDCodecConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDCodecConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) + +- name: ADCore.NDGather + args: + - type: str + name: NDARRAY_PORT + description: |- + Input Array Port + - type: id + name: PORT + description: |- + Port name for the NDGather plugin + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: str + name: NDARRAY_ADDR + description: |- + Input Array Address + default: '0' + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_PORTS + description: |- + Maximum number of ports that this plugin can connect to for callbacks + default: 5 + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + description: |- + This plugin is used to gather NDArrays from multiple upstream plugins and merge them into a single stream + databases: + - file: $(ADCORE)/db/NDGather.template args: - - type: str - name: NDARRAY_PORT - description: Input Array Port - - type: id - name: PORT - description: Port name for the NDGather plugin - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: str - name: NDARRAY_ADDR - description: Input Array Address - default: "0" - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_PORTS - description: Maximum number of ports that this plugin can connect to for callbacks - default: 5 - - databases: - - file: $(ADCORE)/db/NDGather.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - MAX_PORTS: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDGatherConfigure(portName, queueSize, blockingCallbacks, maxPorts) - NDGatherConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{MAX_PORTS}}") - - - name: NDTimeSeries - description: |- - This plugin creates time series arrays from callback data + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + MAX_PORTS: + PORT: + + pre_init: + - value: | + # NDGatherConfigure(portName, queueSize, blockingCallbacks, maxPorts) + NDGatherConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{MAX_PORTS}}") + +- name: ADCore.NDROI + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDROI plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + description: |- + This plugin selects a region of interest and optionally scales it to + fit in a particular data type + + databases: + - file: $(ADCORE)/db/NDROI.template + args: + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDROIConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDROIConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) + +- name: ADCore.NDAttribute + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDAttribute plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: int + name: TIMEOUT + description: |- + Timeout + default: 1 + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_ATTRIBUTES + description: |- + Maximum number of attributes in this plugin + default: 8 + - type: int + name: NCHANS + description: |- + Number of points in the arrays + default: 4096 + - type: str + name: TS_PORT + description: |- + Asyn Port of Time Series plugin + default: $(PORT)_TS + description: |- + This plugin displays NDArray attributes + databases: + - file: $(ADCORE)/db/NDAttributeN.template + args: + ADDR: + NCHANS: + P: + R: + TIMEOUT: + TS_PORT: + PORT: + - file: $(ADCORE)/db/NDAttribute.template args: - - type: str - name: P - description: Device prefix - - type: str - name: R - description: Device suffix - - type: id - name: PORT - description: Port name for the NDTimeSeries plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: NCHANS - description: Length of time series waveform - - type: int - name: TIMEOUT - description: Timeout - default: 1 - - type: str - name: ADDR - description: Asyn port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: str - name: TIME_LINK - description: Time between points (Can point to a record - use CP) - default: "0.1" - - type: int - name: NSIGNALS - description: Maximum number of time series signals - default: 1 - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: PRIORITY - description: "Thread priority if ASYN_CANBLOCK is set " - default: 0 - - type: int - name: STACKSIZE - description: Stack size if ASYN_CANBLOCK is set - default: 0 - - databases: - - file: $(ADCORE)/db/NDTimeSeries.template - args: - NDARRAY_PORT: - ADDR: - SCANRATE: - NDARRAY_ADDR: - TIME_LINK: - ENABLED: - P: - R: - NCHANS: - TIMEOUT: - PORT: - - file: $(ADCORE)/db/NDTimeSeriesN.template - args: # TODO - MISSING ARGS: NAME - ADDR: - NCHANS: - P: - R: - TIMEOUT: - PORT: - NAME: - - pre_init: - - type: text - value: | - # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals, maxBuffers, maxMemory, priority, stackSize) - NDTimeSeriesConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, {{NSIGNALS}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}) - - - name: NDAttrPlot - description: |- - TODO:ADD DESCRIPTION + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - when: first + value: | + # ADCore path for manual NDTimeSeries.template to find base plugin template + epicsEnvSet "EPICS_DB_INCLUDE_PATH", "$(ADCORE)/db"\n + - value: | + # NDAttrConfigure(portName, queueSize, blockingCallbacks, + NDAttrConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, + # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals) + NDTimeSeriesConfigure("{{PORT}}_TS", {{QUEUE}}, {{BLOCK}}, "{{PORT}}", 1, {{MAX_ATTRIBUTES}}) + # Load time series records + dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template","P={{P}},R={{R_TS}},PORT={{PORT}}_TS,ADDR=0,TIMEOUT={{TIMEOUT}},NDARRAY_PORT={{PORT}},NDARRAY_ADDR=1,NCHANS={{MAX_ATTRIBUTES}},ENABLED=1") + # TODO - MISSING ARGS: R_TS + +- name: ADCore.NDStats + args: + - type: id + name: PORT + description: |- + Port name for the NDStats plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: int + name: HIST_SIZE + description: |- + Maximum size of Pixel binning histogram (e.g. 256 for Int8) + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: int + name: XSIZE + description: |- + XSIZE, Maximum size of X histograms (e.g. 1024) + - type: int + name: YSIZE + description: |- + Maximum size of Y histograms (e.g. 768) + - type: int + name: ENABLED + description: |- + Plugin Enabled at startup? + - type: int + name: NCHANS + description: |- + Maximum length of time series (initialises waveform NELM, fixed on IOC boot) + default: 2048 + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: int + name: TIMEOUT + description: |- + Timeout + default: 1 + - type: int + name: ADDR + description: |- + Asyn Port address + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: str + name: TS_PORT + description: |- + TS port + default: $(PORT)_TS + description: |- + This plugin calculates statistics like X and Y profile, centroid, and plots a histogram of binned pixels + databases: + - file: $(ADCORE)/db/NDStats.template args: - - type: str - name: P - description: Device prefix - - type: str - name: R - description: Device suffix - - type: id - name: PORT - description: Asyn port name - - type: object - name: NDARRAY_PORT - description: Asyn port of the callback source - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Asyn address of the callback source - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 10000 - - type: int - name: N_CACHE - description: Number of NDArrays to store in cache - default: 10000 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDAttrPlotAttr.template - args: # TODO - MISSING ARGS: ATTR_IND - P: - R: - PORT: - ATTR_IND: - - file: $(ADCORE)/db/NDAttrPlot.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - file: $(ADCORE)/db/NDAttrPlotData.template - args: # TODO - MISSING ARGS: DATA_IND, DATA_ADDR, AXIS - DATA_ADDR: - P: - DATA_IND: - R: - N_CACHE: - PORT: - AXIS: - - pre_init: - - type: text - value: | - NDAttrPlotConfig("{{PORT}}", {{N_ATTRS}}, {{N_CACHE}}, - # TODO - MISSING ARGS: N_ATTRS - - - name: NDFileTIFF - description: |- - This plugin can compress NDArrays to TIFF and write them to file + NDARRAY_PORT: + XSIZE: + NCHANS: + NDARRAY_ADDR: + YSIZE: + ENABLED: + HIST_SIZE: + PORT: + P: + R: + TIMEOUT: + TS_PORT: + SCANRATE: + ADDR: + + pre_init: + - when: first + value: | + # ADCore path for manual NDTimeSeries.template to find base plugin template + epicsEnvSet "EPICS_DB_INCLUDE_PATH", "$(ADCORE)/db"\n + - value: | + # NDStatsConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDStatsConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) + # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals) + NDTimeSeriesConfigure("{{PORT}}_TS", {{QUEUE}}, {{BLOCK}}, "{{PORT}}", 1, 23) + # Load time series records + dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template", "P={{P}},R={{R}}, PORT={{PORT}} ,ADDR={{ADDR}},TIMEOUT={{TIMEOUT}},NDARRAY_PORT={{NDARRAY_PORT}},NDARRAY_ADDR={{NDARRAY_ADDR}},NCHANS={{NCHANS}},ENABLED={{ENABLED}}") + +- name: ADCore.NDTimeSeries + args: + - type: str + name: P + description: |- + Device prefix + - type: str + name: R + description: |- + Device suffix + - type: id + name: PORT + description: |- + Port name for the NDTimeSeries plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: NCHANS + description: |- + Length of time series waveform + - type: int + name: TIMEOUT + description: |- + Timeout + default: 1 + - type: str + name: ADDR + description: |- + Asyn port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: str + name: TIME_LINK + description: |- + Time between points (Can point to a record - use CP) + default: '0.1' + - type: int + name: NSIGNALS + description: |- + Maximum number of time series signals + default: 1 + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: PRIORITY + description: |- + Thread priority if ASYN_CANBLOCK is set + - type: int + name: STACKSIZE + description: |- + Stack size if ASYN_CANBLOCK is set + - type: str + name: NAME + description: |- + Name of the signal + description: |- + This plugin creates time series arrays from callback data + databases: + - file: $(ADCORE)/db/NDTimeSeries.template + args: + NDARRAY_PORT: + ADDR: + TIME_LINK: + NDARRAY_ADDR: + NCHANS: + ENABLED: + PORT: + P: + R: + TIMEOUT: + SCANRATE: + - file: $(ADCORE)/db/NDTimeSeriesN.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: object - name: NDARRAY_PORT - description: Input array port - - type: id - name: PORT - description: Port name for the NDFileTIFF plugin - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDFileTIFF.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDFileTIFFConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDFileTIFFConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDFileJPEG - description: |- - This plugin can compress NDArrays to JPEG and write them to file + ADDR: + NCHANS: + P: + R: + TIMEOUT: + PORT: + NAME: + + pre_init: + - value: | + # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals, maxBuffers, maxMemory, priority, stackSize) + NDTimeSeriesConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, {{NSIGNALS}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}) + +- name: ADCore.NDAttributes + args: + - type: object + name: port + description: |- + ADDriver or NDPlugin to attach xml file to + - type: str + name: source + description: |- + The EPICS PV (if type=EPICS_PV) or attribute name (if type=PARAM) + - type: id + name: name + description: |- + Object name. You do not need to specify this + - type: str + name: attrname + description: |- + Name of the attribute. If you leave this blank it defaults to + - type: enum + name: type + description: |- + Where the data should be picked up from + default: EPICS_PV + - type: enum + name: dbrtype + description: |- + DBR type (only used if type=EPICS_PV) + default: DBR_NATIVE + - type: enum + name: datatype + description: |- + Data type (only used if type=PARAM) + default: INT + - type: str + name: description + description: |- + Description of the attribute + - type: int + name: addr + description: |- + Asyn address of the parameter (only used if type=PARAM) + description: |- + Add an attribute to the NDAttributes file for a particular ADDriver or + NDPlugin, and associate it with the NDAttributes file + + post_init: + - value: | + dbpf %s%sNDAttributesFile, %s/%s.xml + +- name: ADCore.NDProcess + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDProcess plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin does image processing like flat field correction, background + subtraction, and recursive filtering + databases: + - file: $(ADCORE)/db/NDProcess.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDFileJPEG plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDFileJPEG.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDFileJPEGConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) - NDFileJPEGConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) - - - name: NDCircularBuff - description: |- - This plugin provides a pre and post external trigger frame capture buffer + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDProcessConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDProcessConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) + +- name: ADCore.NDFileTIFF + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: id + name: PORT + description: |- + Port name for the NDFileTIFF plugin + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin can compress NDArrays to TIFF and write them to file + databases: + - file: $(ADCORE)/db/NDFileTIFF.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the FFT_calc plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: int - name: ENABLED - description: Plugin Enabled at startup? - default: 1 - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: str - name: PRECOUNT - description: Pre-trigger frame count - default: "100" - - type: str - name: POSTCOUNT - description: Post-trigger frame count - default: "100" - - type: int - name: QUEUE - description: Input array queue size - default: 50 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_BUFFERS - description: Max buffer size in number of frames - default: 128 - - databases: - - file: $(ADCORE)/db/NDCircularBuff.template - args: - NDARRAY_PORT: - ADDR: - SCANRATE: - PRECOUNT: - NDARRAY_ADDR: - ENABLED: - P: - POSTCOUNT: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDCircularBuffConfigure(portName, queueSize, blockingCallbacks, - NDCircularBuffConfigure( - - - name: NDAttribute - description: |- - This plugin displays NDArray attributes + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDFileTIFFConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDFileTIFFConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) + +- name: ADCore.NDGather8 + args: + - type: str + name: NDARRAY_PORT + description: |- + Input Array Port + - type: id + name: PORT + description: |- + Port name for the NDGather plugin + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: str + name: NDARRAY_ADDR + description: |- + Input Array Address + default: '0' + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: str + name: N + description: |- + Port number (1 - maxPorts) + - type: str + name: MAX_PORTS + description: |- + Maximum number ports + description: |- + This plugin is used to gather NDArrays from multiple upstream plugins and merge them into a single stream + databases: + - file: $(ADCORE)/db/NDGatherN.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDAttribute plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: int - name: TIMEOUT - description: Timeout - default: 1 - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_ATTRIBUTES - description: Maximum number of attributes in this plugin - default: 8 - - type: int - name: NCHANS - description: Number of points in the arrays - default: 4096 - - databases: - - file: $(ADCORE)/db/NDAttributeN.template - args: # TODO - MISSING ARGS: TS_PORT - ADDR: - NCHANS: - P: - R: - TIMEOUT: - TS_PORT: - PORT: - - file: $(ADCORE)/db/NDAttribute.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - when: first - value: | - # ADCore path for manual NDTimeSeries.template to find base plugin template - epicsEnvSet "EPICS_DB_INCLUDE_PATH", "$(ADCORE)/db"\n - - type: text - value: | - # NDAttrConfigure(portName, queueSize, blockingCallbacks, - NDAttrConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, - # NDTimeSeriesConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxSignals) - NDTimeSeriesConfigure("{{PORT}}_TS", {{QUEUE}}, {{BLOCK}}, "{{PORT}}", 1, {{MAX_ATTRIBUTES}}) - # Load time series records - dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template","P={{P}},R={{R_TS}},PORT={{PORT}}_TS,ADDR=0,TIMEOUT={{TIMEOUT}},NDARRAY_PORT={{PORT}},NDARRAY_ADDR=1,NCHANS={{MAX_ATTRIBUTES}},ENABLED=1") - # TODO - MISSING ARGS: R_TS - - - name: NDPosPlugin - description: |- - This plugin attaches position information to NDArrays + NDARRAY_PORT: + ADDR: + NDARRAY_ADDR: + N: + P: + R: + TIMEOUT: + PORT: + - file: $(ADCORE)/db/NDGather.template + args: + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + MAX_PORTS: + PORT: + +- name: ADCore.NDROIStat + args: + - type: str + name: P + description: |- + First part of base PV name + - type: str + name: R + description: |- + Second part of base PV name + - type: id + name: PORT + description: |- + Port name for the NDPluginROIStat plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: int + name: TIMEOUT + description: |- + Timeout + default: 1 + - type: str + name: ADDR + description: |- + asyn address on port + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_ROIS + description: |- + Maximum number of ROIs in this plugin + default: 8 + - type: int + name: NCHANS + description: |- + Number of points in the arrays + default: 4096 + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + description: |- + This plugin calculates statistics of ROIs + databases: + - file: $(ADCORE)/db/NDROIStat.template + args: + NDARRAY_PORT: + ADDR: + NCHANS: + NDARRAY_ADDR: + ENABLED: + PORT: + P: + R: + TIMEOUT: + SCANRATE: + - file: $(ADCORE)/db/NDROIStatN.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDPosPlugin plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Asyn timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: PRIORITY - description: Max buffers to allocate - default: 0 - - type: int - name: STACKSIZE - description: Max buffers to allocate - default: 0 - - databases: - - file: $(ADCORE)/db/NDPosPlugin.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDPosPluginConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize) - NDPosPluginConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}) - - - name: NDStdArrays - description: |- - This plugin provides a waveform record that can display the NDArrays - produced by its NDARRAY_PORT + ADDR: + NCHANS: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDROIStatConfigure(portName, queueSize, blockingCallbacks, + NDROIStatConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, + +- name: ADCore.NDFileNetCDF + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: id + name: PORT + description: |- + Port name for the NDFileNetCDF plugin + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin can compress NDArrays to NetCDF and write them to file + databases: + - file: $(ADCORE)/db/NDFileNetCDF.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDStdArrays plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TYPE - description: Asyn Type e.g. Int32 - - type: str - name: FTVL - description: Field Type of Value - - type: str - name: NELEMENTS - description: Number of elements - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDStdArrays.template - args: - NDARRAY_PORT: - FTVL: - ADDR: - SCANRATE: - NELEMENTS: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - TYPE: - PORT: - - pre_init: - - type: text - value: | - # NDStdArraysConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDStdArraysConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) - - - name: NDPvaPlugin - description: |- - This plugin makes NDArrays available through PVAccess + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDFileNetCDFConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDFileNetCDFConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) + +- name: ADCore.NDPvaPlugin + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDPosPlugin plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: PVNAME + description: |- + Name of the PV to post NDArray out on + - type: str + name: TIMEOUT + description: |- + Asyn timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: PRIORITY + description: |- + Max buffers to allocate + - type: int + name: STACKSIZE + description: |- + Max buffers to allocate + description: |- + This plugin makes NDArrays available through PVAccess + databases: + - file: $(ADCORE)/db/NDPva.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDPosPlugin plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: PVNAME - description: Name of the PV to post NDArray out on - - type: str - name: TIMEOUT - description: Asyn timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: PRIORITY - description: Max buffers to allocate - default: 0 - - type: int - name: STACKSIZE - description: Max buffers to allocate - default: 0 - - databases: - - file: $(ADCORE)/db/NDPva.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDPvaConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, pvName, maxBuffers, maxMemory, priority, stackSize) - NDPvaConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, {{PVNAME}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}) - startPVAServer - - - name: NDTransform - description: |- - This plugin selects a region of interest and optionally scales it to fit in a particular data type + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDPvaConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, pvName, maxBuffers, maxMemory, priority, stackSize) + NDPvaConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, {{PVNAME}}, 0, 0, {{PRIORITY}}, {{STACKSIZE}}) + startPVAServer + +- name: ADCore.NDTransform + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDTransform plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + - type: int + name: MAX_THREADS + description: |- + Maximum number threads + default: 1 + description: |- + This plugin selects a region of interest and optionally scales it to fit in a particular data type + databases: + - file: $(ADCORE)/db/NDTransform.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: id - name: PORT - description: Port name for the NDTransform plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDTransform.template - args: - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDTransformConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) - NDTransformConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) - - - name: NDGather8 - description: |- - This plugin is used to gather NDArrays from multiple upstream plugins and merge them into a single stream + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDTransformConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxBuffers, maxMemory, priority, stackSize, maxThreads) + NDTransformConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}, 0, 0, 0, 0, {{MAX_THREADS}}) + +- name: ADCore.NDFileJPEG + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDFileJPEG plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin can compress NDArrays to JPEG and write them to file + databases: + - file: $(ADCORE)/db/NDFileJPEG.template args: - - type: str - name: NDARRAY_PORT - description: Input Array Port - - type: id - name: PORT - description: Port name for the NDGather plugin - - type: str - name: P - description: Device Prefix - - type: str - name: R - description: Device Suffix - - type: str - name: TIMEOUT - description: Timeout - default: "1" - - type: str - name: ADDR - description: Asyn Port address - default: "0" - - type: str - name: NDARRAY_ADDR - description: Input Array Address - default: "0" - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - databases: - - file: $(ADCORE)/db/NDGatherN.template - args: # TODO - MISSING ARGS: N - NDARRAY_PORT: - ADDR: - NDARRAY_ADDR: - N: - P: - R: - TIMEOUT: - PORT: - - file: $(ADCORE)/db/NDGather.template - args: # TODO - MISSING ARGS: MAX_PORTS - SCANRATE: - ADDR: - NDARRAY_PORT: - NDARRAY_ADDR: - ENABLED: - MAX_PORTS: - P: - R: - TIMEOUT: - PORT: - - - name: NDROIStat - description: |- - This plugin calculates statistics of ROIs + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDFileJPEGConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDFileJPEGConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) + +- name: ADCore.NDScatter + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: R + description: |- + Device Suffix + - type: id + name: PORT + description: |- + Port name for the NDTimeSeries plugin + - type: object + name: NDARRAY_PORT + description: |- + Input array port + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: int + name: NDARRAY_ADDR + description: |- + Input array port address + - type: str + name: ENABLED + description: |- + Plugin Enabled at startup? + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: NAME + description: |- + Label for signal + - type: int + name: QUEUE + description: |- + Input array queue size + default: 2 + - type: int + name: BLOCK + description: |- + Blocking callbacks? + description: |- + This plugin is used to distribute processing of NDArrays to multiple downstream plugins + databases: + - file: $(ADCORE)/db/NDScatter.template args: - - type: str - name: P - description: First part of base PV name - - type: str - name: R - description: Second part of base PV name - - type: id - name: PORT - description: Port name for the NDPluginROIStat plugin - - type: object - name: NDARRAY_PORT - description: Input array port - - type: int - name: TIMEOUT - description: Timeout - default: 1 - - type: str - name: ADDR - description: asyn address on port - default: "0" - - type: int - name: NDARRAY_ADDR - description: Input array port address - default: 0 - - type: str - name: ENABLED - description: Plugin Enabled at startup? - default: "0" - - type: str - name: SCANRATE - description: Specified scan rate for cpu intensive PVs - default: I/O Intr - - type: int - name: QUEUE - description: Input array queue size - default: 2 - - type: int - name: BLOCK - description: Blocking callbacks? - default: 0 - - type: int - name: MAX_ROIS - description: Maximum number of ROIs in this plugin - default: 8 - - type: int - name: NCHANS - description: Number of points in the arrays - default: 4096 - - type: int - name: MAX_THREADS - description: Maximum number threads - default: 1 - - databases: - - file: $(ADCORE)/db/NDROIStatN.template - args: - ADDR: - NCHANS: - P: - R: - TIMEOUT: - PORT: - - file: $(ADCORE)/db/NDROIStat.template - args: - SCANRATE: - ADDR: - NCHANS: - NDARRAY_ADDR: - ENABLED: - NDARRAY_PORT: - P: - R: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # NDROIStatConfigure(portName, queueSize, blockingCallbacks, - NDROIStatConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, + NDARRAY_PORT: + ADDR: + SCANRATE: + NDARRAY_ADDR: + ENABLED: + P: + R: + TIMEOUT: + PORT: + + pre_init: + - value: | + # NDScatterConfigure(portName, queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr) + NDScatterConfigure("{{PORT}}", {{QUEUE}}, {{BLOCK}}, "{{NDARRAY_PORT}}", {{NDARRAY_ADDR}}) diff --git a/motor/motor.ibek.support.yaml b/motor/motor.ibek.support.yaml new file mode 100644 index 0000000..6638310 --- /dev/null +++ b/motor/motor.ibek.support.yaml @@ -0,0 +1,424 @@ + # yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/1.1.0/ibek.support.schema.json + +module: motor + +defs: +- args: + - type: str + name: P + description: |- + Device Prefix + name: motor.common.motorUtil + description: |- + TODO:ADD DESCRIPTION + + databases: + - file: $(MOTOR)/db/motorUtil.template + args: + P: + post_init: + - value: | + motorUtilInit("{{P}}") +- args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: M + description: |- + Device Suffix + - type: object + name: PORT + description: |- + Asyn port for motor record + - type: str + name: ADDR + description: |- + Address on controller + - type: str + name: DESC + description: |- + Description, displayed on EDM screen + - type: str + name: MRES + description: |- + Motor Step Size (EGU) + - type: str + name: VELO + description: |- + Velocity (EGU/s) + - type: str + name: PREC + description: |- + Display Precision + - type: str + name: EGU + description: |- + Engineering Units + - type: str + name: TWV + description: |- + Tweak Step Size (EGU) + - type: str + name: DTYP + description: |- + DTYP of record + default: asynMotor + - type: str + name: DIR + description: |- + User Direction + default: '0' + - type: str + name: VBAS + description: |- + Base Velocity (EGU/s) + default: '0' + - type: str + name: VMAX + description: |- + Max Velocity (EGU/s), defaults to VELO + default: $(VELO) + - type: str + name: ACCL + description: |- + Seconds to Velocity + default: '0.5' + - type: str + name: BDST + description: |- + BL Distance (EGU) + default: '0' + - type: str + name: BVEL + description: |- + BL Velocity (EGU/s) + default: '0' + - type: str + name: BACC + description: |- + BL Seconds to Veloc. + - type: str + name: DHLM + description: |- + Dial High Limit + - type: str + name: DLLM + description: |- + Dial Low Limit + - type: str + name: HLM + description: |- + User High Limit + - type: str + name: LLM + description: |- + User Low Limit + - type: str + name: HLSV + description: |- + HW Lim. Violation Svr + default: MAJOR + - type: str + name: INIT + description: |- + Startup commands + - type: str + name: SREV + description: |- + Steps per Revolution + default: '1000' + - type: str + name: RRES + description: |- + Readback Step Size (EGU) + - type: str + name: ERES + description: |- + Encoder Step Size (EGU) + - type: str + name: JAR + description: |- + Jog Acceleration (EGU/s^2) + - type: str + name: UEIP + description: |- + Use Encoder If Present + default: '0' + - type: str + name: URIP + description: |- + Use RDBL If Present + default: '0' + - type: str + name: RDBL + description: |- + Readback Location, set URIP = 1 if you specify this + - type: str + name: RLNK + description: |- + Readback output link + - type: str + name: RTRY + description: |- + Max retry count + default: '0' + - type: str + name: DLY + description: |- + Readback settle time (s) + default: '0' + - type: str + name: OFF + description: |- + User Offset (EGU) + default: '0' + - type: str + name: RDBD + description: |- + Retry Deadband (EGU) + - type: str + name: FOFF + description: |- + Freeze Offset, 0=variable, 1=frozen + default: '0' + - type: str + name: ADEL + description: |- + Alarm monitor deadband (EGU) + default: '0' + - type: str + name: NTM + description: |- + New Target Monitor, only set to 0 for soft motors + default: '1' + - type: str + name: FEHIGH + description: |- + HIGH limit for following error + default: '0' + - type: str + name: FEHIHI + description: |- + HIHI limit for following error + default: '0' + - type: str + name: FEHHSV + description: |- + HIHI alarm severity for following error + default: NO_ALARM + - type: str + name: FEHSV + description: |- + HIGH alarm severity for following error + default: NO_ALARM + - type: str + name: SCALE + description: |- + Scale factor, if pmacSetAxisScale is used this should be set + default: '1' + - type: str + name: HOMEVIS + description: |- + If 1 then home is visible on the gui + default: '1' + - type: str + name: HOMEVISSTR + description: |- + If HOMEVIS=0, then display this text on the gui instead + default: Use motor summary screen + - type: id + name: name + description: |- + Object name and gui association name + - type: str + name: alh + description: |- + set to '#' to comment out alh lines + default: None + - type: str + name: gda_name + description: |- + Name to export this as to GDA + - type: str + name: gda_desc + description: |- + Description to export this as to GDA + default: $(DESC) + name: motor.common.basic_asyn_motor + description: |- + Basic template, including motor record and associated tags + + databases: + - file: $(MOTOR)/db/basic_asyn_motor.template + args: + VELO: + ACCL: + SCALE: + BACC: + alh: + gda_name: + DHLM: + HOMEVIS: + M: + EGU: + FEHSV: + VBAS: + VMAX: + BDST: + PORT: + SREV: + DTYP: + FEHIGH: + DLLM: + INIT: + RDBL: + DIR: + LLM: + ADEL: + DESC: + RDBD: + URIP: + ADDR: + RTRY: + OFF: + ERES: + FEHIHI: + FEHHSV: + JAR: + P: + BVEL: + MRES: + DLY: + HLSV: + UEIP: + name: + RRES: + PREC: + RLNK: + FOFF: + HLM: + NTM: + TWV: + gda_desc: + HOMEVISSTR: +- args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: Q + description: |- + Device Suffix + - type: str + name: DESC + description: |- + Description, displayed on EDM screen + - type: str + name: RDBL + description: |- + Readback link + - type: str + name: OUT + description: |- + Output link + - type: str + name: MOVEDLY + description: |- + Approximate move time (seconds) + - type: str + name: EGU + description: |- + Engineering Units + - type: str + name: DHLM + description: |- + Dial High Limit + - type: str + name: DLLM + description: |- + Dial Low Limit + - type: str + name: MRES + description: |- + Motor Step Size (EGU) + default: '1' + - type: str + name: RRES + description: |- + Readback Step Size (EGU) + default: '1' + - type: str + name: RDBD + description: |- + Retry deadband (EGU) + default: '1' + - type: id + name: name + description: |- + Object name and gui association name + - type: str + name: gda_name + description: |- + Name to export this as to GDA + - type: str + name: gda_desc + description: |- + Description to export this as to GDA + name: motor.common.softMotorForPiezo + description: |- + TODO:ADD DESCRIPTION + + databases: + - file: $(MOTOR)/db/softMotorForPiezo.template + args: + name: + gda_name: + DHLM: + OUT: + RRES: + DLLM: + EGU: + Q: + P: + RDBL: + MRES: + gda_desc: + MOVEDLY: + RDBD: + DESC: +- args: + - type: id + name: name + description: |- + Asyn port for motor record + - type: int + name: AXES + description: |- + Number of Axes + default: 8 + - type: int + name: ACTIVEPOLL + description: |- + polling period when motors are moving + default: 50 + - type: int + name: IDLEPOLL + description: |- + polling period when all motors are idle + default: 500 + name: motor.MotorSim.MotorSim + description: |- + Simulated controller Device - instantiate one per controller ''' + + pre_init: + - when: first + value: | + # Create simulator: ( start card , start axis , hard low limit, + motorSimCreate( 0, 1, -15000000, 15000000, 0, {{}}, 32 ) + # TODO - MISSING ARGS: + - value: | + drvAsynMotorConfigure("{{}}", "motorSim", {{}}, {{}}) + # TODO - MISSING ARGS: diff --git a/pmac/pmac.ibek.support.yaml b/pmac/pmac.ibek.support.yaml index 0571317..d6b823c 100644 --- a/pmac/pmac.ibek.support.yaml +++ b/pmac/pmac.ibek.support.yaml @@ -1,2269 +1,3237 @@ -# yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/1.1.0/ibek.support.schema.json + # yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/1.1.0/ibek.support.schema.json module: pmac defs: - - name: pmacVariableRead + +- name: pmac.PowerPMAC + args: + - type: object + name: Port + description: |- + pmacAsynSSHPort to connect to + - type: str + name: P + description: |- + PV Prefix + - type: id + name: name + description: |- + Name to use for the asyn port + - type: int + name: NAxes + description: |- + Number of axes + default: 8 + - type: int + name: IdlePoll + description: |- + Idle Poll Period in ms + default: 1000 + - type: int + name: MovingPoll + description: |- + Moving Poll Period in ms + default: 100 + - type: str + name: NAXES + description: |- + Number of axes + default: '8' + - type: str + name: TIMEOUT + description: |- + Timeout for controller communication + default: '4' + - type: str + name: FEEDRATE + description: |- + feedrate below which we go into error + default: '100' + - type: str + name: PMAC + description: |- + Pmac/Geobrick name + - type: str + name: AXIS + description: |- + Axis number + - type: str + name: PORT + description: |- + Asyn port + - type: str + name: CSG0 + description: |- + Name for Coordinate System Group 0 + - type: str + name: CSG1 + description: |- + Name for Coordinate System Group 1 + - type: str + name: CSG2 + description: |- + Name for Coordinate System Group 2 + - type: str + name: CSG3 + description: |- + Name for Coordinate System Group 3 + - type: str + name: CSG4 + description: |- + Name for Coordinate System Group 4 + - type: str + name: CSG5 description: |- - Simple template that reads a variable on a - PMAC or geoBrick via dynamic parameters. + Name for Coordinate System Group 5 + - type: str + name: CSG6 + description: |- + Name for Coordinate System Group 6 + - type: str + name: CSG7 + description: |- + Name for Coordinate System Group 7 + description: |- + This will create an asyn motor port for a PowerPMAC that we can attach + motor records to using the model 3 driver + databases: + - file: $(PMAC)/db/pmacStatusAxis.template args: - - type: str - name: P - description: PV prefix - - type: str - name: Q - description: PV suffix - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: VAR - description: Variable on PMAC to read from, e.g. P700 - - type: str - name: EGU - description: Engineering units - - type: str - name: VARIABLE_PREC - description: Variable Record precision - - type: str - name: LABEL - description: Label for GUI - - type: str - name: DTYP - description: asyn DTYP (e.g., asynFloat64, asynInt32) - default: asynFloat64 - - type: str - name: TYPE - description: PMAC variable type (D=double, I=integer, H=hex, S=string) - default: D - - type: str - name: SPEED - description: Speed to read at (F=motor scan rates, M=medium (2 s), S=slow (5 s)) - default: M - - type: id - name: name - description: Template argument - - databases: - - file: $(PMAC)/db/pmacVariableRead.template - args: - VARIABLE_PREC: - name: - DTYP: - TYPE: - EGU: - LABEL: - Q: - P: - VAR: - SPEED: - PORT: - - - name: pmacSetCoordStepsPerUnit - description: |- - Apply an integer scale factor to an axis on the PMAC - + AXIS: + PORT: + PMAC: + - file: $(PMAC)/db/powerPmacStatus.template args: - - type: int - name: CS - description: Underlying CS object - - type: int - name: Axis - description: Axis number to apply scale to - - type: float - name: Scale - description: - Scale factor the cts will be multiplied by before being passed to - motor record - - pre_init: - - type: text - value: | - pmacSetCoordStepsPerUnit("{{Ref}}", {{Axis}}, {{Scale}}) - # TODO - MISSING ARGS: Ref - - - name: RunPlc - description: |- - TODO:ADD DESCRIPTION + P: + PORT: + - file: $(PMAC)/db/pmacController.template + args: + FEEDRATE: + CSG7: + CSG6: + CSG5: + CSG4: + CSG3: + CSG2: + CSG1: + CSG0: + P: + TIMEOUT: + NAXES: + PORT: + + pre_init: + - value: | + # Configure Model 3 Controller Driver (ControlerPort, LowLevelDriverPort, Address, Axes, MovingPoll, IdlePoll) + pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) + # Configure Model 3 Axes Driver (Controler Port, Axis Count) + pmacCreateAxes("{{name}}", {{NAxes}}) + # TODO - MISSING ARGS: PortName + +- name: pmac.CS_2jack + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: PREC + description: |- + Precision to display variables + default: '3' + - type: str + name: J1PV + description: |- + Pv of real Jack1 motor, e.g. $(P):J1 + default: $(P):J1 + - type: str + name: J2PV + description: |- + Pv of real Jack2 motor, e.g. $(P):J2 + default: $(P):J2 + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + 2jack CS + databases: + - file: $(PMAC)/db/2jack.template args: - - type: id - name: name - description: Object name - - type: object - name: BRICK - description: Geobrick/PMAC - - type: int - name: PLC - description: PLC number - - type: str - name: DESC - description: Description - - databases: - - file: $(PMAC)/db/run_plc.template - args: # TODO - MISSING ARGS: P, PORT - P: - DESC: - PLC: - name: - PORT: - - - name: CS_zform - description: |- - TODO:ADD DESCRIPTION + PREC: + J1PV: + COORD: + P: + J2PV: + PORT: + name: + +- name: pmac._GeoBrickCSST + args: + - type: str + name: NAME + description: |- + Object name + - type: str + name: P + description: |- + PV prefix + - type: str + name: Description + description: |- + Geobrick description + - type: str + name: ControlIP + description: |- + dls-pmac-control.py IP or HostName + - type: str + name: ControlPort + description: |- + dls-pmac-control.py Port + - type: str + name: ControlMode + description: |- + dls-pmac-control.py Mode (tcp/ip or terminal server) + description: |- + Creates GUI tags for CSS screens + databases: + - file: $(PMAC)/db/pmacCSS.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/zform.template - args: - P: - name: - PORT: - - - name: CS_3jack_mirror - description: |- - Supporting template that allows setting of variables for a - 3jack mirror CS + Description: + ControlPort: + ControlIP: + P: + ControlMode: + NAME: + +- name: pmac.CS_aperture_slits + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: APPV + description: |- + Pv of real AP motor, e.g. $(P):XA + - type: str + name: AMPV + description: |- + Pv of real AM motor, e.g. $(P):XB + - type: str + name: PREC + description: |- + Precision to display variables + default: '3' + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + set of aperture slits + databases: + - file: $(PMAC)/db/aperture_slits.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: PREC - description: Precision to display variables - default: "3" - - type: str - name: AEGU - description: EGU for angular variables - default: deg - - type: str - name: J1PV - description: Pv of real Jack1 motor, e.g. $(P):J1 - default: $(P):J1 - - type: str - name: J2PV - description: Pv of real Jack1 motor, e.g. $(P):J2 - default: $(P):J2 - - type: str - name: J3PV - description: Pv of real Jack1 motor, e.g. $(P):J3 - default: $(P):J3 - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/3jack_mirror.template - args: - name: - J2PV: - AEGU: - P: - PREC: - J3PV: - COORD: - PORT: - J1PV: - - - name: CS_accel_dcm - description: |- - Supporting template that allows setting of variables for an - accel DCM CS + name: + APPV: + COORD: + P: + PREC: + AMPV: + PORT: + +- name: pmac.CS_3jack + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: PREC + description: |- + Precision to display variables + default: '3' + - type: str + name: J1PV + description: |- + Pv of real Jack1 motor, e.g. $(P):J1 + default: $(P):J1 + - type: str + name: J2PV + description: |- + Pv of real Jack1 motor, e.g. $(P):J2 + default: $(P):J2 + - type: str + name: J3PV + description: |- + Pv of real Jack1 motor, e.g. $(P):J3 + default: $(P):J3 + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + 3jack CS + databases: + - file: $(PMAC)/db/3jack.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/accel_dcm.template - args: - P: - name: - COORD: - PORT: - - - name: pmacSetOpenLoopEncoderAxis - description: |- - TODO:ADD DESCRIPTION + PREC: + J1PV: + COORD: + P: + J2PV: + J3PV: + PORT: + name: + +- name: pmac.CS_symetrie_hexapod + args: + - type: id + name: name + description: |- + Object name + - type: str + name: P + description: |- + Device prefix + - type: object + name: PORT + description: |- + GeoBrick object + - type: int + name: COORD + description: |- + Coordinate system number + - type: str + name: RX + description: |- + GUI label for RX axis (axis 4) + default: RX + - type: str + name: RY + description: |- + GUI label for RY axis (axis 5) + default: RY + - type: str + name: RZ + description: |- + GUI label for RZ axis (axis 6) + default: RZ + - type: int + name: PREC + description: |- + Precision of records + default: 3 + - type: str + name: BRICK + description: |- + PV prefix for brick + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/symetrie_hexapod.template args: - - type: object - name: Controller - description: Underlying PMAC or GeoBrick object - - type: int - name: Axis - description: Motor axis number - - type: int - name: Encoder_axis - description: Encoder axis number - - pre_init: - - type: text - value: | - pmacSetOpenLoopEncoderAxis("{{ControllerPort}}", {{Axis}}, {{Encoder_axis}}) - # TODO - MISSING ARGS: ControllerPort - - - name: dls_pmac_cs_asyn_motor - description: |- - TODO:ADD DESCRIPTION + name: + RX: + RY: + PREC: + P: + COORD: + BRICK: + RZ: + PORT: + + pre_init: + - value: | + pmacNoCsVelocity("{{PORT}}") + +- name: pmac.pmacVariableReadLED + args: + - type: str + name: P + description: |- + PV prefix + - type: str + name: Q + description: |- + PV suffix + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: VAR + description: |- + Variable on PMAC to read from, e.g. P700 + - type: str + name: SPEED + description: |- + Speed to read at (F=motor scan rates, M=medium (2s), S=slow (5s)) + default: M + - type: str + name: ONAM + description: |- + One name + default: On + - type: str + name: ZNAM + description: |- + Zero name + default: Off + - type: str + name: OSV + description: |- + One severity + default: NO_ALARM + - type: str + name: ZSV + description: |- + Zero severity + default: NO_ALARM + - type: id + name: name + description: |- + Template argument + - type: str + name: LABEL + description: |- + Label for GUI + description: |- + Simple template that reads an integer variable on a PMAC or + GeoBrick which can have a value of 1 or 0 and uses an LED widget. + databases: + - file: $(PMAC)/db/pmacVariableReadLED.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: M - description: Device Suffix - - type: object - name: PORT - description: Coordinate System object that this motor belongs to - - type: str - name: ADDR - description: Address on controller - - type: str - name: DESC - description: Description, displayed on EDM screen - - type: str - name: MRES - description: Motor Step Size (EGU) - - type: str - name: VELO - description: Velocity (EGU/s) - - type: str - name: PREC - description: Display Precision - - type: str - name: EGU - description: Engineering Units - - type: str - name: TWV - description: Tweak Step Size (EGU) - - type: str - name: DTYP - description: DTYP of record - default: asynMotor - - type: str - name: DIR - description: User Direction - default: "0" - - type: str - name: VBAS - description: Base Velocity (EGU/s) - default: "0" - - type: str - name: VMAX - description: Max Velocity (EGU/s), defaults to VELO - default: $(VELO) - - type: str - name: ACCL - description: Seconds to Velocity - default: "0.5" - - type: str - name: BDST - description: BL Distance (EGU) - default: "0" - - type: str - name: BVEL - description: BL Velocity (EGU/s) - default: "0" - - type: str - name: BACC - description: BL Seconds to Veloc. - - type: str - name: DHLM - description: Dial High Limit - - type: str - name: DLLM - description: Dial Low Limit - - type: str - name: HLM - description: User High Limit - - type: str - name: LLM - description: User Low Limit - - type: str - name: HLSV - description: HW Lim. Violation Svr - default: MAJOR - - type: str - name: INIT - description: Startup commands - - type: str - name: SREV - description: Steps per Revolution - default: "1000" - - type: str - name: RRES - description: Readback Step Size (EGU) - - type: str - name: ERES - description: Encoder Step Size (EGU) - - type: str - name: JAR - description: Jog Acceleration (EGU/s^2) - - type: str - name: UEIP - description: Use Encoder If Present - default: "0" - - type: str - name: URIP - description: Use RDBL If Present - default: "0" - - type: str - name: RDBL - description: Readback Location, set URIP = 1 if you specify this - - type: str - name: RLNK - description: Readback output link - - type: str - name: RTRY - description: Max retry count - default: "0" - - type: str - name: DLY - description: Readback settle time (s) - default: "0" - - type: str - name: OFF - description: User Offset (EGU) - default: "0" - - type: str - name: RDBD - description: Retry Deadband (EGU) - - type: str - name: FOFF - description: Freeze Offset, 0=variable, 1=frozen - default: "0" - - type: str - name: ADEL - description: Alarm monitor deadband (EGU) - default: "0" - - type: str - name: NTM - description: New Target Monitor, only set to 0 for soft motors - default: "1" - - type: str - name: FEHIGH - description: HIGH limit for following error - default: "0" - - type: str - name: FEHIHI - description: HIHI limit for following error - default: "0" - - type: str - name: FEHHSV - description: HIHI alarm severity for following error - default: NO_ALARM - - type: str - name: FEHSV - description: HIGH alarm severity for following error - default: NO_ALARM - - type: str - name: SCALE - description: Scale factor, if pmacSetAxisScale is used this should be set - default: "1" - - type: str - name: HOMEVIS - description: If 1 then home is visible on the gui - default: "1" - - type: str - name: HOMEVISSTR - description: If HOMEVIS=0, then display this text on the gui instead - default: Use motor summary screen - - type: id - name: name - description: Object name and gui association name - - type: str - name: alh - description: set to '#' to comment out alh lines - default: None - - type: str - name: gda_name - description: Name to export this as to GDA - - type: str - name: gda_desc - description: Description to export this as to GDA - default: $(DESC) - - databases: - - file: $(PMAC)/db/dls_pmac_cs_asyn_motor.template - args: # TODO - MISSING ARGS: CS, PMAC - VELO: - HOMEVISSTR: - SCALE: - BACC: - alh: - ACCL: - gda_name: - DHLM: - HOMEVIS: - M: - EGU: - FEHSV: - VBAS: - PMAC: - VMAX: - BDST: - PORT: - SREV: - DTYP: - FEHIGH: - DLLM: - name: - INIT: - RDBL: - DIR: - LLM: - ADEL: - HLSV: - RDBD: - URIP: - RTRY: - OFF: - UEIP: - FEHIHI: - FEHHSV: - JAR: - P: - BVEL: - CS: - MRES: - DLY: - DESC: - ERES: - ADDR: - RRES: - PREC: - RLNK: - FOFF: - HLM: - NTM: - TWV: - gda_desc: - - - name: pmacDisableLimitsCheck - description: |- - TODO:ADD DESCRIPTION + ZSV: + name: + P: + ZNAM: + OSV: + Q: + ONAM: + VAR: + LABEL: + SPEED: + PORT: + +- name: pmac.dls_pmac_cs_asyn_motor + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: M + description: |- + Device Suffix + - type: object + name: PORT + description: |- + Coordinate System object that this motor belongs to + - type: str + name: ADDR + description: |- + Address on controller + - type: str + name: DESC + description: |- + Description, displayed on EDM screen + - type: str + name: MRES + description: |- + Motor Step Size (EGU) + - type: str + name: VELO + description: |- + Velocity (EGU/s) + - type: str + name: PREC + description: |- + Display Precision + - type: str + name: EGU + description: |- + Engineering Units + - type: str + name: TWV + description: |- + Tweak Step Size (EGU) + - type: str + name: DTYP + description: |- + DTYP of record + default: asynMotor + - type: str + name: DIR + description: |- + User Direction + default: '0' + - type: str + name: VBAS + description: |- + Base Velocity (EGU/s) + default: '0' + - type: str + name: VMAX + description: |- + Max Velocity (EGU/s), defaults to VELO + default: $(VELO) + - type: str + name: ACCL + description: |- + Seconds to Velocity + default: '0.5' + - type: str + name: BDST + description: |- + BL Distance (EGU) + default: '0' + - type: str + name: BVEL + description: |- + BL Velocity (EGU/s) + default: '0' + - type: str + name: BACC + description: |- + BL Seconds to Veloc. + - type: str + name: DHLM + description: |- + Dial High Limit + - type: str + name: DLLM + description: |- + Dial Low Limit + - type: str + name: HLM + description: |- + User High Limit + - type: str + name: LLM + description: |- + User Low Limit + - type: str + name: HLSV + description: |- + HW Lim. Violation Svr + default: MAJOR + - type: str + name: INIT + description: |- + Startup commands + - type: str + name: SREV + description: |- + Steps per Revolution + default: '1000' + - type: str + name: RRES + description: |- + Readback Step Size (EGU) + - type: str + name: ERES + description: |- + Encoder Step Size (EGU) + - type: str + name: JAR + description: |- + Jog Acceleration (EGU/s^2) + - type: str + name: UEIP + description: |- + Use Encoder If Present + default: '0' + - type: str + name: URIP + description: |- + Use RDBL If Present + default: '0' + - type: str + name: RDBL + description: |- + Readback Location, set URIP = 1 if you specify this + - type: str + name: RLNK + description: |- + Readback output link + - type: str + name: RTRY + description: |- + Max retry count + default: '0' + - type: str + name: DLY + description: |- + Readback settle time (s) + default: '0' + - type: str + name: OFF + description: |- + User Offset (EGU) + default: '0' + - type: str + name: RDBD + description: |- + Retry Deadband (EGU) + - type: str + name: FOFF + description: |- + Freeze Offset, 0=variable, 1=frozen + default: '0' + - type: str + name: ADEL + description: |- + Alarm monitor deadband (EGU) + default: '0' + - type: str + name: NTM + description: |- + New Target Monitor, only set to 0 for soft motors + default: '1' + - type: str + name: FEHIGH + description: |- + HIGH limit for following error + default: '0' + - type: str + name: FEHIHI + description: |- + HIHI limit for following error + default: '0' + - type: str + name: FEHHSV + description: |- + HIHI alarm severity for following error + default: NO_ALARM + - type: str + name: FEHSV + description: |- + HIGH alarm severity for following error + default: NO_ALARM + - type: str + name: SCALE + description: |- + Scale factor, if pmacSetAxisScale is used this should be set + default: '1' + - type: str + name: HOMEVIS + description: |- + If 1 then home is visible on the gui + default: '1' + - type: str + name: HOMEVISSTR + description: |- + If HOMEVIS=0, then display this text on the gui instead + default: Use motor summary screen + - type: id + name: name + description: |- + Object name and gui association name + - type: str + name: alh + description: |- + set to '#' to comment out alh lines + default: None + - type: str + name: gda_name + description: |- + Name to export this as to GDA + - type: str + name: gda_desc + description: |- + Description to export this as to GDA + default: $(DESC) + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/dls_pmac_cs_asyn_motor.template args: - - type: object - name: Controller - description: Underlying PMAC or GeoBrick object - - type: int - name: Axis - description: Axis number to disable limit check, defaults to all + VELO: + ACCL: + SCALE: + BACC: + alh: + gda_name: + DHLM: + HOMEVIS: + M: + EGU: + FEHSV: + VBAS: + VMAX: + BDST: + PORT: + SREV: + DTYP: + FEHIGH: + DLLM: + INIT: + RDBL: + DIR: + LLM: + ADEL: + DESC: + RDBD: + URIP: + ADDR: + RTRY: + OFF: + ERES: + FEHIHI: + FEHHSV: + JAR: + P: + BVEL: + MRES: + DLY: + HLSV: + UEIP: + name: + RRES: + PREC: + RLNK: + FOFF: + HLM: + NTM: + TWV: + gda_desc: + HOMEVISSTR: + +- name: pmac.CS_zform + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: id + name: name + description: |- + This associates an edm screen with the template + - type: str + name: P + description: |- + Pv Prefix + description: |- + TODO:ADD DESCRIPTION - pre_init: - - type: text - value: | - pmacDisableLimitsCheck("{{ControllerPort}}", {{Axis}}, 0) - # TODO - MISSING ARGS: ControllerPort + databases: + - file: $(PMAC)/db/zform.template + args: + P: + PORT: + name: + +- name: pmac.autohome + args: + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: PLC + description: |- + PLC number + - type: object + name: PORT + description: |- + Delta tau motor controller port + - type: str + name: GRP1 + description: |- + Optional. Homing group 1 description. Defaults to "All". + default: All + - type: str + name: GRP2 + description: |- + Optional. Homing group 2 description. Defaults to give empty description string. + - type: str + name: GRP3 + description: |- + Optional. Homing group 3 description. Defaults to give empty description string. + - type: str + name: GRP4 + description: |- + Optional. Homing group 4 description. Defaults to give empty description string. + - type: str + name: GRP5 + description: |- + Optional. Homing group 5 description. Defaults to give empty description string. + - type: str + name: GRP6 + description: |- + Optional. Homing group 6 description. Defaults to give empty description string. + - type: str + name: GRP7 + description: |- + Optional. Homing group 7 description. Defaults to give empty description string. + - type: str + name: GRP8 + description: |- + Optional. Homing group 8 description. Defaults to give empty description string. + - type: str + name: GRP9 + description: |- + Optional. Homing group 9 description. Defaults to give empty description string. + - type: str + name: GRP10 + description: |- + Optional. Homing group 10 description. Defaults to give empty description string. + - type: str + name: STATE11 + description: |- + Optional. Homing state 11 description. Defaults to give empty description string. + - type: str + name: STATE12 + description: |- + Optional. Homing state 12 description. Defaults to give empty description string. + - type: str + name: STATE13 + description: |- + Optional. Homing state 13 description. Defaults to give empty description string. + - type: str + name: STATE14 + description: |- + Optional. Homing state 14 description. Defaults to give empty description string. + - type: str + name: STATE15 + description: |- + Optional. Homing state 15 description. Defaults to give empty description string. + - type: str + name: STATUS11 + description: |- + Optional. Homing status 11 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS12 + description: |- + Optional. Homing status 12 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS13 + description: |- + Optional. Homing status 13 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS14 + description: |- + Optional. Homing status 14 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS15 + description: |- + Optional. Homing status 15 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUSSV11 + description: |- + Optional. Homing status 11 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV12 + description: |- + Optional. Homing status 12 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV13 + description: |- + Optional. Homing status 13 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV14 + description: |- + Optional. Homing status 14 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV15 + description: |- + Optional. Homing status 15 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: id + name: name + description: |- + This associates an edm screen with the template + - type: str + name: DESC + description: |- + Description + description: |- + TODO:ADD DESCRIPTION - - name: pmacAsynSSHPort + databases: + - file: $(PMAC)/db/autohome.template + args: + GRP10: + PORT: + GRP9: + GRP8: + GRP3: + GRP2: + GRP1: + GRP7: + GRP6: + GRP5: + GRP4: + STATUS11: + STATUSSV11: + STATUS13: + STATUS12: + STATUS15: + STATUS14: + DESC: + name: + P: + STATE13: + STATE12: + STATE11: + STATUSSV12: + STATE15: + STATE14: + STATUSSV13: + PLC: + STATUSSV14: + STATUSSV15: + +- name: pmac.CS_IDT_sagittal_dcm + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P description: |- - This will create an AsynPort connecting to a PowerPMAC over SSH + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for an + IDT sagittal DCM CS + databases: + - file: $(PMAC)/db/IDT_sagittal_dcm.template args: - - type: id - name: name - description: Port Name, normally something like SSH_PORT - - type: str - name: IP - description: IP address of the powerPMAC - - type: str - name: USERNAME - description: Username for the SSH connection - default: root - - type: str - name: PASSWORD - description: Password for the SSH connection - default: deltatau - - type: int - name: PRIORITY - description: Priority of the port - default: 0 - - type: int - name: NOAUTOCONNECT - description: Disable autoconnect if set to 1 - default: 0 - - type: int - name: NOEOS - description: No EOS used if set to 1 - default: 0 - - type: str - name: simulation - description: IP port to connect to if in simulation mode - - pre_init: - - type: text - value: | - # Create SSH Port (PortName, IPAddress, Username, Password, Priority, DisableAutoConnect, noProcessEos) - drvAsynPowerPMACPortConfigure("{{name}}", "{{IP}}", "{{USERNAME}}", "{{PASSWORD}}", "{{PRIORITY}}", "{{NOAUTOCONNECT}}", "{{NOEOS}}") - - - name: CS_IDT_sagittal_bender - description: |- - Supporting template that allows setting of variables for an - IDT sagittal DCM CS + P: + PORT: + COORD: + name: + +- name: pmac.GeoBrickTrajectoryControlT + args: + - type: object + name: PORT + description: |- + Delta tau motor controller + - type: str + name: NPOINTS + description: |- + Number of points that can be built at any time + - type: str + name: MAXPOINTS + description: |- + Maximum number of points in a scan + default: '4000000' + - type: str + name: PREC + description: |- + precision of axis defnitions + default: '3' + description: |- + Creates some PVs for executing trajectory scans on the pmac controller by + instantiating an instance of pmacTrajectoryAxis.template for each axis + + databases: + - file: $(PMAC)/db/pmacControllerTrajectory.template + args: + NPOINTS: + MAXPOINTS: + PORT: + PREC: + +- name: pmac._CsControlT + args: + - type: str + name: PORT + description: |- + The asyn port for the pmac cs controller + - type: str + name: PARENTPORT + description: |- + The asyn port for the parent pmac controller + - type: str + name: PMAC + description: |- + PV Prefix for the motor controller + - type: int + name: CS + description: |- + Coordinate System Number for the cs controller + - type: str + name: TIMEOUT + description: |- + Timeout for controller communication + default: '4' + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/pmacCsController.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/IDT_sagittal_bender.template - args: - P: - name: - COORD: - PORT: - - - name: pmacVariableWrite - description: |- - Simple template that reads and writes to a variable on a - PMAC or geoBrick via dynamic parameters. + CS: + PARENTPORT: + PORT: + TIMEOUT: + PMAC: + +- name: pmac.CS_qcm + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: RADMRES1 + description: |- + Scale factor to turn B1 units into Rads + - type: str + name: RADMRES2 + description: |- + Scale factor to turn B2 units into Rads + - type: str + name: SCALE + description: |- + the same as pmacSetAxisScale (usually 1 but may be 32) + default: '32' + - type: str + name: gda_name + description: |- + GDA name + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Use this template with CS_qcm.pmc to implement + a mode for changing energy that only moves Bragg1. + databases: + - file: $(PMAC)/db/qcm.template args: - - type: str - name: P - description: Pv Prefix - - type: str - name: Q - description: Pv Suffix - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: VAR - description: Variable on PMAC to write to, e.g. P700 - - type: str - name: EGU - description: Engineering units - - type: str - name: VARIABLE_PREC - description: Variable Record precision - - type: str - name: LABEL - description: Label for GUI - - type: id - name: name - description: Object name and gui association name - - type: str - name: DTYP - description: asyn DTYP (e.g., asynFloat64, asynInt32) - default: asynFloat64 - - type: str - name: TYPE - description: PMAC variable type (D=double, I=integer, H=hex, S=string) - default: D - - databases: - - file: $(PMAC)/db/pmacVariableWrite.template - args: - Q: - name: - DTYP: - EGU: - LABEL: - VARIABLE_PREC: - P: - VAR: - TYPE: - PORT: - - - name: autohome - description: |- - TODO:ADD DESCRIPTION + SCALE: + RADMRES1: + RADMRES2: + gda_name: + COORD: + P: + PORT: + name: + +- name: pmac._automhomeT + args: + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: PLC + description: |- + PLC number + - type: object + name: PORT + description: |- + Delta tau motor controller port + - type: str + name: CTRL + description: |- + Controller record name prefix for disabling axis writes + - type: str + name: GRP1 + description: |- + Optional. Homing group 1 description. Defaults to "All". + default: All + - type: str + name: GRP2 + description: |- + Optional. Homing group 2 description. Defaults to give empty description string. + - type: str + name: GRP3 + description: |- + Optional. Homing group 3 description. Defaults to give empty description string. + - type: str + name: GRP4 + description: |- + Optional. Homing group 4 description. Defaults to give empty description string. + - type: str + name: GRP5 + description: |- + Optional. Homing group 5 description. Defaults to give empty description string. + - type: str + name: GRP6 + description: |- + Optional. Homing group 6 description. Defaults to give empty description string. + - type: str + name: GRP7 + description: |- + Optional. Homing group 7 description. Defaults to give empty description string. + - type: str + name: GRP8 + description: |- + Optional. Homing group 8 description. Defaults to give empty description string. + - type: str + name: GRP9 + description: |- + Optional. Homing group 9 description. Defaults to give empty description string. + - type: str + name: GRP10 + description: |- + Optional. Homing group 10 description. Defaults to give empty description string. + - type: str + name: STATE11 + description: |- + Optional. Homing state 11 description. Defaults to give empty description string. + - type: str + name: STATE12 + description: |- + Optional. Homing state 12 description. Defaults to give empty description string. + - type: str + name: STATE13 + description: |- + Optional. Homing state 13 description. Defaults to give empty description string. + - type: str + name: STATE14 + description: |- + Optional. Homing state 14 description. Defaults to give empty description string. + - type: str + name: STATE15 + description: |- + Optional. Homing state 15 description. Defaults to give empty description string. + - type: str + name: STATUS11 + description: |- + Optional. Homing status 11 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS12 + description: |- + Optional. Homing status 12 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS13 + description: |- + Optional. Homing status 13 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS14 + description: |- + Optional. Homing status 14 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUS15 + description: |- + Optional. Homing status 15 description (e.g. for custom limit checks). Defaults to give empty description string. + - type: str + name: STATUSSV11 + description: |- + Optional. Homing status 11 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV12 + description: |- + Optional. Homing status 12 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV13 + description: |- + Optional. Homing status 13 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV14 + description: |- + Optional. Homing status 14 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: str + name: STATUSSV15 + description: |- + Optional. Homing status 15 severity. Defaults to NO_ALARM. + default: NO_ALARM + - type: id + name: name + description: |- + This associates an edm screen with the template + - type: str + name: DESC + description: |- + Description + description: |- + Provides PVs to start and monitor homing via homing PLCs + that conform to the DLS standard. If you use custom homing states then be + sure to label them here + + databases: + - file: $(PMAC)/db/autohome.template + args: + CTRL: + GRP10: + PORT: + GRP9: + GRP8: + GRP3: + GRP2: + GRP1: + GRP7: + GRP6: + GRP5: + GRP4: + STATUS11: + STATUSSV11: + STATUS13: + STATUS12: + STATUS15: + STATUS14: + DESC: + name: + P: + STATE13: + STATE12: + STATE11: + STATUSSV12: + STATE15: + STATE14: + STATUSSV13: + PLC: + STATUSSV14: + STATUSSV15: + +- name: pmac.pmacVariableWrite + args: + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: Q + description: |- + Pv Suffix + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: VAR + description: |- + Variable on PMAC to write to, e.g. P700 + - type: str + name: EGU + description: |- + Engineering units + - type: str + name: VARIABLE_PREC + description: |- + Variable Record precision + - type: id + name: name + description: |- + Object name and gui association name + - type: str + name: DTYP + description: |- + asyn DTYP (e.g., asynFloat64, asynInt32) + default: asynFloat64 + - type: str + name: TYPE + description: |- + PMAC variable type (D=double, I=integer, H=hex, S=string) + default: D + - type: str + name: LABEL + description: |- + Label for GUI + description: |- + Simple template that reads and writes to a variable on a + PMAC or geoBrick via dynamic parameters. + databases: + - file: $(PMAC)/db/pmacVariableWrite.template args: - - type: str - name: P - description: Pv Prefix - - type: str - name: PLC - description: PLC number - - type: object - name: PORT - description: Delta tau motor controller port - - type: str - name: DESC - description: Description - - type: str - name: GRP1 - description: Optional. Homing group 1 description. Defaults to "All". - default: All - - type: str - name: GRP2 - description: - Optional. Homing group 2 description. Defaults to give empty description - string. - - type: str - name: GRP3 - description: - Optional. Homing group 3 description. Defaults to give empty description - string. - - type: str - name: GRP4 - description: - Optional. Homing group 4 description. Defaults to give empty description - string. - - type: str - name: GRP5 - description: - Optional. Homing group 5 description. Defaults to give empty description - string. - - type: str - name: GRP6 - description: - Optional. Homing group 6 description. Defaults to give empty description - string. - - type: str - name: GRP7 - description: - Optional. Homing group 7 description. Defaults to give empty description - string. - - type: str - name: GRP8 - description: - Optional. Homing group 8 description. Defaults to give empty description - string. - - type: str - name: GRP9 - description: - Optional. Homing group 9 description. Defaults to give empty description - string. - - type: str - name: GRP10 - description: - Optional. Homing group 10 description. Defaults to give empty description - string. - - type: str - name: STATE11 - description: - Optional. Homing state 11 description. Defaults to give empty description - string. - - type: str - name: STATE12 - description: - Optional. Homing state 12 description. Defaults to give empty description - string. - - type: str - name: STATE13 - description: - Optional. Homing state 13 description. Defaults to give empty description - string. - - type: str - name: STATE14 - description: - Optional. Homing state 14 description. Defaults to give empty description - string. - - type: str - name: STATE15 - description: - Optional. Homing state 15 description. Defaults to give empty description - string. - - type: str - name: STATUS11 - description: - Optional. Homing status 11 description (e.g. for custom limit checks). Defaults - to give empty description string. - - type: str - name: STATUS12 - description: - Optional. Homing status 12 description (e.g. for custom limit checks). Defaults - to give empty description string. - - type: str - name: STATUS13 - description: - Optional. Homing status 13 description (e.g. for custom limit checks). Defaults - to give empty description string. - - type: str - name: STATUS14 - description: - Optional. Homing status 14 description (e.g. for custom limit checks). Defaults - to give empty description string. - - type: str - name: STATUS15 - description: - Optional. Homing status 15 description (e.g. for custom limit checks). Defaults - to give empty description string. - - type: str - name: STATUSSV11 - description: Optional. Homing status 11 severity. Defaults to NO_ALARM. - default: NO_ALARM - - type: str - name: STATUSSV12 - description: Optional. Homing status 12 severity. Defaults to NO_ALARM. - default: NO_ALARM - - type: str - name: STATUSSV13 - description: Optional. Homing status 13 severity. Defaults to NO_ALARM. - default: NO_ALARM - - type: str - name: STATUSSV14 - description: Optional. Homing status 14 severity. Defaults to NO_ALARM. - default: NO_ALARM - - type: str - name: STATUSSV15 - description: Optional. Homing status 15 severity. Defaults to NO_ALARM. - default: NO_ALARM - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/autohome.template - args: # TODO - MISSING ARGS: CTRL - CTRL: - GRP10: - PORT: - GRP9: - GRP8: - GRP3: - GRP2: - GRP1: - GRP7: - GRP6: - GRP5: - GRP4: - STATUS11: - P: - STATUSSV12: - STATUSSV13: - STATUS15: - STATUSSV15: - DESC: - name: - STATUSSV11: - STATE13: - STATE12: - STATE11: - STATUS13: - STATE15: - STATE14: - STATUS12: - PLC: - STATUSSV14: - STATUS14: - - - name: CS_IDT_sagittal_dcm - description: |- - Supporting template that allows setting of variables for an - IDT sagittal DCM CS + Q: + name: + DTYP: + EGU: + LABEL: + VARIABLE_PREC: + P: + VAR: + TYPE: + PORT: + +- name: pmac._pmacStatusT + args: + - type: str + name: PORT + description: |- + The asyn port for the pmac controller + - type: str + name: P + description: |- + PV Prefix + description: |- + Creates some PVs for monitoring status of the pmac controller, + not compatible with power Pmac + databases: + - file: $(PMAC)/db/pmacStatus.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/IDT_sagittal_dcm.template - args: - P: - name: - COORD: - PORT: - - - name: EncoderReadback - description: |- - TODO:ADD DESCRIPTION + P: + PORT: + +- name: pmac.moveAxesToSafeSlave + args: + - type: object + name: MASTER + description: |- + Master + - type: str + name: AXIS + description: |- + Axis PV + - type: int + name: POSITION + description: |- + Safe Position + - type: float + name: THRESHOLD + description: |- + In safe position threshold in EGUs + description: |- + TODO:ADD DESCRIPTION + +- name: pmac.pmacAsynSSHPort + args: + - type: id + name: name + description: |- + Port Name, normally something like SSH_PORT + - type: str + name: IP + description: |- + IP address of the powerPMAC + - type: str + name: USERNAME + description: |- + Username for the SSH connection + default: root + - type: str + name: PASSWORD + description: |- + Password for the SSH connection + default: deltatau + - type: int + name: PRIORITY + description: |- + Priority of the port + - type: int + name: NOAUTOCONNECT + description: |- + Disable autoconnect if set to 1 + - type: int + name: NOEOS + description: |- + No EOS used if set to 1 + - type: str + name: simulation + description: |- + IP port to connect to if in simulation mode + description: |- + This will create an AsynPort connecting to a PowerPMAC over SSH + + pre_init: + - value: | + # Create SSH Port (PortName, IPAddress, Username, Password, Priority, DisableAutoConnect, noProcessEos) + drvAsynPowerPMACPortConfigure("{{name}}", "{{IP}}", "{{USERNAME}}", "{{PASSWORD}}", "{{PRIORITY}}", "{{NOAUTOCONNECT}}", "{{NOEOS}}") + +- name: pmac.EncoderReadback + args: + - type: id + name: name + description: |- + Object name + - type: str + name: P + description: |- + PV prefix + - type: str + name: Q + description: |- + PV suffix + - type: object + name: PORT + description: |- + Controller port + - type: int + name: AXIS + description: |- + Axis number + - type: str + name: DESC + description: |- + Description + - type: str + name: EGU + description: |- + Engineering units + - type: float + name: ERES + description: |- + Encoder resolution + - type: int + name: PREC + description: |- + Readback precision + - type: enum + name: SCAN + description: |- + Scan rate + default: 0.1 second + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/encoder_readback.template args: - - type: id - name: name - description: Object name - - type: str - name: P - description: PV prefix - - type: str - name: Q - description: PV suffix - - type: object - name: PORT - description: Controller port - - type: int - name: AXIS - description: Axis number - - type: str - name: DESC - description: Description - - type: str - name: EGU - description: Engineering units - - type: float - name: ERES - description: Encoder resolution - - type: int - name: PREC - description: Readback precision - - type: str - name: SCAN - description: Scan rate - default: 0.1 second - - databases: - - file: $(PMAC)/db/encoder_readback.template - args: - ERES: - name: - SCAN: - EGU: - Q: - P: - PREC: - AXIS: - PORT: - DESC: - - - name: CS_bender - description: |- - Supporting template that allows setting of variables for a - bender CS + ERES: + name: + SCAN: + EGU: + Q: + P: + PREC: + DESC: + PORT: + AXIS: + +- name: pmac.RunCommand + args: + - type: id + name: name + description: |- + Object name + - type: str + name: P + description: |- + PV prefix + - type: str + name: R + description: |- + PV prefix + - type: object + name: BRICK + description: |- + Geobrick/PMAC + - type: str + name: COMMAND + description: |- + Command + - type: str + name: DESC + description: |- + Description + - type: str + name: PORT + description: |- + PMAC controller Port + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/run_command.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/bender.template - args: - P: - name: - COORD: - PORT: - - - name: CS_flexure_slits - description: |- - Supporting template that allows setting of variables for a - set of flexure slits + name: + P: + R: + COMMAND: + PORT: + DESC: + +- name: pmac._moveAxesToSafeTrig + args: + - type: str + name: A1 + description: |- + Template argument + - type: str + name: A2 + description: |- + Template argument + - type: str + name: A3 + description: |- + Template argument + - type: str + name: A4 + description: |- + Template argument + - type: str + name: A5 + description: |- + Template argument + - type: str + name: A6 + description: |- + Template argument + - type: str + name: P + description: |- + Template argument + - type: str + name: INPOS1 + description: |- + Template argument + - type: str + name: INPOS2 + description: |- + Template argument + - type: str + name: INPOS3 + description: |- + Template argument + - type: str + name: INPOS4 + description: |- + Template argument + - type: str + name: INPOS5 + description: |- + Template argument + - type: str + name: INPOS6 + description: |- + Template argument + - type: str + name: INPOS_CALC + description: |- + Template argument + description: |- + TODO:ADD DESCRIPTION + +- name: pmac.CS_IDT_sagittal_bender + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for an + IDT sagittal DCM CS + databases: + - file: $(PMAC)/db/IDT_sagittal_bender.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: PREC - description: Precision to display variables - default: "3" - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/flexure_slits.template - args: - PREC: - P: - name: - COORD: - PORT: - - - name: pmacMonitorVariables - description: |- - TODO:ADD DESCRIPTION + P: + PORT: + COORD: + name: + +- name: pmac.pmacDisableLimitsCheck + args: + - type: object + name: Controller + description: |- + Underlying PMAC or GeoBrick object + - type: int + name: Axis + description: |- + Axis number to disable limit check, defaults to all + description: |- + TODO:ADD DESCRIPTION + + pre_init: + - value: | + pmacDisableLimitsCheck("{{ControllerPort}}", {{Axis}}, 0) + # TODO - MISSING ARGS: ControllerPort + +- name: pmac.RunPlc + args: + - type: id + name: name + description: |- + Object name + - type: object + name: BRICK + description: |- + Geobrick/PMAC + - type: int + name: PLC + description: |- + PLC number + - type: str + name: DESC + description: |- + Description + - type: str + name: P + description: |- + PV Prefix + - type: str + name: PORT + description: |- + PMAC controller Port + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/run_plc.template args: - - type: object - name: Controller - description: Underlying PMAC or GeoBrick object - - type: str - name: Variables - description: Space separated list of pmac variables to monitor - - pre_init: - - type: text - value: | - pmacMonitorVariables("{{ControllerPort}}", "{{Variables}}") - # TODO - MISSING ARGS: ControllerPort - - - name: CS_gap_and_centre_slits + P: + DESC: + PLC: + PORT: + name: + +- name: pmac.dls_pmac_asyn_motor + args: + - type: str + name: P + description: |- + Device Prefix + - type: str + name: M + description: |- + Device Suffix + - type: object + name: PORT + description: |- + Delta tau motor controller + - type: str + name: ADDR + description: |- + Address on controller + - type: str + name: DESC + description: |- + Description, displayed on EDM screen + - type: str + name: MRES + description: |- + Motor Step Size (EGU) + - type: str + name: VELO + description: |- + Velocity (EGU/s) + - type: str + name: PREC + description: |- + Display Precision + - type: str + name: EGU + description: |- + Engineering Units + - type: str + name: TWV + description: |- + Tweak Step Size (EGU) + - type: object + name: SPORT + description: |- + Delta tau motor controller comms port + - type: str + name: DTYP + description: |- + DTYP of record + default: asynMotor + - type: str + name: DIR + description: |- + User Direction + default: '0' + - type: str + name: VBAS + description: |- + Base Velocity (EGU/s) + default: '0' + - type: str + name: VMAX + description: |- + Max Velocity (EGU/s), defaults to VELO + default: $(VELO) + - type: str + name: ACCL + description: |- + Seconds to Velocity + default: '0.5' + - type: str + name: BDST + description: |- + BL Distance (EGU) + default: '0' + - type: str + name: BVEL + description: |- + BL Velocity (EGU/s) + default: '0' + - type: str + name: BACC + description: |- + BL Seconds to Veloc. + - type: str + name: DHLM + description: |- + Dial High Limit + - type: str + name: DLLM + description: |- + Dial Low Limit + - type: str + name: HLM + description: |- + User High Limit + - type: str + name: LLM + description: |- + User Low Limit + - type: str + name: HLSV + description: |- + HW Lim. Violation Svr + default: MAJOR + - type: str + name: INIT + description: |- + Startup commands + - type: str + name: SREV + description: |- + Steps per Revolution + default: '1000' + - type: str + name: RRES + description: |- + Readback Step Size (EGU) + - type: str + name: ERES + description: |- + Encoder Step Size (EGU) + - type: str + name: JAR + description: |- + Jog Acceleration (EGU/s^2) + - type: str + name: UEIP description: |- - Supporting template that allows setting of variables for a - set of gap and slits + Use Encoder If Present + default: '0' + - type: str + name: URIP + description: |- + Use RDBL If Present + default: '0' + - type: str + name: RDBL + description: |- + Readback Location, set URIP = 1 if you specify this + - type: str + name: RLNK + description: |- + Readback output link + - type: str + name: RTRY + description: |- + Max retry count + default: '0' + - type: str + name: DLY + description: |- + Readback settle time (s) + default: '0' + - type: str + name: OFF + description: |- + User Offset (EGU) + default: '0' + - type: str + name: RDBD + description: |- + Retry Deadband (EGU) + - type: str + name: FOFF + description: |- + Freeze Offset, 0=variable, 1=frozen + default: '0' + - type: str + name: ADEL + description: |- + Alarm monitor deadband (EGU) + default: '0' + - type: str + name: NTM + description: |- + New Target Monitor, only set to 0 for soft motors + default: '1' + - type: str + name: FEHIGH + description: |- + HIGH limit for following error + default: '0' + - type: str + name: FEHIHI + description: |- + HIHI limit for following error + default: '0' + - type: str + name: FEHHSV + description: |- + HIHI alarm severity for following error + default: NO_ALARM + - type: str + name: FEHSV + description: |- + HIGH alarm severity for following error + default: NO_ALARM + - type: str + name: SCALE + description: |- + Scale factor, if pmacSetAxisScale is used this should be set + default: '1' + - type: str + name: HOMEVIS + description: |- + If 1 then home is visible on the gui + default: '1' + - type: str + name: HOMEVISSTR + description: |- + If HOMEVIS=0, then display this text on the gui instead + default: Use motor summary screen + - type: id + name: name + description: |- + Object name and gui association name + - type: str + name: alh + description: |- + set to '#' to comment out alh lines + default: None + - type: str + name: gda_name + description: |- + Name to export this as to GDA + - type: str + name: gda_desc + description: |- + Description to export this as to GDA + default: $(DESC) + - type: str + name: HOME + description: |- + the template contains enough records to keep the motor record happy + default: $(P) + - type: str + name: ALLOW_HOMED_SET + description: |- + status manually. This is set to a comment character by default. + default: '#' + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/dls_pmac_asyn_motor.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/gap_and_centre_slits.template - args: - P: - name: - COORD: - PORT: - - - name: CS_symetrie_hexapod - description: |- - TODO:ADD DESCRIPTION + VELO: + ACCL: + SCALE: + BACC: + alh: + gda_name: + DHLM: + HOMEVIS: + M: + EGU: + FEHSV: + VBAS: + VMAX: + HOME: + BDST: + PORT: + DIR: + DTYP: + FEHIGH: + DLLM: + INIT: + ALLOW_HOMED_SET: + RDBL: + SREV: + LLM: + ADEL: + SPORT: + RDBD: + URIP: + ADDR: + RTRY: + OFF: + ERES: + FEHIHI: + FEHHSV: + JAR: + P: + DESC: + BVEL: + MRES: + DLY: + HLSV: + UEIP: + name: + RRES: + PREC: + RLNK: + FOFF: + HLM: + NTM: + TWV: + gda_desc: + HOMEVISSTR: + +- name: pmac.CS_multi_beamstop_on_platform + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + multi beamstop on platform CS + databases: + - file: $(PMAC)/db/multi_beamstop_on_platform.template args: - - type: id - name: name - description: Object name - - type: str - name: P - description: Device prefix - - type: object - name: PORT - description: GeoBrick object - - type: int - name: COORD - description: Coordinate system number - - type: str - name: RX - description: GUI label for RX axis (axis 4) - default: RX - - type: str - name: RY - description: GUI label for RY axis (axis 5) - default: RY - - type: str - name: RZ - description: GUI label for RZ axis (axis 6) - default: RZ - - type: int - name: PREC - description: Precision of records - default: 3 - - databases: - - file: $(PMAC)/db/symetrie_hexapod.template - args: # TODO - MISSING ARGS: BRICK - name: - RX: - RY: - PREC: - P: - RZ: - COORD: - BRICK: - PORT: - - pre_init: - - type: text - value: | - pmacNoCsVelocity("{{PORT}}") - - - name: pmacCreateCsGroup - description: |- - Create a group of axis mappings to coordinate systems. Instantating a GeoBrickGlobalControl - will create a PV for switching between these groups + P: + PORT: + COORD: + name: + +- name: pmac.pmacSetCoordStepsPerUnit + args: + - type: int + name: CS + description: |- + Underlying CS object + - type: int + name: Axis + description: |- + Axis number to apply scale to + - type: float + name: Scale + description: |- + Scale factor the cts will be multiplied by before being passed to motor record + description: |- + Apply an integer scale factor to an axis on the PMAC + + pre_init: + - value: | + pmacSetCoordStepsPerUnit("{{Ref}}", {{Axis}}, {{Scale}}) + # TODO - MISSING ARGS: Ref + +- name: pmac._eloss_kill_autohome_records + args: + - type: str + name: SPORT + description: |- + usually PMAC_S for pmacs, the name of the pmacAsynIpPort for bricks + - type: str + name: P + description: |- + Template argument + - type: str + name: M + description: |- + Template argument + - type: str + name: PORT + description: |- + Template argument + - type: str + name: ADDR + description: |- + Template argument + - type: str + name: DESC + description: |- + Template argument + - type: str + name: PREC + description: |- + Template argument + - type: str + name: EGU + description: |- + Template argument + - type: str + name: HOME + description: |- + the template contains enough records to keep the motor record happy + default: $(P) + - type: str + name: PMAC + description: |- + onto pmacStatusAxis screen + default: $(P) + - type: str + name: ALLOW_HOMED_SET + description: |- + status manually. This is set to a comment character by default. + default: '#' + - type: id + name: name + description: |- + Template argument + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/eloss_kill_autohome_records.template args: - - type: object - name: Controller - description: Underlying PMAC3 or GeoBrick3 object - - type: int - name: GroupNumber - description: Unique Group number to describe this group - - type: str - name: GroupName - description: Description of the group - - type: int - name: AxisCount - description: Number of CS axes in this group - - pre_init: - - type: text - value: | - pmacCreateCsGroup("{{Controller}}", {{GroupNumber}}, "{{GroupName}}", {{AxisCount}}) - - - name: CS_qcm - description: |- - Use this template with CS_qcm.pmc to implement - a mode for changing energy that only moves Bragg1. + ADDR: + M: + PREC: + P: + ALLOW_HOMED_SET: + EGU: + DESC: + PMAC: + HOME: + SPORT: + PORT: + name: + +- name: pmac.CS_flexure_slits + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: PREC + description: |- + Precision to display variables + default: '3' + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + set of flexure slits + databases: + - file: $(PMAC)/db/flexure_slits.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: RADMRES1 - description: Scale factor to turn B1 units into Rads - - type: str - name: RADMRES2 - description: Scale factor to turn B2 units into Rads - - type: str - name: SCALE - description: the same as pmacSetAxisScale (usually 1 but may be 32) - default: "32" - - type: str - name: gda_name - description: GDA name - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/qcm.template - args: - SCALE: - name: - RADMRES2: - gda_name: - COORD: - P: - PORT: - RADMRES1: - - - name: pmacCsGroupAddAxis - description: |- - TODO:ADD DESCRIPTION + PREC: + P: + name: + COORD: + PORT: + +- name: pmac.pmacCsGroupAddAxis + args: + - type: object + name: Controller + description: |- + Underlying PMAC or GeoBrick object + - type: int + name: GroupNumber + description: |- + Unique Group number to describe this group + - type: int + name: AxisNumber + description: |- + Axis number of axis to add to the group + - type: str + name: AxisDef + description: |- + CS Axis definition for this axis i.e. one of I A B C U V W X Y Z (or may include linear equations) + - type: int + name: CoordSysNumber + description: |- + Axis number of axis to add to the group + description: |- + TODO:ADD DESCRIPTION + + pre_init: + - value: | + pmacCsGroupAddAxis({{Controller}}, {{GroupNumber}}, {{AxisNumber}}, {{AxisDef}}, {{CoordSysNumber}}) + +- name: pmac._pmacStatusAxis + args: + - type: str + name: PMAC + description: |- + Pmac/Geobrick name + - type: str + name: AXIS + description: |- + Axis number + - type: str + name: PORT + description: |- + Asyn port + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/pmacStatusAxis.template args: - - type: object - name: Controller - description: Underlying PMAC or GeoBrick object - - type: int - name: GroupNumber - description: Unique Group number to describe this group - - type: int - name: AxisNumber - description: Axis number of axis to add to the group - - type: str - name: AxisDef - description: - CS Axis definition for this axis i.e. one of I A B C U V W X Y Z - (or may include linear equations) - - type: int - name: CoordSysNumber - description: Axis number of axis to add to the group - - pre_init: - - type: text - value: | - pmacCsGroupAddAxis({{Controller}}, {{GroupNumber}}, {{AxisNumber}}, {{AxisDef}}, {{CoordSysNumber}}) - - - name: CS_multi_beamstop_on_platform - description: |- - Supporting template that allows setting of variables for a - multi beamstop on platform CS + AXIS: + PORT: + PMAC: + +- name: pmac.GeoBricketteMStop + args: + - type: str + name: P + description: |- + Mandatory. The PV device name prefix for the GeoBrickette for the motion stop. + - type: str + name: PORT + description: |- + Mandatory. The PMAC GeoBrickette serial comms port. + - type: str + name: TIMEOUT + description: |- + Optional. Defaults to 5. The asyn timeout - the EPICS aysn record TMOT fields. + default: '5' + - type: str + name: SCAN + description: |- + Optional. Defaults to 5 second. The scan rate on the status records - the EPICS record SCAN fields. + default: 5 second + - type: str + name: mstop_VAR + description: |- + Optional. Defaults to M7647. The pmac variable containing the Motion stop status. + default: M7647 + - type: str + name: active_VAR + description: |- + Optional. Defaults to I35. The pmac variable containing the Motion stop active status. If this is not set to active then the GeoBrickette will IGNORE its motion stop input signal. While it is sometimes made inactive during commissioning, it should not be the case during operation when it should be active. + default: I35 + - type: str + name: mstop_R + description: |- + Optional. Defaults to :MOTIONSTOP The record prefix for motion stop. + default: :MOTIONSTOP + - type: str + name: mstop_DESC + description: |- + Optional. Defaults to motion stop. The description of the motion stop signal. + default: motion stop + - type: str + name: mstop_ZNAM + description: |- + Optional. Defaults to Stopped. The zero value string label for the Motion Stop status - the EPICS record ZNAM field. + default: Stopped + - type: str + name: mstop_ONAM + description: |- + Optional. Defaults to Not Stopped. The one value string label for the Motion Stop status - the EPICS record ONAM field. + default: Not Stopped + - type: str + name: mstop_ZSV + description: |- + Optional. Defaults to MAJOR. The zero value motion stop alarm severity - the EPICS record ZSV field. + default: MAJOR + - type: str + name: mstop_OSV + description: |- + Optional. Defaults to NO_ALARM. The one value motion stop alarm severity - the EPICS record OSV field. + default: NO_ALARM + - type: str + name: active_R + description: |- + Optional. Defaults to :MOTIONSTOP_ACTIVE The record prefix for active status. + default: :MOTIONSTOP_ACTIVE + - type: str + name: active_DESC + description: |- + Optional. Defaults to mstop active. The description of the motion stop signal. + default: mstop active + - type: str + name: active_ZNAM + description: |- + Optional. Defaults to Not Active. The zero value string label for the active status - the EPICS record ZNAM field. + default: Not Active + - type: str + name: active_ONAM + description: |- + Optional. Defaults to Active. The one value string label for the active status - the EPICS record ONAM field. + default: Active + - type: str + name: active_ZSV + description: |- + Optional. Defaults to MINOR. The zero value alarm severity for the active status - the EPICS record ZSV field. + default: MINOR + - type: str + name: active_OSV + description: |- + Optional. Defaults to NO_ALARM. The one value alarm severity for the active status - the EPICS record OSV field. + default: NO_ALARM + description: |- + To read the motion stop info and interpret the status for a pmac GeoBrickette. They do motion stop in firmware and (unlike earlier pmac models like GeoBricks and pmac/umac systems) do not need PLC2. + databases: + - file: $(PMAC)/db/geobrickette_motion_stop.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/multi_beamstop_on_platform.template - args: - P: - name: - COORD: - PORT: - - - name: dls_pmac_asyn_motor - description: |- - TODO:ADD DESCRIPTION + mstop_ZNAM: + mstop_OSV: + active_VAR: + SCAN: + mstop_ZSV: + mstop_R: + active_ONAM: + active_R: + PORT: + active_ZNAM: + mstop_DESC: + mstop_VAR: + active_DESC: + TIMEOUT: + active_ZSV: + mstop_ONAM: + P: + active_OSV: + +- name: pmac._powerPmacStatusT + args: + - type: str + name: PORT + description: |- + The asyn port for the pmac controller + - type: str + name: P + description: |- + PV Prefix + description: |- + Creates some PVs for monitoring status of the power pmac controller, + not compatible with pmac + databases: + - file: $(PMAC)/db/powerPmacStatus.template args: - - type: str - name: P - description: Device Prefix - - type: str - name: M - description: Device Suffix - - type: object - name: PORT - description: Delta tau motor controller - - type: str - name: ADDR - description: Address on controller - - type: str - name: DESC - description: Description, displayed on EDM screen - - type: str - name: MRES - description: Motor Step Size (EGU) - - type: str - name: VELO - description: Velocity (EGU/s) - - type: str - name: PREC - description: Display Precision - - type: str - name: EGU - description: Engineering Units - - type: str - name: TWV - description: Tweak Step Size (EGU) - - type: object - name: SPORT - description: Delta tau motor controller comms port - - type: str - name: DTYP - description: DTYP of record - default: asynMotor - - type: str - name: DIR - description: User Direction - default: "0" - - type: str - name: VBAS - description: Base Velocity (EGU/s) - default: "0" - - type: str - name: VMAX - description: Max Velocity (EGU/s), defaults to VELO - default: $(VELO) - - type: str - name: ACCL - description: Seconds to Velocity - default: "0.5" - - type: str - name: BDST - description: BL Distance (EGU) - default: "0" - - type: str - name: BVEL - description: BL Velocity (EGU/s) - default: "0" - - type: str - name: BACC - description: BL Seconds to Veloc. - - type: str - name: DHLM - description: Dial High Limit - - type: str - name: DLLM - description: Dial Low Limit - - type: str - name: HLM - description: User High Limit - - type: str - name: LLM - description: User Low Limit - - type: str - name: HLSV - description: HW Lim. Violation Svr - default: MAJOR - - type: str - name: INIT - description: Startup commands - - type: str - name: SREV - description: Steps per Revolution - default: "1000" - - type: str - name: RRES - description: Readback Step Size (EGU) - - type: str - name: ERES - description: Encoder Step Size (EGU) - - type: str - name: JAR - description: Jog Acceleration (EGU/s^2) - - type: str - name: UEIP - description: Use Encoder If Present - default: "0" - - type: str - name: URIP - description: Use RDBL If Present - default: "0" - - type: str - name: RDBL - description: Readback Location, set URIP = 1 if you specify this - - type: str - name: RLNK - description: Readback output link - - type: str - name: RTRY - description: Max retry count - default: "0" - - type: str - name: DLY - description: Readback settle time (s) - default: "0" - - type: str - name: OFF - description: User Offset (EGU) - default: "0" - - type: str - name: RDBD - description: Retry Deadband (EGU) - - type: str - name: FOFF - description: Freeze Offset, 0=variable, 1=frozen - default: "0" - - type: str - name: ADEL - description: Alarm monitor deadband (EGU) - default: "0" - - type: str - name: NTM - description: New Target Monitor, only set to 0 for soft motors - default: "1" - - type: str - name: FEHIGH - description: HIGH limit for following error - default: "0" - - type: str - name: FEHIHI - description: HIHI limit for following error - default: "0" - - type: str - name: FEHHSV - description: HIHI alarm severity for following error - default: NO_ALARM - - type: str - name: FEHSV - description: HIGH alarm severity for following error - default: NO_ALARM - - type: str - name: SCALE - description: Scale factor, if pmacSetAxisScale is used this should be set - default: "1" - - type: str - name: HOMEVIS - description: If 1 then home is visible on the gui - default: "1" - - type: str - name: HOMEVISSTR - description: If HOMEVIS=0, then display this text on the gui instead - default: Use motor summary screen - - type: id - name: name - description: Object name and gui association name - - type: str - name: alh - description: set to '#' to comment out alh lines - default: None - - type: str - name: gda_name - description: Name to export this as to GDA - - type: str - name: gda_desc - description: Description to export this as to GDA - default: $(DESC) - - type: str - name: HOME - description: the template contains enough records to keep the motor record happy - default: $(P) - - type: str - name: ALLOW_HOMED_SET - description: status manually. This is set to a comment character by default. - default: "#" - - databases: - - file: $(PMAC)/db/dls_pmac_asyn_motor.template - args: # TODO - MISSING ARGS: PMAC - VELO: - HOMEVISSTR: - SCALE: - BACC: - alh: - ACCL: - gda_name: - DHLM: - HOMEVIS: - M: - EGU: - FEHSV: - VBAS: - HLSV: - PMAC: - VMAX: - HOME: - BDST: - PORT: - SREV: - DTYP: - FEHIGH: - DLLM: - name: - INIT: - ALLOW_HOMED_SET: - RDBL: - DIR: - LLM: - ADEL: - SPORT: - RDBD: - URIP: - RTRY: - OFF: - UEIP: - FEHIHI: - FEHHSV: - JAR: - P: - BVEL: - MRES: - DLY: - DESC: - ERES: - ADDR: - RRES: - PREC: - RLNK: - FOFF: - HLM: - NTM: - TWV: - gda_desc: - - - name: PowerPMAC - description: |- - This will create an asyn motor port for a PowerPMAC that we can attach - motor records to using the model 3 driver + P: + PORT: - args: - - type: object - name: Port - description: pmacAsynSSHPort to connect to - - type: str - name: P - description: PV Prefix - - type: id - name: name - description: Name to use for the asyn port - - type: int - name: NAxes - description: Number of axes - default: 8 - - type: int - name: IdlePoll - description: Idle Poll Period in ms - default: 1000 - - type: int - name: MovingPoll - description: Moving Poll Period in ms - default: 100 - - type: str - name: NAXES - description: Number of axes - default: "8" - - type: str - name: TIMEOUT - description: Timeout for controller communication - default: "4" - - type: str - name: FEEDRATE - description: feedrate below which we go into error - default: "100" - - databases: - - file: $(PMAC)/db/pmacController.template - args: # TODO - MISSING ARGS: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, PORT - FEEDRATE: - CSG7: - CSG6: - CSG5: - CSG4: - CSG3: - CSG2: - CSG1: - CSG0: - P: - TIMEOUT: - NAXES: - PORT: - - file: $(PMAC)/db/pmacStatusAxis.template - args: # TODO - MISSING ARGS: PORT, PMAC, AXIS - PMAC: - PORT: - AXIS: - - file: $(PMAC)/db/powerPmacStatus.template - args: # TODO - MISSING ARGS: PORT - P: - PORT: - - pre_init: - - type: text - value: | - # Configure Model 3 Controller Driver (ControlerPort, LowLevelDriverPort, Address, Axes, MovingPoll, IdlePoll) - pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) - # Configure Model 3 Axes Driver (Controler Port, Axis Count) - pmacCreateAxes("{{name}}", {{NAxes}}) - # TODO - MISSING ARGS: PortName - - - name: pmacVmeConfig - description: |- - This will create an AsynPort connecting to a PMAC or GeoBrick over VME +- name: pmac.pmacAsynIPPort + args: + - type: id + name: name + description: |- + Port Name, normally something like BRICK1port + - type: str + name: IP + description: |- + IP address of the geobrick + - type: str + name: simulation + description: |- + IP port to connect to if in simulation mode + description: |- + This will create an AsynPort connecting to a PMAC or GeoBrick over IP + + pre_init: + - value: | + # Create IP Port (PortName, IPAddr) + pmacAsynIPConfigure("{{name}}", "{{IP}}") + +- name: pmac.pmacVariableRead + args: + - type: str + name: P + description: |- + PV prefix + - type: str + name: Q + description: |- + PV suffix + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: VAR + description: |- + Variable on PMAC to read from, e.g. P700 + - type: str + name: EGU + description: |- + Engineering units + - type: str + name: VARIABLE_PREC + description: |- + Variable Record precision + - type: str + name: DTYP + description: |- + asyn DTYP (e.g., asynFloat64, asynInt32) + default: asynFloat64 + - type: str + name: TYPE + description: |- + PMAC variable type (D=double, I=integer, H=hex, S=string) + default: D + - type: str + name: SPEED + description: |- + Speed to read at (F=motor scan rates, M=medium (2 s), S=slow (5 s)) + default: M + - type: id + name: name + description: |- + Template argument + - type: str + name: LABEL + description: |- + Label for GUI + description: |- + Simple template that reads a variable on a + PMAC or geoBrick via dynamic parameters. + databases: + - file: $(PMAC)/db/pmacVariableRead.template args: - - type: str - name: Prefix - description: - Prefix for asyn port name, Default of PMAC_S will give PMAC_S0, PMAC_S1, - etc. - default: PMAC_S - - type: str - name: simulation - description: IP port to connect to if in simulation mode - - type: int - name: priority - description: Priority to give the asyn serial ports - default: 0 - - pre_init: - - type: text - value: | - pmacVmeDebug=1 - drvPmacDebug=1 - # Configure %d PMAC cards - pmacVmeConfig(%d, 0x%dfa000, 0x%d00000, 0xC%d, %d) - # Startup driver for DPRAM ASCII buffer - pmacDrv() - pmacVmeDebug=0 - drvPmacDebug=0 - pmacAsynConfig(0, "%s", %d) - - - name: CS_B22_Optics_Box - description: |- - Supporting template that allows setting of variables for a - B22 optics box CS + Q: + name: + DTYP: + TYPE: + EGU: + LABEL: + VARIABLE_PREC: + P: + VAR: + SPEED: + PORT: + +- name: pmac._motor_in_cs_records + args: + - type: str + name: P + description: |- + Template argument + - type: str + name: M + description: |- + Template argument + - type: str + name: PORT + description: |- + Template argument + - type: str + name: ADDR + description: |- + Template argument + description: |- + TODO:ADD DESCRIPTION + databases: + - file: $(PMAC)/db/motor_in_cs.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: PREC - description: Precision to display variables - default: "3" - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/B22_optics_box.template - args: - PREC: - P: - name: - COORD: - PORT: - - - name: CS - description: |- - Creates some PVs for global control of the pmac controller, - namely programmed move time and deferred move control + P: + M: + PORT: + ADDR: + +- name: pmac.moveAxesToSafeMaster + args: + - type: id + name: name + description: |- + Name + - type: str + name: P + description: |- + Device Prefix + - type: enum + name: NO_OF_AXES + description: |- + Number of axes + description: |- + TODO:ADD DESCRIPTION + +- name: pmac.CS_blade_slits + args: + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: BPPV + description: |- + Pv of real BP motor, e.g. $(P):X:PLUS + - type: str + name: BMPV + description: |- + Pv of real BM motor, e.g. $(P):X:MINUS + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + set of blade slits + databases: + - file: $(PMAC)/db/blade_slits.template args: - - type: id - name: name - description: CS Name (for asyn port that motor records are connected to) - - type: object - name: Controller - description: Underlying PMAC or GeoBrick object - - type: int - name: CS - description: Coordinate System Number for the cs controller - - type: str - name: PARENTPORT - description: The asyn port for the parent pmac controller - - type: int - name: PLCNum - description: PLC Number, defaults to CS + 15 - - type: int - name: NAxes - description: Number of axes - default: 9 - - type: int - name: Program - description: Motion Program to run - default: 10 - - type: int - name: IdlePoll - description: Idle Poll Period in ms - default: 500 - - type: int - name: MovingPoll - description: Moving Poll Period in ms - default: 100 - - type: str - name: TIMEOUT - description: Timeout for controller communication - default: "4" - - databases: - - file: $(PMAC)/db/pmacCsController.template - args: # TODO - MISSING ARGS: PMAC, PORT - CS: - PARENTPORT: - PMAC: - TIMEOUT: - PORT: - - pre_init: - - type: text - value: | - # Create CS (CSPortName, ControllerPort, CSNumber, ProgramNumber) - pmacCreateCS("{{name}}", "{{PortName}}", {{CS}}, {{Program}}) - # Configure Model 3 CS Axes Driver (CSPortName, CSAxisCount) - pmacCreateCSAxes("{{name}}", {{NAxes}}) - # TODO - MISSING ARGS: PortName - - - name: CS_3jack - description: |- - Supporting template that allows setting of variables for a - 3jack CS + P: + BPPV: + name: + BMPV: + +- name: pmac.PMAC + args: + - type: object + name: Port + description: |- + pmacAsynSSHPort to connect to + - type: str + name: P + description: |- + PV Prefix + - type: id + name: name + description: |- + Name to use for the asyn port + - type: int + name: NAxes + description: |- + Number of axes + default: 32 + - type: int + name: IdlePoll + description: |- + Idle Poll Period in ms + default: 1000 + - type: int + name: MovingPoll + description: |- + Moving Poll Period in ms + default: 100 + - type: str + name: NAXES + description: |- + Number of axes + default: '8' + - type: str + name: TIMEOUT + description: |- + Timeout for controller communication + default: '4' + - type: str + name: FEEDRATE + description: |- + feedrate below which we go into error + default: '100' + - type: str + name: PMAC + description: |- + Pmac/Geobrick name + - type: str + name: AXIS + description: |- + Axis number + - type: str + name: PORT + description: |- + Asyn port + - type: str + name: CSG0 + description: |- + Name for Coordinate System Group 0 + - type: str + name: CSG1 + description: |- + Name for Coordinate System Group 1 + - type: str + name: CSG2 + description: |- + Name for Coordinate System Group 2 + - type: str + name: CSG3 + description: |- + Name for Coordinate System Group 3 + - type: str + name: CSG4 + description: |- + Name for Coordinate System Group 4 + - type: str + name: CSG5 + description: |- + Name for Coordinate System Group 5 + - type: str + name: CSG6 + description: |- + Name for Coordinate System Group 6 + - type: str + name: CSG7 + description: |- + Name for Coordinate System Group 7 + description: |- + This will create an asyn motor port for a PMAC that we can attach + motor records to using the model 3 driver + databases: + - file: $(PMAC)/db/pmacStatusAxis.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: PREC - description: Precision to display variables - default: "3" - - type: str - name: J1PV - description: Pv of real Jack1 motor, e.g. $(P):J1 - default: $(P):J1 - - type: str - name: J2PV - description: Pv of real Jack1 motor, e.g. $(P):J2 - default: $(P):J2 - - type: str - name: J3PV - description: Pv of real Jack1 motor, e.g. $(P):J3 - default: $(P):J3 - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/3jack.template - args: - name: - J2PV: - P: - J1PV: - COORD: - J3PV: - PORT: - PREC: - - - name: moveAxesToSafeMaster - description: |- - TODO:ADD DESCRIPTION - + AXIS: + PORT: + PMAC: + - file: $(PMAC)/db/pmacController.template args: - - type: id - name: name - description: Name - - type: str - name: P - description: Device Prefix - - type: int - name: NO_OF_AXES - description: Number of axes - - - name: GeoBrickTrajectoryControlT + FEEDRATE: + CSG7: + CSG6: + CSG5: + CSG4: + CSG3: + CSG2: + CSG1: + CSG0: + P: + TIMEOUT: + NAXES: + PORT: + + pre_init: + - value: | + # Configure Model 3 Controller Driver (ControlerPort, LowLevelDriverPort, Address, Axes, MovingPoll, IdlePoll) + pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) + # Configure Model 3 Axes Driver (Controler Port, Axis Count) + pmacCreateAxes("{{name}}", {{NAxes}}) + # TODO - MISSING ARGS: PortName + +- name: pmac.GeoBrick + args: + - type: object + name: Port + description: |- + pmacAsynIPPort/pmacVmeConfig to connect to + - type: str + name: P + description: |- + PV Prefix + - type: id + name: name + description: |- + Name to use for the asyn port + - type: int + name: IdlePoll + description: |- + Idle Poll Period in ms + default: 500 + - type: int + name: MovingPoll + description: |- + Moving Poll Period in ms + default: 100 + - type: str + name: ControlIP description: |- - Creates some PVs for executing trajectory scans on the pmac controller by - instantiating an instance of pmacTrajectoryAxis.template for each axis + IP/Hostname for dls-pmac-control (CSS) + - type: str + name: ControlPort + description: |- + Port for dls-pmac-control (CSS) + - type: enum + name: ControlMode + description: |- + Terminal server or Ethernet for dls-pmac-control (CSS) + - type: str + name: Description + description: |- + Description for pmac status screen (CSS) + - type: str + name: NAXES + description: |- + Number of axes + default: '8' + - type: str + name: TIMEOUT + description: |- + Timeout for controller communication + default: '4' + - type: str + name: FEEDRATE + description: |- + feedrate below which we go into error + default: '100' + - type: str + name: PORT + description: |- + The asyn port for the pmac controller + - type: str + name: NAME + description: |- + Object name + - type: str + name: PMAC + description: |- + Pmac/Geobrick name + - type: str + name: AXIS + description: |- + Axis number + - type: str + name: CSG0 + description: |- + Name for Coordinate System Group 0 + - type: str + name: CSG1 + description: |- + Name for Coordinate System Group 1 + - type: str + name: CSG2 + description: |- + Name for Coordinate System Group 2 + - type: str + name: CSG3 + description: |- + Name for Coordinate System Group 3 + - type: str + name: CSG4 + description: |- + Name for Coordinate System Group 4 + - type: str + name: CSG5 + description: |- + Name for Coordinate System Group 5 + - type: str + name: CSG6 + description: |- + Name for Coordinate System Group 6 + - type: str + name: CSG7 + description: |- + Name for Coordinate System Group 7 + description: |- + This will create an asyn motor port for a GeoBrick that we can attach + motor records to using the model 3 driver + databases: + - file: $(PMAC)/db/pmacStatus.template args: - - type: object - name: PORT - description: Delta tau motor controller - - type: str - name: NPOINTS - description: Number of points that can be built at any time - - type: str - name: MAXPOINTS - description: Maximum number of points in a scan - default: "4000000" - - type: str - name: PREC - description: precision of axis defnitions - default: "3" - - databases: - - file: $(PMAC)/db/pmacControllerTrajectory.template - args: # TODO - MISSING ARGS: NAxes, PMAC - PMAC: - PREC: - NPOINTS: - MAXPOINTS: - NAxes: - PORT: - - - name: CS_blade_slits - description: |- - Supporting template that allows setting of variables for a - set of blade slits - + P: + PORT: + - file: $(PMAC)/db/pmacCSS.template args: - - type: str - name: P - description: Pv Prefix - - type: str - name: BPPV - description: Pv of real BP motor, e.g. $(P):X:PLUS - - type: str - name: BMPV - description: Pv of real BM motor, e.g. $(P):X:MINUS - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/blade_slits.template - args: - P: - BPPV: - name: - BMPV: - - - name: CS_2jack - description: |- - Supporting template that allows setting of variables for a - 2jack CS - + Description: + ControlPort: + ControlIP: + P: + ControlMode: + NAME: + - file: $(PMAC)/db/pmacStatusAxis.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: PREC - description: Precision to display variables - default: "3" - - type: str - name: J1PV - description: Pv of real Jack1 motor, e.g. $(P):J1 - default: $(P):J1 - - type: str - name: J2PV - description: Pv of real Jack2 motor, e.g. $(P):J2 - default: $(P):J2 - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/2jack.template - args: - name: - COORD: - P: - J1PV: - J2PV: - PORT: - PREC: - - - name: PMAC - description: |- - This will create an asyn motor port for a PMAC that we can attach - motor records to using the model 3 driver - + AXIS: + PORT: + PMAC: + - file: $(PMAC)/db/pmacController.template args: - - type: object - name: Port - description: pmacAsynSSHPort to connect to - - type: str - name: P - description: PV Prefix - - type: id - name: name - description: Name to use for the asyn port - - type: int - name: NAxes - description: Number of axes - default: 32 - - type: int - name: IdlePoll - description: Idle Poll Period in ms - default: 1000 - - type: int - name: MovingPoll - description: Moving Poll Period in ms - default: 100 - - type: str - name: NAXES - description: Number of axes - default: "8" - - type: str - name: TIMEOUT - description: Timeout for controller communication - default: "4" - - type: str - name: FEEDRATE - description: feedrate below which we go into error - default: "100" - - databases: - - file: $(PMAC)/db/pmacStatusAxis.template - args: # TODO - MISSING ARGS: PORT, PMAC, AXIS - PMAC: - PORT: - AXIS: - - file: $(PMAC)/db/pmacController.template - args: # TODO - MISSING ARGS: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, PORT - FEEDRATE: - CSG7: - CSG6: - CSG5: - CSG4: - CSG3: - CSG2: - CSG1: - CSG0: - P: - TIMEOUT: - NAXES: - PORT: - - pre_init: - - type: text - value: | - # Configure Model 3 Controller Driver (ControlerPort, LowLevelDriverPort, Address, Axes, MovingPoll, IdlePoll) - pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) - # Configure Model 3 Axes Driver (Controler Port, Axis Count) - pmacCreateAxes("{{name}}", {{NAxes}}) - # TODO - MISSING ARGS: PortName - - - name: moveAxesToSafeSlave - description: |- - TODO:ADD DESCRIPTION + FEEDRATE: + CSG7: + CSG6: + CSG5: + CSG4: + CSG3: + CSG2: + CSG1: + CSG0: + P: + TIMEOUT: + NAXES: + PORT: + + pre_init: + - value: | + # Configure Model 3 Controller Driver (ControlerPort, LowLevelDriverPort, Address, Axes, MovingPoll, IdlePoll) + pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) + # Configure Model 3 Axes Driver (Controler Port, Axis Count) + pmacCreateAxes("{{name}}", {{NAxes}}) + # TODO - MISSING ARGS: PortName, NAxes + +- name: pmac._moveAxesToSafe + args: + - type: str + name: POSITION + description: |- + Template argument + - type: str + name: P + description: |- + Template argument + - type: str + name: N + description: |- + Template argument + - type: str + name: THRESHOLD + description: |- + Template argument + - type: str + name: AXIS + description: |- + Template argument + description: |- + TODO:ADD DESCRIPTION + +- name: pmac._GeoBrickControllerT + args: + - type: str + name: PORT + description: |- + The asyn port for the pmac controller + - type: str + name: P + description: |- + PV Prefix + - type: str + name: NAXES + description: |- + Number of axes + default: '8' + - type: str + name: TIMEOUT + description: |- + Timeout for controller communication + default: '4' + - type: str + name: FEEDRATE + description: |- + feedrate below which we go into error + default: '100' + - type: str + name: CSG0 + description: |- + Name for Coordinate System Group 0 + - type: str + name: CSG1 + description: |- + Name for Coordinate System Group 1 + - type: str + name: CSG2 + description: |- + Name for Coordinate System Group 2 + - type: str + name: CSG3 + description: |- + Name for Coordinate System Group 3 + - type: str + name: CSG4 + description: |- + Name for Coordinate System Group 4 + - type: str + name: CSG5 + description: |- + Name for Coordinate System Group 5 + - type: str + name: CSG6 + description: |- + Name for Coordinate System Group 6 + - type: str + name: CSG7 + description: |- + Name for Coordinate System Group 7 + description: |- + Creates some PVs for global control of the pmac controller, + namely global feed rate and axis coordinate system assignment + databases: + - file: $(PMAC)/db/pmacController.template args: - - type: object - name: MASTER - description: Master - - type: str - name: AXIS - description: Axis PV - - type: int - name: POSITION - description: Safe Position - - type: float - name: THRESHOLD - description: In safe position threshold in EGUs - - - name: pmacAsynIPPort - description: |- - This will create an AsynPort connecting to a PMAC or GeoBrick over IP + FEEDRATE: + CSG7: + CSG6: + CSG5: + CSG4: + CSG3: + CSG2: + CSG1: + CSG0: + P: + TIMEOUT: + NAXES: + PORT: + +- name: pmac.pmacVmeConfig + args: + - type: str + name: Prefix + description: |- + Prefix for asyn port name, Default of PMAC_S will give PMAC_S0, PMAC_S1, etc. + default: PMAC_S + - type: str + name: simulation + description: |- + IP port to connect to if in simulation mode + - type: int + name: priority + description: |- + Priority to give the asyn serial ports + description: |- + This will create an AsynPort connecting to a PMAC or GeoBrick over VME + + pre_init: + - value: | + pmacVmeDebug=1 + drvPmacDebug=1 + # Configure %d PMAC cards + pmacVmeConfig(%d, 0x%dfa000, 0x%d00000, 0xC%d, %d) + # Startup driver for DPRAM ASCII buffer + pmacDrv() + pmacVmeDebug=0 + drvPmacDebug=0 + pmacAsynConfig(0, "%s", %d) + +- name: pmac.CS_B22_Optics_Box + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: PREC + description: |- + Precision to display variables + default: '3' + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + B22 optics box CS + databases: + - file: $(PMAC)/db/B22_optics_box.template args: - - type: id - name: name - description: Port Name, normally something like BRICK1port - - type: str - name: IP - description: IP address of the geobrick - - type: str - name: simulation - description: IP port to connect to if in simulation mode - - pre_init: - - type: text - value: | - # Create IP Port (PortName, IPAddr) - pmacAsynIPConfigure("{{name}}", "{{IP}}") - - - name: GeoBrick - description: |- - This will create an asyn motor port for a GeoBrick that we can attach - motor records to using the model 3 driver + PREC: + P: + name: + COORD: + PORT: + +- name: pmac.pmacSetOpenLoopEncoderAxis + args: + - type: object + name: Controller + description: |- + Underlying PMAC or GeoBrick object + - type: int + name: Axis + description: |- + Motor axis number + - type: int + name: Encoder_axis + description: |- + Encoder axis number + description: |- + TODO:ADD DESCRIPTION + + pre_init: + - value: | + pmacSetOpenLoopEncoderAxis("{{ControllerPort}}", {{Axis}}, {{Encoder_axis}}) + # TODO - MISSING ARGS: ControllerPort + +- name: pmac.pmacMonitorVariables + args: + - type: object + name: Controller + description: |- + Underlying PMAC or GeoBrick object + - type: str + name: Variables + description: |- + Space separated list of pmac variables to monitor + description: |- + TODO:ADD DESCRIPTION + + pre_init: + - value: | + pmacMonitorVariables("{{ControllerPort}}", "{{Variables}}") + # TODO - MISSING ARGS: ControllerPort + +- name: pmac.pmacCreateCsGroup + args: + - type: object + name: Controller + description: |- + Underlying PMAC3 or GeoBrick3 object + - type: int + name: GroupNumber + description: |- + Unique Group number to describe this group + - type: str + name: GroupName + description: |- + Description of the group + - type: int + name: AxisCount + description: |- + Number of CS axes in this group + description: |- + Create a group of axis mappings to coordinate systems. Instantating a GeoBrickGlobalControl + will create a PV for switching between these groups + + pre_init: + - value: | + pmacCreateCsGroup("{{Controller}}", {{GroupNumber}}, "{{GroupName}}", {{AxisCount}}) + +- name: pmac.CS_gap_and_centre_slits + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + set of gap and slits + databases: + - file: $(PMAC)/db/gap_and_centre_slits.template args: - - type: object - name: Port - description: pmacAsynIPPort/pmacVmeConfig to connect to - - type: str - name: P - description: PV Prefix - - type: id - name: name - description: Name to use for the asyn port - - type: int - name: IdlePoll - description: Idle Poll Period in ms - default: 500 - - type: int - name: MovingPoll - description: Moving Poll Period in ms - default: 100 - - type: str - name: ControlIP - description: IP/Hostname for dls-pmac-control (CSS) - - type: str - name: ControlPort - description: Port for dls-pmac-control (CSS) - - type: str - name: ControlMode - description: Terminal server or Ethernet for dls-pmac-control (CSS) - - type: str - name: Description - description: Description for pmac status screen (CSS) - - type: str - name: NAXES - description: Number of axes - default: "8" - - type: str - name: TIMEOUT - description: Timeout for controller communication - default: "4" - - type: str - name: FEEDRATE - description: feedrate below which we go into error - default: "100" - - databases: - - file: $(PMAC)/db/pmacStatus.template - args: # TODO - MISSING ARGS: PORT - P: - PORT: - - file: $(PMAC)/db/pmacCSS.template - args: # TODO - MISSING ARGS: NAME - Description: - ControlPort: - ControlIP: - P: - ControlMode: - NAME: - - file: $(PMAC)/db/pmacStatusAxis.template - args: # TODO - MISSING ARGS: PORT, PMAC, AXIS - PMAC: - PORT: - AXIS: - - file: $(PMAC)/db/pmacController.template - args: # TODO - MISSING ARGS: CSG7, CSG6, CSG5, CSG4, CSG3, CSG2, CSG1, CSG0, PORT - FEEDRATE: - CSG7: - CSG6: - CSG5: - CSG4: - CSG3: - CSG2: - CSG1: - CSG0: - P: - TIMEOUT: - NAXES: - PORT: - - pre_init: - - type: text - value: | - # Configure Model 3 Controller Driver (ControlerPort, LowLevelDriverPort, Address, Axes, MovingPoll, IdlePoll) - pmacCreateController("{{name}}", "{{PortName}}", 0, {{NAxes}}, {{MovingPoll}}, {{IdlePoll}}) - # Configure Model 3 Axes Driver (Controler Port, Axis Count) - pmacCreateAxes("{{name}}", {{NAxes}}) - # TODO - MISSING ARGS: PortName, NAxes - - - name: CS_aperture_slits - description: |- - Supporting template that allows setting of variables for a - set of aperture slits + P: + PORT: + COORD: + name: + +- name: pmac.CS_accel_dcm + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for an + accel DCM CS + databases: + - file: $(PMAC)/db/accel_dcm.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: APPV - description: Pv of real AP motor, e.g. $(P):XA - - type: str - name: AMPV - description: Pv of real AM motor, e.g. $(P):XB - - type: str - name: PREC - description: Precision to display variables - default: "3" - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/aperture_slits.template - args: - name: - APPV: - COORD: - P: - PREC: - AMPV: - PORT: - - - name: CS_1jack_compensated - description: |- - Supporting template that allows setting of variables for a - 2jack CS + P: + PORT: + COORD: + name: + +- name: pmac.CS_3jack_mirror + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: PREC + description: |- + Precision to display variables + default: '3' + - type: str + name: AEGU + description: |- + EGU for angular variables + default: deg + - type: str + name: J1PV + description: |- + Pv of real Jack1 motor, e.g. $(P):J1 + default: $(P):J1 + - type: str + name: J2PV + description: |- + Pv of real Jack1 motor, e.g. $(P):J2 + default: $(P):J2 + - type: str + name: J3PV + description: |- + Pv of real Jack1 motor, e.g. $(P):J3 + default: $(P):J3 + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + 3jack mirror CS + databases: + - file: $(PMAC)/db/3jack_mirror.template args: - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: P - description: Pv Prefix - - type: str - name: COORD - description: Co-ordinate system number - - type: str - name: PREC - description: Precision to display variables - default: "3" - - type: str - name: JPV - description: Pv of real Jack motor, e.g. $(P):JACK - default: $(P):JACK - - type: str - name: TPV - description: Pv of real Translation motor, e.g. $(P):Y - default: $(P):Y - - type: id - name: name - description: This associates an edm screen with the template - - databases: - - file: $(PMAC)/db/1jack_compensated.template - args: - name: - TPV: - COORD: - P: - PREC: - PORT: - JPV: - - - name: GeoBricketteMStop - description: |- - To read the motion stop info and interpret the status for a pmac GeoBrickette. They do motion stop in firmware and (unlike earlier pmac models like GeoBricks and pmac/umac systems) do not need PLC2. + PREC: + J1PV: + COORD: + P: + AEGU: + J3PV: + J2PV: + PORT: + name: + +- name: pmac.CS_bender + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + bender CS + databases: + - file: $(PMAC)/db/bender.template args: - - type: str - name: P - description: - Mandatory. The PV device name prefix for - the GeoBrickette for the motion stop. - - type: str - name: PORT - description: - Mandatory. The PMAC GeoBrickette serial - comms port. - - type: str - name: TIMEOUT - description: - Optional. Defaults to 5. The asyn timeout - the EPICS - aysn record TMOT fields. - default: "5" - - type: str - name: SCAN - description: - Optional. Defaults to 5 second. The scan rate on the status - records - the EPICS record SCAN fields. - default: 5 second - - type: str - name: mstop_VAR - description: - Optional. Defaults to M7647. The pmac variable containing - the Motion stop status. - default: M7647 - - type: str - name: active_VAR - description: - Optional. Defaults to I35. The pmac variable containing - the Motion stop active status. If this is not set to active then the GeoBrickette - will IGNORE its motion stop input signal. While it is sometimes made inactive - during commissioning, it should not be the case during operation when it should - be active. - default: I35 - - type: str - name: mstop_R - description: - Optional. Defaults to :MOTIONSTOP The record prefix for motion - stop. - default: :MOTIONSTOP - - type: str - name: mstop_DESC - description: - Optional. Defaults to motion stop. The description of the motion - stop signal. - default: motion stop - - type: str - name: mstop_ZNAM - description: - Optional. Defaults to Stopped. The zero value string label - for the Motion Stop status - the EPICS record ZNAM field. - default: Stopped - - type: str - name: mstop_ONAM - description: - Optional. Defaults to Not Stopped. The one value string label for - the Motion Stop status - the EPICS record ONAM field. - default: Not Stopped - - type: str - name: mstop_ZSV - description: - Optional. Defaults to MAJOR. The zero value motion stop alarm - severity - the EPICS record ZSV field. - default: MAJOR - - type: str - name: mstop_OSV - description: - Optional. Defaults to NO_ALARM. The one value motion stop alarm - severity - the EPICS record OSV field. - default: NO_ALARM - - type: str - name: active_R - description: - Optional. Defaults to :MOTIONSTOP_ACTIVE The record prefix for - active status. - default: :MOTIONSTOP_ACTIVE - - type: str - name: active_DESC - description: - Optional. Defaults to mstop active. The description of the motion - stop signal. - default: mstop active - - type: str - name: active_ZNAM - description: - Optional. Defaults to Not Active. The zero value string label - for the active status - the EPICS record ZNAM field. - default: Not Active - - type: str - name: active_ONAM - description: - Optional. Defaults to Active. The one value string label for - the active status - the EPICS record ONAM field. - default: Active - - type: str - name: active_ZSV - description: - Optional. Defaults to MINOR. The zero value alarm severity - for the active status - the EPICS record ZSV field. - default: MINOR - - type: str - name: active_OSV - description: - Optional. Defaults to NO_ALARM. The one value alarm severity - for the active status - the EPICS record OSV field. - default: NO_ALARM - - databases: - - file: $(PMAC)/db/geobrickette_motion_stop.template - args: - active_DESC: - mstop_ZNAM: - active_OSV: - active_VAR: - SCAN: - mstop_ZSV: - P: - mstop_R: - active_ONAM: - active_ZNAM: - mstop_DESC: - mstop_VAR: - active_R: - TIMEOUT: - active_ZSV: - mstop_ONAM: - PORT: - mstop_OSV: - - - name: RunCommand - description: |- - TODO:ADD DESCRIPTION + P: + PORT: + COORD: + name: + +- name: pmac.CS + args: + - type: id + name: name + description: |- + CS Name (for asyn port that motor records are connected to) + - type: object + name: Controller + description: |- + Underlying PMAC or GeoBrick object + - type: int + name: CS + description: |- + Coordinate System Number for the cs controller + - type: str + name: PARENTPORT + description: |- + The asyn port for the parent pmac controller + - type: int + name: PLCNum + description: |- + PLC Number, defaults to CS + 15 + - type: int + name: NAxes + description: |- + Number of axes + default: 9 + - type: int + name: Program + description: |- + Motion Program to run + default: 10 + - type: int + name: IdlePoll + description: |- + Idle Poll Period in ms + default: 500 + - type: int + name: MovingPoll + description: |- + Moving Poll Period in ms + default: 100 + - type: str + name: TIMEOUT + description: |- + Timeout for controller communication + default: '4' + - type: str + name: PORT + description: |- + The asyn port for the pmac cs controller + - type: str + name: PMAC + description: |- + PV Prefix for the motor controller + description: |- + Creates some PVs for global control of the pmac controller, + namely programmed move time and deferred move control + databases: + - file: $(PMAC)/db/pmacCsController.template args: - - type: id - name: name - description: Object name - - type: str - name: P - description: PV prefix - - type: str - name: R - description: PV prefix - - type: object - name: BRICK - description: Geobrick/PMAC - - type: str - name: COMMAND - description: Command - - type: str - name: DESC - description: Description - - databases: - - file: $(PMAC)/db/run_command.template - args: # TODO - MISSING ARGS: PORT - name: - P: - R: - COMMAND: - PORT: - DESC: - - - name: pmacVariableReadLED - description: |- - Simple template that reads an integer variable on a PMAC or - GeoBrick which can have a value of 1 or 0 and uses an LED widget. + CS: + PARENTPORT: + PORT: + TIMEOUT: + PMAC: + + pre_init: + - value: | + # Create CS (CSPortName, ControllerPort, CSNumber, ProgramNumber) + pmacCreateCS("{{name}}", "{{PortName}}", {{CS}}, {{Program}}) + # Configure Model 3 CS Axes Driver (CSPortName, CSAxisCount) + pmacCreateCSAxes("{{name}}", {{NAxes}}) + # TODO - MISSING ARGS: PortName + +- name: pmac.CS_1jack_compensated + args: + - type: object + name: PORT + description: |- + Delta tau motor controller comms port + - type: str + name: P + description: |- + Pv Prefix + - type: str + name: COORD + description: |- + Co-ordinate system number + - type: str + name: PREC + description: |- + Precision to display variables + default: '3' + - type: str + name: JPV + description: |- + Pv of real Jack motor, e.g. $(P):JACK + default: $(P):JACK + - type: str + name: TPV + description: |- + Pv of real Translation motor, e.g. $(P):Y + default: $(P):Y + - type: id + name: name + description: |- + This associates an edm screen with the template + description: |- + Supporting template that allows setting of variables for a + 2jack CS + databases: + - file: $(PMAC)/db/1jack_compensated.template args: - - type: str - name: P - description: PV prefix - - type: str - name: Q - description: PV suffix - - type: object - name: PORT - description: Delta tau motor controller comms port - - type: str - name: VAR - description: Variable on PMAC to read from, e.g. P700 - - type: str - name: LABEL - description: Label for GUI - - type: str - name: SPEED - description: Speed to read at (F=motor scan rates, M=medium (2s), S=slow (5s)) - default: M - - type: str - name: ONAM - description: One name - default: On - - type: str - name: ZNAM - description: Zero name - default: Off - - type: str - name: OSV - description: One severity - default: NO_ALARM - - type: str - name: ZSV - description: Zero severity - default: NO_ALARM - - type: id - name: name - description: Template argument - - databases: - - file: $(PMAC)/db/pmacVariableReadLED.template - args: - ZSV: - name: - ONAM: - ZNAM: - LABEL: - Q: - P: - VAR: - OSV: - SPEED: - PORT: + name: + TPV: + PREC: + P: + COORD: + PORT: + JPV: diff --git a/tests/Dockerfile.adsimdetector b/tests/Dockerfile.adsimdetector index 5bdce4e..4a8db72 100644 --- a/tests/Dockerfile.adsimdetector +++ b/tests/Dockerfile.adsimdetector @@ -1,7 +1,7 @@ ##### build stage ############################################################## ARG TARGET_ARCHITECTURE -ARG BASE=23.9.3 +ARG BASE=7.0.7+ec1 ARG REGISTRY=ghcr.io/epics-containers FROM ${REGISTRY}/epics-base-${TARGET_ARCHITECTURE}-developer:${BASE} AS developer diff --git a/zebra/zebra.ibek.support.yaml b/zebra/zebra.ibek.support.yaml new file mode 100644 index 0000000..00ea2ad --- /dev/null +++ b/zebra/zebra.ibek.support.yaml @@ -0,0 +1,213 @@ + # yaml-language-server: $schema=https://github.com/epics-containers/ibek/releases/download/1.1.0/ibek.support.schema.json + +module: zebra + +defs: + +- name: zebra.zebraLastDivDiff + args: + - type: str + name: P + description: |- + Device prefix + - type: str + name: Q + description: |- + Device suffix + - type: str + name: DIV + description: |- + DIV number + - type: id + name: name + description: |- + Object and gui association name + description: |- + Makes a record pointing to DIV$(DIV) that will display the difference + between the last two DIV readings in position compare mode + + databases: + - file: $(ZEBRA)/db/zebraLastDivDiff.template + args: + Q: + P: + DIV: + name: + +- name: zebra.zebra + args: + - type: str + name: P + description: |- + Device prefix + - type: id + name: PORT + description: |- + Driver port name + - type: str + name: Q + description: |- + Device suffix + - type: object + name: serialPort + description: |- + Serial port name + - type: str + name: TIMEOUT + description: |- + Timeout + default: '1' + - type: str + name: ADDR + description: |- + Asyn Port address + default: '0' + - type: enum + name: SCANRATE + description: |- + Specified scan rate for cpu intensive PVs + default: I/O Intr + - type: int + name: NELM + description: |- + Number of elements in position capture arrays + default: 100000 + - type: str + name: PREC + description: |- + Precision to show position compare gate and pulse fields + default: '4' + - type: str + name: M1 + description: |- + Motor 1 PV + default: $(P)$(Q):NOMOTOR + - type: str + name: M1DIR + description: |- + Set to - if motor inverted in geobrick (decode control = 3 instead of 7) + default: + + - type: str + name: M1MULT + description: |- + Multiplier to account for DT scaling. E.g. if *4 encoder decode, set to 0.25 + default: '1' + - type: str + name: M1HOMESETTLE + description: |- + Time to wait after an autohome before setting zebra pos to readback pos + default: '5' + - type: str + name: M2 + description: |- + Motor 2 PV + default: $(P)$(Q):NOMOTOR + - type: str + name: M2DIR + description: |- + Set to - if motor inverted in geobrick (decode control = 3 instead of 7) + default: + + - type: str + name: M2MULT + description: |- + Multiplier to account for DT scaling. E.g. if *4 encoder decode, set to 0.25 + default: '1' + - type: str + name: M2HOMESETTLE + description: |- + Time to wait after an autohome before setting zebra pos to readback pos + default: '5' + - type: str + name: M3 + description: |- + Motor 3 PV + default: $(P)$(Q):NOMOTOR + - type: str + name: M3DIR + description: |- + Set to - if motor inverted in geobrick (decode control = 3 instead of 7) + default: + + - type: str + name: M3MULT + description: |- + Multiplier to account for DT scaling. E.g. if *4 encoder decode, set to 0.25 + default: '1' + - type: str + name: M3HOMESETTLE + description: |- + Time to wait after an autohome before setting zebra pos to readback pos + default: '5' + - type: str + name: M4 + description: |- + Motor 4 PV + default: $(P)$(Q):NOMOTOR + - type: str + name: M4DIR + description: |- + Set to - if motor inverted in geobrick (decode control = 3 instead of 7) + default: + + - type: str + name: M4MULT + description: |- + Multiplier to account for DT scaling. E.g. if *4 encoder decode, set to 0.25 + default: '1' + - type: str + name: M4HOMESETTLE + description: |- + Time to wait after an autohome before setting zebra pos to readback pos + default: '5' + - type: int + name: MAXBUF + description: |- + Maximum number of buffers (areaDetector) + default: 5 + - type: int + name: MAXMEM + description: |- + Maximum memory (areaDetector) + - type: str + name: R + description: |- + Device Suffix + - type: str + name: EMPTY + description: |- + Empty macro to satisfy VDCT + description: |- + Controls the zebra signal converter box + + databases: + - file: $(ZEBRA)/db/zebra.template + args: + M3: + M1DIR: + M3HOMESETTLE: + NELM: + M4MULT: + M4: + M1: + TIMEOUT: + M2: + PORT: + EMPTY: + SCANRATE: + M2HOMESETTLE: + M3MULT: + M4HOMESETTLE: + Q: + P: + R: + M1HOMESETTLE: + M2MULT: + ADDR: + M4DIR: + PREC: + M3DIR: + M1MULT: + M2DIR: + + pre_init: + - value: | + #zebraConfig(Port, SerialPort, MaxPosCompPoints, MaxBuffers, MaxMemory) + zebraConfig("{{PORT}}", "{{serialPort}}", {{NELM}}, {{MAXBUF}}, {{MAXMEM}})