Skip to content
Snippets Groups Projects
st.cmd 10.7 KiB
Newer Older
# vxWorks startup script
mooney's avatar
mooney committed
# For devIocStats
#epicsEnvSet("ENGINEER", "engineer")
#epicsEnvSet("LOCATION", "location")
putenv("ENGINEER=engineer")
putenv("LOCATION=location")
mooney's avatar
mooney committed
putenv("GROUP=group")

cd ""
< ../nfsCommands
< cdCommands

mooney's avatar
mooney committed
# How to set and get the clock rate (in Hz.  Default is 60 Hz)
#sysClkRateSet(100)
#sysClkRateGet()

################################################################################
cd topbin

# If the VxWorks kernel was built using the project facility, the following must
# be added before any C++ code is loaded (see SPR #28980).
sysCplusEnable=1

rivers's avatar
rivers committed
# If using a PowerPC CPU with more than 32MB of memory, and not building with longjump, then
# allocate enough memory here to force code to load in lower 32 MB.
mooney's avatar
mooney committed
##mem = malloc(1024*1024*96)
rivers's avatar
rivers committed

### Load synApps EPICS software
#ld(0,0,"xxx.munch")
rivers's avatar
rivers committed
# Increase size of buffer for error logging from default 1256
# need more entries in wait/scan-record channel-access queue?
recDynLinkQsize = 1024

# Specify largest array CA will transport
# Note for N sscanRecord data points, need (N+1)*8 bytes, else MEDM
# plot doesn't display
mooney's avatar
mooney committed
putenv "EPICS_CA_MAX_ARRAY_BYTES=64008"
mooney's avatar
mooney committed
# set the protocol path for streamDevice
mooney's avatar
mooney committed
epicsEnvSet("STREAM_PROTOCOL_PATH", ".")
mooney's avatar
mooney committed

################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxx.munch)
mooney's avatar
mooney committed
dbLoadDatabase("$(TOP)/dbd/iocxxxVX.dbd")
iocxxxVX_registerRecordDeviceDriver(pdbbase)
### Access Security
mooney's avatar
mooney committed
dbLoadRecords("$(TOP)/xxxApp/Db/Security_Control.db","P=xxx:")
mooney's avatar
mooney committed
iocsh
asSetFilename("$(TOP)/iocBoot/accessSecurity.acf")
exit
mooney's avatar
mooney committed
asSetSubstitutions("P=xxx:")

mooney's avatar
mooney committed
### caputRecorder
mooney's avatar
mooney committed

mooney's avatar
mooney committed
# trap listener
dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=xxx:,N=300")
mooney's avatar
mooney committed
doAfterIocInit("registerCaputRecorderTrapListener('xxx:caputRecorderCommand')")
mooney's avatar
mooney committed
# GUI database
dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxx:,N=300")

# second copy of GUI database
mooney's avatar
mooney committed
#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxxA:,N=300")
mooney's avatar
mooney committed

mooney's avatar
mooney committed
< industryPack.cmd
mooney's avatar
mooney committed
#< gpib.cmd
< vme.cmd
# CAMAC hardware
#<camac.cmd
mooney's avatar
mooney committed
#< areaDetector.cmd

#dbLoadTemplate("basic_motor.substitutions")
dbLoadTemplate("motor.substitutions")
mooney's avatar
mooney committed
#dbLoadTemplate("softMotor.substitutions")
mooney's avatar
mooney committed
#dbLoadTemplate("pseudoMotor.substitutions")
dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=xxx:")
doAfterIocInit("motorUtilInit('xxx:')")
mooney's avatar
mooney committed
### streamDevice example
#dbLoadRecords("$(TOP)/xxxApp/Db/streamExample.db","P=xxx:,PORT=serial1")

