From d23b8fc5f7ad8332774de470efb4e1002ff651f6 Mon Sep 17 00:00:00 2001
From: timmmooney <mooney@aps.anl.gov>
Date: Fri, 26 Aug 2011 21:43:09 +0000
Subject: [PATCH] R5-6

---
 iocBoot/iocvxWorks/st.cmd | 130 ++++++++++++++++++++++----------------
 1 file changed, 77 insertions(+), 53 deletions(-)

diff --git a/iocBoot/iocvxWorks/st.cmd b/iocBoot/iocvxWorks/st.cmd
index 8638ed4..9782ceb 100644
--- a/iocBoot/iocvxWorks/st.cmd
+++ b/iocBoot/iocvxWorks/st.cmd
@@ -2,17 +2,17 @@
 
 sysVmeMapShow
 
-# for vxStats
-#putenv "engineer=not me"
-#putenv "location=Earth"
-engineer="not me"
-location="Earth"
+# For devIocStats
+#epicsEnvSet("ENGINEER", "engineer")
+#epicsEnvSet("LOCATION", "location")
+putenv("ENGINEER=engineer")
+putenv("LOCATION=location")
 
 cd ""
 < ../nfsCommands
 < cdCommands
 
-# How to set and get the clock rate
+# How to set and get the clock rate (in Hz.  Default is 60 Hz)
 #sysClkRateSet(100)
 #sysClkRateGet()
 
@@ -29,7 +29,7 @@ sysCplusEnable=1
 
 ### Load synApps EPICS software
 ### doesn't work for tornado 2.2.2 ### ld < xxx.munch
-load("xxx.munch")
+ld(0,0,"xxx.munch")
 cd startup
 
 # Increase size of buffer for error logging from default 1256
@@ -47,7 +47,7 @@ recDynLinkQsize = 1024
 putenv "EPICS_CA_MAX_ARRAY_BYTES=64008"
 
 # set the protocol path for streamDevice
-#epicsEnvSet("STREAM_PROTOCOL_PATH", ".")
+epicsEnvSet("STREAM_PROTOCOL_PATH", ".")
 
 ################################################################################
 # Tell EPICS all about the record types, device-support modules, drivers,
@@ -55,11 +55,16 @@ putenv "EPICS_CA_MAX_ARRAY_BYTES=64008"
 dbLoadDatabase("$(TOP)/dbd/iocxxxVX.dbd")
 iocxxxVX_registerRecordDeviceDriver(pdbbase)
 
+#dbLoadTemplate("octupole.substitutions")
+
+# Autosave info node example
+dbLoadRecords("$(AUTOSAVE)/asApp/Db/infoExample.db","P=xxx:")
+
 # Soft function generator
-dbLoadRecords("$(CALC)/calcApp/Db/FuncGen.db","P=xxx:,Q=fgen,OUT=xxx:m7.VAL")
+#dbLoadRecords("$(CALC)/calcApp/Db/FuncGen.db","P=xxx:,Q=fgen,OUT=xxx:m7.VAL")
 
 # user-assignable ramp/tweak
-dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
+#dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
 
 ### save_restore setup
 # We presume a suitable initHook routine was compiled into xxx.munch.
@@ -69,8 +74,6 @@ dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
 # Industry Pack support
 < industryPack.cmd
 
-# serial support
-< serial.cmd
 
 # gpib support
 #< gpib.cmd
@@ -86,7 +89,7 @@ dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
 # Motors
 #dbLoadTemplate("basic_motor.substitutions")
 dbLoadTemplate("motor.substitutions")
-dbLoadTemplate("softMotor.substitutions")
+#dbLoadTemplate("softMotor.substitutions")
 #dbLoadTemplate("pseudoMotor.substitutions")
 
 ### Allstop, alldone
@@ -101,7 +104,8 @@ dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=xxx:")
 ### Scan-support software
 # crate-resident scan.  This executes 1D, 2D, 3D, and 4D scans, and caches
 # 1D data, but it doesn't store anything to disk.  (See 'saveData' below for that.)
