Installation Guide

1. Install Software Requirements
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install perl
sudo apt-get install unzip
sudo apt-get install tar
apt-cache search readline (to check for latest versions of GNU readline)
sudo apt-get install libreadline7
sudo apt-get install libreadline-dev 

maybe also this is needed: (sudo apt-get install lib64readline7; sudo apt-get install lib64readline-dev)

2. Download EPICS base
3. In folder base/documentation you can find the README files for further instruction
cd base-3.XX.X/startup
./EpicsHostArch
export EPICS_HOST_ARCH=linux-x86_64

this sets an environment variable EPICS_HOST_ARCH

cd ..
make clean uninstall
make
static const size_t unsuccessfulNewSize = numeric_limits < size_t > :: max () to:
static size_t unsuccessfulNewSize = numeric_limits < size_t > :: max ()
4. In folder base/documentation you can find the README files for further instruction
mkdir exampleApp
cd exampleApp
export EPICS_HOST_ARCH=linux-x86_64
<base>/bin/<arch>/makeBaseApp.pl -t example myexample
<base>/bin/<arch>/makeBaseApp.pl -i -t example myexample
#seq sncExample, "user=<user>"
4*. Installing sequencer
sudo apt install re2c
5. Installing libreadline6
6. Add EPICS base to your bashrc
~$ geany .bashrc
# EPICS
export EPICS_BASE=/home/sahra/EPICS/epics-base
export EPICS_HOST_ARCH=$(${EPICS_BASE}/startup/EpicsHostArch)
export PATH=${EPICS_BASE}/bin/${EPICS_HOST_ARCH}:${PATH}
7. Create a demo/test ioc to test ca and pva

stolen from here: https://epics-controls.org/resources-and-support/documents/getting-started/

mkdir -p $HOME/EPICS/TEST/testIoc
cd $HOME/EPICS/TEST/testIoc
makeBaseApp.pl -t example testIoc
makeBaseApp.pl -i -t example testIoc
make
cd iocBoot/ioctestIoc
chmod u+x st.cmd
ioctestIoc> ./st.cmd
#!../../bin/darwin-x86/testIoc
< envPaths 
epicsEnvSet("IOC","ioctestIoc") 
epicsEnvSet("TOP","/Users/maradona/EPICS/TEST/testIoc") 
epicsEnvSet("EPICS_BASE","/Users/maradona/EPICS/epics-base") 
cd "/Users/maradona/EPICS/TEST/testIoc" 
## Register all support components 
dbLoadDatabase "dbd/testIoc.dbd" 
testIoc_registerRecordDeviceDriver pdbbase 
## Load record instances dbLoadTemplate "db/user.substitutions" 
dbLoadRecords "db/testIocVersion.db", "user=junkes" 
dbLoadRecords "db/dbSubExample.db", "user=junkes" 
#var mySubDebug 1 
#traceIocInit 
cd "/Users/maradona/EPICS/TEST/testIoc/iocBoot/ioctestIoc" 
iocInit 
Starting iocInit 
############################################################################ 
## EPICS R7.0.1.2-DEV 
## EPICS Base built Mar 8 2018 
############################################################################ 
cas warning: Configured TCP port was unavailable. 
cas warning: Using dynamically assigned TCP port 52907, 
cas warning: but now two or more servers share the same UDP port. 
cas warning: Depending on your IP kernel this server may not be 
cas warning: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST) 
iocRun: All initialization complete 
2018-03-09T13:07:02.475 Using dynamically assigned TCP port 52908. 
## Start any sequence programs 
#seq sncExample, "user=maradona" epics> dbl
maradona:circle:tick
maradona:compressExample
maradona:line:b
maradona:aiExample
maradona:aiExample1
maradona:ai1
maradona:aiExample2
 ... etc. ...
epics>

dbl shows all the PVs

8. Include Stream

#add asyn and streamDevice to this IOC production libs

exampleIOC_LIBS += stream
exampleIOC_LIBS += asyn
#
include "stream.dbd"
include "asyn.dbd"
registrar(drvAsynIPPortRegisterCommands)
registrar(drvAsynSerialPortRegisterCommands)
registrar(vxi11RegisterCommands)
# Build variables that are NOT used in paths should be set in
# the CONFIG_SITE file.
# Variables and paths to dependent modules:
SUPPORT = ${HOME}/EPICS/support
ASYN=$(SUPPORT)/asyn
STREAM=$(SUPPORT)/stream
# If using the sequencer, point SNCSEQ at its top directory:
#SNCSEQ = $(MODULES)/seq-ver

EPICS in PANDA:

EPICS slildes/training: