准备:
Centos7ministall的系统:
root权限下:
yum install -y epel-release
yum install -y git wget gcc gcc-c++ autoconf libtool libX11-devel libXext-devel libnet-devel libpcap-devel libusbx-devel libusb-devel intltool glibmm24-devel procServ re2c
yum install -y ninja-build meson glib2-devel libxml2-devel gtk3-devel gstreamer1 gstreamer1-devel gstreamer1-plugins-base-devel libnotify-devel gtk-doc gobject-introspection-devel
##需要的包参考: https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/linux-packages.html
adduser ioc
mkdir /half #以合肥先进光源为例
chown -R ioc:ioc /half
cd /half
su ioc
mkdir epics
cd epics
############下载和编译epics base#################################
git clone -b 3.15 https://git.launchpad.net/epics-base
cd epics-base
make
来自 <https://epics-controls.org/resources-and-support/base/series-3-15/>
或者:
git clone --recursive -b 7.0 https://git.launchpad.net/epics-base base-7.0
cd base-7.0
make
来自 <https://epics-controls.org/resources-and-support/base/epics-7/>
选择3.15或7编译,或者分别编译,再把某一个ln -s 到base
After compiling you should put the path into $HOME/.profile or into $HOME/.bashrc by adding the following to either one of those files:
export EPICS_BASE=${HOME}/EPICS/epics-base
export EPICS_HOST_ARCH=$(${EPICS_BASE}/startup/EpicsHostArch)
export PATH=${EPICS_BASE}/bin/${EPICS_HOST_ARCH}:${PATH}
EpicsHostArch is a program provided by EPICS that returns the architecture of your system. Thus the code above should be fine for every architecture.
来自 <https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html>
之后按上面配好环境变量
############上面是下载和编译base##########################
没有意外的话,上面应该把base编译通过了。
############下载和编译synApps(当前最新版是6.1 --2020.7.15)#############
# 1. download the installer script
wget https://raw.githubusercontent.com/EPICS-synApps/support/master/assemble_synApps.sh
# 2. edit assemble_synApps.sh for your version of EPICS base and local directory paths
# 3. (optional) Specify the (new) directory name where synApps will be installed.
# This is the default:
# export SYNAPPS_DIR=synApps
# This directory will be created when assemble_synApps.sh is run.
# 4. download & install the synApps source files:
bash ./assemble_synApps.sh #一次可能不能把所有的包抓下来,多运行几次
之后进入support目录:
make release
make
来自 <https://github.com/EPICS-synApps/support>
之后下载aravisGigE:
wget https://github.com/areaDetector/aravisGigE/archive/R3-0.tar.gz
解压到areadetector 目录下
之后进入aravisGigE:
./install.sh
make
至此aravisGigE应该编译通过了,下面就可以添加摄像头了:
Adding a new camera
- Run bin/linux-x86/arv-tool-0.2 -n "<device_name>" genicam > "<camera_model>.xml" to download the genicam xml data from the selected device cameras
- E.g. bin/linux-x86/arv-tool-0.2 -n "Allied Vision Technologies-50-0503318719" genicam > AVT_Manta_G125B.xml
- Make sure the generated file doesn't have a space at the start of it
- Run aravisGigEApp/src/makeDbAndEdl.py <genicam_xml> <camera_name>
- E.g. aravisGigEApp/src/makeDbAndEdl.py AVT_Manta_G125B.xml AVT_Manta
- This should then create:
- aravisGigEApp/Db/<camera_name>.template
- aravisGigEApp/opi/edl/<camera_name>.edl
- aravisGigEApp/opi/edl/<camera_name>-features.edl
- Once you have decided on the most useful features, copy them from <camera_name>-features.edl and paste them into <camera_name>.edl in order to create a useful summary screen
- If you are using medm, or want to generate CSS-Boy or caQtDM screens from medm screens then run aravisGigEApp/src/makeAdl.py <genicam_xml> <camera_name>. This will generate <camera_name>-features_1.adl through <camera_name>-features_N.adl, where N depends on the number of features and the maximum screen width and height set in makeAdl.py.
- Once you have decided on the most useful features, copy them from <camera_name>-features_*.adl into a new file called <camera_name>-features.adl in order to create a useful summary screen.
来自 <https://github.com/areaDetector/aravisGigE>
cd /half/epics/synApps/support/areaDetector-master/aravisGigE/bin/linux-x86_64
没发现设备,需要关闭防火墙:
systemctl disable firewalld
systemctl stop firewalld 之后:
之后:
[ioc@localhost linux-x86_64]$ pwd
/half/epics/synApps/support/areaDetector-master/aravisGigE/bin/linux-x86_64
[ioc@localhost linux-x86_64]$ ../../aravisGigEApp/src/makeDbAndEdl.py HIK-MV-CA004-10GM.xml HIK720
More than 16 enum entries for PixelFormat mbbi record, discarding additional options.
If needed, edit the Enumeration tag for PixelFormat to select the 16 you want.
More than 16 enum entries for TestPattern mbbi record, discarding additional options.
If needed, edit the Enumeration tag for TestPattern to select the 16 you want.
Don't know what to do with Register
More than 16 enum entries for GevSupportedOptionSelector mbbi record, discarding additional options.
If needed, edit the Enumeration tag for GevSupportedOptionSelector to select the 16 you want.
More than 16 enum entries for ISPawbDebugSelector mbbi record, discarding additional options.
If needed, edit the Enumeration tag for ISPawbDebugSelector to select the 16 you want.
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
[ioc@localhost linux-x86_64]$ ../../aravisGigEApp/src/makeAdl.py HIK-MV-CA004-10GM.xml HIK720
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
Don't know what to do with Register
[ioc@localhost linux-x86_64]$
会在/half/epics/synApps/support/areaDetector-master/aravisGigE/aravisGigEApp/Db生成template文件,copy至/half/epics/synApps/support/areaDetector-master/aravisGigE/db
之后修改:/half/epics/synApps/support/areaDetector-master/aravisGigE/iocs/aravisGigEIOC/iocBoot/iocAravisGigE/st.cmd:
aravisCameraConfig("$(PORT)", "Hikvision-00D22036189")
dbLoadRecords("$(ARAVISGIGE)/db/HIK720.template","P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1")
load相应摄像头的template和摄像头代号,之后./start_epics就可以运行起IOC了。
以上过程在Centos7下都通过了。尝试过在centos8下做,但是在tirpc那卡住了,有空的可以在8上试试。