Update README.md

This commit is contained in:
Matej Sekoranja
2015-10-15 21:53:20 +02:00
parent d4498f5950
commit 837479bb30

142
README.md
View File

@@ -1,107 +1,85 @@
README OF pvAccessCPP
pvAccessCPP
==========
pvAccess is a computer communications protocol for control systems, and is a central
component of the EPICS software toolkit. PvAccessCPP is the name of the software
component of the EPICS software toolkit. pvAccessCPP is the name of the software
module which contains the C++ implementation of pvAccess.
---------------------------------------------------------------------------
Auth: Matej Sekoranja, matej.sekoranja@cosylab.com, Oct-2011.
Mod: Greg White, greg@slac.stanford.edu, 28-Aug-2013
Added USAGE and header and stuff.
===========================================================================
pvAccessCPP is sourced in the "EPICS Version 4 project in Sourceforge [1].
pvAccessJava, the Java implementation of PVAccess [3].
Further Info
------------
BUILD
=====
This section describes how to compile, link and install pvAccessCPP.
Consult the documents in the documentation directory, in particular
[To be added]
* pvAccessCPP.html
* RELEASE_NOTES.md
USAGE
=====
This section describes how to set up the runtime environment of pvAccessCPP.
Also see the [EPICS Version 4 website](http://epics-pvdata.sourceforge.net)
For simplicity, the following describes the setup of a pvAccess endpoint,
regardless of whether the endpoint is server or client side. In practice, parts
of each step may be omitted depending on whether the endpoint is a server or
client.
1. Define the following environment variables:
Prerequisites
-------------
EPICS_BASE - MUST be assigned to the top level directory of a local installation of
EPICS base, of version 3.14; per the RELEASE.local file
used to build this pvAccessCPP.
PVCOMMON - MUST be assigned to the top level directory of a local installation of
pvCommonCPP [5], per the RELEASE.local file
used to build this pvAccessCPP.
PVDATA - MUST be assigned to the top level directory of a local installation of
pvDataCPP [4], per the RELEASE.local file
used to build this pvAccessCPP.
The pvAccessCPP requires recent versions of the following software:
2. Add the pvAccessCPP binaries to your PATH.
1. EPICS Base (v3.14.12.3 or later)
2. EPICS4 pvCommonCPP (4.1.1 or later)
3. EPICS4 pvDataCPP (5.0.2 or later)
Building
--------
Building uses the make utility and the EPICS base build system.
The build system needs the location of the prerequisites, e.g. by placing the
lines of the form
PVCOMMON = /home/install/epicsV4/pvCommonCPP
PVDATA = /home/install/epicsV4/pvDataCPP
EPICS_BASE = /home/install/epics/base
pointing to the locations in a file called RELEASE.local
in the configure directory or the parent directory of pvAccessCPP.
With this in place, to build type make
make
To perform a clean build type
make clean uninstall
To run the unit tests type
make runtests
For more information on the EPICS build system consult the
[Application Development guide](http://www.aps.anl.gov/epics/base/R3-14/12-docs/AppDevGuide.pdf).
Regarding EPICS_HOST_ARCH: in general pvAccessCPP endpoints will attempt to
establish their runtime architecture at runtime using
$EPICS_BASE/startup/EpicsHostArch, but bear in mind that script is not
completely reliable. It's a good idea to set EPICS_HOST_ARCH explicitly in
your setup.
Example Usage
-------------
For example, the following source bash script can be used to set up both client
and server processes for running and usign the pvAccess test server
(testServer). testServer can be found in the root directory of pvAccessCPP.
$ cat testServer_setup.bash
export EPICS_BASE=${HOME}/Development/epicsV3/base-3.14.12.2
export PVCOMMON=${HOME}/Development/epicsV4/4-3test/CPP-4-3-0/pvCommonCPP
export PVDATA=${HOME}/Development/epicsV4/4-3test/CPP-4-3-0/pvDataCPP
export EPICS_HOST_ARCH=darwin-x86
export PATH=${HOME}/Development/epicsv4/4-3test/CPP-4-3-0/pvAccessCPP/bin/${EPICS_HOST_ARCH}:${PATH}
TESTING
=======
This section describes how you can test and demo pvAccess.
A test server is shipped with pvAccessCPP. See the file pvAccessCPP/DEMO for
examples of usage. To run the server, write a setup script like that above, and
then use it prior to executing "runTestServer":
$ source testServer_setup.bash
$ ./runTestServer
Starting pvAccess C++ test server...
VERSION : pvAccess Server v3.0.1
PROVIDER_NAMES : local
BEACON_ADDR_LIST :
AUTO_BEACON_ADDR_LIST : 1
BEACON_PERIOD : 15
BROADCAST_PORT : 5076
SERVER_PORT : 5075
RCV_BUFFER_SIZE : 16384
IGNORE_ADDR_LIST:
STATE : INITIALIZED
$ ./runTestServer
Starting pvAccess C++ test server...
VERSION : pvAccess Server v4.1.1
PROVIDER_NAMES : local
BEACON_ADDR_LIST :
AUTO_BEACON_ADDR_LIST : 1
BEACON_PERIOD : 15
BROADCAST_PORT : 5076
SERVER_PORT : 5075
RCV_BUFFER_SIZE : 16384
IGNORE_ADDR_LIST:
STATE : INITIALIZED
Then, another window, you can go through the demos in pvAccessCPP/DEMO. For
example:
$ pvget testValue
testValue 0
REFERENCES
==========
[1] http://epics-pvdata.sourceforge.net
[2] https://github.com/epics-base/pvAccessCPP
[3] https://github.com/epics-base/pvAccessJava
[4] https://github.com/epics-base/pvDataCPP
[5] https://github.com/epics-base/pvCommonCPP
$ ./bin/$EPICS_HOST_ARCH/pvget testValue
testValue 0