EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025  2026  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025  2026 
<== Date ==> <== Thread ==>

Subject: Re: xspress3 channel numbering
From: John Dobbins via Tech-talk <[email protected]>
To: Mark Rivers <[email protected]>, "[email protected]" <[email protected]>
Date: Wed, 17 Apr 2024 16:29:16 +0000
Thanks Mark. That was it.  John

From: Mark Rivers <[email protected]>
Sent: Wednesday, April 17, 2024 12:14 PM
To: John Dobbins <[email protected]>; [email protected] <[email protected]>
Subject: RE: xspress3 channel numbering
 

Hi John,

 

It looks like some plugin has been configured to get its data from an asynPortDriver called CHAN4.  That is something a user could have entered in the OPI screen and it is remembered through autosave.  You could search for the string CHAN4 in autosave/auto_settings.sav.  Or temporarily delete or rename the auto_settings*.sav* files and see if the problem goes away.

 

Mark

 

 

From: Tech-talk <[email protected]> On Behalf Of John Dobbins via Tech-talk
Sent: Wednesday, April 17, 2024 10:34 AM
To: [email protected]
Subject: xspress3 channel numbering

 

All,

 

The default numbering of channels in the XSPRESS3 IOC begins with 1.  I received a request to have the channel numbering start with 0.

 

This was mostly straightforward to implement. This is a 4 channel XSPRESS3., so CHAN1 -> CHAN0 and so on.

 

However, when the IOC starts up I get the following error messages ( the full startup text appears below)

 

2024/04/17 10:43:05.257 NDPluginDriver::connectToArrayPort Error calling pasynManager->connectDevice to array port CHAN4 address 0, status=3, error=asynManager:connectDevice port CHAN4 not found

2024/04/17 10:43:05.265 NDPluginDriver::connectToArrayPort Error calling pasynManager->connectDevice to array port CHAN4 address 0, status=3, error=asynManager:connectDevice port CHAN4 not found

2024/04/17 10:43:05.265 NDPluginDriver::writeInt32 ERROR, status=3, function=61, paramName=NDARRAY_ADDR, value=0, connectedToArrayPort_=0

2024/04/17 10:43:05.265 XSP1:MCA3ROI:NDArrayAddress devAsynInt32::processCallbackOutput process write error NDPluginROIStat::writeInt32: status=0, function=61, value=0

iocRun: All initialization complete

 

 

From these messages I don't know who is complaining.  Are these messages all connected and from NDROIStatConfigure? There is no mention of CHAN4 prior to this. 

 

Any advice appreciated. Thanks.

 

John Dobbins

 

Research Support Specialist

Cornell High Energy Synchrotron Source

Cornell University

 

 

 

 

./run_xspress3_0.sh 

< envPaths

epicsEnvSet("IOC","ioc_4Channel")

epicsEnvSet("TOP","/home/xspress3/epics/xspress3-2-4/iocs/xspress3IOC")

epicsEnvSet("XSPRESS3","/home/xspress3/epics/xspress3")

epicsEnvSet("SUPPORT","/home/xspress3/epics")

epicsEnvSet("AREA_DETECTOR","/home/xspress3/epics/areaDetector")

epicsEnvSet("EPICS_BASE","/home/xspress3/epics/base")

epicsEnvSet("ASYN","/home/xspress3/epics/asyn")

epicsEnvSet("ADSUPPORT","/home/xspress3/epics/areaDetector/ADSupport")

epicsEnvSet("ADCORE","/home/xspress3/epics/areaDetector/ADCore")

epicsEnvSet("AUTOSAVE","/home/xspress3/epics/autosave")

epicsEnvSet("BUSY","/home/xspress3/epics/busy")

epicsEnvSet("CALC","/home/xspress3/epics/calc")

epicsEnvSet("SNCSEQ","/home/xspress3/epics/sncseq")

epicsEnvSet("SSCAN","/home/xspress3/epics/sscan")

epicsEnvSet("DEVIOCSTATS","/home/xspress3/epics/iocStats")

errlogInit(20000)

# PREFIX

epicsEnvSet("PREFIX", "XSP1")

# Number of xspress3 channels

epicsEnvSet("NUM_CHANNELS",  "4")  

epicsEnvSet("NCHANS",  "4")         

# Number of xspress3 cards and IP ADDR

epicsEnvSet("XSP3CARDS", "1")

epicsEnvSet("XSP3ADDR",  "192.168.0.1")

# Max Number of Frames for data collection

epicsEnvSet("MAXFRAMES", "16384")

# Number of Energy bins

epicsEnvSet("NUM_BINS",  "4096")

< ../common_no_det1/DefineXSP3Driver.cmd

# Device initialisation

# ---------------------

dbLoadDatabase("/home/xspress3/epics/xspress3-2-4/iocs/xspress3IOC/dbd/xspress3App.dbd")

# suppress "callbackRequest: cbLow ring buffer full"

callbackSetQueueSize(8000)

xspress3App_registerRecordDeviceDriver(pdbbase) 

epicsEnvSet("PORT",   "XSP3")

epicsEnvSet("QSIZE",  "128")

# The maximum number of frames buffered in the NDPluginCircularBuff plugin

epicsEnvSet("CBUFFS", "4096")

# The search path for database files

epicsEnvSet("EPICS_DB_INCLUDE_PATH", "/home/xspress3/epics/areaDetector/ADCore/db:/home/xspress3/epics/xspress3/db:.")

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

# Start Xspress3 driver

# Parameters

# portName: The Asyn port name to use

# numChannels: The max number of channels (eg. 8)

# numCards: The number of Xspress3 systems (normally 1)

# baseIP: The base address used by the Xspress3  1Gig and 10Gig interfaces (eg. "192.168.0.1")

# Max Frames: Used for XSPRESS3 API Configuration   (depends on Xspress3 firmware config).

# Max Driver Frames: Used to limit how big EPICS driver arrays are. Needs to match database MAX_FRAMES_DRIVER_RBV.

# maxSpectra The maximum size of each spectra (eg. 4096)

# maxBuffers Used by asynPortDriver (set to 0 for unlimited)

# maxMemory Used by asynPortDriver (set to 0 for unlimited)

# debug This debug flag is passed to xsp3_config in the Xspress API (0 or 1)

# simTest 0 or 1. Set to 1 to run up this driver in simulation mode. 

xspress3Config("XSP3", "4", "1", "192.168.0.1", "16384", 16384, "4096", 0, 0, 0, 0)

Simulation: 0

#

# Create a processing plugin

NDProcessConfigure("PROC1", 128, 0, "XSP3", 0, 0, 0)

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

# Create an HDF5 file saving plugin

NDFileHDF5Configure("FileHDF1", 128, 0, "XSP3", 0)

dbLoadRecords("NDFileHDF5.template",  "P=XSP1:,R=HDF5:,PORT=FileHDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=XSP3")

# load main template

# dbLoadRecords("xspress3.template","P=$(PREFIX),R=:,PORT=$(PORT), ADDR=0, TIMEOUT=5, MAX_SPECTRA=$(XSIZE), MAX_FRAMES=$(MAXFRAMES), HDF=$(PREFIX):HDF5:, PROC=$(PREFIX):Proc1:")

dbLoadRecords("xspress3.template","P=XSP1,R=:,PORT=XSP3, ADDR=0, TIMEOUT=5, MAX_SPECTRA=4096, MAX_FRAMES=16384, HDF=XSP1:HDF5:, PROC=XSP1:Proc1:")

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

# DEFINE CHANNELS

#Channel 1

epicsEnvSet("CHAN",   "0")

epicsEnvSet("CHM1",   "0")

< ../common_no_det1/DefineSCAROI.cmd

# setup SCA, ROIs, etc for channel CHAN 

dbLoadRecords("xspress3_AttrReset.template", "P=XSP1,R=:,CHAN=0")

#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("CHAN0", 256, 0, "XSP3", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROI0:, PORT=CHAN0, TIMEOUT=1, ADDR=0, NDARRAY_PORT=XSP3, NDARRAY_ADDR=0, Enabled=0")

NDROIConfigure("CHANSUM0", 256, 0, "PROC1", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROISUM0:, PORT=CHANSUM0, TIMEOUT=1, ADDR=0, NDARRAY_PORT=PROC1, NDARRAY_ADDR=0, Enabled=0")

#SCAs: create an NDAttribute plugin with 9 attributes

NDAttrConfigure("XSP3.C0SCA", 256, 0, "XSP3", 0, 12)

dbLoadRecords("NDAttribute.template",  "P=XSP1:,R=C0SCA:,   PORT=XSP3.C0SCA, ADDR=0,TIMEOUT=1,NCHANS=16384,NDARRAY_PORT=XSP3")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:0:,  PORT=XSP3.C0SCA, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:1:,  PORT=XSP3.C0SCA, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:2:,  PORT=XSP3.C0SCA, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:3:,  PORT=XSP3.C0SCA, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:4:,  PORT=XSP3.C0SCA, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:5:,  PORT=XSP3.C0SCA, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:6:,  PORT=XSP3.C0SCA, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:7:,  PORT=XSP3.C0SCA, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:8:,  PORT=XSP3.C0SCA, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:9:,  PORT=XSP3.C0SCA, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C0SCA:10:,  PORT=XSP3.C0SCA, ADDR=10,TIMEOUT=1,NCHANS=16384")

NDTimeSeriesConfigure("XSP3.C0SCA_TS", 256, 0, "XSP3", 0, 12)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDTimeSeries.template", "P=XSP1:,R=C0SCA:TS:, PORT=XSP3.C0SCA_TS, ADDR=0,TIMEOUT=1,NDARRAY_PORT=XSP3.C0SCA,NDARRAY_ADDR=1,NCHANS=16384,ENABLED=1")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:0:, NAME='CHAN0SCA0', PORT=XSP3.C0SCA_TS, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:1:, NAME='CHAN0SCA1', PORT=XSP3.C0SCA_TS, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:2:, NAME='CHAN0SCA2', PORT=XSP3.C0SCA_TS, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:3:, NAME='CHAN0SCA3', PORT=XSP3.C0SCA_TS, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:4:, NAME='CHAN0SCA4', PORT=XSP3.C0SCA_TS, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:5:, NAME='CHAN0SCA7', PORT=XSP3.C0SCA_TS, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:6:, NAME='CHAN0SCA8', PORT=XSP3.C0SCA_TS, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:7:, NAME='CHAN0SCA7', PORT=XSP3.C0SCA_TS, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:8:, NAME='CHAN0EventWidth', PORT=XSP3.C0SCA_TS, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:9:, NAME='CHAN0DTFactor',  PORT=XSP3.C0SCA_TS, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C0SCA:TS:10:, NAME='CHAN0DTPercent', PORT=XSP3.C0SCA_TS, ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("xspress3ChannelSCAThreshold.template", "P=XSP1,R=:,PORT=XSP3, ADDR=0, TIMEOUT=1, CHAN=0, SCA=4")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=0, TIMEOUT=1, CHAN=0, SCA=5")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=0, TIMEOUT=1, CHAN=0, SCA=6")

dbLoadRecords("xspress3ChannelDTC.template",          "P=XSP1,R=:,PORT=XSP3, CHAN=0,  NDARRAY_PORT=XSP3,ADDR=0,TIMEOUT=5")

dbLoadRecords("xspress3ChannelDeadtime.template",     "P=XSP1:,R=:,PORT=XSP3, ADDR=0, TIMEOUT=1, CHAN=0")

#MCAs: create StdArray for Visualization: 

