From f2a1b7ed821133975234e84473a9f5cc9f24a390 Mon Sep 17 00:00:00 2001 From: Thomas Fay <thomas.fay@esss.se> Date: Wed, 31 Jul 2019 20:39:14 +0200 Subject: [PATCH] Adds configuration scripting of PV aliases. --- startup/alias.template | 1 + startup/deployServiceIOC.sh | 27 ++++++++++++++++++--------- startup/llrf_template.iocsh | 2 +- 3 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 startup/alias.template diff --git a/startup/alias.template b/startup/alias.template new file mode 100644 index 0000000..c3a40f1 --- /dev/null +++ b/startup/alias.template @@ -0,0 +1 @@ +alias($(O), $(A)) diff --git a/startup/deployServiceIOC.sh b/startup/deployServiceIOC.sh index a0651f6..9f3c359 100755 --- a/startup/deployServiceIOC.sh +++ b/startup/deployServiceIOC.sh @@ -6,9 +6,12 @@ fi if [[ $# -gt 0 ]] ; then EPICS_SRC=$1 + EPICS_BASE=$2 + E3_REQUIRE_VERSION=$3 + LLRF_IOC_NAME=$4 else echo "Usage: sudo deployServiceIOC.sh <e3 source directory> <epics base directory> <epics require version> <LLRF_IOC_NAME>" - echo "sudo deployServiceIOC.sh $EPICS_SRC $EPICS_BASE $E3_REQUIRE_VERSION" + echo "sudo deployServiceIOC.sh $EPICS_SRC $EPICS_BASE $E3_REQUIRE_VERSION $LLRF_IOC_NAME" exit fi @@ -18,10 +21,10 @@ serviceNameGit=$EPICS_SRC/e3-sis8300llrf/startup/ioc@llrf.service #Prepare service and enable #Get EPICS base version and require version -ver_base=$(echo $2 | cut -c13-18) +ver_base=$(echo $EPICS_BASE | cut -c13-18) eval "sed -e 's/icslab-llrf/$hostName/'\ -e 's/<epics_base>/$ver_base/'\ - -e 's/<req_version>/$3/'\ + -e 's/<req_version>/$E3_REQUIRE_VERSION/'\ < $serviceNameGit" > $serviceName systemctl enable ioc@llrf.service @@ -38,9 +41,10 @@ slots_fpga=$(ls /dev/sis8300-* | cut -f2 -d "-") if [ ${#slots_fpga} -lt 1 ] ; then echo "Could not find SIS8300 digitiser board." echo "Board slot must be manually configured in $siteApp/llrf.cmd" - snippet="epicsEnvSet(\"LLRF_PREFIX\" \"$4\" ) \\\n \ + snippet="epicsEnvSet(\"LLRF_PREFIX\" \"$LLRF_IOC_NAME\" ) \\\n \ epicsEnvSet(\"LLRF_SLOT\" \"<slot>\" ) \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/llrf.iocsh \\\n " +iocshLoad $\(E3_CMD_TOP\)\/llrf.iocsh \\\n \ +iocshLoad $\(E3_CMD_TOP\)\/aliasing.iocsh \\\n" eval "sed -e $'s/<snippet>/$snippet/g' < $EPICS_SRC/e3-sis8300llrf/startup/llrf_template.cmd > $siteApp/llrf.cmd" else if [ ${#slots_fpga} -eq 1 ]; then @@ -53,13 +57,15 @@ else for slot_fpga in $(ls /dev/sis8300-* | cut -f2 -d "-" | sort -n) do snippet="$snippet \\\n\ -epicsEnvSet(\"LLRF_PREFIX\" \"$4$i\" ) \\\n \ +epicsEnvSet(\"LLRF_PREFIX\" \"$LLRF_IOC_NAME$i\" ) \\\n \ epicsEnvSet(\"LLRF_SLOT\" \"$slot_fpga\" ) \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/llrf.iocsh \\\n " +iocshLoad $\(E3_CMD_TOP\)\/llrf.iocsh \\\n \ +iocshLoad $\(E3_CMD_TOP\)\/aliasing$i.iocsh \\\n" i=$(($i+1)) done #Populate digitiser slot and IOC Name in startup script. - eval "sed -e $'s/<snippet>/$snippet/g' < $EPICS_SRC/e3-sis8300llrf/startup/llrf_template.cmd > $siteApp/llrf.cmd" + eval "sed -e $'s/<snippet>/$snippet/g'\ + < $EPICS_SRC/e3-sis8300llrf/startup/llrf_template.cmd > $siteApp/llrf.cmd" fi @@ -72,7 +78,7 @@ if [ ${#pcie_enumeration} != 7 ] ; then echo "Therefore no timing configuration created." echo "# no timing configuration as no EVR detected on PCIe bus." > $siteApp/timing.iocsh else - eval "sed -e 's/<B:D.F>/$pcie_enumeration/' -e 's/<LLRF_IOC_NAME>/$4/' < $EPICS_SRC/e3-sis8300llrf/startup/timing_template.iocsh" > "/iocs/sis8300llrf/timing.iocsh" + eval "sed -e 's/<B:D.F>/$pcie_enumeration/' -e 's/<LLRF_IOC_NAME>/$LLRF_IOC_NAME/' < $EPICS_SRC/e3-sis8300llrf/startup/timing_template.iocsh" > "/iocs/sis8300llrf/timing.iocsh" cp $EPICS_SRC/e3-sis8300llrf/startup/tr-sequencer.sh $siteApp/tr-sequencer.sh fi @@ -80,3 +86,6 @@ if [ ! -L /etc/systemd/system/multi-user.target.wants/ioc@llrf.service ] ; then echo "ioc@llrf.service is not enabled." fi systemctl daemon-reload + +# Alias template +cp alias.template $siteApp/alias.template diff --git a/startup/llrf_template.iocsh b/startup/llrf_template.iocsh index 77c580a..a858889 100644 --- a/startup/llrf_template.iocsh +++ b/startup/llrf_template.iocsh @@ -23,7 +23,7 @@ dbLoadRecords("sis8300Register.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_POR dbLoadRecords("sis8300noAO.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), AI_NELM=$(AI_SMNM_MAX)") dbLoadRecords("sis8300llrf-Register.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), REG_SCAN=2") - +iocshLoad "aliasing<iNum>.iocsh" epicsThreadSleep(1) # Configure the RTM for LLRF afterInit("dbpf $(LLRF_PREFIX):RTM 2 > /dev/null") -- GitLab