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
|
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
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user