Skip to content
Snippets Groups Projects
Commit ea24ae7f authored by rivers's avatar rivers
Browse files

Lots of changes for Unix/Linux

parent ea5b3709
No related branches found
No related tags found
No related merge requests found
# vxWorks startup script # vxWorks startup script
# for vxStats # Read environment variables
#putenv "engineer=not me" < envPaths
#putenv "location=Earth"
engineer="not me"
location="Earth"
cd ""
< ../nfsCommands
< cdCommands
#< MPFconfig.cmd
################################################################################ ################################################################################
cd topbin # Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxx.munch)
dbLoadDatabase("../../dbd/xxx.dbd")
xxx_registerRecordDeviceDriver(pdbbase)
# If the VxWorks kernel was built using the project facility, the following must # Increase size of buffer for error logging from default 1256
# be added before any C++ code is loaded (see SPR #28980). errlogInit(5000)
sysCplusEnable=1
### Load custom EPICS software from user tree and from share # debug sseq record
ld < xxx.munch #var sseqRecDebug,10
# Note that you need an MPF router not only for IP modules, but also for
# the AIM MCA support and other MPF servers
routerInit routerInit
# talk to local IP's
localMessageRouterStart(0) localMessageRouterStart(0)
# talk to IP's on satellite processor
# (must agree with tcpMessageRouterServerStart in st_proc1.cmd)
# for IP modules on stand-alone mpf server board
#tcpMessageRouterClientStart(1, 9900, Remote_IP, 1500, 40)
# For processor with IP slots or that runs a dumb IP carrier
#ld < ip.munch
#ld < mpfgpibserver.munch
#ld < mpfserialserver.munch
#ld < dac128V.munch
#ld < ip330.munch
#ld < ip330Serv.munch
#ld < ipUnidig.munch
#ld < loveServer.o
#ld < mpcServer.o
# This IOC configures the MPF server code locally
#cd startup
#< st_mpfserver.cmd
#cd topbin
# For local OR remote GPIB server. Can't use both (as of mpfGpib1.4)
#ld < GpibHideosLocal.o
#ld < GpibHideosRemote.o
# Set up 2 local serial ports
initTtyPort("serial1", "/dev/ttyS0", 38400, "N", 1, 8, "N", 1000) # For MM4000
initTtyPort("serial2", "/dev/ttyS1", 19200, "N", 1, 8, "N", 1000) # For Keithley 2000
initSerialServer("serial1", "serial1", 1000, 20, "")
initSerialServer("serial2", "serial2", 1000, 20, "")
# Set up 4 serial ports on remote Moxa terminal server
#initInetPort("serial3","164.54.160.50",4001,1000)
#initInetPort("serial4","164.54.160.50",4002,1000)
#initInetPort("serial5","164.54.160.50",4003,1000)
#initInetPort("serial6","164.54.160.50",4004,1000)
#initSerialServer("serial3","serial3",1000,20,"")
#initSerialServer("serial4","serial4",1000,20,"")
#initSerialServer("serial5","serial5",1000,20,"")
#initSerialServer("serial6","serial6",1000,20,"")
### dbrestore setup ### dbrestore setup
# ok to restore a save set that had missing values (no CA connection to PV)? # ok to restore a save set that had missing values (no CA connection to PV)?
sr_restore_incomplete_sets_ok = 1 #var sr_restore_incomplete_sets_ok, 1
# dbrestore saves a copy of the save file it restored. File name is, e.g., # dbrestore saves a copy of the save file it restored. File name is, e.g.,
# auto_settings.sav.bu or auto_settings.savYYMMDD-HHMMSS if # auto_settings.sav.bu or auto_settings.savYYMMDD-HHMMSS if
# reboot_restoreDatedBU is nonzero. # reboot_restoreDatedBU is nonzero.
reboot_restoreDatedBU = 1; #var reboot_restoreDatedBU, 1
set_savefile_path(startup, "autosave") #set_savefile_path(startup, "autosave")
set_requestfile_path(startup, "") set_requestfile_path(startup, "")
set_requestfile_path(startup, "autosave") set_requestfile_path(startup, "autosave")
set_requestfile_path(autosave, "autosaveApp/Db")
set_requestfile_path(calc, "calcApp/Db")
set_requestfile_path(ccd, "ccdApp/Db")
set_requestfile_path(dxp, "dxpApp/Db")
set_requestfile_path(ip, "ipApp/Db") set_requestfile_path(ip, "ipApp/Db")
set_requestfile_path(ip330, "ip330App/Db") set_requestfile_path(love, "loveApp/Db")
set_requestfile_path(mca, "mcaApp/Db") set_requestfile_path(mca, "mcaApp/Db")
set_requestfile_path(ipunidig, "ipUnidigApp/Db")
set_requestfile_path(dac128v, "dac128VApp/Db")
set_requestfile_path(motor, "motorApp/Db") set_requestfile_path(motor, "motorApp/Db")
set_requestfile_path(optics, "opticsApp/Db")
set_requestfile_path(sscan, "sscanApp/Db")
set_requestfile_path(std, "stdApp/Db") set_requestfile_path(std, "stdApp/Db")
reboot_restoreDebug=0 #var reboot_restoreDebug,0
# specify what save files should be restored. Note these files must be reachable
# override address, interrupt vector, etc. information in module_types.h # from the directory current at the time iocInit is run
#module_types() set_pass0_restoreFile("auto_positions.sav")
set_pass0_restoreFile("auto_settings.sav")
set_pass1_restoreFile("auto_settings.sav")
# need more entries in wait/scan-record channel-access queue? # need more entries in wait/scan-record channel-access queue?
recDynLinkQsize = 1024 #var recDynLinkQsize, 1024
# Specify largest array CA will transport # Specify largest array CA will transport
# Note for N sscanRecord data points, need (N+1)*8 bytes, else MEDM # Note for N sscanRecord data points, need (N+1)*8 bytes, else MEDM
# plot doesn't display # plot doesn't display
putenv "EPICS_CA_MAX_ARRAY_BYTES=64008" epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64008
cd startup
################################################################################
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxx.munch)
dbLoadDatabase("../../dbd/iocxxxVX.dbd")
iocxxxVX_registerRecordDeviceDriver(pdbbase)
# Love Controllers # Love Controllers
#devLoveDebug=1 #var devLoveDebug,1
#loveServerDebug=1 #var loveServerDebug,1
#dbLoadRecords("$(IP)/ipApp/Db/love.db", "P=xxx:,Q=Love_0,C=0,PORT=PORT2,ADDR=1"); #dbLoadRecords("$(IP)/ipApp/Db/love.db", "P=xxx:,Q=Love_0,C=0,PORT=PORT2,ADDR=1");
# interpolation # interpolation
dbLoadRecords("$(STD)/stdApp/Db/interp.db", "P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/interp.db", "P=xxx:")
# X-ray Instrumentation Associates Huber Slit Controller # X-ray Instrumentation Associates Huber Slit Controller
# supported by a customized version of the SNL program written by Pete Jemian # supported by a customized version of the SNL program written by Pete Jemian
#dbLoadRecords("$(STD)/stdApp/Db/xia_slit.db", "P=xxx:, HSC=hsc1:") #dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc1:")
#dbLoadRecords("$(STD)/stdApp/Db/xia_slit.db", "P=xxx:, HSC=hsc2:") #dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc2:")
#dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,IPSLOT=a,CHAN=6,BAUD=9600,PRTY=None,DBIT=8,SBIT=1") #dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial7")
##### Pico Motors (Ernest Williams MHATT-CAT) ##### Pico Motors (Ernest Williams MHATT-CAT)
##### Motors (see picMot.substitutions in same directory as this file) #### ##### Motors (see picMot.substitutions in same directory as this file) ####
...@@ -111,46 +96,22 @@ dbLoadRecords("$(STD)/stdApp/Db/interp.db", "P=xxx:") ...@@ -111,46 +96,22 @@ dbLoadRecords("$(STD)/stdApp/Db/interp.db", "P=xxx:")
# Insertion-device control # Insertion-device control
dbLoadRecords("$(STD)/stdApp/Db/IDctrl.db","P=xxx:,xx=02us") dbLoadRecords("$(STD)/stdApp/Db/IDctrl.db","P=xxx:,xx=02us")
# test generic gpib record
#dbLoadRecords("$(STD)/stdApp/Db/gpib.db","P=xxx:")
# test generic camac record
#dbLoadRecords("$(STD)/stdApp/Db/camac.db","P=xxx:")
############################################################################### ###############################################################################
##### Motors (see motors.substitutions in same directory as this file) #### ##### Motors (see motors.substitutions in same directory as this file) ####
#dbLoadTemplate("basic_motor.substitutions")
dbLoadTemplate("motor.substitutions") dbLoadTemplate("motor.substitutions")
# OMS VME driver setup parameters:
# (1)cards, (2)axes per card, (3)base address(short, 16-byte boundary),
# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6),
# (6)motor task polling rate (min=1Hz,max=60Hz)
omsSetup(2, 8, 0xFC00, 180, 5, 10)
# OMS VME58 driver setup parameters:
# (1)cards, (2)axes per card, (3)base address(short, 4k boundary),
# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6),
# (6)motor task polling rate (min=1Hz,max=60Hz)
oms58Setup(3, 8, 0x3000, 190, 5, 10)
# Highland V544 driver setup parameters:
# (1)cards, (2)axes per card, (3)base address(short, 4k boundary),
# (4)interrupt vector (0=disable or 64 - 255), (5)interrupt level (1 - 6),
# (6)motor task polling rate (min=1Hz,max=60Hz)
#v544Setup(0, 4, 0xDD00, 0, 5, 10)
# Newport MM4000 driver setup parameters: # Newport MM4000 driver setup parameters:
# (1) max. controllers, (2)Unused, (3)polling rate (min=1Hz,max=60Hz) # (1) max. controllers, (2)Unused, (3)polling rate (min=1Hz,max=60Hz)
#MM4000Setup(3, 0, 10) MM4000Setup(3, 0, 10)
# Newport MM4000 driver configuration parameters: # Newport MM4000 driver configuration parameters:
# (1)controller# being configured, # (1)controller# being configured,
# (2)port type: 0-GPIB_PORT or 1-RS232_PORT, # (2)port type: 0-GPIB_PORT or 1-RS232_PORT,
# (3)GPIB link or MPF server location # (3)GPIB link or MPF server location
# (4)GPIB address or hideos_task name # (4) GPIB address (int) or mpf serial server name (string)
#MM4000Config(0, 1, 1, "a-Serial[0]") MM4000Config(0, 1, 0, "serial1")
# Newport PM500 driver setup parameters: # Newport PM500 driver setup parameters:
# (1) maximum number of controllers in system # (1) maximum number of controllers in system
...@@ -161,10 +122,33 @@ oms58Setup(3, 8, 0x3000, 190, 5, 10) ...@@ -161,10 +122,33 @@ oms58Setup(3, 8, 0x3000, 190, 5, 10)
# Newport PM500 configuration parameters: # Newport PM500 configuration parameters:
# (1) card being configured # (1) card being configured
# (2) port type (0-GPIB_PORT, 1-RS232_PORT) # (2) port type (0-GPIB_PORT, 1-RS232_PORT)
# (3) link for GPIB or hideos_card for RS-232 # (3) GPIB link or MPF server location
# (3)GPIB link or MPF server location
# (4) GPIB address (int) or mpf serial server name (string) # (4) GPIB address (int) or mpf serial server name (string)
#PM500Config(0, 1, 1, "a-Serial[4]") #PM500Config(0, 1, 0, "serial3")
# McClennan PM304 driver setup parameters:
# (1) maximum number of controllers in system
# (2) maximum number of channels on any controller
# (3) motor task polling rate (min=1Hz, max=60Hz)
#PM304Setup(1, 1, 10)
# McClennan PM304 driver configuration parameters:
# (1) controller being configured
# (2) MPF server location
# (3) MPF serial server name (string)
#PM304Config(0, 0, "serial4")
# ACS MCB-4B driver setup parameters:
# (1) maximum number of controllers in system
# (2) maximum number of axes per controller
# (3) motor task polling rate (min=1Hz, max=60Hz)
#MCB4BSetup(1, 4, 10)
# ACS MCB-4B driver configuration parameters:
# (1) controller being configured
# (2) MPF server location
# (3) MPF server name (string)
#MCB4BConfig(0, 0, "serial2")
# A set of scan parameters for each positioner. This is a convenience # 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 # for the user. It can contain an entry for each scannable thing in the
...@@ -173,75 +157,57 @@ dbLoadTemplate("scanParms.substitutions") ...@@ -173,75 +157,57 @@ dbLoadTemplate("scanParms.substitutions")
############################################################################### ###############################################################################
### Scalers: Joerger VSC8/16
dbLoadRecords("$(STD)/stdApp/Db/Jscaler.db","P=xxx:,S=scaler1,C=0")
# Joerger VSC setup parameters:
# (1)cards, (2)base address(ext, 256-byte boundary),
# (3)interrupt vector (0=disable or 64 - 255)
VSCSetup(1, 0x90000000, 200)
### Allstop, alldone ### Allstop, alldone
# This database must agree with the motors and other positioners you've actually loaded. # This database must agree with the motors and other positioners you've actually loaded.
# Several versions (e.g., all_com_32.db) are in stdApp/Db # Several versions (e.g., all_com_32.db) are in stdApp/Db
dbLoadRecords("$(STD)/stdApp/Db/all_com_16.db","P=xxx:") dbLoadRecords("$(STD)/stdApp/Db/all_com_8.db","P=xxx:")
### Scan-support software ### Scan-support software
# crate-resident scan. This executes 1D, 2D, 3D, and 4D scans, and caches # 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.) # 1D data, but it doesn't store anything to disk. (See 'saveData' below for that.)
dbLoadRecords("$(STD)/stdApp/Db/scan.db","P=xxx:,MAXPTS1=4000,MAXPTS2=200,MAXPTS3=10,MAXPTS4=10,MAXPTSH=4000") dbLoadRecords("$(SSCAN)/sscanApp/Db/scan.db","P=xxx:,MAXPTS1=4000,MAXPTS2=200,MAXPTS3=10,MAXPTS4=10,MAXPTSH=4000")
# Slits # Slits
dbLoadRecords("$(STD)/stdApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4") dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4")
dbLoadRecords("$(STD)/stdApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6") dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6")
# under development...
#dbLoadRecords("$(STD)/stdApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2V,mXp=m13,mXn=m14")
#dbLoadRecords("$(STD)/stdApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2H,mXp=m15,mXn=m16")
# 2-post mirror # 2-post mirror
#dbLoadRecords("$(STD)/stdApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m18,mUp=m17,LENGTH=0.3") #dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m1,mUp=m2,LENGTH=0.3")
# User filters # User filters
#dbLoadRecords("$(STD)/stdApp/Db/filterMotor.db","P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:") #dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:")
#dbLoadRecords("$(STD)/stdApp/Db/filterMotor.db","P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:") #dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr2:,MOTOR=m2,LOCK=fltr_1_2:")
#dbLoadRecords("$(STD)/stdApp/Db/filterLock.db","P=xxx:,Q=fltr2:,LOCK=fltr_1_2:,LOCK_PV=xxx:DAC1_1.VAL")
# Optical tables # Optical tables
#tableRecordDebug=1 #var tableRecordDebug,1
dbLoadRecords("$(STD)/stdApp/Db/table.db","P=xxx:,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=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
### Monochromator support ### ### Monochromator support ###
# Kohzu and PSL monochromators: Bragg and theta/Y/Z motors # Kohzu and PSL monochromators: Bragg and theta/Y/Z motors
# standard geometry (geometry 1) # standard geometry (geometry 1)
dbLoadRecords("$(STD)/stdApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=17.4999,yOffHi=17.5001") dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001")
# modified geometry (geometry 2) # modified geometry (geometry 2)
dbLoadRecords("$(STD)/stdApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=4,yOffHi=36") dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=4,yOffHi=36")
# Heidenhain ND261 encoder (for PSL monochromator) # Heidenhain ND261 encoder (for PSL monochromator)
#dbLoadRecords("$(IP)/ipApp/Db/heidND261.db", "P=xxx:,C=0,IPSLOT=a,CHAN=0") #dbLoadRecords("$(IP)/ipApp/Db/heidND261.db", "P=xxx:,C=0,SERVER=serial1")
# Heidenhain IK320 VME encoder interpolator
#dbLoadRecords("$(STD)/stdApp/Db/IK320card.db","P=xxx:,sw2=card0:,axis=1,switches=41344,irq=3")
#dbLoadRecords("$(STD)/stdApp/Db/IK320card.db","P=xxx:,sw2=card0:,axis=2,switches=41344,irq=3")
#dbLoadRecords("$(STD)/stdApp/Db/IK320group.db","P=xxx:,group=5")
#drvIK320RegErrStr()
# Spherical grating monochromator # Spherical grating monochromator
dbLoadRecords("$(STD)/stdApp/Db/SGM.db","P=xxx:,N=1,M_x=m7,M_rIn=m6,M_rOut=m8,M_g=m9") dbLoadRecords("$(OPTICS)/opticsApp/Db/SGM.db","P=xxx:,N=1,M_x=m1,M_rIn=m2,M_rOut=m3,M_g=m4")
# 4-bounce high-resolution monochromator # 4-bounce high-resolution monochromator
dbLoadRecords("$(STD)/stdApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m9,M_PHI2=m10") dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m1,M_PHI2=m2")
#dbLoadRecords("$(STD)/stdApp/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m11,M_PHI2=m12") #dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m1,M_PHI2=m2")
### Canberra AIM Multichannel Analyzer ### ### Canberra AIM Multichannel Analyzer ###
#mcaRecordDebug=1 #var mcaRecordDebug,1
#devMcaMpfDebug=1 #var devMcaMpfDebug,1
#mcaAIMServerDebug=1 #var mcaAIMServerDebug,1
#aimDebug=1 #var aimDebug,1
#icbDebug=1 #var icbDebug,1
#icbServerDebug=1 #var icbServerDebug,1
#icbDspDebug=1 #var icbDspDebug,1
#icbTcaDebug=1 #var icbTcaDebug,1
# AIMConfig(char *serverName, int etherAddr, int port, int maxChans, # AIMConfig(char *serverName, int etherAddr, int port, int maxChans,
# int maxSignals, int maxSequences, char *etherDev, int queueSize) # int maxSignals, int maxSequences, char *etherDev, int queueSize)
...@@ -255,23 +221,32 @@ dbLoadRecords("$(STD)/stdApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m9,M_PHI2=m10") ...@@ -255,23 +221,32 @@ dbLoadRecords("$(STD)/stdApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m9,M_PHI2=m10")
# or MCS module is in use, this must agree with hardware setting.) # or MCS module is in use, this must agree with hardware setting.)
# maxSequences: How many sequences (usually, a sequence is a "time slice")? # maxSequences: How many sequences (usually, a sequence is a "time slice")?
# etherDev: vxWorks device used to communicate over the network to AIM. # etherDev: vxWorks device used to communicate over the network to AIM.
# Typically "ei0" for mv16x, mv17x; "dc0" for Motorola PowerPC # Typically "eth0" or "eth1"
# queueSize: size of MPF message queue for this server (100 should be plenty) # queueSize: size of MPF message queue for this server (100 should be plenty)
# #
# EXAMPLE: # EXAMPLE:
# AIMConfig("AIM1/2", 0x9AA, 2, 2048, 1, 1, "dc0", 100) # AIMConfig("AIM1/2", 0x59E, 2, 2048, 1, 1, "dc0", 100)
AIMConfig("AIM1/2", 0x9AA, 2, 4000, 1, 1, "dc0", 100) AIMConfig("AIM1/2", 0x59E, 2, 4000, 1, 1, "eth0", 100)
dbLoadRecords("$(MCA)/mcaApp/Db/mca.db","P=xxx:,M=mca1,INP=#C0 S0 @AIM1/2,DTYPE=MPF MCA,NCHAN=4000") dbLoadRecords("$(MCA)/mcaApp/Db/mca.db","P=xxx:,M=mca1,INP=#C0 S0 @AIM1/2,DTYPE=MPF MCA,NCHAN=4000")
# Initialize ICB software, and create a new ICB server # Initialize ICB software, and create a new ICB server
# icbSetup(const char *serverName, int maxModules, int queueSize) # icbSetup(const char *serverName, int maxModules, int queueSize)
#
# serverName: defined here, must agree with icbConfig and dbLoadRecords commands
# maxModules: Maximum number of ICB modules that this server will control
# queueSize: size of MPF message queue for this server (100 should be plenty)
icbSetup("icb/1", 10, 100) icbSetup("icb/1", 10, 100)
# Configure the new ICB server # Configure an ICB module on this server
# icbConfig(const char *serverName, int module, int enetAddress, int icbAddress) # icbConfig(const char *serverName, int module, int etherAddr, int icbAddress)
icbConfig("icb/1", 0, 0x9AA, 3) #
# serverName: defined in icbSetup above
# module: the index number for this module (0,1,2...)
# etherAddr: ethernet address of AIM module
# icbAddress: ICB address of this module (set with internal rotary switch, 0x0-0xF)
icbConfig("icb/1", 0, 0x59E, 5)
# In dbLoadRecords commands for ICB devices # In dbLoadRecords commands for ICB devices
# CARD = (0,1) for (local/remote), # CARD = (0,1) for (local/remote),
...@@ -280,206 +255,138 @@ icbConfig("icb/1", 0, 0x9AA, 3) ...@@ -280,206 +255,138 @@ icbConfig("icb/1", 0, 0x9AA, 3)
dbLoadRecords("$(MCA)/mcaApp/Db/icb_adc.db","P=xxx:,ADC=icbAdc1,CARD=0,SERVER=icb/1,ADDR=0") dbLoadRecords("$(MCA)/mcaApp/Db/icb_adc.db","P=xxx:,ADC=icbAdc1,CARD=0,SERVER=icb/1,ADDR=0")
#icbConfig("icb/1", 2, 0x9AA, 2) icbConfig("icb/1", 1, 0x59E, 2)
#dbLoadRecords("$(MCA)/mcaApp/Db/icb_hvps.db","P=xxx:,HVPS=icbHvps1,CARD=0,SERVER=icb/1,ADDR=2") dbLoadRecords("$(MCA)/mcaApp/Db/icb_hvps.db","P=xxx:,HVPS=icbHvps1,CARD=0,SERVER=icb/1,ADDR=1,LIMIT=1000")
#icbConfig("icb/1", 3, 0x9AA, 4) icbConfig("icb/1", 2, 0x59E, 3)
#dbLoadRecords("$(MCA)/mcaApp/Db/icb_amp.db","P=xxx:,AMP=icbAmp1,CARD=0,SERVER=icb/1,ADDR=4") dbLoadRecords("$(MCA)/mcaApp/Db/icb_amp.db","P=xxx:,AMP=icbAmp1,CARD=0,SERVER=icb/1,ADDR=2")
# icbTcaSetup(char *serverName, int maxModules, int queueSize) # icbTcaSetup(char *serverName, int maxModules, int queueSize)
# icbTcaConfig(char *serverName, int module, int enetAddress, int icbAddress) #
# serverName: defined here, must agree with icbTcaConfig and dbLoadRecords commands
# maxModules: Maximum number of TCA modules that this server will control
# queueSize: size of MPF message queue for this server (100 should be plenty)
# icbTcaSetup("icbTca/1", 3, 100) icbTcaSetup("icbTca/1", 3, 100)
# icbTcaConfig("icbTca/1", 0, 0x9AA, 1)
#dbLoadRecords("$(MCA)/mcaApp/Db/icb_tca.db","P=xxx:,TCA=icbTca1,MCA=mca1,CARD=0,SERVER=icbTca/1,ADDR=0")
# Load 13 element detector software # icbTcaConfig(char *serverName, int module, int etherAddr, int icbAddress)
#< 13element.cmd #
# serverName: defined in icbTcaSetup above
# module: the index number for this module (0,1,2...)
# etherAddr: ethernet address of AIM module
# icbAddress: ICB address of this module (set with internal rotary switch, 0x0-0xF)
# Load 3 element detector software icbTcaConfig("icbTca/1", 0, 0x59E, 8)
#< 3element.cmd dbLoadRecords("$(MCA)/mcaApp/Db/icb_tca.db","P=xxx:,TCA=icbTca1,MCA=mca1,CARD=0,SERVER=icbTca/1,ADDR=0")
### Struck 7201 multichannel scaler (same as SIS 3806 multichannel scaler) # icbDspSetup(char *serverName, int maxModules, int queueSize)
#
# serverName: defined here, must agree with icbDspConfig and dbLoadRecords commands
# maxModules: Maximum number of DSP 9660 modules that this server will control
# queueSize: size of MPF message queue for this server (100 should be plenty)
#mcaRecordDebug = 10 icbDspSetup("icbDsp/1", 3, 100)
#devSTR7201Debug = 10
#drvSTR7201Debug = 10
#dbLoadRecords("$(MCA)/mcaApp/Db/Struck8.db","P=xxx:mcs:") # icbDspConfig(char *serverName, int module, int etherAddr, int icbAddress)
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca1,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S0 @,CHANS=1000") #
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca2,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S1 @,CHANS=1000") # serverName: defined in icbDspSetup above
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca3,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S2 @,CHANS=1000") # module: the index number for this module (0,1,2...)
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca4,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S3 @,CHANS=1000") # etherAddr: ethernet address of AIM module
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca5,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S4 @,CHANS=1000") # icbAddress: ICB address of this module (set with internal rotary switch, 0x0-0xF)
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca6,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S5 @,CHANS=1000")
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca7,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S6 @,CHANS=1000") icbDspConfig("icbDsp/1", 0, 0x59E, 6)
#dbLoadRecords("$(MCA)/mcaApp/Db/simple_mca.db","P=xxx:mcs:,M=mca8,DTYP=Struck STR7201 MCS,PREC=3,INP=#C0 S7 @,CHANS=1000") dbLoadRecords("$(MCA)/mcaApp/Db/icbDsp.db", "P=xxx:,DSP=dsp1,CARD=0,SERVER=icbDsp/1,ADDR=0")
# STR7201Setup(int numCards, int baseAddress, int interruptVector, int interruptLevel) # Load 13 element detector software
#STR7201Setup(2, 0xA0000000, 210, 6) #< 13element.cmd
# STR7201Config(int card, int maxSignals, int maxChans, int 1=enable internal 25MHZ clock)
#STR7201Config(0, 8, 1000, 0)
### Acromag IP330 in sweep mode ### # Load 3 element detector software
#dbLoadRecords("$(MCA)/mcaApp/Db/mca.db", "P=xxx:,M=mADC_1,DTYPE=ip330Sweep,NCHAN=2048,INP=#C0 S0 @d-Ip330Sweep") #< 3element.cmd
### Stuff for user programming ### ### Stuff for user programming ###
dbLoadRecords("$(STD)/stdApp/Db/userCalcs10.db","P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/userCalcs10.db","P=xxx:")
dbLoadRecords("$(STD)/stdApp/Db/userStringCalcs10.db","P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/userStringCalcs10.db","P=xxx:")
dbLoadRecords("$(STD)/stdApp/Db/userTransforms10.db","P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/userTransforms10.db","P=xxx:")
# extra userCalcs (must also load userCalcs10.db for the enable switch) # extra userCalcs (must also load userCalcs10.db for the enable switch)
dbLoadRecords("$(STD)/stdApp/Db/userCalcN.db","P=xxx:,N=I_Detector") dbLoadRecords("$(CALC)/calcApp/Db/userCalcN.db","P=xxx:,N=I_Detector")
dbLoadRecords("$(STD)/stdApp/Db/userAve10.db","P=xxx:") #dbLoadRecords("$(CALC)/calcApp/Db/userAve10.db","P=xxx:")
# string sequence (sseq) record # string sequence (sseq) record
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq1") dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq1")
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq2") dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq2")
dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq3") dbLoadRecords("$(STD)/stdApp/Db/yySseq.db","P=xxx:,S=Sseq3")
# 4-step measurement # 4-step measurement
dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:") #dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:")
### serial support ### ### serial support ###
# generic serial ports # generic serial ports
#dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,IPSLOT=a,CHAN=0,BAUD=9600,PRTY=None,DBIT=8,SBIT=1") dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial1")
dbLoadRecords("$(IP)/ipApp/Db/generic_serial.db", "P=xxx:,C=0,SERVER=serial2")
# serial O/I block (generic serial record with format and parse string calcs) # serial O/I block (generic serial record with format and parse string calcs)
# on epics/mpf processor # on epics/mpf processor
#dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=0_1,C=0,IPSLOT=a,CHAN=4") #dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=0_1,C=0,SERVER=serial5")
# on stand-alone mpf processor # on stand-alone mpf processor
#dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=1_1,C=0,IPSLOT=a,CHAN=4") #dbLoadRecords("$(IP)/ipApp/Db/serial_OI_block.db","P=xxx:,N=1_1,C=0,SERVER=serial5")
# Stanford Research Systems SR570 Current Preamplifier # Stanford Research Systems SR570 Current Preamplifier
#dbLoadRecords("$(IP)/ipApp/Db/SR570.db", "P=xxx:,A=A1,C=0,IPSLOT=a,CHAN=0") #dbLoadRecords("$(IP)/ipApp/Db/SR570.db", "P=xxx:,A=A1,C=0,SERVER=serial1")
# Lakeshore DRC-93CA Temperature Controller # Lakeshore DRC-93CA Temperature Controller
#dbLoadRecords("$(IP)/ipApp/Db/LakeShoreDRC-93CA.db", "P=xxx:,Q=TC1,C=0,IPSLOT=a,CHAN=3") #dbLoadRecords("$(IP)/ipApp/Db/LakeShoreDRC-93CA.db", "P=xxx:,Q=TC1,C=0,SERVER=serial4")
# Huber DMC9200 DC Motor Controller # Huber DMC9200 DC Motor Controller
#dbLoadRecords("$(IP)/ipApp/Db/HuberDMC9200.db", "P=xxx:,Q=DMC1:,C=0,IPSLOT=a,CHAN=5") #dbLoadRecords("$(IP)/ipApp/Db/HuberDMC9200.db", "P=xxx:,Q=DMC1:,C=0,SERVER=serial5")
# Oriel 18011 Encoder Mike # Oriel 18011 Encoder Mike
#dbLoadRecords("$(IP)/ipApp/Db/eMike.db", "P=xxx:,M=em1,C=0,IPSLOT=a,CHAN=2") #dbLoadRecords("$(IP)/ipApp/Db/eMike.db", "P=xxx:,M=em1,C=0,SERVER=serial3")
# Keithley 2000 DMM # Keithley 2000 DMM
#dbLoadRecords("$(IP)/ipApp/Db/Keithley2kDMM_mf.db","P=xxx:,Dmm=D1,C=1,IPSLOT=a,CHAN=0") dbLoadRecords("$(IP)/ipApp/Db/Keithley2kDMM_mf.db","P=xxx:,Dmm=D1,C=0,SERVER=serial2")
# Oxford Cyberstar X1000 Scintillation detector and pulse processing unit # Oxford Cyberstar X1000 Scintillation detector and pulse processing unit
#dbLoadRecords("$(IP)/ipApp/Db/Oxford_X1k.db","P=xxx:,S=s1,C=0,IPSLOT=a,CHAN=3") #dbLoadRecords("$(IP)/ipApp/Db/Oxford_X1k.db","P=xxx:,S=s1,C=0,SERVER=serial4")
# Oxford ILM202 Cryogen Level Meter (Serial) # Oxford ILM202 Cryogen Level Meter (Serial)
#dbLoadRecords("$(IP)/ipApp/Db/Oxford_ILM202.db","P=xxx:,S=s1,C=0,IPSLOT=c,CHAN=2") #dbLoadRecords("$(IP)/ipApp/Db/Oxford_ILM202.db","P=xxx:,S=s1,C=0,SERVER=serial5")
### GPIB support ###
# GPIB O/I block (generic gpib record with format and parse string calcs)
# See HiDEOSGpibLinkConfig() below.
#dbLoadRecords("$(IP)/ipApp/Db/GPIB_OI_block.db","P=xxx:,N=1,L=10")
# Heidenhain AWE1024 at GPIB address $(A)
#dbLoadRecords("$(IP)/ipApp/Db/HeidAWE1024.db", "P=xxx:,L=10,A=6")
# Keithley 199 DMM at GPIB address $(A)
#dbLoadRecords("$(STD)/stdApp/Db/KeithleyDMM.db", "P=xxx:,L=10,A=26")
### Miscellaneous ###
# Systran DAC database
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=1,S=0,IPSLOT=c")
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=2,S=1,IPSLOT=c")
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=3,S=2,IPSLOT=c")
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=4,S=3,IPSLOT=c")
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=5,S=4,IPSLOT=c")
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=6,S=5,IPSLOT=c")
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=7,S=6,IPSLOT=c")
#dbLoadRecords("$(IP)/ipApp/Db/DAC.db", "P=xxx:,D=1,C=1,N=8,S=7,IPSLOT=c")
# vme test record
dbLoadRecords("$(STD)/stdApp/Db/vme.db", "P=xxx:,Q=vme1")
# Hewlett-Packard 10895A Laser Axis (interferometer)
#dbLoadRecords("$(STD)/stdApp/Db/HPLaserAxis.db", "P=xxx:,Q=HPLaser1, C=0")
# hardware configuration
# example: devHP10895LaserAxisConfig(ncards,a16base)
#devHPLaserAxisConfig(2,0x1000)
# Acromag general purpose Digital I/O
#dbLoadRecords("$(STD)/stdApp/Db/Acromag_16IO.db", "P=xxx:, A=1")
# Acromag AVME9440 setup parameters:
# devAvem9440Config (ncards,a16base,intvecbase)
#devAvme9440Config(1,0x0400,0x78)
# Miscellaneous PV's, such as burtResult # Miscellaneous PV's, such as burtResult
dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:") dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
#dbLoadRecords("$(STD)/stdApp/Db/VXstats.db","P=xxx:")
# vxStats
dbLoadTemplate("vxStats.substitutions")
# Elcomat autocollimator # Elcomat autocollimator
#dbLoadRecords("$(IP)/ipApp/Db/Elcomat.db", "P=xxx:,C=0,IPSLOT=a,CHAN=7") #dbLoadRecords("$(IP)/ipApp/Db/Elcomat.db", "P=xxx:,C=0,SERVER=serial8")
# Bunch-clock generator
#dbLoadRecords("$(STD)/stdApp/Db/BunchClkGen.db","P=xxx:")
#dbLoadRecords("$(STD)/stdApp/Db/BunchClkGenA.db", "UNIT=xxx", std)
# hardware configuration
# example: BunchClkGenConfigure(intCard, unsigned long CardAddress)
#BunchClkGenConfigure(0, 0x8c00)
### Queensgate piezo driver ### Queensgate piezo driver
#dbLoadRecords("$(STD)/stdApp/Db/pzt_3id.db","P=xxx:") #dbLoadRecords("$(IP)/ipApp/Db/pzt_3id.db","P=xxx:")
#dbLoadRecords("$(STD)/stdApp/Db/pzt.db","P=xxx:") #dbLoadRecords("$(IP)/ipApp/Db/pzt.db","P=xxx:")
### GP307 Vacuum Controller # Eurotherm temp controller
#dbLoadRecords("$(STD)/stdApp/Db/gp307.db","P=xxx:") #dbLoadRecords("$(IP)/ipApp/Db/Eurotherm.db","P=xxx:,C=0,SERVER=serial7")
#var devAoEurothermDebug,20
### Queensgate Nano2k piezo controller # MKS vacuum gauges
#dbLoadRecords("$(STD)/stdApp/Db/Nano2k.db","P=xxx:,S=s1") #dbLoadRecords("$(IP)/ipApp/Db/MKS.db","P=xxx:,C=0,SERVER=serial2,CC1=cc1,CC2=cc3,PR1=pr1,PR2=pr3")
# PI Digitel 500/1500 pump
#dbLoadRecords("$(IP)/ipApp/Db/Digitel.db","xxx:,PUMP=ip1,C=0,SERVER=serial3")
# PI MPC ion pump
#dbLoadRecords("$(IP)/ipApp/Db/MPC.db","P=xxx:,PUMP=ip2,C=0,SERVER=serial4,PA=0,PN=1")
# PI MPC TSP (titanium sublimation pump)
#dbLoadRecords("$(IP)/ipApp/Db/TSP.db","P=xxx:,TSP=tsp1,C=0,SERVER=serial4,PA=0")
# Eurotherm temp controller # Slow feedback
#dbLoadRecords("$(IP)/ipApp/Db/Eurotherm.db","P=xxx:,C=0,IPSLOT=a,CHAN=6") #dbLoadTemplate("pid_slow.substitutions")
#devAoEurothermDebug=20
# Analog I/O (Acromag IP330 ADC)
#dbLoadTemplate("ip330Scan.substitutions")
# Machine-status board (MRD 100)
#####################################################
# dev32VmeConfig(card,a32base,nreg,iVector,iLevel)
# card = card number
# a32base = base address of card
# nreg = number of A32 registers on this card
# iVector = interrupt vector (MRD100 Only !!)
# iLevel = interrupt level (MRD100 Only !!)
# For Example
# devA32VmeConfig(0, 0x80000000, 44, 0, 0)
#####################################################
# Configure the MSL MRD 100 module.....
#devA32VmeConfig(0, 0xa0000200, 30, 0xa0, 5)
# VVVVVVVVVVVVVVVVVVVVV This doesn't look right (tmm)
#dbLoadRecords("$(STD)/stdApp/Db/msl_mrd100.db","C=0,S=01,ID1=00,ID2=00us")
### Bit Bus configuration
# BBConfig(Link, LinkType, BaseAddr, IrqVector, IrqLevel)
# Link: ?
# LinkType: 0:hosed; 1:xycom; 2:pep
#BBConfig(3,1,0x2400,0xac,5)
############################################################################### ###############################################################################
# Set shell prompt (otherwise it is left at mv167 or mv162)
shellPromptSet "iocxxx> "
iocLogDisable=1
iocInit iocInit
### startup State Notation Language programs ### startup State Notation Language programs
seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=1, logfile=kohzuCtl.log" seq &kohzuCtl, "P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=1, logfile=kohzuCtl.log"
seq &hrCtl, "P=xxx:, N=1, M_PHI1=m9, M_PHI2=m10, logfile=hrCtl1.log" seq &hrCtl, "P=xxx:, N=1, M_PHI1=m1, M_PHI2=m2, logfile=hrCtl1.log"
# Keithley 2000 series DMM # Keithley 2000 series DMM
# channels: 10, 20, or 22; model: 2000 or 2700 # channels: 10, 20, or 22; model: 2000 or 2700
#seq &Keithley2kDMM,("P=xxx:, Dmm=D1, channels=20, model=2000") seq &Keithley2kDMM,("P=xxx:, Dmm=D1, channels=10, model=2000")
# Bunch clock generator
#seq &getFillPat, "unit=xxx"
# X-ray Instrumentation Associates Huber Slit Controller # X-ray Instrumentation Associates Huber Slit Controller
# supported by a SNL program written by Pete Jemian and modified (TMM) for use with the # supported by a SNL program written by Pete Jemian and modified (TMM) for use with the
...@@ -498,17 +405,3 @@ create_monitor_set("auto_positions.req",5,"P=xxx:") ...@@ -498,17 +405,3 @@ create_monitor_set("auto_positions.req",5,"P=xxx:")
# save other things every thirty seconds # save other things every thirty seconds
create_monitor_set("auto_settings.req",30,"P=xxx:") create_monitor_set("auto_settings.req",30,"P=xxx:")
### Start the saveData task.
# saveData_MessagePolicy
# 0: wait forever for space in message queue, then send message
# 1: send message only if queue is not full
# 2: send message only if queue is not full and specified time has passed (SetCptWait()
# sets this time.)
# 3: if specified time has passed, wait for space in queue, then send message
# else: don't send message
#debug_saveData = 2
saveData_MessagePolicy = 2
saveData_SetCptWait_ms(100)
saveData_Init("saveData.req", "P=xxx:")
#saveData_PrintScanInfo("xxx:scan1")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment