Files
startup/startup.script_linux

80 lines
3.3 KiB
Plaintext

# set EPICS according to BASE or default to 3.14.12
epicsEnvSet EPICS, R$(EPICS_RELEASE=$(BASE=3.14.12))
# Start Logging
date "epicsEnvSet IOC_STARTTIME %Y-%m-%dT%H:%M:%S" > /tmp/$(IOC).starttime
< /tmp/$(IOC).starttime
system "rm /tmp/$(IOC).starttime"
epicsEnvSet EPICS_IOC_LOG_INET, $(EPICS_IOC_LOG_INET=gfa-syslog)
epicsEnvSet EPICS_IOC_LOG_PORT, $(EPICS_IOC_LOG_PORT=1514)
# iocLogPrefix will fail for EPICS 3 but that's OK
iocLogPrefix "$(IOC) "
iocLogInit
errlog "starting EPICS $(EPICS) at $(IOC_STARTTIME)"
# Set up CA search lists for different networks
# Office (only officicial EPICS subnets, not SLS beamlines!)
epicsEnvSet CA_129.129.130,"129.129.131.255 129.129.137.255"
epicsEnvSet CA_129.129.131,"129.129.130.255 129.129.137.255"
epicsEnvSet CA_129.129.137,"129.129.130.255 129.129.131.255"
# OSFA (SF machine networks)
# with directed broadcasts
epicsEnvSet CA_172.26,"172.26.0.255 172.26.2.255 172.26.8.255 172.26.16.255 172.26.24.255 172.26.32.255 172.26.40.255 172.26.110.255 172.26.111.255 172.26.120.255 129.129.242.255 129.129.243.255"
epicsEnvSet CA_AUTO_172.26,"NO"
# SwissFEL end stations to machine via gateway
epicsEnvSet CA_129.129.242,"sf-saresc-cagw:5062"
epicsEnvSet CA_129.129.243,"sf-saresc-cagw:5062"
epicsEnvSet CA_129.129.244,"sf-saresc-cagw:5062"
epicsEnvSet CA_129.129.245,"sf-satesd-cagw:5062"
epicsEnvSet CA_129.129.246,"sf-satese-cagw:5062"
epicsEnvSet CA_129.129.247,"sf-satesf-cagw:5062"
# HIPA
epicsEnvSet CA_172.19,"172.19.10.255 172.19.30.255"
epicsEnvSet CA_AUTO_172.19,"NO"
# PROSCAN
epicsEnvSet CA_172.25,"172.25.60.255 172.25.11.255"
epicsEnvSet CA_AUTO_172.25,"NO"
# All others can work with the defaults: automatic
# Apply settings dependent on network
system "/sbin/ifconfig `/sbin/route -n|awk '/^0.0.0.0/{print $8}'`|awk -F '[.: ]+' -vP=epicsEnvSet -vN=NET '/Bcast/{print P,N 1,$9ORS P,N 2,$10ORS P,N 3,$11}/broadcast/{print P,N 1,$13ORS P,N 2,$14ORS P,N 3,$15}'>/tmp/$(IOC).net"
< /tmp/$(IOC).net
system "rm /tmp/$(IOC).net"
epicsEnvSet EPICS_CA_ADDR_LIST,"$(CA_$(NET1=).$(NET2=).$(NET3=)=$(CA_$(NET1=).$(NET2=)=))"
epicsEnvSet EPICS_CA_AUTO_ADDR_LIST,"$(CA_AUTO_$(NET1=).$(NET2=).$(NET3=)=$(CA_AUTO_$(NET1=).$(NET2=)=YES))"
epicsEnvSet EPICS_CAS_BEACON_ADDR_LIST,"$(CA_BEACON_$(NET1=).$(NET2=).$(NET3=)=$(CA_BEACON_$(NET1=).$(NET2=)=$(EPICS_CA_ADDR_LIST)))"
epicsEnvSet EPICS_CAS_AUTO_BEACON_ADDR_LIST,"$(CA_AUTO_BEACON_$(NET1=).$(NET2=).$(NET3=)=$(CA_AUTO_BEACON_$(NET1=).$(NET2=)=$(EPICS_CA_AUTO_ADDR_LIST)))"
# set some search paths
epicsEnvSet EPICS_DRIVER_PATH "bin/R$(EPICS_RELEASE)_$(EPICS_HOST_ARCH):bin:snl:$(EPICS_MODULES=/ioc/modules)"
epicsEnvSet CFG, $(PWD)/cfg
epicsEnvSet STREAM_PROTOCOL_PATH, .:$(PWD)/cfg
# Allow non-monotonic breaktables
var dbBptNotMonotonic 1
# IOC monitoring
require iocStats $(iocStats_VERSION=ifexists)
# Database Upload
require iocinfo $(iocinfo_VERSION=ifexists)
# caPutLog
epicsEnvSet EPICS_CA_PUT_LOG_ADDR, "gfa-syslog:1515 gfa-logstash.psi.ch:1515"
# Set EPICS_CA_PUT_LOG_PREFIX for EPICS 3 but not for 7 because there we have iocLogPrefix
epicsEnvSet EPICS_CA_PUT_LOG_PREFIX_CMD_3 "epicsEnvSet EPICS_CA_PUT_LOG_PREFIX $(IOC)"
$(EPICS_CA_PUT_LOG_PREFIX_CMD_$(EPICS_VERSION_MAJOR=3)=)
require caPutLog $(caPutLog_VERSION=ifexists)
# sw installation version number
require versionnumbers ifexists
# autoSR location
epicsEnvSet SRBASE /ioc/data