Newer
Older
################################################################################
# PyDevice Support for Transfocator
################################################################################
# Setting some variables that are needed in multiple locations
epicsEnvSet('_STACK_THICK',0.050) # Move to TOML
epicsEnvSet('_D_MIN',0.00003) # Move to TOML
epicsEnvSet('_STACKS',10) # Move to TOML
epicsEnvSet('_ENERGY',12) # Get current value later...
# Setting some variables beamline-dependent PVs
epicsEnvSet('_SLITH',"") # Horizontal size of slit before CRL
epicsEnvSet('_SLITV',"") # Vertical size of slit before CRL
epicsEnvSet("BLE","") # Beam energy at CRL
# Next two lines set up some testing tools for energy -- can be commented out
epicsEnvSet("MONOE","testMonoE")
dbLoadRecords("${TOP}/db/energyTestTools.db","P=$(PREFIX), MONOE=$(MONOE), IDENERGY=testIDE")
# CRL DBs and defining substitution file to get stack properties
dbLoadTemplate("substitutions/pyDeviceTfor.substitutions","P=$(PREFIX)")
pydev("stack_subFile = 'substitutions/pyDeviceTfor.substitutions'")
pydev("CRL1 = singleTF(crl_setup = 'crl_setup.toml')")
# TODO get STACK_THICK and MIN_THICK from TOML file?
dbLoadRecords(""${TOP}/db/pyDevCRLsingle.db","P=$(PREFIX), N=1, OBJ=CRL1, KEV=$(BLE), SLITH = $(_SLITH), SLITV = $(_SLITV)")
# After iocInit, need to setup attenuation lookup table
# stack_subFile - string holding name/rel. location of substitutions file loaded
# $(_STACKS) - number of stacks of lenses
# energy - beam energy in keV used for the initial lookup table setup -- can be updated
doAfterIocInit() # PROC energy read and update CRL1 object
# TODO get STACKS from TOML file?
doAfterIocInit("pydev('CRL1.setupLookupTable(stack_subFile, $(_STACKS), energy = $(_ENERGY))')") #TODO get energy from beamline...