Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions roles/deploy_ioc/vars/xspress3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
deploy_ioc_use_common: true
deploy_ioc_use_ad_common: false
deploy_ioc_required_module: xspress3_911d16d
deploy_ioc_executable: xspress3App

deploy_ioc_req_file_list:
- name: "auto_settings.req"
macros: "P=$(PREFIX)"

deploy_ioc_dbpf_list:

- pv: "$(PREFIX)det1:RUN_FLAGS"
value: 0
- pv: "$(PREFIX)det1:NUM_CHANNELS"
value: "$(NUM_CHANNELS)"
- pv: "$(PREFIX)det1:NumImages"
value: 16000
- pv: "$(PREFIX)det1:AcquireTime"
value: 0.25
- pv: "$(PREFIX)det1:CONNECT"
value: "1"
- pv: "$(PREFIX)det1:CTRL_DTC"
value: "Disable"
- pv: "$(PREFIX)det1:TriggerMode"
value: "Internal"
- pv: "$(PREFIX)det1:EraseOnStart"
value: "Yes"
- pv: "$(PREFIX)det1:FrameAdvance"
value: 0

# Enable Array Callbacks, set Attributes file
- pv: "$(PREFIX)det1:ArrayCallbacks"
value: "Enable"

# Configure HDF Plugin
- pv: "$(PREFIX)HDF1:FileTemplate"
value: "%s%s%d.hdf5"
- pv: "$(PREFIX)HDF1:FileWriteMode"
value: "Stream"
- pv: "$(PREFIX)HDF1:EnableCallbacks"
value: "Enable"
- pv: "$(PREFIX)HDF1:Compression"
value: "zlib"
- pv: "$(PREFIX)HDF1:ZLevel"
value: "1"
- pv: "$(PREFIX)HDF1:AutoIncrement"
value: "Yes"

# Configure PROC plugin spectra summing
- pv: "$(PREFIX)Proc1:EnableFilter"
value: "Enable"
- pv: "$(PREFIX)Proc1:FilterType"
value: "Sum"
- pv: "$(PREFIX)Proc1:EnableCallbacks"
value: "Enable"

# Disable EraseOnStart
- pv: "$(PREFIX)det1:EraseOnStart"
value: "No"

# Set path to calibration
- pv: "$(PREFIX)det1:CONFIG_PATH"
value: "$(CALIBRATION_DIR)"
sleep: 2


deploy_ioc_device_specific_env:
MAX_FRAMES: 16834
MAX_DRV_FRAMES: 16834
QSIZE: 512
CBUFFS: 8192
NUM_BINS: 4096
PORT: "XSP3"
CIRC_BUFFER: 1
3 changes: 3 additions & 0 deletions roles/device_roles/xspress3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# xspress3

Ansible role for deploying xspress3 IOC instances.
10 changes: 10 additions & 0 deletions roles/device_roles/xspress3/example.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
xspress3-01:
type: xspress3
environment:
ENGINEER: C. Engineer
PREFIX: XF:31ID1-ES{XSPRESS3:01}
NUM_CHANNELS: 8
NUM_CARDS: 4
XSPRESS3_IP: "192.168.0.1"
CALIBRATION_DIR: "/etc/xspress3/calibration/initial"
106 changes: 106 additions & 0 deletions roles/device_roles/xspress3/files/DefineSCAROI.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# setup SCA, ROIs, etc for channel CHAN
dbLoadRecords("xspress3_AttrReset.template", "P=$(PREFIX),R=det1:,CHAN=$(CHAN)")

#ROIs: take 2D array and turn it into two 1D spectra for each channel:
# 1 for per-frame spectra, 1 for accumulated spectra (using PROC plugin to do accumulation)
NDROIConfigure("CHAN$(CHAN)", "$(QSIZE)", 0, "XSP3", 0, -1, -1)
dbLoadRecords("NDROI.template", "P=$(PREFIX), R=ROI$(CHAN):, PORT=CHAN$(CHAN), TIMEOUT=1, ADDR=0, NDARRAY_PORT=$(PORT), NDARRAY_ADDR=0, Enabled=0")

NDROIConfigure("CHANSUM$(CHAN)", "$(QSIZE)", 0, "PROC1", 0, -1, -1)
dbLoadRecords("NDROI.template", "P=$(PREFIX), R=ROISUM$(CHAN):, PORT=CHANSUM$(CHAN), TIMEOUT=1, ADDR=0, NDARRAY_PORT=PROC1, NDARRAY_ADDR=0, Enabled=0")

