################################################################################ # PyDevice Support for Transfocator ################################################################################ # Setting some variables beamline-dependent PVs epicsEnvSet('_SLITH',"") # Horizontal size of slit PV before CRL epicsEnvSet('_SLITV',"") # Vertical size of slit PV before CRL epicsEnvSet("BLE","") # Beam energy PV 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'") # Import Transfocator class pydev("from pyTransfocator_single import singleTF") # Create Transfocator object pydev("CRL1 = singleTF(crl_setup = 'crl_setup.toml')") # DB for Transfocator system dbLoadRecords(""${TOP}/db/pyDevCRLsingle.db","P=$(PREFIX), N=1, OBJ=CRL1, KEV=$(BLE), SLITH = $(_SLITH), SLITV = $(_SLITV)") # After iocInit, need to setup focal size lookup table # stack_subFile - string holding name/rel. location of substitutions file loaded # loaded in dbLoadTemplate # $(_STACKS) - number of stacks of lenses # energy - beam energy in keV used for the initial lookup table setup -- can be updated # after startup doAfterIocInit() # PROC energy read and update CRL1 object doAfterIocInit() # PROC slit size read and update CRL1 object # TODO get STACKS from TOML file? doAfterIocInit("pydev('CRL1.setupLookupTable(stack_subFile, $(_STACKS)')") #TODO get energy from beamline...