pcdshub / pvnotepad Goto Github PK
View Code? Open in Web Editor NEWpvNotepad EPICS IOC
Home Page: https://github.com/pcdshub/pvNotepad/wiki/How-pvNotepad-works
pvNotepad EPICS IOC
Home Page: https://github.com/pcdshub/pvNotepad/wiki/How-pvNotepad-works
Notepad IOC for hutches. Author = Scott Stubbs (sstubbs) Date = 10/29/2014 Revised: 6/13/2017 Two methods of operation: 1)Create custom record names with the choices of ao (double), long, waveform (array), bi (binary) or stringin, but must be created on individual lines in the cfg file. NOTE: For custom waveform records array size and field type *MUST* be specified in cfg file. For example: SPECIAL(PV=AMO:CB:TEST,RECTYPE=waveform,NELM=600,FTYPE=DOUBLE) 2)'Standard' naming method, only for waveform (array) records - can choose between 1, 10, or 20 records of a generic naming convention. Can choose element size of array records with 'NELM' macro. 'IDENTIFIER' macro needed if you have multiple pvNotepad IOCs in a single hutch with standard record types, defaults to '01'. For standard waveform records element number and field type can be specified, or will default to 500 and DOUBLE. Standard PV names follow: $(HUTCH):NOTE:$(IDENTIFIER):ARRAY:01 $(HUTCH):NOTE:$(IDENTIFIER):ARRAY:02 etc. Revisions: 7/11/2016 (mcbrowne) Added hutch.db which contains mbbi record to denote hutch. 6/13/2017 (sstubbs) Removed standard longout and ao types, as nobody seemed to be using them. Added 'IDENTIFIER' macro.
Example
Makefile
# SLAC PCDS Makefile for building templated IOC instances
IOC_CFG += $(wildcard *.cfg)
include /reg/g/pcds/controls/macro/RULES_EXPAND
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.
svnModuleToGit -m pvNotepad
failed entirely (empty repository)
Authors but no tags:
git svn clone file:///afs/slac/g/pcds/vol2/svn/pcds/epics/trunk/ioc/common/pvNotepad/current --authors-file /afs/slac.stanford.edu/g/cd/swe/git/repos/package/epics/modules/authors.txt pvNotepad
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.