Skip to content
Snippets Groups Projects
Commit f2a1b7ed authored by Thomas Fay's avatar Thomas Fay
Browse files

Adds configuration scripting of PV aliases.

parent 858730a8
No related branches found
No related tags found
1 merge request!15Feature aliasing
alias($(O), $(A))
......@@ -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
......@@ -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")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment