Hi all,
I am using synapps and I want to use three modules: optics, motor and sscan. I have already passed through optics and motor with xxx module. Only sscan left( all pv disconnect.)
The optics and motor worked well, but all the pv in sscan was disconnect. I think it was macro question. I have modified the marco P from xxx: to hrm:. I didn't know how to fix it with sscan, optics and motor together.
Could someone give me some advice.
I used base 3.15.2, synapps_5_8, centos 7.
Thank you,
Liang yx
*********************************************************************
*************my scanParms.substitutions file (I modified the xxx: to hrm: )*************
*********************************************************************
file "$(SSCAN)/sscanApp/Db/scanParms.db"
{
{P=hrm:,SCANREC=hrm:scan1,Q=m1,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=m2,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=m3,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=m4,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=m5,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=m6,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=m7,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=m8,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=hrm:,SCANREC=hrm:scan1,Q=Table1X,POS=table1.X,RDBK=table1.XRB}
{P=hrm:,SCANREC=hrm:scan1,Q=Table1Y,POS=table1.Y,RDBK=table1.YRB}
{P=hrm:,SCANREC=hrm:scan1,Q=Table1Z,POS=table1.Z,RDBK=table1.ZRB}
{P=hrm:,SCANREC=hrm:scan1,Q=Table1AX,POS=table1.AX,RDBK=table1.AXRB}
{P=hrm:,SCANREC=hrm:scan1,Q=Table1AY,POS=table1.AY,RDBK=table1.AYRB}
{P=hrm:,SCANREC=hrm:scan1,Q=Table1AZ,POS=table1.AZ,RDBK=table1.AZRB}
{P=hrm:,SCANREC=hrm:scan1,Q=BraggE,POS=BraggEAO.VAL,RDBK=BraggERdbkAO.VAL}
{P=hrm:,SCANREC=hrm:scan1,Q=BraggLambda,POS=BraggLambdaAO.VAL,RDBK=BraggLambdaRdbkAO.VAL}
{P=hrm:,SCANREC=hrm:scan1,Q=BraggTheta,POS=BraggThetaAO.VAL,RDBK=BraggThetaRdbkAO.VAL}
{P=hrm:,SCANREC=hrm:scan1,Q=HR1_E,POS=HR1_EAO.VAL,RDBK=HR1_ERdbkAO}
{P=hrm:,SCANREC=hrm:scan1,Q=HR1_A,POS=HR1_worldOffAO.VAL,RDBK=HR1_worldOffAO.VAL}
# slit
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hp,POS=Slit1Hxp.VAL,RDBK=Slit1Ht2.A}
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hn,POS=Slit1Hxn.VAL,RDBK=Slit1Ht2.B}
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hsize,POS=Slit1Hsize.VAL,RDBK=Slit1Ht2.C}
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hcenter,POS=Slit1Hcenter.VAL,RDBK=Slit1Ht2.D}
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vp,POS=Slit1Vxp.VAL,RDBK=Slit1Vt2.A}
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vn,POS=Slit1Vxn.VAL,RDBK=Slit1Vt2.B}
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vsize,POS=Slit1Vsize.VAL,RDBK=Slit1Vt2.C}
#{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vcenter,POS=Slit1Vcenter.VAL,RDBK=Slit1Vt2.D}
}
**********************************************
*************my st.cmd**************************
**********************************************
# Linux startup script
< envPaths
# For devIocStats
#epicsEnvSet("ENGINEER","engineer")
#epicsEnvSet("LOCATION","location")
epicsEnvSet("GROUP","group")
epicsEnvSet("STREAM_PROTOCOL_PATH","$(TOP)")
# save_restore.cmd needs the full path to the startup directory, which
# envPaths currently does not provide
epicsEnvSet(STARTUP,$(TOP)/iocBoot/$(IOC))
# Increase size of buffer for error logging from default 1256
errlogInit(20000)
# Specify largest array CA will transport
# Note for N doubles, need N*8 bytes+some overhead
epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64010
################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxx.munch)
dbLoadDatabase("../../dbd/iocxxxLinux.dbd")
iocxxxLinux_registerRecordDeviceDriver(pdbbase)
### save_restore setup
< save_restore.cmd
# Access Security
#dbLoadRecords("$(TOP)/xxxApp/Db/Security_Control.db","P=xxx:")
#asSetFilename("$(TOP)/iocBoot/accessSecurity.acf")
#asSetSubstitutions("P=xxx:")
### caputRecorder
# trap listener
#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=xxx:,N=300")
#doAfterIocInit("registerCaputRecorderTrapListener('xxx:caputRecorderCommand')")
# GUI database
#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxx:,N=300")
# second copy of GUI database
#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxxA:,N=300")
# if you have hdf5 and szip, you can use this
#< areaDetector.cmd
# soft scaler for testing
#< softScaler.cmd
# user-assignable ramp/tweak
#dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
# serial support
#< serial.cmd
# Motors
dbLoadTemplate("motor.substitutions.ARIES.test.xxx")
drvAsynIPPortConfigure("L0","192.168.1.120:12321",0,0,0)
#< motorSim.cmd
dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=hrm:")
ARIESSetup(4, 5)
ARIESConfig(0, "L0", 0)
var drvARIESdebug 4
#asynSetTraceIOMask("L0",-1,0x9)
### 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/standardScans.db","P=hrm:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000")
dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=hrm:")
# Run this after iocInit:
#doAfterIocInit("saveData_Init(saveData.req, 'P=xxx:')")
dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=hrm:scanProgress:")
#dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=hrm:")
# Run this after iocInit:
#doAfterIocInit("seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:'")
# configMenu example.
dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=hrm:,CONFIG=scan1")
# Note that the request file MUST be named $(CONFIG)Menu.req
# If the macro CONFIGMENU is defined with any value, backup (".savB") and
# sequence files (".savN") will not be written. We don't want these for configMenu.
# Run this after iocInit:
#doAfterIocInit("create_manual_set('scan1Menu.req','P=xxx:,CONFIG=scan1,CONFIGMENU=1')")
# You could make scan configurations read-only:
#dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan1,ENABLE_SAVE=0")
# read-only configMenu example. (Read-only, because we're not calling create_manual_set().)
#dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan2")
# 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")
### Optical tables
#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=NEWPORT")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,Q=Table2,T=table2,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
# Io calculation
dbLoadRecords("$(OPTICS)/opticsApp/Db/Io.db","P=hrm:Io:")
### Monochromator support ###
# Kohzu and PSL monochromators: Bragg and theta/Y/Z motors
# standard geometry (geometry 1)
dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=hrm:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001")
# Run this after iocInit:
#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=m2,yOffLo=4,yOffHi=36")
# Run this after iocInit:
#doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log'")
# 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=hrm:,N=1,M_PHI1=m2,M_PHI2=m5")
# Run this after iocInit:
#doAfterIocInit("seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log'")
### Orientation matrix, four-circle diffractometer (see seq program 'orient' below)
#dbLoadRecords("$(OPTICS)/opticsApp/Db/orient.db", "P=xxx:,O=1,PREC=4")
#dbLoadTemplate("orient_xtals.substitutions")
# Run this after iocInit:
#doAfterIocInit("seq &orient, 'P=xxx:orient1:,PM=xxx:,mTTH=m9,mTH=m10,mCHI=m11,mPHI=m12'")
### Stuff for user programming ###
#< calc.cmd
# 4-step measurement
#dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:,Q=4step:")
# Slow feedback
#dbLoadTemplate "pid_slow.substitutions"
#dbLoadTemplate "async_pid_slow.substitutions"
#dbLoadTemplate "fb_epid.substitutions"
# Miscellaneous PV's, such as burtResult
#dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
### Load database records for Femto amplifiers
#dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=xxx:,H=fem01:,F=seq01:")
# Run this after iocInit:
#doAfterIocInit("seq femto,'name=fem1,P=xxx:,H=fem01:,F=seq01:,G1=xxx:Unidig1Bo6,G2=xxx:Unidig1Bo7,G3=xxx:Unidig1Bo8,NO=xxx:Unidig1Bo10'")
### 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")
# Run this after iocInit:
#doAfterIocInit("seq pf4,'name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:userTran10.I,B1=xxx:userTran10.A,B2=xxx:userTran10.B,B3=xxx:userTran10.C,B4=xxx:userTran10.D'")
#doAfterIocInit("seq pf4,'name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:userTran10.I,B1=xxx:userTran10.E,B2=xxx:userTran10.F,B3=xxx:userTran10.G,B4=xxx:userTran10.H'")
###############################################################################
iocInit
###############################################################################
asynSetTraceIOMask("L0",-1,0x9)
motorUtilInit('hrm:')
saveData_Init(saveData.req, 'P=hrm:')
seq &scanProgress, 'S=hrm:, P=xxx:scanProgress:'
seq &hrCtl, 'P=hrm:, N=1, M_PHI1=m2, M_PHI2=m5, logfile=hrCtl.log'
create_manual_set('scan1Menu.req','P=hrm:,CONFIG=scan1,CONFIGMENU=1')
# write all the PV names to a local file
dbl > dbl-all.txt
# Report states of database CA links
#dbcar(*,1)
# print the time our boot was finished
date
~
**********************************************
*************my output *************************
**********************************************
[root@localhost iocLinux]# ../../bin/linux-x86_64/xxx st.cmd
Successfully locked memory using mlockAll
# Linux startup script
< envPaths
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocLinux")
epicsEnvSet("TOP","/opt/synApps_5_8/support/xxx-5-8-3")
epicsEnvSet("SUPPORT","/opt/synApps_5_8/support")
epicsEnvSet("EPICS_BASE","/opt/base")
epicsEnvSet("ALIVE","/opt/synApps_5_8/support/alive-1-0")
epicsEnvSet("ALLEN_BRADLEY","/opt/synApps_5_8/support/allenBradley-2-3")
epicsEnvSet("AREA_DETECTOR","/opt/synApps_5_8/support/areaDetector-R2-0")
epicsEnvSet("ADCORE","/opt/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2")
epicsEnvSet("ADBINARIES","/opt/synApps_5_8/support/areaDetector-R2-0/ADBinaries-R2-2")
epicsEnvSet("ASYN","/opt/synApps_5_8/support/asyn-4-26")
epicsEnvSet("AUTOSAVE","/opt/synApps_5_8/support/autosave-5-6-1")
epicsEnvSet("BUSY","/opt/synApps_5_8/support/busy-1-6-1")
epicsEnvSet("CALC","/opt/synApps_5_8/support/calc-3-4-2-1")
epicsEnvSet("CAMAC","/opt/synApps_5_8/support/camac-2-7")
epicsEnvSet("CAPUTRECORDER","/opt/synApps_5_8/support/caputRecorder-1-6")
epicsEnvSet("DAC128V","/opt/synApps_5_8/support/dac128V-2-8")
epicsEnvSet("DELAYGEN","/opt/synApps_5_8/support/delaygen-1-1-1")
epicsEnvSet("DEVIOCSTATS","/opt/synApps_5_8/support/devIocStats-3-1-13")
epicsEnvSet("DXP","/opt/synApps_5_8/support/dxp-3-4")
epicsEnvSet("IP","/opt/synApps_5_8/support/ip-2-17")
epicsEnvSet("IP330","/opt/synApps_5_8/support/ip330-2-8")
epicsEnvSet("IPAC","/opt/synApps_5_8/support/ipac-2-13")
epicsEnvSet("IPUNIDIG","/opt/synApps_5_8/support/ipUnidig-2-10")
epicsEnvSet("LOVE","/opt/synApps_5_8/support/love-3-2-5")
epicsEnvSet("MCA","/opt/synApps_5_8/support/mca-7-6")
epicsEnvSet("MEASCOMP","/opt/synApps_5_8/support/measComp-1-1")
epicsEnvSet("MODBUS","/opt/synApps_5_8/support/modbus-2-7")
epicsEnvSet("MOTOR","/opt/synApps_5_8/support/motor-6-9")
epicsEnvSet("OPTICS","/opt/synApps_5_8/support/optics-2-9-3")
epicsEnvSet("QUADEM","/opt/synApps_5_8/support/quadEM-5-0")
epicsEnvSet("SNCSEQ","/opt/synApps_5_8/support/seq-2-2-3")
epicsEnvSet("SOFTGLUE","/opt/synApps_5_8/support/softGlue-2-4-3")
epicsEnvSet("SSCAN","/opt/synApps_5_8/support/sscan-2-10-1")
epicsEnvSet("STD","/opt/synApps_5_8/support/std-3-4")
epicsEnvSet("STREAM","/opt/synApps_5_8/support/stream-2-6a")
epicsEnvSet("VAC","/opt/synApps_5_8/support/vac-1-5-1")
epicsEnvSet("VME","/opt/synApps_5_8/support/vme-2-8-2")
epicsEnvSet("XXX","/opt/synApps_5_8/support/xxx-5-8-3")
# For devIocStats
#epicsEnvSet("ENGINEER","engineer")
#epicsEnvSet("LOCATION","location")
epicsEnvSet("GROUP","group")
epicsEnvSet("STREAM_PROTOCOL_PATH","/opt/synApps_5_8/support/xxx-5-8-3")
# save_restore.cmd needs the full path to the startup directory, which
# envPaths currently does not provide
epicsEnvSet(STARTUP,/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux)
# Increase size of buffer for error logging from default 1256
errlogInit(20000)
# Specify largest array CA will transport
# Note for N doubles, need N*8 bytes+some overhead
epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64010
################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxx.munch)
dbLoadDatabase("../../dbd/iocxxxLinux.dbd")
iocxxxLinux_registerRecordDeviceDriver(pdbbase)
### save_restore setup
< save_restore.cmd
# BEGIN save_restore.cmd ------------------------------------------------------
### save_restore setup
# status PVs
#save_restoreSet_UseStatusPVs(1)
save_restoreSet_status_prefix("xxx:")
dbLoadRecords("/opt/synApps_5_8/support/autosave-5-6-1/asApp/Db/save_restoreStatus.db", "P=xxx:, DEAD_SECONDS=5")
# 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)
# Ok to retry connecting to PVs whose initial connection attempt failed?
save_restoreSet_CAReconnect(1)
# Time interval in seconds between forced save-file writes. (-1 means forever).
# This is intended to get save files written even if the normal trigger mechanism is broken.
save_restoreSet_CallbackTimeout(-1)
# specify where save files should be
set_savefile_path("/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux", "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", "P=xxx:")
# Save positions every five seconds
doAfterIocInit("create_monitor_set('auto_positions.req',5,'P=xxx:')")
set_pass0_restoreFile("auto_settings.sav", "P=xxx:")
set_pass1_restoreFile("auto_settings.sav", "P=xxx:")
# save settings every thirty seconds
doAfterIocInit("create_monitor_set('auto_settings.req',30,'P=xxx:')")
# Note that you can reload these sets after creating them: e.g.,
# reload_monitor_set("auto_settings.req",30,"P=xxx:")
# Note that you can restore a .sav file without also autosaving to it.
#set_pass0_restoreFile("myInitData.sav")
#set_pass1_restoreFile("myInitData.sav")
# Also, you can restore a .sav file that contains macros. (autosave R5-4-2)
#set_pass0_restoreFile("myGenericData.sav", "P=xxx:")
#set_pass1_restoreFile("myGenericData.sav", "P=xxx:")
###
# specify directories in which to to search for included request files
set_requestfile_path("/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux", "")
set_requestfile_path("/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux", "autosave")
set_requestfile_path("/opt/synApps_5_8/support/areaDetector-R2-0", "ADApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2", "ADApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/autosave-5-6-1", "asApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/busy-1-6-1", "busyApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/calc-3-4-2-1", "calcApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/camac-2-7", "camacApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/caputRecorder-1-6", "caputRecorderApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/dac128V-2-8", "dac128VApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/delaygen-1-1-1", "delaygenApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/dxp-3-4", "dxpApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/ip-2-17", "ipApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/ip330-2-8", "ip330App/Db")
set_requestfile_path("/opt/synApps_5_8/support/ipUnidig-2-10", "ipUnidigApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/love-3-2-5", "loveApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/mca-7-6", "mcaApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/measComp-1-1", "measCompApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/modbus-2-7", "modbusApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/motor-6-9", "motorApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/optics-2-9-3", "opticsApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/quadEM-5-0", "quadEMApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/sscan-2-10-1", "sscanApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/softGlue-2-4-3", "softGlueApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/std-3-4", "stdApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/vac-1-5-1", "vacApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/vme-2-8-2", "vmeApp/Db")
set_requestfile_path("/opt/synApps_5_8/support/xxx-5-8-3", "xxxApp/Db")
# Debug-output level
save_restoreSet_Debug(0)
# Tell autosave to automatically build built_settings.req and
# built_positions.req from databases and macros supplied to dbLoadRecords()
# (and dbLoadTemplate(), which calls dbLoadRecords()).
epicsEnvSet("BUILT_SETTINGS", "built_settings.req")
epicsEnvSet("BUILT_POSITIONS", "built_positions.req")
autosaveBuild("built_settings.req", "_settings.req", 1)
pretending to register a dbLoadRecords hook
autosaveBuild("built_positions.req", "_positions.req", 1)
# END save_restore.cmd --------------------------------------------------------
# Access Security
#dbLoadRecords("$(TOP)/xxxApp/Db/Security_Control.db","P=xxx:")
#asSetFilename("$(TOP)/iocBoot/accessSecurity.acf")
#asSetSubstitutions("P=xxx:")
### caputRecorder
# trap listener
#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=xxx:,N=300")
#doAfterIocInit("registerCaputRecorderTrapListener('xxx:caputRecorderCommand')")
# GUI database
#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxx:,N=300")
# second copy of GUI database
#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxxA:,N=300")
# if you have hdf5 and szip, you can use this
#< areaDetector.cmd
# soft scaler for testing
#< softScaler.cmd
# user-assignable ramp/tweak
#dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
# serial support
#< serial.cmd
# Motors
dbLoadTemplate("motor.substitutions.ARIES.test.xxx")
drvAsynIPPortConfigure("L0","192.168.1.120:12321",0,0,0)
#< motorSim.cmd
dbLoadRecords("/opt/synApps_5_8/support/motor-6-9/db/motorUtil.db", "P=hrm:")
ARIESSetup(4, 5)
ARIESConfig(0, "L0", 0)
var drvARIESdebug 4
#asynSetTraceIOMask("L0",-1,0x9)
### 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("/opt/synApps_5_8/support/sscan-2-10-1/sscanApp/Db/standardScans.db","P=hrm:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000")
dbLoadRecords("/opt/synApps_5_8/support/sscan-2-10-1/sscanApp/Db/saveData.db","P=hrm:")
# Run this after iocInit:
#doAfterIocInit("saveData_Init(saveData.req, 'P=xxx:')")
dbLoadRecords("/opt/synApps_5_8/support/sscan-2-10-1/sscanApp/Db/scanProgress.db","P=hrm:scanProgress:")
#dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=hrm:")
# Run this after iocInit:
#doAfterIocInit("seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:'")
# configMenu example.
dbLoadRecords("/opt/synApps_5_8/support/autosave-5-6-1/asApp/Db/configMenu.db","P=hrm:,CONFIG=scan1")
# Note that the request file MUST be named $(CONFIG)Menu.req
# If the macro CONFIGMENU is defined with any value, backup (".savB") and
# sequence files (".savN") will not be written. We don't want these for configMenu.
# Run this after iocInit:
#doAfterIocInit("create_manual_set('scan1Menu.req','P=xxx:,CONFIG=scan1,CONFIGMENU=1')")
# You could make scan configurations read-only:
#dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan1,ENABLE_SAVE=0")
# read-only configMenu example. (Read-only, because we're not calling create_manual_set().)
#dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan2")
# 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")
### Optical tables
#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=NEWPORT")
#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,Q=Table2,T=table2,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
# Io calculation
dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/Io.db","P=hrm:Io:")
### Monochromator support ###
# Kohzu and PSL monochromators: Bragg and theta/Y/Z motors
# standard geometry (geometry 1)
dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/kohzuSeq.db","P=hrm:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001")
# Run this after iocInit:
#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=m2,yOffLo=4,yOffHi=36")
# Run this after iocInit:
#doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log'")
# 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("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/hrSeq.db","P=hrm:,N=1,M_PHI1=m2,M_PHI2=m5")
# Run this after iocInit:
#doAfterIocInit("seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log'")
### Orientation matrix, four-circle diffractometer (see seq program 'orient' below)
#dbLoadRecords("$(OPTICS)/opticsApp/Db/orient.db", "P=xxx:,O=1,PREC=4")
#dbLoadTemplate("orient_xtals.substitutions")
# Run this after iocInit:
#doAfterIocInit("seq &orient, 'P=xxx:orient1:,PM=xxx:,mTTH=m9,mTH=m10,mCHI=m11,mPHI=m12'")
### Stuff for user programming ###
#< calc.cmd
# 4-step measurement
#dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:,Q=4step:")
# Slow feedback
#dbLoadTemplate "pid_slow.substitutions"
#dbLoadTemplate "async_pid_slow.substitutions"
#dbLoadTemplate "fb_epid.substitutions"
# Miscellaneous PV's, such as burtResult
#dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
### Load database records for Femto amplifiers
#dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=xxx:,H=fem01:,F=seq01:")
# Run this after iocInit:
#doAfterIocInit("seq femto,'name=fem1,P=xxx:,H=fem01:,F=seq01:,G1=xxx:Unidig1Bo6,G2=xxx:Unidig1Bo7,G3=xxx:Unidig1Bo8,NO=xxx:Unidig1Bo10'")
### 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")
# Run this after iocInit:
#doAfterIocInit("seq pf4,'name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:userTran10.I,B1=xxx:userTran10.A,B2=xxx:userTran10.B,B3=xxx:userTran10.C,B4=xxx:userTran10.D'")
#doAfterIocInit("seq pf4,'name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:userTran10.I,B1=xxx:userTran10.E,B2=xxx:userTran10.F,B3=xxx:userTran10.G,B4=xxx:userTran10.H'")
###############################################################################
iocInit
Starting iocInit
############################################################################
## EPICS R3.15.2 $Date: Thu 2015-05-14 14:09:28 +0200$
## EPICS Base built Oct 16 2016
############################################################################
reboot_restore: entry for file 'auto_positions.sav'
reboot_restore: Found filename 'auto_positions.sav' in restoreFileList.
*** restoring from '/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux/autosave/auto_positions.sav' at initHookState 6 (before record/device init) ***
reboot_restore: done with file 'auto_positions.sav'
reboot_restore: entry for file 'auto_settings.sav'
reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.
*** restoring from '/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux/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 '/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux/autosave/auto_settings.sav' at initHookState 7 (after record/device init) ***
reboot_restore: done with file 'auto_settings.sav'
iocRun: All initialization complete
create_monitor_set('auto_positions.req',5,'P=xxx:')
auto_positions.sav: 0 of 0 PV's connected
create_monitor_set('auto_settings.req',30,'P=xxx:')
###############################################################################
asynSetTraceIOMask("L0",-1,0x9)
motorUtilInit('hrm:')
saveData_Init(saveData.req, 'P=hrm:')
saveData: message queue created
saveData:maxAllowedRetries = 10
saveData:retryWaitInSecs = 15
seq &scanProgress, 'S=hrm:, P=xxx:scanProgress:'
sevr=info Sequencer release 2.2.3, compiled Wed Nov 30 16:54:39 2016
sevr=info Spawning sequencer program "scanProgress", thread 0x19a8220: "scanProgress"
seq &hrCtl, 'P=hrm:, N=1, M_PHI1=m2, M_PHI2=m5, logfile=hrCtl.log'
sevr=info Sequencer release 2.2.3, compiled Wed Nov 30 16:54:39 2016
sevr=info Spawning sequencer program "hrCtl", thread 0x19b1bd0: "hrCtl"
create_manual_set('scan1Menu.req','P=hrm:,CONFIG=scan1,CONFIGMENU=1')
# write all the PV names to a local file
dbl > dbl-all.txt
# Report states of database CA links
#dbcar(*,1)
# print the time our boot was finished
date
2017/05/31 19:40:49.525623
sevr=info hrCtl[0]: all channels connected & received 1st monitor
epics> scan1Menu.sav: 365 of 365 PV's connected
auto_settings.sav: 0 of 0 PV's connected
sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8
epics> sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8
sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8
sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8
- Replies:
- Re: the pv in sscan disconnect Mooney, Tim M.
- Navigate by Date:
- Prev:
Re: Use case for ao record HOPR != DRVH or LOPR != DRVL? Ralph Lange
- Next:
Re: the pv in sscan disconnect Mooney, Tim M.
- 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:
Re: Use case for ao record HOPR != DRVH or LOPR != DRVL? Nicholas P. DiMonte
- Next:
Re: the pv in sscan disconnect Mooney, Tim M.
- 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
|