-
Notifications
You must be signed in to change notification settings - Fork 2
EPICS module that provides a standard PV interface for trigger configuration and monitoring fo TimingCore
License
slac-epics/tprTrigger
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
---------- tprTrigger ---------- The tprTrigger is an epics module which provides a standard PV interface for trigger configuration and monitoring fo TimingCore How to build an ioc with tprTrigger ----------------------------------- 1. tprTrigger requires hpsTpr API configure/CONFIG_STIE should have the followings for the hpsTpr API. HPSTPR_PACKAGE_NAME=timing/hpsTpr HPSTPR_VERSION=R1.0.2 HPSTPR_ARCH=$(LINUXRT_BUILDROOT_VERSION)-x86_64 HPSTPR=$(PACKAGE_AREA)/$(HPSTPR_PACKAGE_NAME)/$(HPSTPR_VERSION)/$(HPSTPR_ARCH) HPSTPR_LIB = $(HPSTPR)/lib HPSTPR_INCLUDE = $(HPSTPR)/include (The version number should be replaced with a proper version for your ioc.) 2. tprTrigger module configure/RELEASE should have the followings for the tprTrigger module. TPRTRIGGER_MODULE_VERSION=R1.2.5 TPRTRIGGER=$(EPICS_MODULES)/tprTrigger/$(TPRTRIGGER_MODULE_VERSION) (The version number should be replaced with a proper version for your ioc.) 3. Other modules and API the tprTrigger module assumes the following API and modules are included in the application. asyn R4.31-0.1.0 yamlLoader R1.1.2 timingApi R0.6 cpsw/framework R3.6.6 yaml-cpp yaml-cpp-0.5.3_boost-1.64.0 boost 1.64.0 hpsTpr R1.0.2 4. How to build application binary The Makefile in source directory should include the followings: # DBD files for tprTrigger <your_application>_DBD += tprTriggerAsynDriver.dbd # API for tprTrigger hpsTpr_DIR = $(HPSTPR_LIB) <your_application>_LIBS += hpstpr # Libary for tprTrigger <your_application>_LIBS += tprTrigger The Makefile in Db directory should have the followings to install database template into db directory. # Install Database for tprTrigger module DB_INSTALLS += $(TPRTRIGGER)/db/tprTrig.db DB_INSTALLS += $(TPRTRIGGER)/db/tprDeviceNamePV.db How to run the ioc with tprTrigger ---------------------------------- 1. how to load database template for tprTrigger. Macros for tprTrig.db PORT - port name for asyn port driver, tprTrigger moudle has port name "trig". LOCA - location (ex, LI24, IN20) IOC_UNIT - IOC name (ex, RF01, RF02) INST - instance number for mutiple TPR in an ioc example) dbLoadRecords("db/tprTrig.db", "PORT=trig,LOCA=LI24,IOC_UNIT=RF02,INST=0") It will make TPR PVs (low level PVs) which have prefix "TPR:LI24:RF02:0:". -------------- Macro for tprDeviceNamePVs.db The tprDeviceNamePVs.db provides device name PVs (high level PVs) LOCA - same with tprTrig.db IOC_UNIT - smae with tprTrig.db INST - same with tprTrig.db SYS - for LCLS1 shoud be SYS0, for LCLS2 should be SYS2 NN - two digit number for trigger channel number (ex, 00, 01, 02 ... 10, 11) DEV_PREFIX - prefix for PV name (ex, KLYS:LI28:21") example) dbLoadRecords("db/tprDeviceNamePV.db", "LOCA=LI24,IOC_UNIT=RF02,INST=0,SYS=SYS2,NN=00,DEV_PREFIX=KLYS:LI28:21:") dbLodsRecords("db/tprDeviceNamePV.db", "LOCA=LI24,IOC_UNIT=RF02,INST=0,SYS=SYS2,NN=01,DEV_PREFIX=KLYS:LI28:22:") Remark) The DEV_PREFIX should have ":" at very last charactor. ex) BPMS:IN20:221:, YAG:IN20:221: But, some of cases, we don't need to put the ":" ex) BPMS:LI26:201:CALB 2. how to initialize the driver The prTrigger assuems yamlLoader driver loaded up the register hierarchy as the followings: cpswLoadYamlFile("000TopLevel.yaml", "NetIODev", "", "10.0.3.105") (The yaml file path, root path name for register name, and FPGA IP address are application specific.) After load up the hierarchy, we can configure tprTrigger driver with the followig command. tprTriggerAsynDriverConfigure("trig", "mmio/AmcCarrierEmpty/AmcCarrierCore") 3. how to bring up engineering screen Please, check up a script in the module: <TOP>/tprTriggerApp/edm/launch_edm 4. how to use multiple blades sytem Load hierachy yaml file multiple times with describing named_root (very last argument, optional for mutilple blades system) cd ${YAML_DIR0} cpswLoadYamlFile("000TopLevel.yaml", "NetIODev", "", "10.0.3.102", "root_slot2") cd ${YAML_DIR1} cpswLoadYamlFile("000TopLevel.yaml", "NetIODev", "", "10.0.3.103", "root_slot3") cd ${YAML_DIR2} cpswLoadYamlFile("000TopLevel.yaml", "NetIODev", "", "10.0.3.104", "root_slot4") Call driver configure multiple time with the named_root (very last argument, optional for multiple blades system) tprTriggerAsynDriverConfigure("trig0", "mmio/AmcCarrierEmpty/AmcCarrierCore", "root_slot2") tprTriggerAsynDriverConfigure("trig1", "mmio/AmcCarrierEmpty/AmcCarrierCore", "root_slot3") tprTriggerAsynDriverConfigure("trig2", "mmio/AmcCarrierEmpty/AmcCarrierCore", "root_slot4")
About
EPICS module that provides a standard PV interface for trigger configuration and monitoring fo TimingCore
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published