Skip to content
Snippets Groups Projects
Commit d2829695 authored by mooney's avatar mooney
Browse files

new

parent 6506da5d
No related branches found
No related tags found
No related merge requests found
Showing
with 636 additions and 0 deletions
TOP = ../..
include $(TOP)/configure/CONFIG
ARCH = linux-x86
TARGETS = envPaths
include $(TOP)/configure/RULES.ioc
Assuming the EPICS_HOST_ARCH environment variable is set correctly,
start the ioc from this directory by executing the following command.
../../bin/${EPICS_HOST_ARCH}/xxx st.cmd
$(P)m1.OFF
$(P)m1.DVAL
$(P)m2.OFF
$(P)m2.DVAL
$(P)m3.OFF
$(P)m3.DVAL
$(P)m4.OFF
$(P)m4.DVAL
$(P)m5.OFF
$(P)m5.DVAL
$(P)m6.OFF
$(P)m6.DVAL
$(P)m7.OFF
$(P)m7.DVAL
$(P)m8.OFF
$(P)m8.DVAL
file motor_settings.req P=$(P),M=m1
file scanParms_settings.req P=$(P),M=m1
file table_settings.req P=$(P),T=table1,Q=table1
file scan_settings.req P=$(P),S=scan1
file scan_settings.req P=$(P),S=scan2
file scan_settings.req P=$(P),S=scan3
file scan_settings.req P=$(P),S=scan4
file scan_settings.req P=$(P),S=scanH
# Kohzu monochromator
#$(P)BraggHAO.VAL
#$(P)BraggKAO.VAL
#$(P)BraggLAO.VAL
#$(P)BraggAAO.VAL
#$(P)BraggTypeMO.VAL
#$(P)KohzuMode2MO.VAL
#$(P)Kohzu_yOffsetAO.VAL
file userCalcs10_settings.req P=$(P)
file userCalcN_settings.req P=$(P),N=I_Detector
file saveData_settings.req P=$(P)
file userTransforms10_settings.req P=$(P)
file userStringCalcs10_settings.req P=$(P)
# string-sequence records
file sseq_settings.req P=$(P),S=Sseq1
file sseq_settings.req P=$(P),S=Sseq2
file sseq_settings.req P=$(P),S=Sseq3
# 4-step measurement
file auto_4step_settings.req P=$(P),Q=4step
file userAve10_settings.req P=$(P)
epicsEnvSet(ARCH,"linux-x86")
epicsEnvSet(IOC,"iocLinux")
epicsEnvSet(TOP,"/home/oxygen4/MOONEY/epics/synApps_5_1/support/xxx")
epicsEnvSet(SUPPORT,"/home/oxygen/MOONEY/epics/synApps_5_1/support")
epicsEnvSet(ALLEN_BRADLEY,"/home/oxygen/MOONEY/epics/synApps_5_1/support/allenBradley/2-1")
epicsEnvSet(ASYN,"/home/oxygen/MOONEY/epics/synApps_5_1/support/asyn/4-2")
epicsEnvSet(AUTOSAVE,"/home/oxygen/MOONEY/epics/synApps_5_1/support/autosave/cvs")
epicsEnvSet(CALC,"/home/oxygen/MOONEY/epics/synApps_5_1/support/calc/2-4")
epicsEnvSet(CAMAC,"/home/oxygen/MOONEY/epics/synApps_5_1/support/camac/cvs")
epicsEnvSet(CCD,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ccd/cvs")
epicsEnvSet(DAC128V,"/home/oxygen/MOONEY/epics/synApps_5_1/support/dac128V/cvs")
epicsEnvSet(DXP,"/home/oxygen/MOONEY/epics/synApps_5_1/support/dxp/cvs")
epicsEnvSet(GENSUB,"/home/oxygen/MOONEY/epics/synApps_5_1/support/genSub/1-6")
epicsEnvSet(IP,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ip/2-4")
epicsEnvSet(IP330,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ip330/cvs")
epicsEnvSet(IPUNIDIG,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ipUnidig/cvs")
epicsEnvSet(IPAC,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ipac/2-8")
epicsEnvSet(MCA,"/home/oxygen/MOONEY/epics/synApps_5_1/support/mca/cvs")
epicsEnvSet(MOTOR,"/home/oxygen/MOONEY/epics/synApps_5_1/support/motor/cvs")
epicsEnvSet(OPTICS,"/home/oxygen/MOONEY/epics/synApps_5_1/support/optics/2-4")
epicsEnvSet(QUADEM,"/home/oxygen/MOONEY/epics/synApps_5_1/support/quadEM/cvs")
epicsEnvSet(SNCSEQ,"/home/oxygen/MOONEY/epics/synApps_5_1/support/seq/2-0-9")
epicsEnvSet(SSCAN,"/home/oxygen/MOONEY/epics/synApps_5_1/support/sscan/cvs")
epicsEnvSet(STD,"/home/oxygen/MOONEY/epics/synApps_5_1/support/std/2-4")
epicsEnvSet(VME,"/home/oxygen/MOONEY/epics/synApps_5_1/support/vme/cvs")
epicsEnvSet(VXSTATS,"/home/oxygen/MOONEY/epics/synApps_5_1/support/vxStats/cvs")
epicsEnvSet(EPICS_BASE,"/home/oxygen/MOONEY/epics/base-3.14.7")
../../bin/${EPICS_HOST_ARCH}/xxx st.cmd
[prefix]
$(P)
[status]
$(P)saveData_status
[message]
$(P)saveData_message
[filename]
$(P)saveData_fileName
[counter] # scan counter
$(P)saveData_scanNumber
[fileSystem] # scan file system
$(P)saveData_fileSystem
[subdir] # scan file subdirectory
$(P)saveData_subDir
[fullPathName]
$(P)saveData_fullPathName
[realTime1D] # if nonzero, write 1D data as it comes in
$(P)saveData_realTime1D
[scanRecord] # specify scan records to be monitored
$(P)scanH
$(P)scan1
$(P)scan2
$(P)scan3
$(P)scan4
[extraPV]
$(P)userCalc1.CALC "string"
$(P)saveData_realTime1D "enum"
$(P)saveData_scanNumber "long"
$(P)saveData_fileSystem "filesystem"
$(P)scan1.P1SM "scan mode"
### save_restore setup
#
# The rest this file does not require modification for standard use, but...
# If you want save_restore to manage its own NFS mount, specify the name and
# IP address of the file server to which save files should be written.
# This currently is supported only on vxWorks.
#save_restoreSet_NFSHost("oxygen", "164.54.52.4")
# status-PV prefix
save_restoreSet_status_prefix("xxx:")
# Debug-output level
save_restoreSet_Debug(0)
# Ok to save/restore save sets with missing values (no CA connection to PV)?
save_restoreSet_IncompleteSetsOk(1)
# Save dated backup files?
save_restoreSet_DatedBackupFiles(1)
# Number of sequenced backup files to write
save_restoreSet_NumSeqFiles(3)
# Time interval between sequenced backups
save_restoreSet_SeqPeriodInSeconds(300)
# specify where save files should be
set_savefile_path("$(STARTUP)", "autosave")
# specify what save files should be restored. Note these files must be
# in the directory specified in set_savefile_path(), or, if that function
# has not been called, from the directory current when iocInit is invoked
set_pass0_restoreFile("auto_positions.sav")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
# specify directories in which to to search for included request files
# Note cdCommands defines 'startup', but envPaths does not
set_requestfile_path("$(STARTUP)", "")
set_requestfile_path("$(STARTUP)", "autosave")
set_requestfile_path("$(AUTOSAVE)", "asApp/Db")
set_requestfile_path("$(CALC)", "calcApp/Db")
#set_requestfile_path("$(CAMAC)", "camacApp/Db")
set_requestfile_path("$(CCD)", "ccdApp/Db")
set_requestfile_path("$(DAC128V)", "dac128VApp/Db")
set_requestfile_path("$(DXP)", "dxpApp/Db")
set_requestfile_path("$(IP)", "ipApp/Db")
set_requestfile_path("$(IP330)", "ip330App/Db")
set_requestfile_path("$(IPUNIDIG)", "ipUnidigApp/Db")
#set_requestfile_path("$(LOVE)", "loveApp/Db")
set_requestfile_path("$(MCA)", "mcaApp/Db")
set_requestfile_path("$(MOTOR)", "motorApp/Db")
set_requestfile_path("$(OPTICS)", "opticsApp/Db")
set_requestfile_path("$(QUADEM)", "quadEMApp/Db")
set_requestfile_path("$(SSCAN)", "sscanApp/Db")
set_requestfile_path("$(STD)", "stdApp/Db")
set_requestfile_path("$(VME)", "vmeApp/Db")
dbLoadRecords("$(AUTOSAVE)/asApp/Db/save_restoreStatus.db", "P=xxx:")
file "$(SSCAN)/sscanApp/Db/scanParms.db"
{
{P=xxx:,SCANREC=xxx:scan1,Q=m1,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=m2,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=m3,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=m4,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=m5,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=m6,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=m7,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=m8,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1X,POS=table1.X,RDBK=table1.XRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1Y,POS=table1.Y,RDBK=table1.YRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1Z,POS=table1.Z,RDBK=table1.ZRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AX,POS=table1.AX,RDBK=table1.AXRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AY,POS=table1.AY,RDBK=table1.AYRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AZ,POS=table1.AZ,RDBK=table1.AZRB}
#{P=xxx:,SCANREC=xxx:scan1,Q=BraggE,POS=BraggEAO.VAL,RDBK=BraggERdbkAO.VAL}
#{P=xxx:,SCANREC=xxx:scan1,Q=BraggLambda,POS=BraggLambdaAO.VAL,RDBK=BraggLambdaRdbkAO.VAL}
#{P=xxx:,SCANREC=xxx:scan1,Q=BraggTheta,POS=BraggThetaAO.VAL,RDBK=BraggThetaRdbkAO.VAL}
#{P=xxx:,SCANREC=xxx:scan1,Q=HR1_E,POS=HR1_EAO.VAL,RDBK=HR1_ERdbkAO}
#{P=xxx:,SCANREC=xxx:scan1,Q=HR1_A,POS=HR1_worldOffAO.VAL,RDBK=HR1_worldOffAO.VAL}
# old slit
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hp,POS=Slit1Hxp.VAL,RDBK=Slit1Ht2.A}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hn,POS=Slit1Hxn.VAL,RDBK=Slit1Ht2.B}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hsize,POS=Slit1Hsize.VAL,RDBK=Slit1Ht2.C}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hcenter,POS=Slit1Hcenter.VAL,RDBK=Slit1Ht2.D}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vp,POS=Slit1Vxp.VAL,RDBK=Slit1Vt2.A}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vn,POS=Slit1Vxn.VAL,RDBK=Slit1Vt2.B}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vsize,POS=Slit1Vsize.VAL,RDBK=Slit1Vt2.C}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vcenter,POS=Slit1Vcenter.VAL,RDBK=Slit1Vt2.D}
# new soft-motor-based slit
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hxn,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hxp,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hsize,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hcenter,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vxn,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vxp,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vsize,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vcenter,POS=$(Q).VAL,RDBK=$(Q).RBV}
}
# vxWorks startup script
# Read environment variables
< envPaths
# save_restore.cmd needs the full path to the startup directory, which
# envPaths currently does not provide
epicsEnvSet(STARTUP,$(TOP)/iocBoot/$(IOC))
################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxx.munch)
dbLoadDatabase("../../dbd/iocxxx.dbd")
iocxxx_registerRecordDeviceDriver(pdbbase)
# Increase size of buffer for error logging from default 1256
errlogInit(5000)
# debug sseq record
#var sseqRecDebug,10
# need more entries in wait/scan-record channel-access queue?
#var 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
epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64008
### save_restore setup
# We presume a suitable initHook routine was compiled into the executable.
# See also create_monitor_set(), after iocInit() .
< save_restore.cmd
# interpolation
dbLoadRecords("$(CALC)/calcApp/Db/interp.db", "P=xxx:,N=2000")
### 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.)
dbLoadRecords("$(SSCAN)/sscanApp/Db/scan.db","P=xxx:,MAXPTS1=4000,MAXPTS2=200,MAXPTS3=10,MAXPTS4=10,MAXPTSH=4000")
# 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")
# 2-post mirror
#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:")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:")
# Optical tables
#var tableRecordDebug,1
#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
### 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")
# 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")
# Spherical grating monochromator
#dbLoadRecords("$(OPTICS)/opticsApp/Db/SGM.db","P=xxx:,N=1,M_x=m1,M_rIn=m2,M_rOut=m3,M_g=m4")
# 4-bounce high-resolution monochromator
#dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m1,M_PHI2=m2")
### Stuff for user programming ###
dbLoadRecords("$(CALC)/calcApp/Db/userCalcs10.db","P=xxx:")
dbLoadRecords("$(CALC)/calcApp/Db/userStringCalcs10.db","P=xxx:")
dbLoadRecords("$(CALC)/calcApp/Db/userTransforms10.db","P=xxx:")
# extra userCalcs (must also load userCalcs10.db for the enable switch)
dbLoadRecords("$(CALC)/calcApp/Db/userCalcN.db","P=xxx:,N=I_Detector")
#dbLoadRecords("$(CALC)/calcApp/Db/userAve10.db","P=xxx:")
# string sequence (sseq) record
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq1")
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq2")
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq3")
# 4-step measurement
#dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:")
### serial support ###
# generic serial ports
#dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial1")
#dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial2")
# serial O/I block (generic serial record with format and parse string calcs)
# on epics/mpf processor
#dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=0_1,C=0,SERVER=serial5")
# on stand-alone mpf processor
#dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=1_1,C=0,SERVER=serial5")
# Miscellaneous PV's, such as burtResult
dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
###############################################################################
iocInit
### startup State Notation Language programs
#seq &kohzuCtl, "P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=1, logfile=kohzuCtl.log"
#seq &hrCtl, "P=xxx:, N=1, M_PHI1=m1, M_PHI2=m2, logfile=hrCtl1.log"
### Start up the autosave task and tell it what to do.
# The task is actually named "save_restore".
# Note that you can reload these sets after creating them: e.g.,
# reload_monitor_set("auto_settings.req",30,"P=xxx:")
#
# save positions every five seconds
create_monitor_set("auto_positions.req",5,"P=xxx:")
# save other things every thirty seconds
create_monitor_set("auto_settings.req",30,"P=xxx:")
### Start the saveData task.
# saveData_MessagePolicy
# 0: wait forever for space in message queue, then send message
# 1: send message only if queue is not full
# 2: send message only if queue is not full and specified time has passed (SetCptWait()
# sets this time.)
# 3: if specified time has passed, wait for space in queue, then send message
# else: don't send message
#var "debug_saveData" 2
#saveData_MessagePolicy = 2
#saveData_SetCptWait_ms(100)
saveData_Init("saveData.req", "P=xxx:")
#saveData_PrintScanInfo("xxx:scan1")
TOP = ../..
include $(TOP)/configure/CONFIG
ARCH = solaris-sparc-gnu
TARGETS = envPaths
include $(TOP)/configure/RULES.ioc
Assuming the EPICS_HOST_ARCH environment variable is set correctly,
start the ioc from this directory by executing the following command.
../../bin/${EPICS_HOST_ARCH}/xxx st.cmd
$(P)m1.OFF
$(P)m1.DVAL
$(P)m2.OFF
$(P)m2.DVAL
$(P)m3.OFF
$(P)m3.DVAL
$(P)m4.OFF
$(P)m4.DVAL
$(P)m5.OFF
$(P)m5.DVAL
$(P)m6.OFF
$(P)m6.DVAL
$(P)m7.OFF
$(P)m7.DVAL
$(P)m8.OFF
$(P)m8.DVAL
file motor_settings.req P=$(P),M=m1
file softMotor_settings.req P=$(P),SM=SM1
file softMotor_settings.req P=$(P),SM=SM2
file softMotor_settings.req P=$(P),SM=SM3
file softMotor_settings.req P=$(P),SM=SM4
file softMotor_settings.req P=$(P),SM=SM5
file softMotor_settings.req P=$(P),SM=SM6
file softMotor_settings.req P=$(P),SM=SM7
file softMotor_settings.req P=$(P),SM=SM8
file softMotor_settings.req P=$(P),SM=SM9
file softMotor_settings.req P=$(P),SM=SM10
file scanParms_settings.req P=$(P),M=m1
file table_settings.req P=$(P),T=table1,Q=table1
file scan_settings.req P=$(P),S=scan1
file scan_settings.req P=$(P),S=scan2
file scan_settings.req P=$(P),S=scan3
file scan_settings.req P=$(P),S=scan4
file scan_settings.req P=$(P),S=scanH
# Kohzu monochromator
#$(P)BraggHAO.VAL
#$(P)BraggKAO.VAL
#$(P)BraggLAO.VAL
#$(P)BraggAAO.VAL
#$(P)BraggTypeMO.VAL
#$(P)KohzuMode2MO.VAL
#$(P)Kohzu_yOffsetAO.VAL
file userCalcs10_settings.req P=$(P)
file userCalcN_settings.req P=$(P),N=I_Detector
file saveData_settings.req P=$(P)
file userTransforms10_settings.req P=$(P)
file userStringCalcs10_settings.req P=$(P)
file userCalcOuts10_settings.req P=$(P)
# string-sequence records
file sseq_settings.req P=$(P),S=Sseq1
file sseq_settings.req P=$(P),S=Sseq2
file sseq_settings.req P=$(P),S=Sseq3
# 4-step measurement
file auto_4step_settings.req P=$(P),Q=4step
file userAve10_settings.req P=$(P)
epicsEnvSet(ARCH,"solaris-sparc-gnu")
epicsEnvSet(IOC,"iocSolaris")
epicsEnvSet(TOP,"/home/oxygen4/MOONEY/epics/synApps_5_1/support/xxx")
epicsEnvSet(SUPPORT,"/home/oxygen/MOONEY/epics/synApps_5_1/support")
epicsEnvSet(EPICS_BASE,"/home/oxygen/MOONEY/epics/base-3.14.7")
epicsEnvSet(ALLEN_BRADLEY,"/home/oxygen/MOONEY/epics/synApps_5_1/support/allenBradley/2-1")
epicsEnvSet(ASYN,"/home/oxygen/MOONEY/epics/synApps_5_1/support/asyn/4-2")
epicsEnvSet(AUTOSAVE,"/home/oxygen/MOONEY/epics/synApps_5_1/support/autosave/4-1")
epicsEnvSet(GENSUB,"/home/oxygen/MOONEY/epics/synApps_5_1/support/genSub/1-6")
epicsEnvSet(CALC,"/home/oxygen/MOONEY/epics/synApps_5_1/support/calc/cvs")
epicsEnvSet(CAMAC,"/home/oxygen/MOONEY/epics/synApps_5_1/support/camac/cvs")
epicsEnvSet(CCD,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ccd/cvs")
epicsEnvSet(DAC128V,"/home/oxygen/MOONEY/epics/synApps_5_1/support/dac128V/cvs")
epicsEnvSet(DXP,"/home/oxygen/MOONEY/epics/synApps_5_1/support/dxp/cvs")
epicsEnvSet(IP,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ip/2-4")
epicsEnvSet(IP330,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ip330/cvs")
epicsEnvSet(IPAC,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ipac/2-8")
epicsEnvSet(IPUNIDIG,"/home/oxygen/MOONEY/epics/synApps_5_1/support/ipUnidig/cvs")
epicsEnvSet(MCA,"/home/oxygen/MOONEY/epics/synApps_5_1/support/mca/cvs")
epicsEnvSet(MOTOR,"/home/oxygen/MOONEY/epics/synApps_5_1/support/motor/cvs")
epicsEnvSet(OPTICS,"/home/oxygen/MOONEY/epics/synApps_5_1/support/optics/2-4")
epicsEnvSet(QUADEM,"/home/oxygen/MOONEY/epics/synApps_5_1/support/quadEM/cvs")
epicsEnvSet(SNCSEQ,"/home/oxygen/MOONEY/epics/synApps_5_1/support/seq/2-0-9")
epicsEnvSet(SSCAN,"/home/oxygen/MOONEY/epics/synApps_5_1/support/sscan/cvs")
epicsEnvSet(STD,"/home/oxygen/MOONEY/epics/synApps_5_1/support/std/cvs")
epicsEnvSet(VME,"/home/oxygen/MOONEY/epics/synApps_5_1/support/vme/cvs")
epicsEnvSet(VXSTATS,"/home/oxygen/MOONEY/epics/synApps_5_1/support/vxStats/cvs")
epicsEnvSet(XXX,"/home/oxygen/MOONEY/epics/synApps_5_1/support/xxx")
file "$(MOTOR)/db/motor.db"
{
pattern
{P, N, M, DTYP, C, S, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DHLM, DLLM, INIT}
{xxx:, 1, m$(N), "OMS VME8/44", 0, 0, "M0X", mm, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 2, m$(N), "OMS VME8/44", 0, 1, "M0Y", mm, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 3, m$(N), "OMS VME8/44", 0, 2, "M1Y", mm, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 4, m$(N), "OMS VME8/44", 0, 3, "M2X", mm, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 5, m$(N), "OMS VME8/44", 0, 4, "M2Y", mm, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 6, m$(N), "OMS VME8/44", 0, 5, "M2Z", mm, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 7, m$(N), "OMS VME8/44", 0, 6, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 8, m$(N), "OMS VME8/44", 0, 7, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 9, m$(N), "OMS VME58", 0, 0, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 10, m$(N), "OMS VME58", 0, 1, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 11, m$(N), "OMS VME58", 0, 2, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 12, m$(N), "OMS VME58", 0, 3, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 13, m$(N), "OMS VME58", 0, 4, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 14, m$(N), "OMS VME58", 0, 5, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 15, m$(N), "OMS VME58", 0, 6, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
{xxx:, 16, m$(N), "OMS VME58", 0, 7, "motor $(N)", degrees, Pos, 1, .1, .2, 0, 1, .2, 2.5e-4, 5, 100, -100, ""}
}
../../bin/${EPICS_HOST_ARCH}/xxx st.cmd
[prefix]
$(P)
[status]
$(P)saveData_status
[message]
$(P)saveData_message
[filename]
$(P)saveData_fileName
[counter] # scan counter
$(P)saveData_scanNumber
[fileSystem] # scan file system
$(P)saveData_fileSystem
[subdir] # scan file subdirectory
$(P)saveData_subDir
[fullPathName]
$(P)saveData_fullPathName
[realTime1D] # if nonzero, write 1D data as it comes in
$(P)saveData_realTime1D
[scanRecord] # specify scan records to be monitored
$(P)scanH
$(P)scan1
$(P)scan2
$(P)scan3
$(P)scan4
[extraPV]
$(P)userCalc1.CALC "string"
$(P)saveData_realTime1D "enum"
$(P)saveData_scanNumber "long"
$(P)saveData_fileSystem "filesystem"
$(P)scan1.P1SM "scan mode"
### save_restore setup
#
# The rest this file does not require modification for standard use, but...
# If you want save_restore to manage its own NFS mount, specify the name and
# IP address of the file server to which save files should be written.
# This currently is supported only on vxWorks.
#save_restoreSet_NFSHost("oxygen", "164.54.52.4")
# status-PV prefix
save_restoreSet_status_prefix("xxx:")
# Debug-output level
save_restoreSet_Debug(0)
# Ok to save/restore save sets with missing values (no CA connection to PV)?
save_restoreSet_IncompleteSetsOk(1)
# Save dated backup files?
save_restoreSet_DatedBackupFiles(1)
# Number of sequenced backup files to write
save_restoreSet_NumSeqFiles(3)
# Time interval between sequenced backups
save_restoreSet_SeqPeriodInSeconds(300)
# specify where save files should be
set_savefile_path("$(STARTUP)", "autosave")
# specify what save files should be restored. Note these files must be
# in the directory specified in set_savefile_path(), or, if that function
# has not been called, from the directory current when iocInit is invoked
set_pass0_restoreFile("auto_positions.sav")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
# specify directories in which to to search for included request files
# Note cdCommands defines 'startup', but envPaths does not
set_requestfile_path("$(STARTUP)", "")
set_requestfile_path("$(STARTUP)", "autosave")
set_requestfile_path("$(AUTOSAVE)", "asApp/Db")
set_requestfile_path("$(CALC)", "calcApp/Db")
#set_requestfile_path("$(CAMAC)", "camacApp/Db")
set_requestfile_path("$(CCD)", "ccdApp/Db")
set_requestfile_path("$(DAC128V)", "dac128VApp/Db")
set_requestfile_path("$(DXP)", "dxpApp/Db")
set_requestfile_path("$(IP)", "ipApp/Db")
set_requestfile_path("$(IP330)", "ip330App/Db")
set_requestfile_path("$(IPUNIDIG)", "ipUnidigApp/Db")
#set_requestfile_path("$(LOVE)", "loveApp/Db")
set_requestfile_path("$(MCA)", "mcaApp/Db")
set_requestfile_path("$(MOTOR)", "motorApp/Db")
set_requestfile_path("$(OPTICS)", "opticsApp/Db")
set_requestfile_path("$(QUADEM)", "quadEMApp/Db")
set_requestfile_path("$(SSCAN)", "sscanApp/Db")
set_requestfile_path("$(STD)", "stdApp/Db")
set_requestfile_path("$(VME)", "vmeApp/Db")
dbLoadRecords("$(AUTOSAVE)/asApp/Db/save_restoreStatus.db", "P=xxx:")
file "$(SSCAN)/sscanApp/Db/scanParms.db"
{
{P=xxx:,SCANREC=xxx:scan1,Q=SM1,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM2,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM3,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM4,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM5,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM6,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM7,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM8,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM9,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=SM10,POS=$(Q).VAL,RDBK=$(Q).RBV}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1X,POS=table1.X,RDBK=table1.XRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1Y,POS=table1.Y,RDBK=table1.YRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1Z,POS=table1.Z,RDBK=table1.ZRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AX,POS=table1.AX,RDBK=table1.AXRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AY,POS=table1.AY,RDBK=table1.AYRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AZ,POS=table1.AZ,RDBK=table1.AZRB}
#{P=xxx:,SCANREC=xxx:scan1,Q=BraggE,POS=BraggEAO.VAL,RDBK=BraggERdbkAO.VAL}
#{P=xxx:,SCANREC=xxx:scan1,Q=BraggLambda,POS=BraggLambdaAO.VAL,RDBK=BraggLambdaRdbkAO.VAL}
#{P=xxx:,SCANREC=xxx:scan1,Q=BraggTheta,POS=BraggThetaAO.VAL,RDBK=BraggThetaRdbkAO.VAL}
#{P=xxx:,SCANREC=xxx:scan1,Q=HR1_E,POS=HR1_EAO.VAL,RDBK=HR1_ERdbkAO}
#{P=xxx:,SCANREC=xxx:scan1,Q=HR1_A,POS=HR1_worldOffAO.VAL,RDBK=HR1_worldOffAO.VAL}
# old slit
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hp,POS=Slit1Hxp.VAL,RDBK=Slit1Ht2.A}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hn,POS=Slit1Hxn.VAL,RDBK=Slit1Ht2.B}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hsize,POS=Slit1Hsize.VAL,RDBK=Slit1Ht2.C}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hcenter,POS=Slit1Hcenter.VAL,RDBK=Slit1Ht2.D}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vp,POS=Slit1Vxp.VAL,RDBK=Slit1Vt2.A}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vn,POS=Slit1Vxn.VAL,RDBK=Slit1Vt2.B}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vsize,POS=Slit1Vsize.VAL,RDBK=Slit1Vt2.C}
{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vcenter,POS=Slit1Vcenter.VAL,RDBK=Slit1Vt2.D}
# new soft-motor-based slit
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hxn,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hxp,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hsize,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hcenter,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vxn,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vxp,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vsize,POS=$(Q).VAL,RDBK=$(Q).RBV}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vcenter,POS=$(Q).VAL,RDBK=$(Q).RBV}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment