From 3c2f6517084d0019ed5f294a9aa92b5909ea3c99 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 29 Aug 2013 16:12:29 -0700 Subject: [PATCH] Fill out README and fix type in DEMO --- DEMO | 2 +- README | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 106 insertions(+), 6 deletions(-) diff --git a/DEMO b/DEMO index 4ea49cd..8f511d0 100644 --- a/DEMO +++ b/DEMO @@ -105,7 +105,7 @@ testCounter 409 8. Get a NTMatrix and print its transponse matrix ------------------------------------------------- -> eget -a columns=3 -a rows=5 -t -s testNTMatrix +> eget -a columns=3 -a rows=5 -T -s testNTMatrix 0.677924 1.66402 2.42248 3.8881 4.22758 0.874961 1.20251 2.56682 3.21442 4.92651 0.47145 1.65475 2.4864 3.79319 4.80394 diff --git a/README b/README index 6ef1a5b..6e7bdaf 100644 --- a/README +++ b/README @@ -1,7 +1,107 @@ -Define +README OF PVACCESSCPP -EPICS_BASE -PVDATA -PVCOMMON +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 +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]. + +BUILD +===== +This section describes how to compile, link and install pvAccessCPP. + +[To be added] + +USAGE +===== +This section describes how to set up the runtime environment of pvAccessCPP. + +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: + + 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. + 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. + 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. + +2. Add the pvAccessCPP binaries to your PATH. + + 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 v4.3.0 +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] http://sourceforge.net/p/epics-pvdata/pvAccessCPP/ci/default/tree/ +[3] http://sourceforge.net/p/epics-pvdata/pvAccessJava/ci/default/tree/ +[4] http://sourceforge.net/p/epics-pvdata/pvDataCPP/ci/default/tree/ +[5] http://sourceforge.net/p/epics-pvdata/pvCommonCPP/ci/default/tree/ -variables that points to EPICS base, pvDataCPP, and pvCommonCPP installation directory (includes and libraries) in configure/RELEASE.local