-dbLoadTemplate("standardScans.substitutions")
+putenv "SDB=$(SSCAN)/sscanApp/Db/standardScans.db"
+dbLoadRecords("$(SDB)","P=xxx:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000")
 dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=xxx:")
 
 # A set of scan parameters for each positioner.  This is a convenience
@@ -109,9 +113,11 @@ dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=xxx:")
 # crate.
 dbLoadTemplate("scanParms.substitutions")
 
-### Slits
-dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4")
-dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6")
+### Slits (If not supplied, RELTOCENTER defaults to zero)
+dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4,RELTOCENTER=0")
+dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6,RELTOCENTER=0")
+#dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2V,mXp=m3,mXn=m4")
+#dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2H,mXp=m5,mXn=m6")
 
 # X-ray Instrumentation Associates Huber Slit Controller
 # supported by a customized version of the SNL program written by Pete Jemian
@@ -120,7 +126,7 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m
 #dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc2:")
 
 ### 2-post mirror
-dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m8,mUp=m7,LENGTH=0.3")
+#dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m1,mUp=m2,LENGTH=0.3")
 
 ### User filters
 #dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:")
@@ -130,15 +136,15 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m8,mUp=m7
 ### Optical tables
 #tableRecordDebug=1
 putenv "DIR=$(OPTICS)/opticsApp/Db"
