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  <2024 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  <2024
<== Date ==> <== Thread ==>

Subject: RE: xspress3 channel numbering
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: John Dobbins <john.dobbins at cornell.edu>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 17 Apr 2024 16:14:44 +0000

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 <tech-talk-bounces at aps.anl.gov> On Behalf Of John Dobbins via Tech-talk
Sent: Wednesday, April 17, 2024 10:34 AM
To: tech-talk at aps.anl.gov
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> 


Replies:
Re: xspress3 channel numbering John Dobbins via Tech-talk
References:
xspress3 channel numbering John Dobbins via Tech-talk

Navigate by Date:
Prev: RE: EPICS 7.0.8 and 7.0.7 Windows build failure Revell Gary via Tech-talk
Next: Re: xspress3 channel numbering John Dobbins 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  <2024
Navigate by Thread:
Prev: xspress3 channel numbering John Dobbins via Tech-talk
Next: Re: xspress3 channel numbering John Dobbins 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  <2024
ANJ, 17 Apr 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·