NDStdArraysConfigure("MCA0", 5, 0, "CHAN0", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCA0:,PORT=MCA0,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHAN0,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

NDStdArraysConfigure("MCASUM0", 5, 0, "CHANSUM0", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCASUM0:,PORT=MCASUM0,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHANSUM0,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

#ROIStats: build 48 ROIs for each of the 1D spectra (per-frame).

NDROIStatConfigure("ROISTAT0", 256, 0, "CHAN0", 0, 48, 0, 0)

dbLoadRecords("NDROIStat.template",   "P=XSP1:,R=MCA0ROI: ,PORT=ROISTAT0,ADDR=0,TIMEOUT=1, NDARRAY_PORT=CHAN0,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:1:,PORT=ROISTAT0,ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:2:,PORT=ROISTAT0,ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:3:,PORT=ROISTAT0,ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:4:,PORT=ROISTAT0,ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:5:,PORT=ROISTAT0,ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:6:,PORT=ROISTAT0,ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:7:,PORT=ROISTAT0,ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:8:,PORT=ROISTAT0,ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:9:,PORT=ROISTAT0,ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:10:,PORT=ROISTAT0,ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:11:,PORT=ROISTAT0,ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:12:,PORT=ROISTAT0,ADDR=11,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:13:,PORT=ROISTAT0,ADDR=12,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:14:,PORT=ROISTAT0,ADDR=13,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:15:,PORT=ROISTAT0,ADDR=14,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:16:,PORT=ROISTAT0,ADDR=15,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:17:,PORT=ROISTAT0,ADDR=16,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:18:,PORT=ROISTAT0,ADDR=17,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:19:,PORT=ROISTAT0,ADDR=18,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:20:,PORT=ROISTAT0,ADDR=19,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:21:,PORT=ROISTAT0,ADDR=20,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:22:,PORT=ROISTAT0,ADDR=21,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:23:,PORT=ROISTAT0,ADDR=22,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:24:,PORT=ROISTAT0,ADDR=23,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:25:,PORT=ROISTAT0,ADDR=24,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:26:,PORT=ROISTAT0,ADDR=25,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:27:,PORT=ROISTAT0,ADDR=26,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:28:,PORT=ROISTAT0,ADDR=27,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:29:,PORT=ROISTAT0,ADDR=28,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:30:,PORT=ROISTAT0,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:31:,PORT=ROISTAT0,ADDR=30,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:32:,PORT=ROISTAT0,ADDR=31,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:33:,PORT=ROISTAT0,ADDR=32,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:34:,PORT=ROISTAT0,ADDR=33,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:35:,PORT=ROISTAT0,ADDR=34,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:36:,PORT=ROISTAT0,ADDR=35,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:37:,PORT=ROISTAT0,ADDR=36,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:38:,PORT=ROISTAT0,ADDR=37,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:39:,PORT=ROISTAT0,ADDR=38,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:40:,PORT=ROISTAT0,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:41:,PORT=ROISTAT0,ADDR=40,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:42:,PORT=ROISTAT0,ADDR=41,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:43:,PORT=ROISTAT0,ADDR=42,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:44:,PORT=ROISTAT0,ADDR=43,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:45:,PORT=ROISTAT0,ADDR=44,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:46:,PORT=ROISTAT0,ADDR=45,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:47:,PORT=ROISTAT0,ADDR=46,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA0ROI:48:,PORT=ROISTAT0,ADDR=47,TIMEOUT=1,NCHANS=16384")

#Channel 2

epicsEnvSet("CHAN",   "1")

epicsEnvSet("CHM1",   "1")

< ../common_no_det1/DefineSCAROI.cmd

# setup SCA, ROIs, etc for channel CHAN 

dbLoadRecords("xspress3_AttrReset.template", "P=XSP1,R=:,CHAN=1")

#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("CHAN1", 256, 0, "XSP3", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROI1:, PORT=CHAN1, TIMEOUT=1, ADDR=0, NDARRAY_PORT=XSP3, NDARRAY_ADDR=0, Enabled=0")

NDROIConfigure("CHANSUM1", 256, 0, "PROC1", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROISUM1:, PORT=CHANSUM1, TIMEOUT=1, ADDR=0, NDARRAY_PORT=PROC1, NDARRAY_ADDR=0, Enabled=0")

#SCAs: create an NDAttribute plugin with 9 attributes

NDAttrConfigure("XSP3.C1SCA", 256, 0, "XSP3", 0, 12)

dbLoadRecords("NDAttribute.template",  "P=XSP1:,R=C1SCA:,   PORT=XSP3.C1SCA, ADDR=0,TIMEOUT=1,NCHANS=16384,NDARRAY_PORT=XSP3")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:0:,  PORT=XSP3.C1SCA, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:1:,  PORT=XSP3.C1SCA, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:2:,  PORT=XSP3.C1SCA, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:3:,  PORT=XSP3.C1SCA, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:4:,  PORT=XSP3.C1SCA, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:5:,  PORT=XSP3.C1SCA, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:6:,  PORT=XSP3.C1SCA, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:7:,  PORT=XSP3.C1SCA, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:8:,  PORT=XSP3.C1SCA, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:9:,  PORT=XSP3.C1SCA, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C1SCA:10:,  PORT=XSP3.C1SCA, ADDR=10,TIMEOUT=1,NCHANS=16384")

NDTimeSeriesConfigure("XSP3.C1SCA_TS", 256, 0, "XSP3", 0, 12)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDTimeSeries.template", "P=XSP1:,R=C1SCA:TS:, PORT=XSP3.C1SCA_TS, ADDR=0,TIMEOUT=1,NDARRAY_PORT=XSP3.C1SCA,NDARRAY_ADDR=1,NCHANS=16384,ENABLED=1")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:0:, NAME='CHAN1SCA0', PORT=XSP3.C1SCA_TS, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:1:, NAME='CHAN1SCA1', PORT=XSP3.C1SCA_TS, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:2:, NAME='CHAN1SCA2', PORT=XSP3.C1SCA_TS, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:3:, NAME='CHAN1SCA3', PORT=XSP3.C1SCA_TS, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:4:, NAME='CHAN1SCA4', PORT=XSP3.C1SCA_TS, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:5:, NAME='CHAN1SCA7', PORT=XSP3.C1SCA_TS, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:6:, NAME='CHAN1SCA8', PORT=XSP3.C1SCA_TS, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:7:, NAME='CHAN1SCA7', PORT=XSP3.C1SCA_TS, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:8:, NAME='CHAN1EventWidth', PORT=XSP3.C1SCA_TS, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:9:, NAME='CHAN1DTFactor',  PORT=XSP3.C1SCA_TS, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C1SCA:TS:10:, NAME='CHAN1DTPercent', PORT=XSP3.C1SCA_TS, ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("xspress3ChannelSCAThreshold.template", "P=XSP1,R=:,PORT=XSP3, ADDR=1, TIMEOUT=1, CHAN=1, SCA=4")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=1, TIMEOUT=1, CHAN=1, SCA=5")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=1, TIMEOUT=1, CHAN=1, SCA=6")

dbLoadRecords("xspress3ChannelDTC.template",          "P=XSP1,R=:,PORT=XSP3, CHAN=1,  NDARRAY_PORT=XSP3,ADDR=1,TIMEOUT=5")

dbLoadRecords("xspress3ChannelDeadtime.template",     "P=XSP1:,R=:,PORT=XSP3, ADDR=1, TIMEOUT=1, CHAN=1")

#MCAs: create StdArray for Visualization: 

NDStdArraysConfigure("MCA1", 5, 0, "CHAN1", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCA1:,PORT=MCA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHAN1,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

NDStdArraysConfigure("MCASUM1", 5, 0, "CHANSUM1", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCASUM1:,PORT=MCASUM1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHANSUM1,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

#ROIStats: build 48 ROIs for each of the 1D spectra (per-frame).

NDROIStatConfigure("ROISTAT1", 256, 0, "CHAN1", 0, 48, 0, 0)

dbLoadRecords("NDROIStat.template",   "P=XSP1:,R=MCA1ROI: ,PORT=ROISTAT1,ADDR=0,TIMEOUT=1, NDARRAY_PORT=CHAN1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:1:,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:2:,PORT=ROISTAT1,ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:3:,PORT=ROISTAT1,ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:4:,PORT=ROISTAT1,ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:5:,PORT=ROISTAT1,ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:6:,PORT=ROISTAT1,ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:7:,PORT=ROISTAT1,ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:8:,PORT=ROISTAT1,ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:9:,PORT=ROISTAT1,ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:10:,PORT=ROISTAT1,ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:11:,PORT=ROISTAT1,ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:12:,PORT=ROISTAT1,ADDR=11,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:13:,PORT=ROISTAT1,ADDR=12,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:14:,PORT=ROISTAT1,ADDR=13,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:15:,PORT=ROISTAT1,ADDR=14,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:16:,PORT=ROISTAT1,ADDR=15,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:17:,PORT=ROISTAT1,ADDR=16,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:18:,PORT=ROISTAT1,ADDR=17,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:19:,PORT=ROISTAT1,ADDR=18,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:20:,PORT=ROISTAT1,ADDR=19,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:21:,PORT=ROISTAT1,ADDR=20,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:22:,PORT=ROISTAT1,ADDR=21,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:23:,PORT=ROISTAT1,ADDR=22,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:24:,PORT=ROISTAT1,ADDR=23,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:25:,PORT=ROISTAT1,ADDR=24,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:26:,PORT=ROISTAT1,ADDR=25,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:27:,PORT=ROISTAT1,ADDR=26,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:28:,PORT=ROISTAT1,ADDR=27,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:29:,PORT=ROISTAT1,ADDR=28,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:30:,PORT=ROISTAT1,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:31:,PORT=ROISTAT1,ADDR=30,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:32:,PORT=ROISTAT1,ADDR=31,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:33:,PORT=ROISTAT1,ADDR=32,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:34:,PORT=ROISTAT1,ADDR=33,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:35:,PORT=ROISTAT1,ADDR=34,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:36:,PORT=ROISTAT1,ADDR=35,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:37:,PORT=ROISTAT1,ADDR=36,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:38:,PORT=ROISTAT1,ADDR=37,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:39:,PORT=ROISTAT1,ADDR=38,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:40:,PORT=ROISTAT1,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:41:,PORT=ROISTAT1,ADDR=40,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:42:,PORT=ROISTAT1,ADDR=41,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:43:,PORT=ROISTAT1,ADDR=42,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:44:,PORT=ROISTAT1,ADDR=43,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:45:,PORT=ROISTAT1,ADDR=44,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:46:,PORT=ROISTAT1,ADDR=45,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:47:,PORT=ROISTAT1,ADDR=46,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA1ROI:48:,PORT=ROISTAT1,ADDR=47,TIMEOUT=1,NCHANS=16384")

#Channel 3

epicsEnvSet("CHAN",   "2")

epicsEnvSet("CHM1",   "2")

< ../common_no_det1/DefineSCAROI.cmd

# setup SCA, ROIs, etc for channel CHAN 

dbLoadRecords("xspress3_AttrReset.template", "P=XSP1,R=:,CHAN=2")

#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("CHAN2", 256, 0, "XSP3", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROI2:, PORT=CHAN2, TIMEOUT=1, ADDR=0, NDARRAY_PORT=XSP3, NDARRAY_ADDR=0, Enabled=0")

NDROIConfigure("CHANSUM2", 256, 0, "PROC1", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROISUM2:, PORT=CHANSUM2, TIMEOUT=1, ADDR=0, NDARRAY_PORT=PROC1, NDARRAY_ADDR=0, Enabled=0")

#SCAs: create an NDAttribute plugin with 9 attributes

NDAttrConfigure("XSP3.C2SCA", 256, 0, "XSP3", 0, 12)

dbLoadRecords("NDAttribute.template",  "P=XSP1:,R=C2SCA:,   PORT=XSP3.C2SCA, ADDR=0,TIMEOUT=1,NCHANS=16384,NDARRAY_PORT=XSP3")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:0:,  PORT=XSP3.C2SCA, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:1:,  PORT=XSP3.C2SCA, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:2:,  PORT=XSP3.C2SCA, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:3:,  PORT=XSP3.C2SCA, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:4:,  PORT=XSP3.C2SCA, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:5:,  PORT=XSP3.C2SCA, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:6:,  PORT=XSP3.C2SCA, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:7:,  PORT=XSP3.C2SCA, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:8:,  PORT=XSP3.C2SCA, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:9:,  PORT=XSP3.C2SCA, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C2SCA:10:,  PORT=XSP3.C2SCA, ADDR=10,TIMEOUT=1,NCHANS=16384")

NDTimeSeriesConfigure("XSP3.C2SCA_TS", 256, 0, "XSP3", 0, 12)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDTimeSeries.template", "P=XSP1:,R=C2SCA:TS:, PORT=XSP3.C2SCA_TS, ADDR=0,TIMEOUT=1,NDARRAY_PORT=XSP3.C2SCA,NDARRAY_ADDR=1,NCHANS=16384,ENABLED=1")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:0:, NAME='CHAN2SCA0', PORT=XSP3.C2SCA_TS, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:1:, NAME='CHAN2SCA1', PORT=XSP3.C2SCA_TS, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:2:, NAME='CHAN2SCA2', PORT=XSP3.C2SCA_TS, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:3:, NAME='CHAN2SCA3', PORT=XSP3.C2SCA_TS, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:4:, NAME='CHAN2SCA4', PORT=XSP3.C2SCA_TS, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:5:, NAME='CHAN2SCA7', PORT=XSP3.C2SCA_TS, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:6:, NAME='CHAN2SCA8', PORT=XSP3.C2SCA_TS, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:7:, NAME='CHAN2SCA7', PORT=XSP3.C2SCA_TS, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:8:, NAME='CHAN2EventWidth', PORT=XSP3.C2SCA_TS, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:9:, NAME='CHAN2DTFactor',  PORT=XSP3.C2SCA_TS, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C2SCA:TS:10:, NAME='CHAN2DTPercent', PORT=XSP3.C2SCA_TS, ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("xspress3ChannelSCAThreshold.template", "P=XSP1,R=:,PORT=XSP3, ADDR=2, TIMEOUT=1, CHAN=2, SCA=4")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=2, TIMEOUT=1, CHAN=2, SCA=5")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=2, TIMEOUT=1, CHAN=2, SCA=6")

dbLoadRecords("xspress3ChannelDTC.template",          "P=XSP1,R=:,PORT=XSP3, CHAN=2,  NDARRAY_PORT=XSP3,ADDR=2,TIMEOUT=5")

dbLoadRecords("xspress3ChannelDeadtime.template",     "P=XSP1:,R=:,PORT=XSP3, ADDR=2, TIMEOUT=1, CHAN=2")

#MCAs: create StdArray for Visualization: 

NDStdArraysConfigure("MCA2", 5, 0, "CHAN2", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCA2:,PORT=MCA2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHAN2,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

NDStdArraysConfigure("MCASUM2", 5, 0, "CHANSUM2", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCASUM2:,PORT=MCASUM2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHANSUM2,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

#ROIStats: build 48 ROIs for each of the 1D spectra (per-frame).

NDROIStatConfigure("ROISTAT2", 256, 0, "CHAN2", 0, 48, 0, 0)

dbLoadRecords("NDROIStat.template",   "P=XSP1:,R=MCA2ROI: ,PORT=ROISTAT2,ADDR=0,TIMEOUT=1, NDARRAY_PORT=CHAN2,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:1:,PORT=ROISTAT2,ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:2:,PORT=ROISTAT2,ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:3:,PORT=ROISTAT2,ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:4:,PORT=ROISTAT2,ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:5:,PORT=ROISTAT2,ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:6:,PORT=ROISTAT2,ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:7:,PORT=ROISTAT2,ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:8:,PORT=ROISTAT2,ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:9:,PORT=ROISTAT2,ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:10:,PORT=ROISTAT2,ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:11:,PORT=ROISTAT2,ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:12:,PORT=ROISTAT2,ADDR=11,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:13:,PORT=ROISTAT2,ADDR=12,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:14:,PORT=ROISTAT2,ADDR=13,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:15:,PORT=ROISTAT2,ADDR=14,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:16:,PORT=ROISTAT2,ADDR=15,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:17:,PORT=ROISTAT2,ADDR=16,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:18:,PORT=ROISTAT2,ADDR=17,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:19:,PORT=ROISTAT2,ADDR=18,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:20:,PORT=ROISTAT2,ADDR=19,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:21:,PORT=ROISTAT2,ADDR=20,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:22:,PORT=ROISTAT2,ADDR=21,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:23:,PORT=ROISTAT2,ADDR=22,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:24:,PORT=ROISTAT2,ADDR=23,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:25:,PORT=ROISTAT2,ADDR=24,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:26:,PORT=ROISTAT2,ADDR=25,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:27:,PORT=ROISTAT2,ADDR=26,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:28:,PORT=ROISTAT2,ADDR=27,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:29:,PORT=ROISTAT2,ADDR=28,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:30:,PORT=ROISTAT2,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:31:,PORT=ROISTAT2,ADDR=30,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:32:,PORT=ROISTAT2,ADDR=31,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:33:,PORT=ROISTAT2,ADDR=32,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:34:,PORT=ROISTAT2,ADDR=33,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:35:,PORT=ROISTAT2,ADDR=34,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:36:,PORT=ROISTAT2,ADDR=35,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:37:,PORT=ROISTAT2,ADDR=36,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:38:,PORT=ROISTAT2,ADDR=37,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:39:,PORT=ROISTAT2,ADDR=38,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:40:,PORT=ROISTAT2,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:41:,PORT=ROISTAT2,ADDR=40,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:42:,PORT=ROISTAT2,ADDR=41,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:43:,PORT=ROISTAT2,ADDR=42,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:44:,PORT=ROISTAT2,ADDR=43,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:45:,PORT=ROISTAT2,ADDR=44,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:46:,PORT=ROISTAT2,ADDR=45,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:47:,PORT=ROISTAT2,ADDR=46,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA2ROI:48:,PORT=ROISTAT2,ADDR=47,TIMEOUT=1,NCHANS=16384")

#Channel 4

epicsEnvSet("CHAN",   "3")

epicsEnvSet("CHM1",   "3")

< ../common_no_det1/DefineSCAROI.cmd

# setup SCA, ROIs, etc for channel CHAN 

dbLoadRecords("xspress3_AttrReset.template", "P=XSP1,R=:,CHAN=3")

#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("CHAN3", 256, 0, "XSP3", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROI3:, PORT=CHAN3, TIMEOUT=1, ADDR=0, NDARRAY_PORT=XSP3, NDARRAY_ADDR=0, Enabled=0")

NDROIConfigure("CHANSUM3", 256, 0, "PROC1", 0, -1, -1)

dbLoadRecords("NDROI.template", ,"P=XSP1:, R=ROISUM3:, PORT=CHANSUM3, TIMEOUT=1, ADDR=0, NDARRAY_PORT=PROC1, NDARRAY_ADDR=0, Enabled=0")

#SCAs: create an NDAttribute plugin with 9 attributes

NDAttrConfigure("XSP3.C3SCA", 256, 0, "XSP3", 0, 12)

dbLoadRecords("NDAttribute.template",  "P=XSP1:,R=C3SCA:,   PORT=XSP3.C3SCA, ADDR=0,TIMEOUT=1,NCHANS=16384,NDARRAY_PORT=XSP3")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:0:,  PORT=XSP3.C3SCA, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:1:,  PORT=XSP3.C3SCA, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:2:,  PORT=XSP3.C3SCA, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:3:,  PORT=XSP3.C3SCA, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:4:,  PORT=XSP3.C3SCA, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:5:,  PORT=XSP3.C3SCA, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:6:,  PORT=XSP3.C3SCA, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:7:,  PORT=XSP3.C3SCA, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:8:,  PORT=XSP3.C3SCA, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:9:,  PORT=XSP3.C3SCA, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDAttributeN.template", "P=XSP1:,R=C3SCA:10:,  PORT=XSP3.C3SCA, ADDR=10,TIMEOUT=1,NCHANS=16384")

NDTimeSeriesConfigure("XSP3.C3SCA_TS", 256, 0, "XSP3", 0, 12)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDTimeSeries.template", "P=XSP1:,R=C3SCA:TS:, PORT=XSP3.C3SCA_TS, ADDR=0,TIMEOUT=1,NDARRAY_PORT=XSP3.C3SCA,NDARRAY_ADDR=1,NCHANS=16384,ENABLED=1")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:0:, NAME='CHAN3SCA0', PORT=XSP3.C3SCA_TS, ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:1:, NAME='CHAN3SCA1', PORT=XSP3.C3SCA_TS, ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:2:, NAME='CHAN3SCA2', PORT=XSP3.C3SCA_TS, ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:3:, NAME='CHAN3SCA3', PORT=XSP3.C3SCA_TS, ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:4:, NAME='CHAN3SCA4', PORT=XSP3.C3SCA_TS, ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:5:, NAME='CHAN3SCA7', PORT=XSP3.C3SCA_TS, ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:6:, NAME='CHAN3SCA8', PORT=XSP3.C3SCA_TS, ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:7:, NAME='CHAN3SCA7', PORT=XSP3.C3SCA_TS, ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:8:, NAME='CHAN3EventWidth', PORT=XSP3.C3SCA_TS, ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:9:, NAME='CHAN3DTFactor',  PORT=XSP3.C3SCA_TS, ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDTimeSeriesN.template", "P=XSP1:,R=C3SCA:TS:10:, NAME='CHAN3DTPercent', PORT=XSP3.C3SCA_TS, ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("xspress3ChannelSCAThreshold.template", "P=XSP1,R=:,PORT=XSP3, ADDR=3, TIMEOUT=1, CHAN=3, SCA=4")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=3, TIMEOUT=1, CHAN=3, SCA=5")

dbLoadRecords("xspress3ChannelSCALimits.template",    "P=XSP1,R=:,PORT=XSP3, ADDR=3, TIMEOUT=1, CHAN=3, SCA=6")

dbLoadRecords("xspress3ChannelDTC.template",          "P=XSP1,R=:,PORT=XSP3, CHAN=3,  NDARRAY_PORT=XSP3,ADDR=3,TIMEOUT=5")

dbLoadRecords("xspress3ChannelDeadtime.template",     "P=XSP1:,R=:,PORT=XSP3, ADDR=3, TIMEOUT=1, CHAN=3")

#MCAs: create StdArray for Visualization: 

NDStdArraysConfigure("MCA3", 5, 0, "CHAN3", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCA3:,PORT=MCA3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHAN3,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

NDStdArraysConfigure("MCASUM3", 5, 0, "CHANSUM3", 0, 0)

dbLoadRecords("/home/xspress3/epics/areaDetector/ADCore/db/NDStdArrays.template", "P=XSP1:,R=MCASUM3:,PORT=MCASUM3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=CHANSUM3,TYPE=Float64,FTVL=DOUBLE,NELEMENTS=4096")

#ROIStats: build 48 ROIs for each of the 1D spectra (per-frame).

NDROIStatConfigure("ROISTAT3", 256, 0, "CHAN3", 0, 48, 0, 0)

dbLoadRecords("NDROIStat.template",   "P=XSP1:,R=MCA3ROI: ,PORT=ROISTAT3,ADDR=0,TIMEOUT=1, NDARRAY_PORT=CHAN3,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:1:,PORT=ROISTAT3,ADDR=0,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:2:,PORT=ROISTAT3,ADDR=1,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:3:,PORT=ROISTAT3,ADDR=2,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:4:,PORT=ROISTAT3,ADDR=3,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:5:,PORT=ROISTAT3,ADDR=4,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:6:,PORT=ROISTAT3,ADDR=5,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:7:,PORT=ROISTAT3,ADDR=6,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:8:,PORT=ROISTAT3,ADDR=7,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:9:,PORT=ROISTAT3,ADDR=8,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:10:,PORT=ROISTAT3,ADDR=9,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:11:,PORT=ROISTAT3,ADDR=10,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:12:,PORT=ROISTAT3,ADDR=11,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:13:,PORT=ROISTAT3,ADDR=12,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:14:,PORT=ROISTAT3,ADDR=13,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:15:,PORT=ROISTAT3,ADDR=14,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:16:,PORT=ROISTAT3,ADDR=15,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:17:,PORT=ROISTAT3,ADDR=16,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:18:,PORT=ROISTAT3,ADDR=17,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:19:,PORT=ROISTAT3,ADDR=18,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:20:,PORT=ROISTAT3,ADDR=19,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:21:,PORT=ROISTAT3,ADDR=20,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:22:,PORT=ROISTAT3,ADDR=21,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:23:,PORT=ROISTAT3,ADDR=22,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:24:,PORT=ROISTAT3,ADDR=23,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:25:,PORT=ROISTAT3,ADDR=24,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:26:,PORT=ROISTAT3,ADDR=25,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:27:,PORT=ROISTAT3,ADDR=26,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:28:,PORT=ROISTAT3,ADDR=27,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:29:,PORT=ROISTAT3,ADDR=28,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:30:,PORT=ROISTAT3,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:31:,PORT=ROISTAT3,ADDR=30,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:32:,PORT=ROISTAT3,ADDR=31,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:33:,PORT=ROISTAT3,ADDR=32,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:34:,PORT=ROISTAT3,ADDR=33,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:35:,PORT=ROISTAT3,ADDR=34,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:36:,PORT=ROISTAT3,ADDR=35,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:37:,PORT=ROISTAT3,ADDR=36,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:38:,PORT=ROISTAT3,ADDR=37,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:39:,PORT=ROISTAT3,ADDR=38,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:40:,PORT=ROISTAT3,ADDR=29,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:41:,PORT=ROISTAT3,ADDR=40,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:42:,PORT=ROISTAT3,ADDR=41,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:43:,PORT=ROISTAT3,ADDR=42,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:44:,PORT=ROISTAT3,ADDR=43,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:45:,PORT=ROISTAT3,ADDR=44,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:46:,PORT=ROISTAT3,ADDR=45,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:47:,PORT=ROISTAT3,ADDR=46,TIMEOUT=1,NCHANS=16384")

dbLoadRecords("NDROIStatN.template",  "P=XSP1:,R=MCA3ROI:48:,PORT=ROISTAT3,ADDR=47,TIMEOUT=1,NCHANS=16384")

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

dbLoadRecords("xspress3Deadtime_4Channel.template",   "P=XSP1:")

< ../common_no_det1/AutoSave.cmd

# autosave config

set_requestfile_path("./")

set_requestfile_path("/home/xspress3/epics/areaDetector/ADCore", "ADApp/Db")

set_requestfile_path("/home/xspress3/epics/autosave", "asApp/Db")

set_requestfile_path("/home/xspress3/epics/busy", "busyApp/Db")

set_requestfile_path("/home/xspress3/epics/calc", "calcApp/Db")

set_requestfile_path("/home/xspress3/epics/xspress3","xspress3App/Db")

set_requestfile_path("/home/xspress3/epics/sscan", "sscanApp/Db")

set_savefile_path("./autosave")

set_pass0_restoreFile("auto_settings.sav")

set_pass1_restoreFile("auto_settings.sav")

save_restoreSet_status_prefix("XSP1")

dbLoadRecords("/home/xspress3/epics/autosave/asApp/Db/save_restoreStatus.db", "P=XSP1:")

epicsEnvSet("BUILT_SETTINGS", "built_settings.req")

autosaveBuild("built_settings.req", "_settings.req", 1)

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

# start IOC

iocInit

Starting iocInit

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

## EPICS R7.0.3.1

## EPICS Base built Jan 13 2024

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

reboot_restore: entry for file 'auto_settings.sav'

reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.

*** restoring from './autosave/auto_settings.sav' at initHookState 6 (before record/device init) ***

reboot_restore: done with file 'auto_settings.sav'

 

reboot_restore: entry for file 'auto_settings.sav'

reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.

*** restoring from './autosave/auto_settings.sav' at initHookState 7 (after record/device init) ***

reboot_restore: done with file 'auto_settings.sav'

 

2024/04/17 10:43:05.257 NDPluginDriver::connectToArrayPort Error calling pasynManager->connectDevice to array port CHAN4 address 0, status=3, error=asynManager:connectDevice port CHAN4 not found

2024/04/17 10:43:05.265 NDPluginDriver::connectToArrayPort Error calling pasynManager->connectDevice to array port CHAN4 address 0, status=3, error=asynManager:connectDevice port CHAN4 not found

2024/04/17 10:43:05.265 NDPluginDriver::writeInt32 ERROR, status=3, function=61, paramName=NDARRAY_ADDR, value=0, connectedToArrayPort_=0

2024/04/17 10:43:05.265 XSP1:MCA3ROI:NDArrayAddress devAsynInt32::processCallbackOutput process write error NDPluginROIStat::writeInt32: status=0, function=61, value=0

iocRun: All initialization complete

# setup startup values

#Configure and connect to Xspress3

dbpf("XSP1:CONFIG_PATH", "/etc/xspress3/calibration/walle_new_ioc/")

DBF_CHAR[41]:       "/etc/xspress3/calibration/walle_new_ioc/"        

< ../common_no_det1/SetMainValues.cmd

#

dbpf("XSP1:RUN_FLAGS",    "0")

DBF_STRING:         "SCALERS & HIST"    

dbpf("XSP1:NUM_CHANNELS", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:NumImages",    2000)

DBF_LONG:           2000 = 0x7d0        

dbpf("XSP1:AcquireTime",  0.25)

DBF_DOUBLE:         0.25      

dbpf("XSP1:CONNECT",      "1")

DBF_STRING:         "Connect" 

dbpf("XSP1:CTRL_DTC",     "Disable")

DBF_STRING:         "Disable" 

dbpf("XSP1:TriggerMode",  "Internal")

DBF_STRING:         "Internal"          

debug level 0

#Enable Array Callbacks, set Attributes file

dbpf("XSP1:ArrayCallbacks",   "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:NDAttributesFile", "XSP3.xml")

DBF_CHAR[9]:        "XSP3.xml"          

#Configure HDF Plugin

dbpf("XSP1:HDF5:FileTemplate",     "%s%s%d.hdf5")

DBF_CHAR[12]:       "%s%s%d.hdf5"       

dbpf("XSP1:HDF5:FileWriteMode",    "Stream")

DBF_STRING:         "Stream"  

dbpf("XSP1:HDF5:EnableCallbacks",  "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:HDF5:Compression",      "zlib")

DBF_STRING:         "zlib"    

dbpf("XSP1:HDF5:ZLevel",           "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:HDF5:AutoIncrement",    "Yes")

DBF_STRING:         "Yes"     

#Configure PROC plugin spectra summing

dbpf("XSP1:Proc1:EnableFilter",    "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:Proc1:FilterType",      "Sum")

DBF_STRING:         "Sum"     

dbpf("XSP1:Proc1:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

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

# SET UP CHANNELS

#Channel 1

epicsEnvSet("CHAN",   "0")

epicsEnvSet("CHM1",   "0")

< ../common_no_det1/SetChannelValues.cmd

# Load Default values for a single channel

dbpf("XSP1:ROI0:MinY",    "0")

DBF_LONG:           0 = 0x0   

dbpf("XSP1:ROISUM0:MinY", "0")

DBF_LONG:           0 = 0x0   

dbpf("XSP1:C0SCA:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:C0SCA:0:AttrName", "CHAN0SCA0")

DBF_CHAR[10]:       "CHAN0SCA0"         

dbpf("XSP1:C0SCA:1:AttrName", "CHAN0SCA1")

DBF_CHAR[10]:       "CHAN0SCA1"         

dbpf("XSP1:C0SCA:2:AttrName", "CHAN0SCA2")

DBF_CHAR[10]:       "CHAN0SCA2"         

dbpf("XSP1:C0SCA:3:AttrName", "CHAN0SCA3")

DBF_CHAR[10]:       "CHAN0SCA3"         

dbpf("XSP1:C0SCA:4:AttrName", "CHAN0SCA4")

DBF_CHAR[10]:       "CHAN0SCA4"         

dbpf("XSP1:C0SCA:5:AttrName", "CHAN0SCA5")

DBF_CHAR[10]:       "CHAN0SCA5"         

dbpf("XSP1:C0SCA:6:AttrName", "CHAN0SCA6")

DBF_CHAR[10]:       "CHAN0SCA6"         

dbpf("XSP1:C0SCA:7:AttrName", "CHAN0SCA7")

DBF_CHAR[10]:       "CHAN0SCA7"         

dbpf("XSP1:C0SCA:8:AttrName", "CHAN0EventWidth")

DBF_CHAR[16]:       "CHAN0EventWidth"   

dbpf("XSP1:C0SCA:9:AttrName", "CHAN0DTFactor")

DBF_CHAR[14]:       "CHAN0DTFactor"     

dbpf("XSP1:C0SCA:10:AttrName", "CHAN0DTPercent")

DBF_CHAR[15]:       "CHAN0DTPercent"    

dbpf("XSP1:C0SCA:TS:0:Name", "CHAN0SCA0")

DBF_STRING:         "CHAN0SCA0"         

dbpf("XSP1:C0SCA:TS:1:Name", "CHAN0SCA1")

DBF_STRING:         "CHAN0SCA1"         

dbpf("XSP1:C0SCA:TS:2:Name", "CHAN0SCA2")

DBF_STRING:         "CHAN0SCA2"         

dbpf("XSP1:C0SCA:TS:3:Name", "CHAN0SCA3")

DBF_STRING:         "CHAN0SCA3"         

dbpf("XSP1:C0SCA:TS:4:Name", "CHAN0SCA4")

DBF_STRING:         "CHAN0SCA4"         

dbpf("XSP1:C0SCA:TS:5:Name", "CHAN0SCA5")

DBF_STRING:         "CHAN0SCA5"         

dbpf("XSP1:C0SCA:TS:6:Name", "CHAN0SCA6")

DBF_STRING:         "CHAN0SCA6"         

dbpf("XSP1:C0SCA:TS:7:Name", "CHAN0SCA7")

DBF_STRING:         "CHAN0SCA7"         

dbpf("XSP1:C0SCA:TS:8:Name", "CHAN0EventWidth")

DBF_STRING:         "CHAN0EventWidth"   

dbpf("XSP1:C0SCA:TS:9:Name", "CHAN0DTFactor")

DBF_STRING:         "CHAN0DTFactor"     

dbpf("XSP1:C0SCA:TS:10:Name", "CHAN0DTPercent")

DBF_STRING:         "CHAN0DTPercent"    

dbpf("XSP1:C0SCA:TS:NDArrayAddress", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:C0SCA:TS:TSAcquireMode", "0")

DBF_STRING:         "Fixed length"      

dbpf("XSP1:C0SCA:TS:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:C0SCA:TS:TSRead.SCAN", ".5 second")

DBF_STRING:         ".5 second"         

dbpf("XSP1:ROI0:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI0:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI0:EnableZ", "Disable")

DBF_STRING:         "Disable" 

dbpf("XSP1:ROI0:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROISUM0:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM0:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM0:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROI0:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA0:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM0:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCASUM0:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA0ROI:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA0ROI:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:MCA0:ArrayData.LOPR", 0.5)

DBF_DOUBLE:         0.5       

dbpf("XSP1:C0:DeadTime_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:C0:DTFactor_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:MCA0ROI:1:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:2:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:3:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:4:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:5:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:6:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:7:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:8:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:9:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:10:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:11:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:12:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:13:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:14:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:15:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:16:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:17:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:18:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:19:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:20:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:21:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:22:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:23:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:24:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:25:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:26:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:27:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:28:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:29:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:30:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:31:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:32:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:33:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:34:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:35:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:36:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:37:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:38:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:39:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:40:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:41:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:42:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:43:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:44:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:45:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:46:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:47:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA0ROI:48:Use", "Yes")

DBF_STRING:         "Yes"     

#Channel 2

epicsEnvSet("CHAN",   "1")

epicsEnvSet("CHM1",   "1")

< ../common_no_det1/SetChannelValues.cmd

# Load Default values for a single channel

dbpf("XSP1:ROI1:MinY",    "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROISUM1:MinY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:C1SCA:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:C1SCA:0:AttrName", "CHAN1SCA0")

DBF_CHAR[10]:       "CHAN1SCA0"         

dbpf("XSP1:C1SCA:1:AttrName", "CHAN1SCA1")

DBF_CHAR[10]:       "CHAN1SCA1"         

dbpf("XSP1:C1SCA:2:AttrName", "CHAN1SCA2")

DBF_CHAR[10]:       "CHAN1SCA2"         

dbpf("XSP1:C1SCA:3:AttrName", "CHAN1SCA3")

DBF_CHAR[10]:       "CHAN1SCA3"         

dbpf("XSP1:C1SCA:4:AttrName", "CHAN1SCA4")

DBF_CHAR[10]:       "CHAN1SCA4"         

dbpf("XSP1:C1SCA:5:AttrName", "CHAN1SCA5")

DBF_CHAR[10]:       "CHAN1SCA5"         

dbpf("XSP1:C1SCA:6:AttrName", "CHAN1SCA6")

DBF_CHAR[10]:       "CHAN1SCA6"         

dbpf("XSP1:C1SCA:7:AttrName", "CHAN1SCA7")

DBF_CHAR[10]:       "CHAN1SCA7"         

dbpf("XSP1:C1SCA:8:AttrName", "CHAN1EventWidth")

DBF_CHAR[16]:       "CHAN1EventWidth"   

dbpf("XSP1:C1SCA:9:AttrName", "CHAN1DTFactor")

DBF_CHAR[14]:       "CHAN1DTFactor"     

dbpf("XSP1:C1SCA:10:AttrName", "CHAN1DTPercent")

DBF_CHAR[15]:       "CHAN1DTPercent"    

dbpf("XSP1:C1SCA:TS:0:Name", "CHAN1SCA0")

DBF_STRING:         "CHAN1SCA0"         

dbpf("XSP1:C1SCA:TS:1:Name", "CHAN1SCA1")

DBF_STRING:         "CHAN1SCA1"         

dbpf("XSP1:C1SCA:TS:2:Name", "CHAN1SCA2")

DBF_STRING:         "CHAN1SCA2"         

dbpf("XSP1:C1SCA:TS:3:Name", "CHAN1SCA3")

DBF_STRING:         "CHAN1SCA3"         

dbpf("XSP1:C1SCA:TS:4:Name", "CHAN1SCA4")

DBF_STRING:         "CHAN1SCA4"         

dbpf("XSP1:C1SCA:TS:5:Name", "CHAN1SCA5")

DBF_STRING:         "CHAN1SCA5"         

dbpf("XSP1:C1SCA:TS:6:Name", "CHAN1SCA6")

DBF_STRING:         "CHAN1SCA6"         

dbpf("XSP1:C1SCA:TS:7:Name", "CHAN1SCA7")

DBF_STRING:         "CHAN1SCA7"         

dbpf("XSP1:C1SCA:TS:8:Name", "CHAN1EventWidth")

DBF_STRING:         "CHAN1EventWidth"   

dbpf("XSP1:C1SCA:TS:9:Name", "CHAN1DTFactor")

DBF_STRING:         "CHAN1DTFactor"     

dbpf("XSP1:C1SCA:TS:10:Name", "CHAN1DTPercent")

DBF_STRING:         "CHAN1DTPercent"    

dbpf("XSP1:C1SCA:TS:NDArrayAddress", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:C1SCA:TS:TSAcquireMode", "0")

DBF_STRING:         "Fixed length"      

dbpf("XSP1:C1SCA:TS:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:C1SCA:TS:TSRead.SCAN", ".5 second")

DBF_STRING:         ".5 second"         

dbpf("XSP1:ROI1:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI1:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI1:EnableZ", "Disable")

DBF_STRING:         "Disable" 

dbpf("XSP1:ROI1:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROISUM1:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM1:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM1:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROI1:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA1:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM1:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCASUM1:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA1ROI:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA1ROI:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:MCA1:ArrayData.LOPR", 0.5)

DBF_DOUBLE:         0.5       

dbpf("XSP1:C1:DeadTime_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:C1:DTFactor_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:MCA1ROI:1:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:2:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:3:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:4:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:5:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:6:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:7:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:8:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:9:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:10:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:11:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:12:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:13:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:14:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:15:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:16:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:17:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:18:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:19:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:20:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:21:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:22:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:23:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:24:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:25:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:26:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:27:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:28:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:29:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:30:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:31:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:32:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:33:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:34:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:35:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:36:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:37:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:38:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:39:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:40:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:41:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:42:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:43:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:44:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:45:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:46:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:47:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA1ROI:48:Use", "Yes")

DBF_STRING:         "Yes"     

#Channel 3

epicsEnvSet("CHAN",   "2")

epicsEnvSet("CHM1",   "2")

< ../common_no_det1/SetChannelValues.cmd

# Load Default values for a single channel

dbpf("XSP1:ROI2:MinY",    "2")

DBF_LONG:           2 = 0x2   

dbpf("XSP1:ROISUM2:MinY", "2")

DBF_LONG:           2 = 0x2   

dbpf("XSP1:C2SCA:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:C2SCA:0:AttrName", "CHAN2SCA0")

DBF_CHAR[10]:       "CHAN2SCA0"         

dbpf("XSP1:C2SCA:1:AttrName", "CHAN2SCA1")

DBF_CHAR[10]:       "CHAN2SCA1"         

dbpf("XSP1:C2SCA:2:AttrName", "CHAN2SCA2")

DBF_CHAR[10]:       "CHAN2SCA2"         

dbpf("XSP1:C2SCA:3:AttrName", "CHAN2SCA3")

DBF_CHAR[10]:       "CHAN2SCA3"         

dbpf("XSP1:C2SCA:4:AttrName", "CHAN2SCA4")

DBF_CHAR[10]:       "CHAN2SCA4"         

dbpf("XSP1:C2SCA:5:AttrName", "CHAN2SCA5")

DBF_CHAR[10]:       "CHAN2SCA5"         

dbpf("XSP1:C2SCA:6:AttrName", "CHAN2SCA6")

DBF_CHAR[10]:       "CHAN2SCA6"         

dbpf("XSP1:C2SCA:7:AttrName", "CHAN2SCA7")

DBF_CHAR[10]:       "CHAN2SCA7"         

dbpf("XSP1:C2SCA:8:AttrName", "CHAN2EventWidth")

DBF_CHAR[16]:       "CHAN2EventWidth"   

dbpf("XSP1:C2SCA:9:AttrName", "CHAN2DTFactor")

DBF_CHAR[14]:       "CHAN2DTFactor"     

dbpf("XSP1:C2SCA:10:AttrName", "CHAN2DTPercent")

DBF_CHAR[15]:       "CHAN2DTPercent"    

dbpf("XSP1:C2SCA:TS:0:Name", "CHAN2SCA0")

DBF_STRING:         "CHAN2SCA0"         

dbpf("XSP1:C2SCA:TS:1:Name", "CHAN2SCA1")

DBF_STRING:         "CHAN2SCA1"         

dbpf("XSP1:C2SCA:TS:2:Name", "CHAN2SCA2")

DBF_STRING:         "CHAN2SCA2"         

dbpf("XSP1:C2SCA:TS:3:Name", "CHAN2SCA3")

DBF_STRING:         "CHAN2SCA3"         

dbpf("XSP1:C2SCA:TS:4:Name", "CHAN2SCA4")

DBF_STRING:         "CHAN2SCA4"         

dbpf("XSP1:C2SCA:TS:5:Name", "CHAN2SCA5")

DBF_STRING:         "CHAN2SCA5"         

dbpf("XSP1:C2SCA:TS:6:Name", "CHAN2SCA6")

DBF_STRING:         "CHAN2SCA6"         

dbpf("XSP1:C2SCA:TS:7:Name", "CHAN2SCA7")

DBF_STRING:         "CHAN2SCA7"         

dbpf("XSP1:C2SCA:TS:8:Name", "CHAN2EventWidth")

DBF_STRING:         "CHAN2EventWidth"   

dbpf("XSP1:C2SCA:TS:9:Name", "CHAN2DTFactor")

DBF_STRING:         "CHAN2DTFactor"     

dbpf("XSP1:C2SCA:TS:10:Name", "CHAN2DTPercent")

DBF_STRING:         "CHAN2DTPercent"    

dbpf("XSP1:C2SCA:TS:NDArrayAddress", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:C2SCA:TS:TSAcquireMode", "0")

DBF_STRING:         "Fixed length"      

dbpf("XSP1:C2SCA:TS:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:C2SCA:TS:TSRead.SCAN", ".5 second")

DBF_STRING:         ".5 second"         

dbpf("XSP1:ROI2:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI2:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI2:EnableZ", "Disable")

DBF_STRING:         "Disable" 

dbpf("XSP1:ROI2:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROISUM2:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM2:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM2:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROI2:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA2:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM2:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCASUM2:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA2ROI:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA2ROI:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:MCA2:ArrayData.LOPR", 0.5)

DBF_DOUBLE:         0.5       

dbpf("XSP1:C2:DeadTime_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:C2:DTFactor_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:MCA2ROI:1:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:2:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:3:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:4:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:5:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:6:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:7:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:8:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:9:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:10:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:11:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:12:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:13:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:14:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:15:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:16:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:17:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:18:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:19:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:20:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:21:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:22:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:23:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:24:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:25:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:26:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:27:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:28:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:29:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:30:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:31:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:32:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:33:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:34:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:35:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:36:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:37:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:38:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:39:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:40:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:41:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:42:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:43:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:44:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:45:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:46:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:47:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA2ROI:48:Use", "Yes")

DBF_STRING:         "Yes"     

#Channel 4

epicsEnvSet("CHAN",   "3")

epicsEnvSet("CHM1",   "3")

< ../common_no_det1/SetChannelValues.cmd

# Load Default values for a single channel

dbpf("XSP1:ROI3:MinY",    "3")

DBF_LONG:           3 = 0x3   

dbpf("XSP1:ROISUM3:MinY", "3")

DBF_LONG:           3 = 0x3   

dbpf("XSP1:C3SCA:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:C3SCA:0:AttrName", "CHAN3SCA0")

DBF_CHAR[10]:       "CHAN3SCA0"         

dbpf("XSP1:C3SCA:1:AttrName", "CHAN3SCA1")

DBF_CHAR[10]:       "CHAN3SCA1"         

dbpf("XSP1:C3SCA:2:AttrName", "CHAN3SCA2")

DBF_CHAR[10]:       "CHAN3SCA2"         

dbpf("XSP1:C3SCA:3:AttrName", "CHAN3SCA3")

DBF_CHAR[10]:       "CHAN3SCA3"         

dbpf("XSP1:C3SCA:4:AttrName", "CHAN3SCA4")

DBF_CHAR[10]:       "CHAN3SCA4"         

dbpf("XSP1:C3SCA:5:AttrName", "CHAN3SCA5")

DBF_CHAR[10]:       "CHAN3SCA5"         

dbpf("XSP1:C3SCA:6:AttrName", "CHAN3SCA6")

DBF_CHAR[10]:       "CHAN3SCA6"         

dbpf("XSP1:C3SCA:7:AttrName", "CHAN3SCA7")

DBF_CHAR[10]:       "CHAN3SCA7"         

dbpf("XSP1:C3SCA:8:AttrName", "CHAN3EventWidth")

DBF_CHAR[16]:       "CHAN3EventWidth"   

dbpf("XSP1:C3SCA:9:AttrName", "CHAN3DTFactor")

DBF_CHAR[14]:       "CHAN3DTFactor"     

dbpf("XSP1:C3SCA:10:AttrName", "CHAN3DTPercent")

DBF_CHAR[15]:       "CHAN3DTPercent"    

dbpf("XSP1:C3SCA:TS:0:Name", "CHAN3SCA0")

DBF_STRING:         "CHAN3SCA0"         

dbpf("XSP1:C3SCA:TS:1:Name", "CHAN3SCA1")

DBF_STRING:         "CHAN3SCA1"         

dbpf("XSP1:C3SCA:TS:2:Name", "CHAN3SCA2")

DBF_STRING:         "CHAN3SCA2"         

dbpf("XSP1:C3SCA:TS:3:Name", "CHAN3SCA3")

DBF_STRING:         "CHAN3SCA3"         

dbpf("XSP1:C3SCA:TS:4:Name", "CHAN3SCA4")

DBF_STRING:         "CHAN3SCA4"         

dbpf("XSP1:C3SCA:TS:5:Name", "CHAN3SCA5")

DBF_STRING:         "CHAN3SCA5"         

dbpf("XSP1:C3SCA:TS:6:Name", "CHAN3SCA6")

DBF_STRING:         "CHAN3SCA6"         

dbpf("XSP1:C3SCA:TS:7:Name", "CHAN3SCA7")

DBF_STRING:         "CHAN3SCA7"         

dbpf("XSP1:C3SCA:TS:8:Name", "CHAN3EventWidth")

DBF_STRING:         "CHAN3EventWidth"   

dbpf("XSP1:C3SCA:TS:9:Name", "CHAN3DTFactor")

DBF_STRING:         "CHAN3DTFactor"     

dbpf("XSP1:C3SCA:TS:10:Name", "CHAN3DTPercent")

DBF_STRING:         "CHAN3DTPercent"    

dbpf("XSP1:C3SCA:TS:NDArrayAddress", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:C3SCA:TS:TSAcquireMode", "0")

DBF_STRING:         "Fixed length"      

dbpf("XSP1:C3SCA:TS:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:C3SCA:TS:TSRead.SCAN", ".5 second")

DBF_STRING:         ".5 second"         

dbpf("XSP1:ROI3:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI3:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROI3:EnableZ", "Disable")

DBF_STRING:         "Disable" 

dbpf("XSP1:ROI3:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROISUM3:EnableX", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM3:EnableY", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM3:SizeY", "1")

DBF_LONG:           1 = 0x1   

dbpf("XSP1:ROI3:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA3:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:ROISUM3:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCASUM3:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA3ROI:EnableCallbacks", "Enable")

DBF_STRING:         "Enable"  

dbpf("XSP1:MCA3ROI:TSNumPoints", "4")

DBF_LONG:           4 = 0x4   

dbpf("XSP1:MCA3:ArrayData.LOPR", 0.5)

DBF_DOUBLE:         0.5       

dbpf("XSP1:C3:DeadTime_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:C3:DTFactor_RBV.SCAN", ".1 second")

DBF_STRING:         ".1 second"         

dbpf("XSP1:MCA3ROI:1:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:2:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:3:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:4:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:5:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:6:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:7:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:8:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:9:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:10:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:11:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:12:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:13:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:14:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:15:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:16:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:17:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:18:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:19:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:20:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:21:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:22:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:23:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:24:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:25:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:26:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:27:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:28:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:29:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:30:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:31:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:32:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:33:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:34:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:35:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:36:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:37:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:38:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:39:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:40:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:41:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:42:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:43:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:44:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:45:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:46:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:47:Use", "Yes")

DBF_STRING:         "Yes"     

dbpf("XSP1:MCA3ROI:48:Use", "Yes")

DBF_STRING:         "Yes"     

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

# save settings every thirty seconds

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

epicsThreadSleep(5.)

Calculating generation from Revision 0x0100101F, major=1, minor=31 => determined generation=0

Warning: module "xsp3_scalers0" already exists

Warning: module "xsp3_tf_status0" already exists

xsp3_scope_mod_create(name='xsp3_scope0')

Setting UDP LUT[255].HostPort=30124

Setting UDP LUT[0].HostPort=30125

save_restore: Can't connect to all status PV(s)

auto_settings.sav: 1599 of 1599 PV's connected

Setting UDP LUT[1].HostPort=30126

Setting UDP LUT[2].HostPort=30127

Setting UDP LUT[3].HostPort=30128

Test version 15/11/2017

Test version 15/11/2017

Finsihed starting histogram threads

Initialising hardware registers

Test version 15/11/2017

Test version 15/11/2017

Initialising hardware BRAM

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp3_clocks_setup_int: Called with card=0, clk_src=1, flags=0x0003

save_restore: Can't connect to status PV(s) for list 'auto_settings.sav'

xsp3_clocks_setup: Measured frequency 0.00 MHz

Making null roi as file '/etc/xspress3/calibration/walle_new_ioc/chan0_region4.dat' is Zero length

Making null roi as file '/etc/xspress3/calibration/walle_new_ioc/chan1_region4.dat' is Zero length

Making null roi as file '/etc/xspress3/calibration/walle_new_ioc/chan2_region4.dat' is Zero length

Making null roi as file '/etc/xspress3/calibration/walle_new_ioc/chan3_region4.dat' is Zero length

xsp3_read_format: diag_hist=0, nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, num_tf=16384

xsp3_read_format: diag_hist=0, nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, num_tf=16384

xsp3_read_format: diag_hist=0, nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, num_tf=16384

xsp3_read_format: diag_hist=0, nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, num_tf=16384

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp3_format_run: nbins_eng=4096, nbins_aux1=1, nbins_aux2=1, max_num_dets=4

xsp3_format_run: Determined num_tf=16384

xsp_get_trigger_b: chan=0, status=0, width=5

xsp_get_trigger_b: chan=1, status=0, width=5

xsp_get_trigger_b: chan=2, status=0, width=5

xsp_get_trigger_b: chan=3, status=0, width=5

# Set default event widths for deadtime correction

# note: these may be tuned for each detector:

# dbpf("$(PREFIX)C0:EventWidth",    "6")

# dbpf("$(PREFIX)C1:EventWidth",    "6")

# dbpf("$(PREFIX)C2:EventWidth",    "6")

# dbpf("$(PREFIX)C3:EventWidth",    "6")

# Xspress3 is now ready to use!

epics> 


References:
xspress3 channel numbering John Dobbins via Tech-talk
RE: xspress3 channel numbering Mark Rivers via Tech-talk

Navigate by Date:
Prev: RE: xspress3 channel numbering Mark Rivers via Tech-talk
Next: Re: ADEuresys: New areaDetector driver for CoaXPress cameras using Euresys frame grabbers Érico Nogueira Rolim via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025  2026 
Navigate by Thread:
Prev: RE: xspress3 channel numbering Mark Rivers via Tech-talk
Next: RE: EPICS 7.0.8 and 7.0.7 Windows build failure Revell Gary via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025  2026 
ANJ, 19 Mar 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·