-dbLoadRecords("$(DIR)/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
+dbLoadRecords("$(DIR)/table.db","P=xxx:,Q=Table1,T=table1,M0X=m9,M0Y=m10,M1Y=m11,M2X=m12,M2Y=m13,M2Z=m14,GEOM=SRI")
 
 # Io calculation
-dbLoadRecords("$(OPTICS)/opticsApp/Db/Io.db","P=xxx:Io:")
+#dbLoadRecords("$(OPTICS)/opticsApp/Db/Io.db","P=xxx:Io:")
 
 ### Monochromator support ###
 # Kohzu and PSL monochromators: Bragg and theta/Y/Z motors
 # standard geometry (geometry 1)
-dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=17.4999,yOffHi=17.5001")
+#dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001")
 # modified geometry (geometry 2)
 #dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=4,yOffHi=36")
 
@@ -150,14 +156,14 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_
 #dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m11,M_PHI2=m12")
 
 # multilayer monochromator: Bragg and theta/Y/Z motors
-dbLoadRecords("$(OPTICS)/opticsApp/Db/ml_monoSeq.db","P=xxx:")
+#dbLoadRecords("$(OPTICS)/opticsApp/Db/ml_monoSeq.db","P=xxx:")
 
 ### Orientation matrix, four-circle diffractometer (see seq program 'orient' below)
 #dbLoadRecords("$(OPTICS)/opticsApp/Db/orient.db", "P=xxx:,O=1,PREC=6")
 #dbLoadTemplate("orient_xtals.substitutions")
 
 # Coarse/Fine stage
-#dbLoadRecords("$(OPTICS)/opticsApp/Db/CoarseFineMotor.db","P=xxx:cf1:,PM=xxx:,CM=m7,FM=m8")
+dbLoadRecords("$(OPTICS)/opticsApp/Db/CoarseFineMotor.db","P=xxx:cf1:,PM=xxx:,CM=m7,FM=m8")
 
 # Load single element Canberra AIM MCA and ICB modules
 #< canberra_1.cmd
@@ -172,39 +178,41 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/ml_monoSeq.db","P=xxx:")
 dbLoadRecords("$(CALC)/calcApp/Db/userCalcs10.db","P=xxx:")
 dbLoadRecords("$(CALC)/calcApp/Db/userCalcOuts10.db","P=xxx:")
 dbLoadRecords("$(CALC)/calcApp/Db/userStringCalcs10.db","P=xxx:")
-aCalcArraySize=2000
+aCalcArraySize=1000
 dbLoadRecords("$(CALC)/calcApp/Db/userArrayCalcs10.db","P=xxx:,N=2000")
 dbLoadRecords("$(CALC)/calcApp/Db/userTransforms10.db","P=xxx:")
 dbLoadRecords("$(CALC)/calcApp/Db/userAve10.db","P=xxx:")
 # string sequence (sseq) records
 dbLoadRecords("$(STD)/stdApp/Db/userStringSeqs10.db","P=xxx:")
+
 # 4-step measurement
-dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:")
+#dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:")
+
 # interpolation
 #dbLoadRecords("$(CALC)/calcApp/Db/interp.db", "P=xxx:,N=2000")
 
-dbLoadRecords("$(TOP)/xxxApp/Db/interpNew.db", "P=xxx:,Q=1,N=100")
+#dbLoadRecords("$(TOP)/xxxApp/Db/interpNew.db", "P=xxx:,Q=1,N=100")
 
 # array test
-dbLoadRecords("$(CALC)/calcApp/Db/arrayTest.db", "P=xxx:,N=2000")
+#dbLoadRecords("$(CALC)/calcApp/Db/arrayTest.db", "P=xxx:,N=2000")
 
 # pvHistory (in-crate archive of up to three PV's)
-dbLoadRecords("$(STD)/stdApp/Db/pvHistory.db","P=xxx:,N=1,MAXSAMPLES=1440")
+#dbLoadRecords("$(STD)/stdApp/Db/pvHistory.db","P=xxx:,N=1,MAXSAMPLES=1440")
 
 # software timer
-dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1")
+#dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1")
 
 # busy record
 dbLoadRecords("$(BUSY)/busyApp/Db/busyRecord.db","P=xxx:,R=mybusy")
 
 # Slow feedback
-dbLoadTemplate "pid_slow.substitutions"
+#dbLoadTemplate "pid_slow.substitutions"
 
 # Miscellaneous PV's, such as burtResult
 dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
-#dbLoadRecords("$(STD)/stdApp/Db/VXstats.db","P=xxx:")
-# vxStats
-dbLoadTemplate("vxStats.substitutions")
+
+# devIocStats
+dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminVxWorks.db","IOC=xxx")
 
 ### Queensgate piezo driver
 #dbLoadRecords("$(IP)/ipApp/Db/pzt_3id.db","P=xxx:")
@@ -213,16 +221,16 @@ dbLoadTemplate("vxStats.substitutions")
 ### Queensgate Nano2k piezo controller
 #dbLoadRecords("$(STD)/stdApp/Db/Nano2k.db","P=xxx:,S=s1")
 
-### Load database records for sequence support for Femto DLPCA-200 amplifiers
+### Load database records for Femto amplifiers
 #dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=xxx:,H=fem01:,F=seq01:")
 
-### Load database records for transform record support for Femto amplifiers
-#dbLoadTemplate("femto_DxPCA_x00.substitutions")
-
 ### Load database records for dual PF4 filters
-#dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4common.db","P=xxx:,H=pf4:,A=A,B=B")
-#dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=A")
-#dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=B")
+dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4common.db","P=xxx:,H=pf4:,A=A,B=B")
+dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=A")
+dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=B")
+
+# trajectory scan
+dbLoadRecords("$(MOTOR)/motorApp/Db/trajectoryScan.db","P=xxx:,R=traj1:,NAXES=8,NELM=100,NPULSE=1000")
 
 ###############################################################################
 # Set shell prompt (otherwise it is left at mv167 or mv162)
@@ -233,14 +241,16 @@ iocInit
 ### Startup State Notation Language (SNL) programs
 # NOTE: Command line limited to 128 characters
 
-seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=2, logfile=kohzuCtl.log"
+#seq &kohzuCtl, "P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log"
 ### Example of specifying offset limits
 ##taskDelay(300)
 ##dbpf xxx:kohzu_yOffsetAO.DRVH 17.51
 ##dbpf xxx:kohzu_yOffsetAO.DRVL 17.49
 
-#seq &ml_monoCtl, "P=xxx:, M_THETA=m7, M_THETA2=m10, M_Y=m9, M_Z=m8, Y_OFF=35., GEOM=1"
+# multilayer monochromator
+#seq &ml_monoCtl, "P=xxx:, M_THETA=m1, M_THETA2=m2, M_Y=m3, M_Z=m4, Y_OFF=35., GEOM=1"
 
+# 4-bounce high-resolution monochromator
 #seq &hrCtl, "P=xxx:, N=1, M_PHI1=m9, M_PHI2=m10, logfile=hrCtl1.log"
 
 # Keithley 2000 series DMM
@@ -260,7 +270,7 @@ seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=2, logfile=kohzuCtl.l
 #seq &orient, "P=xxx:orient1:,PM=xxx:,mTTH=m13,mTH=m14,mCHI=m15,mPHI=m16"
 
 # Io calculation
-seq &Io, "P=xxx:Io:,MONO=xxx:BraggEAO,VSC=xxx:scaler1"
+#seq &Io, "P=xxx:Io:,MONO=xxx:BraggEAO,VSC=xxx:scaler1"
 
 # Start Femto amplifier sequence programs
 putenv "FBO=xxx:Unidig1Bo"
@@ -272,13 +282,21 @@ putenv "FBO=xxx:Unidig1Bo"
 #        H    = hardware (i.e. pf4)
 #        B    = bank indicator (i.e. A,B)
 #        M    = Monochromatic-beam energy PV
-#        B1   = Filter control bit 0 PV
-#        B2   = Filter control bit 1 PV
-#        B3   = Filter control bit 2 PV
-#        B4   = Fitler control bit 3 PV
-putenv "BO=xxx:Unidig1Bo"
-#seq &pf4,"name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:BraggEAO,B1=$(BO)3,B2=$(BO)4,B3=$(BO)5,B4=$(BO)6"
-#seq &pf4,"name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:BraggEAO,B1=$(BO)7,B2=$(BO)8,B3=$(BO)9,B4=$(BO)10"
+#        BP   = Filter control bit PV prefix
+#        B1   = Filter control bit 0 number
+#        B2   = Filter control bit 1 number
+#        B3   = Filter control bit 2 number
+#        B4   = Fitler control bit 3 number
+#seq &pf4,"name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:BraggEAO,BP=xxx:Unidig1Bo,B1=3,B2=4,B3=5,B4=6"
+#seq &pf4,"name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:BraggEAO,BP=xxx:Unidig1Bo,B1=7,B2=8,B3=9,B4=10"
+seq(&pf4,"name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:userCalc1,BP=xxx:Unidig1Bo,B1=3,B2=4,B3=5,B4=6")
+seq(&pf4,"name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:userCalc1,BP=xxx:Unidig1Bo,B1=7,B2=8,B3=9,B4=10")
+
+### Octupole power-supply
+#seq &octupole, "P=xxx:, Q=octupole:, S=softGlue:"
+
+# MAXV trajectory scan 
+seq &MAX_trajectoryScan, "P=xxx:,R=traj1:,M1=m1,M2=m2,M3=m3,M4=m4,M5=m5,M6=m6,M7=m7,M8=m8,PORT=none"
 
 ### Start up the autosave task and tell it what to do.
 # The task is actually named "save_restore".
@@ -293,9 +311,15 @@ putenv "BO=xxx:Unidig1Bo"
 create_monitor_set("auto_positions.req",5,"P=xxx:")
 # save other things every thirty seconds
 create_monitor_set("auto_settings.req",30,"P=xxx:")
-# You can have a save set triggered by a PV, and specify the name of the file it will write to with a PV
-#create_triggered_set(<request file>,<trigger PV>,<PV from which file name should be read>)
-#create_triggered_set("trigSet.req","xxx:userStringCalc1.SVAL","P=xxx:,SAVENAMEPV=xxx:userStringCalc1.SVAL")
+
+# You can have a save set triggered by a PV, and specify the path and/or name of the file it
+# will write to via PVs.  If you specify a path PV, the path must already exist; autosave won't
+# create a directory.  If the path begins with '/', autosave will use it exactly as read.
+# If the path does not begin with '/', autosave will prepend the path that was specified in a
+# call to set_savefile_path().
+#create_triggered_set(<request file>,<trigger PV>,<macrostring>)
+macro="P=xxx:,SAVENAMEPV=xxx:userStringCalc1.SVAL,SAVEPATHPV=xxx:userStringCalc2.SVAL"
+create_triggered_set("trigSet.req","xxx:userStringCalc1.A",macro)
 
 ### Start the saveData task.  If you start this task, scan records mentioned
 # in saveData.req will *always* write data files.  There is no programmable
-- 
GitLab