Update README.md
This commit is contained in:
142
README.md
142
README.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user