#SCAs: create an NDAttribute plugin with 9 attributes
NDAttrConfigure("$(PORT).C$(CHAN)SCA", "$(QSIZE)", 0, "$(PORT)", 0, 12)
dbLoadRecords("NDAttribute.template", "P=$(PREFIX),R=C$(CHAN)SCA:, PORT=$(PORT).C$(CHAN)SCA, ADDR=0,TIMEOUT=1,NCHANS=$(MAX_FRAMES),NDARRAY_PORT=$(PORT)")

dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:0:, PORT=$(PORT).C$(CHAN)SCA, ADDR=0,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:1:, PORT=$(PORT).C$(CHAN)SCA, ADDR=1,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:2:, PORT=$(PORT).C$(CHAN)SCA, ADDR=2,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:3:, PORT=$(PORT).C$(CHAN)SCA, ADDR=3,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:4:, PORT=$(PORT).C$(CHAN)SCA, ADDR=4,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:5:, PORT=$(PORT).C$(CHAN)SCA, ADDR=5,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:6:, PORT=$(PORT).C$(CHAN)SCA, ADDR=6,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:7:, PORT=$(PORT).C$(CHAN)SCA, ADDR=7,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:8:, PORT=$(PORT).C$(CHAN)SCA, ADDR=8,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:9:, PORT=$(PORT).C$(CHAN)SCA, ADDR=9,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDAttributeN.template", "P=$(PREFIX),R=C$(CHAN)SCA:10:, PORT=$(PORT).C$(CHAN)SCA, ADDR=10,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")

NDTimeSeriesConfigure("$(PORT).C$(CHAN)SCA_TS", "$(QSIZE)", 0, "$(PORT)", 0, 12)
dbLoadRecords("$(ADCORE)/db/NDTimeSeries.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:, PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT).C$(CHAN)SCA,NDARRAY_ADDR=1,NCHANS=$(MAX_FRAMES),ENABLED=1")

dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:0:, NAME='CHAN$(CHAN)SCA0', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=0,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:1:, NAME='CHAN$(CHAN)SCA1', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=1,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:2:, NAME='CHAN$(CHAN)SCA2', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=2,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:3:, NAME='CHAN$(CHAN)SCA3', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=3,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:4:, NAME='CHAN$(CHAN)SCA4', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=4,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:5:, NAME='CHAN$(CHAN)SCA5', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=5,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:6:, NAME='CHAN$(CHAN)SCA6', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=6,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:7:, NAME='CHAN$(CHAN)SCA7', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=7,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:8:, NAME='CHAN$(CHAN)EventWidth', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=8,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:9:, NAME='CHAN$(CHAN)DTFactor', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=9,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDTimeSeriesN.template", "P=$(PREFIX),R=C$(CHAN)SCA:TS:10:, NAME='CHAN$(CHAN)DTPercent', PORT=$(PORT).C$(CHAN)SCA_TS, ADDR=10,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")

dbLoadRecords("xspress3ChannelSCAThreshold.template", "P=$(PREFIX),R=det1:,PORT=$(PORT), ADDR=$(CHM1), TIMEOUT=1, CHAN=$(CHAN), SCA=4")
dbLoadRecords("xspress3ChannelSCALimits.template", "P=$(PREFIX),R=det1:,PORT=$(PORT), ADDR=$(CHM1), TIMEOUT=1, CHAN=$(CHAN), SCA=5")
dbLoadRecords("xspress3ChannelSCALimits.template", "P=$(PREFIX),R=det1:,PORT=$(PORT), ADDR=$(CHM1), TIMEOUT=1, CHAN=$(CHAN), SCA=6")
dbLoadRecords("xspress3ChannelDTC.template", "P=$(PREFIX),R=det1:,PORT=$(PORT), CHAN=$(CHAN), NDARRAY_PORT=$(PORT),ADDR=$(CHM1),TIMEOUT=5")
dbLoadRecords("xspress3ChannelDeadtime.template", "P=$(PREFIX),R=det1:,PORT=$(PORT), ADDR=$(CHM1), TIMEOUT=1, CHAN=$(CHAN)")

#MCAs: create StdArray for Visualization:
NDStdArraysConfigure("MCA$(CHAN)", 5, 0, "CHAN$(CHAN)", 0, 0)
dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=MCA$(CHAN):,PORT=MCA$(CHAN),ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHAN$(CHAN),TYPE=Float64,FTVL=DOUBLE,NELEMENTS=$(NUM_BINS)")

NDStdArraysConfigure("MCASUM$(CHAN)", 5, 0, "CHANSUM$(CHAN)", 0, 0)
dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=MCASUM$(CHAN):,PORT=MCASUM$(CHAN),ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHANSUM$(CHAN),TYPE=Float64,FTVL=DOUBLE,NELEMENTS=$(NUM_BINS)")

