This repository was archived by the owner on Aug 15, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
How pvNotepad works
Ken Lauer edited this page Nov 8, 2023
·
1 revision
- Uses IOC templating based on macro
- See: https://confluence.slac.stanford.edu/display/PCDS/Templated+IOC+Configurations
- Mirrored here for external folks: https://github.com/pcdshub/macro/wiki/Documentation
Example
Makefile
# SLAC PCDS Makefile for building templated IOC instances
IOC_CFG += $(wildcard *.cfg)
include /reg/g/pcds/controls/macro/RULES_EXPAND
Single IOC configuration file looks like this:
ioc-xpp-userPV.cfg
RELEASE=/reg/g/pcds/epics/ioc/common/pvNotepad/R2.0.1
ARCH=linux-x86_64
ENGINEER=Reece Fiebich (rfiebich)
LOCATION=SLAC:LCLS:XPP
IOCNAME=ioc-xpp-userPV
HUTCH=XPP
DOUBLE_1 =
DOUBLE_10 =
DOUBLE_20 =
LONGOUT_1 =
LONGOUT_10 =
LONGOUT_20 =
##IMPORTANT - Note that for arrays you need to use an instance, not a
#simple variable!
#ARRAY_1(NELM=600)
#ARRAY_10(NELM=2040)
#ARRAY_20(NELM=360)
#ARRAY_1026(NELM=1026)
#IMPORTANT - For special type waveform (array) records, NELM and FTYPE *MUST* be specified
#SPECIAL(PV=EXAMPLEPV,TYPE=waveform,NELM=600,FTYPE=DOUBLE)
#dummy PVs used for testing
SPECIAL(PV=XPP:ARI1,RECTYPE=waveform,NELM=10,FTYPE=LONG)
SPECIAL(PV=XPP:ARI2,RECTYPE=waveform,NELM=10,FTYPE=LONG)
SPECIAL(PV=XPP:ARF1,RECTYPE=waveform,NELM=10,FTYPE=FLOAT)
SPECIAL(PV=XPP:ARF2,RECTYPE=waveform,NELM=10,FTYPE=FLOAT)
SPECIAL(PV=XPP:ARS1,RECTYPE=waveform,NELM=10,FTYPE=STRING)
SPECIAL(PV=XPP:ARS2,RECTYPE=waveform,NELM=10,FTYPE=STRING)
SPECIAL(PV=XPP:F1,RECTYPE=ao)
SPECIAL(PV=XPP:F2,RECTYPE=ao)
SPECIAL(PV=XPP:F3,RECTYPE=ao)
###############################################################
##################Begin actual PV names########################
###############################################################
#from tt_sync.db
#SPECIAL(PV=$(BASE):TTALL,RECTYPE=waveform,NELM=6,FTYPE=DOUBLE,PREC=16,DESC="All TT Values",EGU="Counts",INP=0)
#from daq.db
SPECIAL(PV=XPP:DAQ:CPV:NUM_VAL:01,RECTYPE=ao)
SPECIAL(PV=XPP:DAQ:CPV:NUM_VAL:02,RECTYPE=ao)
SPECIAL(PV=XPP:DAQ:CPV:NUM_VAL:03,RECTYPE=ao)
SPECIAL(PV=XPP:DAQ:NEVT,RECTYPE=longout)
SPECIAL(PV=XPP:DAQ:RUNNO,RECTYPE=longout)
SPECIAL(PV=XPP:DAQ:BEGIN,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:END,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:WAIT,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:DCONNECT,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:CONNECT,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:CONF,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:EXP,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:COLLDONE,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:DAQ:CPV:STR_DESC:01,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:STR_DESC:02,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:STR_DESC:03,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:STR_VAL:01,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:STR_VAL:02,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:STR_VAL:03,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:NUM_DESC:01,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:NUM_DESC:02,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:DAQ:CPV:NUM_DESC:03,DTYP="Soft Channel",RECTYPE=stringin)
#from scan.db
SPECIAL(PV=XPP:SCAN:NSHOTS,RECTYPE=longout)
SPECIAL(PV=XPP:SCAN:NSTEPS,RECTYPE=longout)
SPECIAL(PV=XPP:SCAN:ISTEP,RECTYPE=longout)
SPECIAL(PV=XPP:SCAN:ISSCAN,DTYP="Soft Channel",RECTYPE=longout)
SPECIAL(PV=XPP:SCAN:SCANVAR00,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:SCAN:SCANVAR01,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:SCAN:SCANVAR02,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:SCAN:MIN00,RECTYPE=ao)
SPECIAL(PV=XPP:SCAN:MIN01,RECTYPE=ao)
SPECIAL(PV=XPP:SCAN:MIN02,RECTYPE=ao)
SPECIAL(PV=XPP:SCAN:MAX00,RECTYPE=ao)
SPECIAL(PV=XPP:SCAN:MAX01,RECTYPE=ao)
SPECIAL(PV=XPP:SCAN:MAX02,RECTYPE=ao)
#from vars.db
SPECIAL(PV=XPP:VARS:INT:01,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:02,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:03,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:04,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:05,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:06,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:07,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:08,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:09,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:INT:10,RECTYPE=longout)
SPECIAL(PV=XPP:VARS:BIN:01,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:02,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:03,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:04,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:05,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:06,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:07,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:08,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:09,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:BIN:10,ZNAM="False",ONAM="True",DTYP="Soft Channel",RECTYPE=bo)
SPECIAL(PV=XPP:VARS:STRING:01,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:02,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:03,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:04,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:05,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:06,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:07,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:08,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:09,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:STRING:10,DTYP="Soft Channel",RECTYPE=stringin)
SPECIAL(PV=XPP:VARS:FLOAT:01,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:02,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:03,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:04,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:05,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:06,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:07,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:08,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:09,RECTYPE=ao)
SPECIAL(PV=XPP:VARS:FLOAT:10,RECTYPE=ao)
# See ioc-xpp-det
#SPECIAL(PV=XPP:USER:DET:QUAD0:TEMP0,RECTYPE=ao,DESC=DET:"QUAD0 Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD0:TEMP1,RECTYPE=ao,DESC="DET:QUAD0 Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD0:TEMP2,RECTYPE=ao,DESC="DET:QUAD0 Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD0:TEMP3,RECTYPE=ao,DESC="DET:QUAD0 Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#
#SPECIAL(PV=XPP:USER:DET:QUAD1:TEMP0,RECTYPE=ao,DESC="DET:QUAD1 Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD1:TEMP1,RECTYPE=ao,DESC="DET:QUAD1 Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD1:TEMP2,RECTYPE=ao,DESC="DET:QUAD1 Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD1:TEMP3,RECTYPE=ao,DESC="DET:QUAD1 Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#
#SPECIAL(PV=XPP:USER:DET:QUAD2:TEMP0,RECTYPE=ao,DESC="DET:QUAD2 Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD2:TEMP1,RECTYPE=ao,DESC="DET:QUAD2 Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD2:TEMP2,RECTYPE=ao,DESC="DET:QUAD2 Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD2:TEMP3,RECTYPE=ao,DESC="DET:QUAD2 Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#
#SPECIAL(PV=XPP:USER:DET:QUAD3:TEMP0,RECTYPE=ao,DESC="DET:QUAD3 Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD3:TEMP1,RECTYPE=ao,DESC="DET:QUAD3 Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD3:TEMP2,RECTYPE=ao,DESC="DET:QUAD3 Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#SPECIAL(PV=XPP:USER:DET:QUAD3:TEMP3,RECTYPE=ao,DESC="DET:QUAD3 Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#from userDetTemp.db
SPECIAL(PV=XPP:USER:R39:140K:TEMP0,RECTYPE=ao,DESC="R39:140K Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:TEMP1,RECTYPE=ao,DESC="R39:140K Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:TEMP2,RECTYPE=ao,DESC="R39:140K Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:TEMP3,RECTYPE=ao,DESC="R39:140K Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:04:TEMP0,RECTYPE=ao,DESC="R39:140K:04 Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:04:TEMP1,RECTYPE=ao,DESC="R39:140K:04 Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:04:TEMP2,RECTYPE=ao,DESC="R39:140K:04 Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:04:TEMP3,RECTYPE=ao,DESC="R39:140K:04 Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:06:TEMP0,RECTYPE=ao,DESC="R39:140K:06 Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:06:TEMP1,RECTYPE=ao,DESC="R39:140K:06 Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:06:TEMP2,RECTYPE=ao,DESC="R39:140K:06 Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:06:TEMP3,RECTYPE=ao,DESC="R39:140K:06 Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:07:TEMP0,RECTYPE=ao,DESC="R39:140K:07 Temperature 0",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:07:TEMP1,RECTYPE=ao,DESC="R39:140K:07 Temperature 1",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:07:TEMP2,RECTYPE=ao,DESC="R39:140K:07 Temperature 2",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
SPECIAL(PV=XPP:USER:R39:140K:07:TEMP3,RECTYPE=ao,DESC="R39:140K:07 Temperature 3",PREC=4,SCAN="Passive",MDEL="-1.",PINI="YES")
#from beamlinevar.db
SPECIAL(PV=XPP:USER:MCC:EPHOT,RECTYPE=ao,DTYP="Soft Channel",DESC="MCC Photon Energy",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:CCM:E,RECTYPE=ao,DTYP="Soft Channel",DESC="CCM Energy",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:CCM:Theta0,RECTYPE=ao,DTYP="Soft Channel",DESC="CCM Theta0",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:FS3:T0_SHIFTER,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser FS3 T0_SHIFTER",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:T0_MONITOR,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser T0_MONITOR",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:E_PULSE,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser E_PULSE",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:E0,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser E0",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:E_LEAK,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser E_LEAK",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TIME_DELAY,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser Time Delay",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:FS3_MIN,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser FS3 Min",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:FS3_MAX,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser FS3 MAX",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:EVR0_OSC,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser EVR0_Osc.",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:EVR0_GATE,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser EVR0 Gate",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:SDG0,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser SDG0",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:E_PULSE2,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser 2 E_Pulse",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:E02,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser 2 E0",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:E_LEAK2,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser 2 E_LEAK",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:VIT:T0,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser Vitara T0",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:VIT:TD,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser Vitara TD",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LXT,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP LXT",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LXTTC,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP LXTTC",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:CP_WP_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser CP Waveplate Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:CP_WP_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser CP Waveplate Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:OUT_WP_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser OUT Waveplate Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:OUT_WP_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser OUT Waveplate Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:CP_TRA_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser CP Trans Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:CP_TRA_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser CP Trans OFF",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:L1_H_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser L1 Horizontal Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:L1_H_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser L1 Horizontal Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:L1_V_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser L1 Vertical Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:L1_V_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser L1 Vertical Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:L1_F_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser L1 Focus Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:L1_F_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser L1 Focus Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:NEW_7_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser Newport 7 Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:NEW_7_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser Newport 7 Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:OPA_WP_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser OPA Waveplate Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:OPA_WP_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser OPA Waveplate Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:OPA_COMP_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser OPA Compressor Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:OPA_COMP_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser OPA Compressor Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_WP_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Waveplate Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_WP_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Waveplate Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_COMP_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Compressor Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_COMP_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Compressor Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_LENSH_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Lens Horiz. Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_LENSH_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Lens Horiz. Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_LENSV_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Lens Vert. Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_LENSV_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Lens Vert. Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_LENSF_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Lens Focus Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_LENSF_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser TT Lens Focus Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_DELAY_POS,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser tt_delay Pos",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:USER:LAS:TT_DELAY_OFF,RECTYPE=ao,DTYP="Soft Channel",DESC="XPP Laser tt_delay Off",PREC=16,SCAN="Passive",PINI="YES")
SPECIAL(PV=XPP:TIMETOOL:TTALL,RECTYPE=waveform,DTYP="Soft Channel",DESC="XPP TT PeakPos Ampl Vector",PREC=16,SCAN="Passive",PINI="YES",NELM=6,NORD=3,EGU="Counts",FTYPE="DOUBLE")
SPECIAL(PV=XPP:USER:ENCODER,RECTYPE=waveform,DTYP="Soft Channel",DESC="Encoder Counts",PREC=0,SCAN="Passive",PINI="YES",NELM=3,NORD=3,EGU="Counts",FTYPE="DOUBLE")
SPECIAL(PV=XPP:ISTAR:GateMode,RECTYPE=mbbo,DESC="iStar GateMode",ZRST="CWOff",ONST="CWOn",TWST="FireAndGate")
SPECIAL(PV=XPP:ISTAR:MCPGain,RECTYPE=longout,DESC="iStar MCPGain")
Each .cfg
file makes a new iocBoot
startup script.