120 lines
4.6 KiB
Plaintext
120 lines
4.6 KiB
Plaintext
# This is the common part of all vxWorks startup scripts
|
|
# It is included by all generated scripts
|
|
|
|
# The following variable must be set before:
|
|
# EPICS the epics release (e.g "R7.0.7")
|
|
|
|
EPICS_MODULES = "/ioc/modules"
|
|
|
|
# Find a better way later to know current require version
|
|
REQUIRE_VERSION="3.4.0"
|
|
|
|
# autoSR location
|
|
putenv "SRBASE=/ioc/data"
|
|
|
|
# Create some path variables
|
|
sprintf STRINGBUFFER, "EPICS_DRIVER_PATH=.:bin/%s_%s:bin:snl:../bin:%s", EPICS, EPICS_HOST_ARCH, EPICS_MODULES
|
|
putenv STRINGBUFFER
|
|
|
|
STREAM_PROTOCOL_DIR=malloc(80)
|
|
sprintf STREAM_PROTOCOL_DIR, "%s/cfg", HOME
|
|
|
|
# Load PVA only with more than 32 MB RAM
|
|
PVA = (PVA||(sysPhysMemTop()&0xfc000000)) && !getenv("NOPVA")
|
|
|
|
# Time server (must be set before loading EPICS core)
|
|
putenv "EPICS_TS_NTP_INET=129.129.190.1"
|
|
putenv "EPICS_TS_FORCE_NTPTIME=YES"
|
|
|
|
# Load EPICS system core (different names for different EPICS versions)
|
|
EPICS_APP = PVA ? "softIocPVA.munch" : "softIoc.munch"
|
|
sprintf STRINGBUFFER, "/epics/base-%s/bin/%s/%s", EPICS+1, EPICS_HOST_ARCH, EPICS_APP
|
|
printf "loading %s\n",STRINGBUFFER
|
|
sprintf STRINGBUFFER,"%s",ld(0,0,STRINGBUFFER)?"":"shellScriptAbort"
|
|
execute STRINGBUFFER
|
|
|
|
# Setup Time (must be set after loading EPICS core)
|
|
# 2025:
|
|
putenv "TIMEZONE=MET::-60:033102:102703"
|
|
|
|
# Allow backward compatible non-monotonic breaktables
|
|
dbBptNotMonotonic=1
|
|
|
|
# Quiet warnings about unresolved macros in comments
|
|
dbQuietMacroWarnings=1
|
|
|
|
# Some diagnostics on soft reboots, in case it hangs
|
|
atExitDebug = 1
|
|
|
|
# Start Logging
|
|
putenv getenv("EPICS_IOC_LOG_INET") ? "" : "EPICS_IOC_LOG_INET=gfa-syslog-03"
|
|
putenv getenv("EPICS_IOC_LOG_PORT") ? "" : "EPICS_IOC_LOG_PORT=1514"
|
|
sprintf STRINGBUFFER, "%s ", IOC
|
|
iocLogPrefix STRINGBUFFER
|
|
iocLogInit
|
|
errlogPrintf "Starting EPICS %s\n", EPICS
|
|
|
|
sprintf STRINGBUFFER, "dbLoadDatabase \"/epics/base-%s/dbd/softIoc%s.dbd\"", EPICS+1, PVA ? "PVA" : ""
|
|
execute STRINGBUFFER
|
|
|
|
sprintf STRINGBUFFER, "softIoc%s_registerRecordDeviceDriver pdbbase", PVA ? "PVA" : ""
|
|
execute STRINGBUFFER
|
|
|
|
# load "require"
|
|
sprintf STRINGBUFFER, "require_VERSION=%s", getenv("require_VERSION") ? getenv("require_VERSION") : REQUIRE_VERSION
|
|
putenv STRINGBUFFER
|
|
sprintf STRINGBUFFER, "require_DIR=%s/require/%s/%s/", EPICS_MODULES, getenv("require_VERSION"), EPICS
|
|
putenv STRINGBUFFER
|
|
sprintf STRINGBUFFER, "%s/lib/%s/requireLib.munch", getenv("require_DIR"), EPICS_HOST_ARCH
|
|
ld 0, 0, STRINGBUFFER
|
|
|
|
registerModule "require", getenv("require_VERSION"), getenv("require_DIR")
|
|
require_registerRecordDeviceDriver pdbbase
|
|
require "utilities", getenv("utilities_VERSION")
|
|
require "misc", getenv("misc_VERSION")
|
|
|
|
# IOC monitoring
|
|
require "iocStats", getenv("iocStats_VERSION")
|
|
|
|
# Database Upload
|
|
require "iocinfo", getenv("iocinfo_VERSION")
|
|
|
|
# caPutLog
|
|
putenv "EPICS_CA_PUT_LOG_ADDR=gfa-syslog-03:1515"
|
|
require "caPutLog", getenv("caPutLog_VERSION") ? getenv("caPutLog_VERSION") : "ifexists"
|
|
|
|
# Run Channel Access only on 1st network port
|
|
putenv bootInfo("EPICS_CAS_INTF_ADDR_LIST=%e")
|
|
|
|
# Set up CA search lists for different networks
|
|
IP_ADDR=bootInfo("%e")
|
|
|
|
# Office (only official EPICS subnets, not SLS beamlines!)
|
|
ifEnvSet IP_ADDR, "~129.129.130.*", "EPICS_CA_ADDR_LIST", "129.129.131.255 129.129.137.255"
|
|
ifEnvSet IP_ADDR, "~129.129.131.*", "EPICS_CA_ADDR_LIST", "129.129.130.255 129.129.137.255"
|
|
ifEnvSet IP_ADDR, "~129.129.137.*", "EPICS_CA_ADDR_LIST", "129.129.130.255 129.129.131.255"
|
|
|
|
# SLS machine network
|
|
ifEnvSet IP_ADDR, "~172.22.*", "EPICS_CA_ADDR_LIST", "172.22.4.255 172.22.5.255 172.22.6.255 172.22.7.255 172.22.120.255 172.22.121.255"
|
|
ifEnvSet IP_ADDR, "~172.22.*", "EPICS_CA_AUTO_ADDR_LIST", "NO"
|
|
ifEnvSet IP_ADDR, "~172.22.*", "EPICS_CAS_BEACON_ADDR_LIST", "172.22.4.255 172.22.5.255 172.22.6.255 172.22.7.255 172.22.120.255 172.22.121.255"
|
|
ifEnvSet IP_ADDR, "~172.22.*", "EPICS_CAS_BEACON_AUTO_ADDR_LIST", "NO"
|
|
|
|
# Metro Lab
|
|
ifEnvSet IP_ADDR, "~129.129.128.*", "EPICS_CA_ADDR_LIST", "129.129.128.255"
|
|
ifEnvSet IP_ADDR, "~129.129.128.*", "EPICS_CA_AUTO_ADDR_LIST", "NO"
|
|
|
|
# HIPA
|
|
ifEnvSet IP_ADDR, "~172.19.*", "EPICS_CA_ADDR_LIST", "172.19.10.255 172.19.30.255 172.19.32.255"
|
|
ifEnvSet IP_ADDR, "~172.19.*", "EPICS_CA_AUTO_ADDR_LIST", "NO"
|
|
ifEnvSet IP_ADDR, "~172.19.*", "EPICS_CAS_BEACON_ADDR_LIST", "172.19.10.255 172.19.30.255 172.19.32.255"
|
|
ifEnvSet IP_ADDR, "~172.19.*", "EPICS_CAS_BEACON_AUTO_ADDR_LIST", "NO"
|
|
|
|
# PROSCAN
|
|
ifEnvSet IP_ADDR, "~172.25.*", "EPICS_CA_ADDR_LIST", "172.25.60.255 172.25.11.255"
|
|
ifEnvSet IP_ADDR, "~172.25.*", "EPICS_CA_AUTO_ADDR_LIST", "NO"
|
|
ifEnvSet IP_ADDR, "~172.25.*", "EPICS_CAS_BEACON_ADDR_LIST", "172.25.60.255 172.25.11.255"
|
|
ifEnvSet IP_ADDR, "~172.25.*", "EPICS_CAS_BEACON_AUTO_ADDR_LIST", "NO"
|
|
|
|
# End of startup.script_common
|