### Insertion-device control
#dbLoadRecords("$(STD)/stdApp/Db/IDctrl.db","P=xxx:,xx=02us")
### 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.)
mooney's avatar
mooney committed
putenv "SDB=$(SSCAN)/sscanApp/Db/standardScans.db"
dbLoadRecords("$(SDB)","P=xxx:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=100,MAXPTS4=100,MAXPTSH=100")
#dbLoadRecords("$(SSCAN)/sscanApp/Db/scanAux.db","P=xxx:,S=scanAux,MAXPTS=100")

# Start the saveData task.  If you start this task, scan records mentioned
# in saveData.req will *always* write data files.  There is no programmable
# disable for this software.
dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=xxx:")
doAfterIocInit("saveData_Init('saveData.req', 'P=xxx:')")

mooney's avatar
mooney committed
dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=xxx:scanProgress:")
doAfterIocInit("seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:'")

mooney's avatar
mooney committed
# configMenu example.  See create_manual_set() command after iocInit.
#dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan1")
#doAfterIocInit("create_manual_set('scan1Menu.req','P=xxx:,CONFIG=scan1,CONFIGMENU=1')")
# A set of scan parameters for each positioner.  This is a convenience
# for the user.  It can contain an entry for each scannable thing in the
# crate.
dbLoadTemplate("scanParms.substitutions")

