diff --git a/iocBoot/iocxxx/st.cmd.Cygwin b/iocBoot/iocxxx/st.cmd.Cygwin index 8c00b172a8516da5d2d1752b0b9adf70228a1d00..395f9e52429f44d7b9440f3729b8f6e74c46bbf5 100644 --- a/iocBoot/iocxxx/st.cmd.Cygwin +++ b/iocBoot/iocxxx/st.cmd.Cygwin @@ -1,212 +1,40 @@ -# Cygwin startup script - -# For devIocStats -epicsEnvSet("ENGINEER","engineer") -epicsEnvSet("LOCATION","location") -epicsEnvSet("GROUP","group") - -< envPaths - -# 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 sscanRecord data points, need (N+1)*8 bytes, else MEDM -# plot doesn't display -#epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64008 - -# set the protocol path for streamDevice -epicsEnvSet("STREAM_PROTOCOL_PATH", ".") - -################################################################################ -# Tell EPICS all about the record types, device-support modules, drivers, -# etc. in the software we just loaded (xxx.munch) -dbLoadDatabase("../../dbd/iocxxxCygwin.dbd") -iocxxxCygwin_registerRecordDeviceDriver(pdbbase) - -#< areaDetector.cmd - -### save_restore setup -# We presume a suitable initHook routine was compiled into xxx.munch. -# See also create_monitor_set(), after iocInit() . -< save_restore.cmd - -# serial support -#< serial.cmd - -# Motors -#dbLoadTemplate("basic_motor.substitutions") -#dbLoadTemplate("motor.substitutions") -dbLoadTemplate("softMotor.substitutions") -#dbLoadTemplate("pseudoMotor.substitutions") -< motorSim.cmd - -### Allstop, alldone -#var motorUtil_debug,1 -dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=xxx:") - -### streamDevice example -#dbLoadRecords("$(TOP)/xxxApp/Db/streamExample.db","P=xxx:,PORT=serial1") - -### 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=xxx:,MAXPTS1=2000,MAXPTS2=1000,MAXPTS3=10,MAXPTS4=10,MAXPTSH=2000") -dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=xxx:") - -# 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") - -### 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") - -# X-ray Instrumentation Associates Huber Slit Controller -# supported by a customized version of the SNL program written by Pete Jemian -#dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc1:") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc2:") -#dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial7") - - -### 2-post mirror -#dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m18,mUp=m17,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:") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterLock.db","P=xxx:,Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=xxx:DAC1_1.VAL") - -# XIA shutter -#dbLoadRecords("$(OPTICS)/opticsApp/Db/XIA_shutter.db","P=xxx:,S=shutter1,PORT=serial2,ADDRESS=0123") - -### Optical tables -#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") - -# Io calculation -#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") -# 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") - -# 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=m9,M_PHI2=m10") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m11,M_PHI2=m12") - -### 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") - -# Load single element Canberra AIM MCA and ICB modules -#< canberra_1.cmd - -# Load 13 element detector software -#< canberra_13.cmd - -# Load 3 element detector software -#< canberra_3.cmd - -### Stuff for user programming ### -dbLoadRecords("$(CALC)/calcApp/Db/userCalcs10.db","P=xxx:") -dbLoadRecords("$(CALC)/calcApp/Db/userCalcOuts10.db","P=xxx:") -dbLoadRecords("$(CALC)/calcApp/Db/userStringCalcs10.db","P=xxx:") -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("$(CALC)/calcApp/Db/userStringSeqs10.db","P=xxx:") -# 4-step measurement -dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:") -# interpolation -dbLoadRecords("$(CALC)/calcApp/Db/interp.db", "P=xxx:,N=2000") -# array test -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") - -# resettable timer -dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1") - -# Slow feedback -dbLoadTemplate "pid_slow.substitutions" - -# PID-based feedback -#dbLoadTemplate "fb_epid.substitutions" - -# Miscellaneous PV's, such as burtResult -dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:") -#dbLoadRecords("$(STD)/stdApp/Db/VXstats.db","P=xxx:") -dbLoadRecords("$(DEVIOCSTATS)/db/ioc.db","IOCNAME=xxx, TODFORMAT=%m/%d/%Y %H:%M:%S") - -### Load database record for alive heartbeating support. -# RHOST specifies the IP address that receives the heartbeats. -#dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=xxx:,RHOST=X.X.X.X") - -############################################################################### -iocInit -############################################################################### - -# write all the PV names to a local file -dbl > dbl-all.txt - -### startup State Notation Language programs -#seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=1, logfile=kohzuCtl.log" -#seq &hrCtl, "P=xxx:, N=1, M_PHI1=m9, M_PHI2=m10, logfile=hrCtl1.log" - -# Keithley 2000 series DMM -# channels: 10, 20, or 22; model: 2000 or 2700 -#seq &Keithley2kDMM,("P=xxx:, Dmm=D1, channels=22, model=2700") - -# X-ray Instrumentation Associates Huber Slit Controller -# supported by a SNL program written by Pete Jemian and modified (TMM) for use with the -# sscan record -#seq &xia_slit, "name=hsc1, P=xxx:, HSC=hsc1:, S=xxx:seriala[6]" - -# Orientation-matrix -#seq &orient, "P=xxx:orient1:,PM=xxx:,mTTH=m9,mTH=m10,mCHI=m11,mPHI=m12" - -# Io calculation -#seq &Io, "P=xxx:Io:,MONO=xxx:BraggEAO,VSC=xxx:scaler1" - -# Start PF4 filter sequence program -#seq pf4,"name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:BraggEAO,B1=xxx:Unidig1Bo3,B2=xxx:Unidig1Bo4,B3=xxx:Unidig1Bo5,B4=xxx:Unidig1Bo6" -#seq pf4,"name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:BraggEAO,B1=xxx:Unidig1Bo7,B2=xxx:Unidig1Bo8,B3=xxx:Unidig1Bo9,B4=xxx:Unidig1Bo10" - -# Start Femto amplifier sequence programs -#seq femto,"name=fem1,P=xxx:,H=fem01:,F=seq01:,G1=xxx:Unidig1Bo6,G2=xxx:Unidig1Bo7,G3=xxx:Unidig1Bo8,NO=xxx:Unidig1Bo10" - -### 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_restoreDebug=20 -# -# 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_Init("saveData.req", "P=xxx:") - -# motorUtil (allstop & alldone) -motorUtilInit("xxx:") - -dbcar(0,1) - -# print the time our boot was finished -date +# Cygwin startup script + +< envPaths + +# Increase size of buffer for error logging from default 1256 +errlogInit(20000) + +################################################################################ +# Tell EPICS all about the record types, device-support modules, drivers, +# etc. in the software we just loaded (xxx.munch) +dbLoadDatabase("../../dbd/iocxxxCygwin.dbd") +iocxxxCygwin_registerRecordDeviceDriver(pdbbase) + +epicsEnvSet("PLATFORM", "softioc") + +< common.iocsh + +# < $(PLATFORM)/areaDetector.cmd +# < $(PLATFORM)/serial.cmd + +# soft scaler for testing +< common/softScaler.cmd + +< common/motorSim.cmd + +# devIocStats +dbLoadRecords("$(DEVIOCSTATS)/db/ioc.db","IOCNAME=xxx, TODFORMAT=%m/%d/%Y %H:%M:%S") + +############################################################################### +iocInit +############################################################################### + +# write all the PV names to a local file +dbl > dbl-all.txt + +# Diagnostic: CA links in all records +dbcar(0,1) + +# print the time our boot was finished +date diff --git a/iocBoot/iocxxx/st.cmd.Linux b/iocBoot/iocxxx/st.cmd.Linux index dc3e6fb974f92ecee45ed0346f0868586753e073..610e96c2a95b3addd4e04928c195f8590457a62d 100644 --- a/iocBoot/iocxxx/st.cmd.Linux +++ b/iocBoot/iocxxx/st.cmd.Linux @@ -1,238 +1,39 @@ # Linux startup script -########################## ############################################################################ -# environment variable description -########################## ############################################################################ -# PREFIX prefix used for all PVs in this IOC -# EPICS_DB_INCLUDE_PATH search path for database files -# EPICS_CA_MAX_ARRAY_BYTES Specify largest array CA will transport -# IOCBOOT absolute directory path in which this file is located -# RHOST specifies the IP address that receives the alive record heartbeats -########################## ############################################################################ - -epicsEnvSet("PREFIX", "xxx:") - -### For alive -epicsEnvSet("RHOST", "1.2.3.4") -epicsEnvSet("IOCBOOT", $(TOP)/iocBoot/$(IOC)) - -### For devIocStats -epicsEnvSet("ENGINEER","engineer") -epicsEnvSet("LOCATION","location") -epicsEnvSet("GROUP","group") -epicsEnvSet("EPICS_DB_INCLUDE_PATH", "$(DEVIOCSTATS)/db") - < envPaths -# 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 +epicsEnvSet("PLATFORM", "softioc") -# Access Security -dbLoadRecords("$(TOP)/xxxApp/Db/Security_Control.db","P=$(PREFIX)") -asSetFilename("$(TOP)/iocBoot/accessSecurity.acf") -asSetSubstitutions("P=$(PREFIX)") +< common.iocsh -### caputRecorder - -# trap listener -dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=$(PREFIX),N=300") -doAfterIocInit("registerCaputRecorderTrapListener('xxx:caputRecorderCommand')") - -# GUI database -dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=$(PREFIX),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 +# < $(PLATFORM)/serial.cmd # soft scaler for testing -< softScaler.cmd - -# user-assignable ramp/tweak -dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=$(PREFIX),Q=rt1") - -# serial support -#< serial.cmd - -# Motors -#dbLoadTemplate("basic_motor.substitutions") -#dbLoadTemplate("motor.substitutions") -dbLoadTemplate("softMotor.substitutions") -dbLoadTemplate("pseudoMotor.substitutions") -< motorSim.cmd -# motorUtil (allstop & alldone) -dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=$(PREFIX)") -# Run this after iocInit: -doAfterIocInit("motorUtilInit('$(PREFIX)')") - -### 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=$(PREFIX),MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000") -dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=$(PREFIX)") -# Run this after iocInit: -doAfterIocInit("saveData_Init(saveData.req, 'P=$(PREFIX)')") -dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=$(PREFIX)scanProgress:") -# Run this after iocInit: -doAfterIocInit("seq &scanProgress, 'S=$(PREFIX), P=$(PREFIX)scanProgress:'") - -# configMenu example. -dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=$(PREFIX),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=$(PREFIX),CONFIG=scan1,CONFIGMENU=1')") -# You could make scan configurations read-only: -#dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=$(PREFIX),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=$(PREFIX),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") - -### Slits -dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=$(PREFIX),SLIT=Slit1V,mXp=m3,mXn=m4") -dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=$(PREFIX),SLIT=Slit1H,mXp=m5,mXn=m6") - -# X-ray Instrumentation Associates Huber Slit Controller -# supported by a customized version of the SNL program written by Pete Jemian -#dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=$(PREFIX), HSC=hsc1:") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=$(PREFIX), HSC=hsc2:") -#dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=$(PREFIX),C=0,SERVER=serial7") -# Run this after iocInit: -#doAfterIocInit("seq &xia_slit, 'name=hsc1, P=$(PREFIX), HSC=hsc1:, S=$(PREFIX)seriala[6]'") - -### 2-post mirror -#dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=$(PREFIX),Q=M1,mDn=m1,mUp=m2,LENGTH=0.3") - -### User filters -#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=$(PREFIX),Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=$(PREFIX),Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterLock.db","P=$(PREFIX),Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=$(PREFIX)DAC1_1.VAL") +< common/softScaler.cmd -### Optical tables -#dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=$(PREFIX),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=$(PREFIX),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=$(PREFIX),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=$(PREFIX)Io:") - -### Monochromator support ### -# Kohzu and PSL monochromators: Bragg and theta/Y/Z motors -# standard geometry (geometry 1) -#dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=$(PREFIX),M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001") -# Run this after iocInit: -#doAfterIocInit("seq &kohzuCtl, 'P=$(PREFIX), 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=$(PREFIX),M_THETA=m1,M_Y=m2,M_Z=m2,yOffLo=4,yOffHi=36") -# Run this after iocInit: -#doAfterIocInit("seq &kohzuCtl, 'P=$(PREFIX), M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log'") - -# Spherical grating monochromator -#dbLoadRecords("$(OPTICS)/opticsApp/Db/SGM.db","P=$(PREFIX),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=$(PREFIX),N=1,M_PHI1=m4,M_PHI2=m5") -# Run this after iocInit: -doAfterIocInit("seq &hrCtl, 'P=$(PREFIX), 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=$(PREFIX),O=1,PREC=4") -#dbLoadTemplate("orient_xtals.substitutions") -# Run this after iocInit: -#doAfterIocInit("seq &orient, 'P=$(PREFIX)orient1:,PM=$(PREFIX),mTTH=m9,mTH=m10,mCHI=m11,mPHI=m12'") - -# Load single element Canberra AIM MCA and ICB modules -#< canberra_1.cmd - -# Load 13 element detector software -#< canberra_13.cmd - -# Load 3 element detector software -#< canberra_3.cmd - -### Stuff for user programming ### -< calc.cmd - -# 4-step measurement -dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=$(PREFIX),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=$(PREFIX)") +< common/motorSim.cmd # devIocStats dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db","IOC=xxx") -### Queensgate piezo driver -#dbLoadRecords("$(IP)/ipApp/Db/pzt.db","P=$(PREFIX)") - -### Queensgate Nano2k piezo controller -#dbLoadRecords("$(STD)/stdApp/Db/Nano2k.db","P=$(PREFIX),S=s1") - -### Load database records for Femto amplifiers -#dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=$(PREFIX),H=fem01:,F=seq01:") -# Run this after iocInit: -#doAfterIocInit("seq femto,'name=fem1,P=$(PREFIX),H=fem01:,F=seq01:,G1=$(PREFIX)Unidig1Bo6,G2=$(PREFIX)Unidig1Bo7,G3=$(PREFIX)Unidig1Bo8,NO=$(PREFIX)Unidig1Bo10'") - -### Load database records for dual PF4 filters -#dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4common.db","P=$(PREFIX),H=pf4:,A=A,B=B") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=$(PREFIX),H=pf4:,B=A") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=$(PREFIX),H=pf4:,B=B") -# Run this after iocInit: -#doAfterIocInit("seq pf4,'name=pf1,P=$(PREFIX),H=pf4:,B=A,M=$(PREFIX)userTran10.I,B1=$(PREFIX)userTran10.A,B2=$(PREFIX)userTran10.B,B3=$(PREFIX)userTran10.C,B4=$(PREFIX)userTran10.D'") -#doAfterIocInit("seq pf4,'name=pf2,P=$(PREFIX),H=pf4:,B=B,M=$(PREFIX)userTran10.I,B1=$(PREFIX)userTran10.E,B2=$(PREFIX)userTran10.F,B3=$(PREFIX)userTran10.G,B4=$(PREFIX)userTran10.H'") - -### Load database records for alternative PF4-filter support -#dbLoadTemplate "filter.substitutions" -# Run this after iocInit: -#doAfterIocInit("seq filterDrive,'NAME=filterDrive,P=$(PREFIX),R=filter:,NUM_FILTERS=16'") - -### Load database record for alive heartbeating support. -# RHOST specifies the IP address that receives the heartbeats. -#dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=$(PREFIX),RHOST=X.X.X.X") - ############################################################################### iocInit ############################################################################### -### write all the PV names to a local file +# write all the PV names to a local file dbl > dbl-all.txt -### also report these environment variables to the alive server -#dbpf("$(PREFIX)alive.ENV8", "IOCBOOT") +# Diagnostic: CA links in all records +dbcar(0,1) -### Report states of database CA links -dbcar(*,1) - -### print the time our boot was finished +# print the time our boot was finished date - diff --git a/iocBoot/iocxxx/st.cmd.Win32 b/iocBoot/iocxxx/st.cmd.Win32 new file mode 100644 index 0000000000000000000000000000000000000000..979ff51c8a6afda2346010ddd3efcd3ba49fbfea --- /dev/null +++ b/iocBoot/iocxxx/st.cmd.Win32 @@ -0,0 +1,39 @@ +# Windows startup script + +< envPaths + +# Increase size of buffer for error logging from default 1256 +errlogInit(20000) + +################################################################################ +# Tell EPICS all about the record types, device-support modules, drivers, +# etc. in the software we just loaded (xxx.munch) +dbLoadDatabase("../../dbd/iocxxxWin32.dbd") +iocxxxWin32_registerRecordDeviceDriver(pdbbase) + +epicsEnvSet("PLATFORM", "softioc") + +< common.iocsh + +# < $(PLATFORM)/serial.cmd + +# soft scaler for testing +< common/softScaler.cmd + +< common/motorSim.cmd + +# devIocStats +dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db","IOC=xxx") + +############################################################################### +iocInit +############################################################################### + +# write all the PV names to a local file +dbl > dbl-all.txt + +# Diagnostic: CA links in all records +dbcar(0,1) + +# print the time our boot was finished +date diff --git a/iocBoot/iocxxx/st.cmd.vxWorks b/iocBoot/iocxxx/st.cmd.vxWorks index f808ecdbfaa694189571b8f4021c8a0bf2114c65..b0b9efc7eeed630423e3f1bd1c24a9b7f63e51b0 100644 --- a/iocBoot/iocxxx/st.cmd.vxWorks +++ b/iocBoot/iocxxx/st.cmd.vxWorks @@ -2,13 +2,6 @@ sysVmeMapShow -# For devIocStats -#epicsEnvSet("ENGINEER", "engineer") -#epicsEnvSet("LOCATION", "location") -putenv("ENGINEER=engineer") -putenv("LOCATION=location") -putenv("GROUP=group") - cd "" < ../nfsCommands < cdCommands @@ -39,255 +32,50 @@ errlogInit(20000) # 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 -putenv "EPICS_CA_MAX_ARRAY_BYTES=64008" - -# set the protocol path for streamDevice -epicsEnvSet("STREAM_PROTOCOL_PATH", ".") - ################################################################################ # Tell EPICS all about the record types, device-support modules, drivers, # etc. in the software we just loaded (xxx.munch) dbLoadDatabase("$(TOP)/dbd/iocxxxVX.dbd") iocxxxVX_registerRecordDeviceDriver(pdbbase) -### save_restore setup -< save_restore.cmd - -### Access Security -dbLoadRecords("$(TOP)/xxxApp/Db/Security_Control.db","P=xxx:") -iocsh -asSetFilename("$(TOP)/iocBoot/accessSecurity.acf") -exit -asSetSubstitutions("P=xxx:") - -### caputRecorder +shellPromptSet "iocvxWorks> " +iocLogDisable=0 -# trap listener -dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=xxx:,N=300") -doAfterIocInit("registerCaputRecorderTrapListener('xxx:caputRecorderCommand')") +iocsh -# GUI database -dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxx:,N=300") +epicsEnvSet("PLATFORM", "vxWorks") -# second copy of GUI database -#dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxxA:,N=300") +< common.iocsh # Industry Pack support -< industryPack.cmd - +< $(PLATFORM)/industryPack.cmd # gpib support -#< gpib.cmd +#< $(PLATFORM)/gpib.cmd # VME devices -< vme.cmd +< $(PLATFORM)/vme.cmd # CAMAC hardware -#<camac.cmd - -#< areaDetector.cmd - -# Motors -#dbLoadTemplate("basic_motor.substitutions") -dbLoadTemplate("motor.substitutions") -#dbLoadTemplate("softMotor.substitutions") -#dbLoadTemplate("pseudoMotor.substitutions") - -### Allstop, alldone -dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=xxx:") -doAfterIocInit("motorUtilInit('xxx:')") - -### 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.) -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:')") - -dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=xxx:scanProgress:") -doAfterIocInit("seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:'") - -# 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") - -### 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'") - -### 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:") -#dbLoadRecords("$(OPTICS)/opticsApp/Db/filterLock.db","P=xxx:,Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=xxx:DAC1_1.VAL") - -### Optical tables -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") - -### Io calculation -#dbLoadRecords("$(OPTICS)/opticsApp/Db/Io.db","P=xxx:Io:") -#doAfterIocInit("seq &Io, 'P=xxx:Io:,MONO=xxx:BraggEAO,VSC=xxx:scaler1'") - -### 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'") -#doAfterIocInit("seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log'") -#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:") -#doAfterIocInit("seq &ml_monoCtl, 'P=xxx:, M_THETA=m1, M_THETA2=m2, M_Y=m3, M_Z=m4, Y_OFF=35., GEOM=1'") - -### 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'") - -# Coarse/Fine stage -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 - -# Load 13 element detector software -#< canberra_13.cmd - -# Load 3 element detector software -#< canberra_3.cmd - -### Stuff for user programming ### -< calc.cmd - -# 4-step measurement -dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:,Q=4step:") - -# 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) -dbLoadRecords("$(STD)/stdApp/Db/pvHistory.db","P=xxx:,N=1,MAXSAMPLES=1440") - -# software timer -dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1") - -# Slow feedback -dbLoadTemplate "pid_slow.substitutions" -dbLoadTemplate "async_pid_slow.substitutions" - -# Miscellaneous PV's, such as burtResult -dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:") +#< $(PLATFORM)/camac.cmd # devIocStats dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminVxWorks.db","IOC=xxx") -### Queensgate piezo driver -#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") - -### 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 -#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'") - -### Load database records for alternative PF4-filter support -dbLoadTemplate "filter.substitutions" -#doAfterIocInit("seq &filterDrive,'NAME=filterDrive,P=xxx:,R=filter:,NUM_FILTERS=16'") - -# 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. -dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=xxx:,RHOST=164.54.100.11") - ############################################################################### -# Set shell prompt -shellPromptSet "iocvxWorks> " -iocLogDisable=0 iocInit ############################################################################### -# write all the PV names to a local file -dbl > dbl-all.txt -memShow - # If memory allocated at beginning free it now ##free(mem) -# Diagnostic: CA links in all records -#dbcar(0,1) +memShow +# write all the PV names to a local file +dbl > dbl-all.txt + +# Diagnostic: CA links in all records +dbcar(0,1) # print the time our boot was finished date