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 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. 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]. Further Info
pvAccessJava, the Java implementation of PVAccess [3]. ------------
BUILD Consult the documents in the documentation directory, in particular
=====
This section describes how to compile, link and install pvAccessCPP.
[To be added] * pvAccessCPP.html
* RELEASE_NOTES.md
USAGE Also see the [EPICS Version 4 website](http://epics-pvdata.sourceforge.net)
=====
This section describes how to set up the runtime environment of pvAccessCPP.
For simplicity, the following describes the setup of a pvAccess endpoint, Prerequisites
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:
EPICS_BASE - MUST be assigned to the top level directory of a local installation of The pvAccessCPP requires recent versions of the following software:
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.
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 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. This section describes how you can test and demo pvAccess.
A test server is shipped with pvAccessCPP. See the file pvAccessCPP/DEMO for 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 examples of usage. To run the server, write a setup script like that above, and
then use it prior to executing "runTestServer": then use it prior to executing "runTestServer":
$ source testServer_setup.bash $ ./runTestServer
$ ./runTestServer Starting pvAccess C++ test server...
Starting pvAccess C++ test server... VERSION : pvAccess Server v4.1.1
VERSION : pvAccess Server v3.0.1 PROVIDER_NAMES : local
PROVIDER_NAMES : local BEACON_ADDR_LIST :
BEACON_ADDR_LIST : AUTO_BEACON_ADDR_LIST : 1
AUTO_BEACON_ADDR_LIST : 1 BEACON_PERIOD : 15
BEACON_PERIOD : 15 BROADCAST_PORT : 5076
BROADCAST_PORT : 5076 SERVER_PORT : 5075
SERVER_PORT : 5075 RCV_BUFFER_SIZE : 16384
RCV_BUFFER_SIZE : 16384 IGNORE_ADDR_LIST:
IGNORE_ADDR_LIST: STATE : INITIALIZED
STATE : INITIALIZED
Then, another window, you can go through the demos in pvAccessCPP/DEMO. For Then, another window, you can go through the demos in pvAccessCPP/DEMO. For
example: example:
$ pvget testValue $ ./bin/$EPICS_HOST_ARCH/pvget testValue
testValue 0 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