mooney's avatar
mooney committed
### 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")
### X-ray Instrumentation Associates Huber Slit Controller
# supported by a customized version of the SNL program written by Pete Jemian
# (Uses asyn record loaded separately)
#dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc1:")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc2:")
#doAfterIocInit("seq  &xia_slit, 'name=hsc1, P=xxx:, HSC=hsc1:, S=xxx:asyn_6'")
#doAfterIocInit("seq  &xia_slit, 'name=hsc2, P=xxx:, HSC=hsc2:, S=xxx:asyn_6'")
mooney's avatar
mooney committed
#dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m1,mUp=m2,LENGTH=0.3")
rivers's avatar
rivers committed
#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterLock.db","P=xxx:,Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=xxx:DAC1_1.VAL")
putenv "DIR=$(OPTICS)/opticsApp/Db"
mooney's avatar
mooney committed
dbLoadRecords("$(DIR)/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
mooney's avatar
mooney committed
#dbLoadRecords("$(OPTICS)/opticsApp/Db/Io.db","P=xxx:Io:")
#doAfterIocInit("seq &Io, 'P=xxx:Io:,MONO=xxx:BraggEAO,VSC=xxx:scaler1'")
mooney's avatar
mooney committed

### 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=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001")
doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=1, logfile=kohzuCtl.log'")
# modified geometry (geometry 2)
#dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=4,yOffHi=36")
#doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log'")
# Example of specifying offset limits
#doAfterIocInit("epicsThreadSleep(5.)")
#doAfterIocInit("dbpf xxx:kohzu_yOffsetAO.DRVH 17.51")
#doAfterIocInit("dbpf xxx:kohzu_yOffsetAO.DRVL 17.49")

### Spherical grating monochromator
#dbLoadRecords("$(OPTICS)/opticsApp/Db/SGM.db","P=xxx:,N=1,M_x=m7,M_rIn=m6,M_rOut=m8,M_g=m9")
### 4-bounce high-resolution monochromator
#dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m1,M_PHI2=m2")
#doAfterIocInit("dbpf 'xxx:HR1CtlDebug','1'")
mooney's avatar
mooney committed
#doAfterIocInit("seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log'")
rivers's avatar
rivers committed
#dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m11,M_PHI2=m12")
### multilayer monochromator: Bragg and theta/Y/Z motors
mooney's avatar
mooney committed
#dbLoadRecords("$(OPTICS)/opticsApp/Db/ml_monoSeq.db","P=xxx:")
#doAfterIocInit("seq &ml_monoCtl, 'P=xxx:, M_THETA=m1, M_THETA2=m2, M_Y=m3, M_Z=m4, Y_OFF=35., GEOM=1'")
mooney's avatar
mooney committed

### 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")
#doAfterIocInit("seq &orient, 'P=xxx:orient1:,PM=xxx:,mTTH=m13,mTH=m14,mCHI=m15,mPHI=m16'")
mooney's avatar
mooney committed
dbLoadRecords("$(OPTICS)/opticsApp/Db/CoarseFineMotor.db","P=xxx:cf1:,PM=xxx:,CM=m7,FM=m8")
# Load single element Canberra AIM MCA and ICB modules
mooney's avatar
mooney committed
#< canberra_1.cmd
rivers's avatar
rivers committed

# Load 13 element detector software

# Load 3 element detector software

### Stuff for user programming ###
mooney's avatar
mooney committed

# 4-step measurement
dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:,Q=4step:")
mooney's avatar
mooney committed

mooney's avatar
mooney committed
# user-assignable ramp/tweak
dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
# pvHistory (in-crate archive of up to three PV's)
mooney's avatar
mooney committed
dbLoadRecords("$(STD)/stdApp/Db/pvHistory.db","P=xxx:,N=1,MAXSAMPLES=1440")
mooney's avatar
mooney committed
# software timer
mooney's avatar
mooney committed
dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1")
mooney's avatar
mooney committed

mooney's avatar
mooney committed
dbLoadTemplate "pid_slow.substitutions"
dbLoadTemplate "async_pid_slow.substitutions"
# Miscellaneous PV's, such as burtResult
dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
mooney's avatar
mooney committed

# devIocStats
dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminVxWorks.db","IOC=xxx")

### Queensgate piezo driver
rivers's avatar
rivers committed
#dbLoadRecords("$(IP)/ipApp/Db/pzt_3id.db","P=xxx:")
#dbLoadRecords("$(IP)/ipApp/Db/pzt.db","P=xxx:,PORT=")

### Queensgate Nano2k piezo controller
#dbLoadRecords("$(STD)/stdApp/Db/Nano2k.db","P=xxx:,S=s1")

mooney's avatar
mooney committed
### Load database records for Femto amplifiers
#dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=xxx:,H=fem01:,F=seq01:")
putenv "FBO=xxx:Unidig1Bo"
#doAfterIocInit("seq &femto,'name=fem1,P=xxx:,H=fem01:,F=seq01:,G1=$(FBO)6,G2=$(FBO)7,G3=$(FBO)8,NO=$(FBO)10'")
### Load database records for dual PF4 filters
mooney's avatar
mooney committed
#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")
# Start PF4 filter sequence programs
#        name = what user will call it
#        P    = prefix of database and sequencer
#        H    = hardware (i.e. pf4)
#        B    = bank indicator (i.e. A,B)
#        M    = Monochromatic-beam energy PV
#        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   = Filter control bit 3 number
#doAfterIocInit("seq &pf4,'name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:BraggEAO,BP=xxx:Unidig1Bo,B1=3,B2=4,B3=5,B4=6'")
#doAfterIocInit("seq &pf4,'name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:BraggEAO,BP=xxx:Unidig1Bo,B1=7,B2=8,B3=9,B4=10'")
mooney's avatar
mooney committed

### Load database records for alternative PF4-filter support
dbLoadTemplate "filter.substitutions"
#doAfterIocInit("seq &filterDrive,'NAME=filterDrive,P=xxx:,R=filter:,NUM_FILTERS=16'")
mooney's avatar
mooney committed

# trajectory scan
#dbLoadRecords("$(MOTOR)/motorApp/Db/trajectoryScan.db","P=xxx:,R=traj1:,NAXES=2,NELM=300,NPULSE=300")
#doAfterIocInit("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'")
### Load database record for alive heartbeating support.
# RHOST specifies the IP address that receives the heartbeats.
mooney's avatar
mooney committed
dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=xxx:,RHOST=164.54.100.11")
###############################################################################
rivers's avatar
rivers committed
shellPromptSet "iocvxWorks> "
###############################################################################

# write all the PV names to a local file
dbl > dbl-all.txt
rivers's avatar
rivers committed

# If memory allocated at beginning free it now
mooney's avatar
mooney committed
##free(mem)
mooney's avatar
mooney committed
# Diagnostic: CA links in all records
#dbcar(0,1)