#ROIStats: build 48 ROIs for each of the 1D spectra (per-frame).
NDROIStatConfigure("ROISTAT$(CHAN)", "$(QSIZE)", 0, "CHAN$(CHAN)", 0, 48, 0, 0)
dbLoadRecords("NDROIStat.template", "P=$(PREFIX),R=MCA$(CHAN)ROI: ,PORT=ROISTAT$(CHAN),ADDR=0,TIMEOUT=1, NDARRAY_PORT=CHAN$(CHAN),NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:1:,PORT=ROISTAT$(CHAN),ADDR=0,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:2:,PORT=ROISTAT$(CHAN),ADDR=1,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:3:,PORT=ROISTAT$(CHAN),ADDR=2,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:4:,PORT=ROISTAT$(CHAN),ADDR=3,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:5:,PORT=ROISTAT$(CHAN),ADDR=4,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:6:,PORT=ROISTAT$(CHAN),ADDR=5,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:7:,PORT=ROISTAT$(CHAN),ADDR=6,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:8:,PORT=ROISTAT$(CHAN),ADDR=7,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:9:,PORT=ROISTAT$(CHAN),ADDR=8,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:10:,PORT=ROISTAT$(CHAN),ADDR=9,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:11:,PORT=ROISTAT$(CHAN),ADDR=10,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:12:,PORT=ROISTAT$(CHAN),ADDR=11,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:13:,PORT=ROISTAT$(CHAN),ADDR=12,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:14:,PORT=ROISTAT$(CHAN),ADDR=13,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:15:,PORT=ROISTAT$(CHAN),ADDR=14,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:16:,PORT=ROISTAT$(CHAN),ADDR=15,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:17:,PORT=ROISTAT$(CHAN),ADDR=16,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:18:,PORT=ROISTAT$(CHAN),ADDR=17,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:19:,PORT=ROISTAT$(CHAN),ADDR=18,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:20:,PORT=ROISTAT$(CHAN),ADDR=19,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:21:,PORT=ROISTAT$(CHAN),ADDR=20,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:22:,PORT=ROISTAT$(CHAN),ADDR=21,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:23:,PORT=ROISTAT$(CHAN),ADDR=22,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:24:,PORT=ROISTAT$(CHAN),ADDR=23,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:25:,PORT=ROISTAT$(CHAN),ADDR=24,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:26:,PORT=ROISTAT$(CHAN),ADDR=25,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:27:,PORT=ROISTAT$(CHAN),ADDR=26,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:28:,PORT=ROISTAT$(CHAN),ADDR=27,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:29:,PORT=ROISTAT$(CHAN),ADDR=28,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:30:,PORT=ROISTAT$(CHAN),ADDR=29,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:31:,PORT=ROISTAT$(CHAN),ADDR=30,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:32:,PORT=ROISTAT$(CHAN),ADDR=31,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:33:,PORT=ROISTAT$(CHAN),ADDR=32,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:34:,PORT=ROISTAT$(CHAN),ADDR=33,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:35:,PORT=ROISTAT$(CHAN),ADDR=34,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:36:,PORT=ROISTAT$(CHAN),ADDR=35,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:37:,PORT=ROISTAT$(CHAN),ADDR=36,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:38:,PORT=ROISTAT$(CHAN),ADDR=37,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:39:,PORT=ROISTAT$(CHAN),ADDR=38,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:40:,PORT=ROISTAT$(CHAN),ADDR=39,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:41:,PORT=ROISTAT$(CHAN),ADDR=40,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:42:,PORT=ROISTAT$(CHAN),ADDR=41,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:43:,PORT=ROISTAT$(CHAN),ADDR=42,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:44:,PORT=ROISTAT$(CHAN),ADDR=43,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:45:,PORT=ROISTAT$(CHAN),ADDR=44,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:46:,PORT=ROISTAT$(CHAN),ADDR=45,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:47:,PORT=ROISTAT$(CHAN),ADDR=46,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
dbLoadRecords("NDROIStatN.template", "P=$(PREFIX),R=MCA$(CHAN)ROI:48:,PORT=ROISTAT$(CHAN),ADDR=47,TIMEOUT=1,NCHANS=$(MAX_FRAMES)")
103 changes: 103 additions & 0 deletions roles/device_roles/xspress3/files/SetChannelValues.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Load Default values for a single channel

dbpf("$(PREFIX)ROI$(CHAN):MinY", "$(CHM1)")
dbpf("$(PREFIX)ROISUM$(CHAN):MinY", "$(CHM1)")

# Disable SCA callbacks by default, otherwise performance is impacted a lot.
dbpf("$(PREFIX)C$(CHAN)SCA:EnableCallbacks", "Disable")

dbpf("$(PREFIX)C$(CHAN)SCA:0:AttrName", "CHAN$(CHAN)SCA0")
dbpf("$(PREFIX)C$(CHAN)SCA:1:AttrName", "CHAN$(CHAN)SCA1")
dbpf("$(PREFIX)C$(CHAN)SCA:2:AttrName", "CHAN$(CHAN)SCA2")
dbpf("$(PREFIX)C$(CHAN)SCA:3:AttrName", "CHAN$(CHAN)SCA3")
dbpf("$(PREFIX)C$(CHAN)SCA:4:AttrName", "CHAN$(CHAN)SCA4")
dbpf("$(PREFIX)C$(CHAN)SCA:5:AttrName", "CHAN$(CHAN)SCA5")
dbpf("$(PREFIX)C$(CHAN)SCA:6:AttrName", "CHAN$(CHAN)SCA6")
dbpf("$(PREFIX)C$(CHAN)SCA:7:AttrName", "CHAN$(CHAN)SCA7")
dbpf("$(PREFIX)C$(CHAN)SCA:8:AttrName", "CHAN$(CHAN)EventWidth")
dbpf("$(PREFIX)C$(CHAN)SCA:9:AttrName", "CHAN$(CHAN)DTFactor")
dbpf("$(PREFIX)C$(CHAN)SCA:10:AttrName", "CHAN$(CHAN)DTPercent")

dbpf("$(PREFIX)C$(CHAN)SCA:TS:0:Name", "CHAN$(CHAN)SCA0")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:1:Name", "CHAN$(CHAN)SCA1")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:2:Name", "CHAN$(CHAN)SCA2")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:3:Name", "CHAN$(CHAN)SCA3")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:4:Name", "CHAN$(CHAN)SCA4")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:5:Name", "CHAN$(CHAN)SCA5")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:6:Name", "CHAN$(CHAN)SCA6")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:7:Name", "CHAN$(CHAN)SCA7")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:8:Name", "CHAN$(CHAN)EventWidth")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:9:Name", "CHAN$(CHAN)DTFactor")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:10:Name", "CHAN$(CHAN)DTPercent")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:NDArrayAddress", "1")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:TSAcquireMode", "0")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:TSNumPoints", "NCHANS=$(MAX_FRAMES)")
dbpf("$(PREFIX)C$(CHAN)SCA:TS:TSRead.SCAN", ".5 second")

dbpf("$(PREFIX)ROI$(CHAN):EnableX", "Enable")
dbpf("$(PREFIX)ROI$(CHAN):EnableY", "Enable")
dbpf("$(PREFIX)ROI$(CHAN):EnableZ", "Disable")
dbpf("$(PREFIX)ROI$(CHAN):SizeY", "1")
dbpf("$(PREFIX)ROISUM$(CHAN):EnableX", "Enable")
dbpf("$(PREFIX)ROISUM$(CHAN):EnableY", "Enable")
dbpf("$(PREFIX)ROISUM$(CHAN):SizeY", "1")

dbpf("$(PREFIX)ROI$(CHAN):EnableCallbacks", "Enable")
dbpf("$(PREFIX)MCA$(CHAN):EnableCallbacks", "Enable")
dbpf("$(PREFIX)ROISUM$(CHAN):EnableCallbacks", "Enable")
dbpf("$(PREFIX)MCASUM$(CHAN):EnableCallbacks", "Enable")
dbpf("$(PREFIX)MCA$(CHAN)ROI:EnableCallbacks", "Enable")
dbpf("$(PREFIX)MCA$(CHAN)ROI:TSNumPoints", "NCHANS=$(MAX_FRAMES)")

dbpf("$(PREFIX)MCA$(CHAN):ArrayData.LOPR", 0.5)
#dbpf("$(PREFIX)C$(CHAN):DeadTime_RBV.SCAN", ".1 second")
#dbpf("$(PREFIX)C$(CHAN):DTFactor_RBV.SCAN", ".1 second")

dbpf("$(PREFIX)MCA$(CHAN)ROI:1:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:2:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:3:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:4:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:5:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:6:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:7:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:8:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:9:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:10:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:11:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:12:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:13:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:14:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:15:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:16:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:17:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:18:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:19:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:20:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:21:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:22:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:23:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:24:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:25:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:26:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:27:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:28:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:29:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:30:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:31:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:32:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:33:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:34:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:35:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:36:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:37:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:38:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:39:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:40:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:41:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:42:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:43:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:44:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:45:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:46:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:47:Use", "Yes")
dbpf("$(PREFIX)MCA$(CHAN)ROI:48:Use", "Yes")
10 changes: 10 additions & 0 deletions roles/device_roles/xspress3/schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
type: enum("xspress3")
simulation: bool(required=False)
environment:
ENGINEER: str()
PREFIX: str()
NUM_CHANNELS: int(min=1)
NUM_CARDS: int(min=1)
XSPRESS3_IP: any(ip(), hostname())
CALIBRATION_DIR: str()
Loading
Loading