update documentation
This commit is contained in:
78
LICENSE.txt
78
LICENSE.txt
@ -1,78 +0,0 @@
|
|||||||
|
|
||||||
Copyright (c) 2008 Martin R. Kraimer
|
|
||||||
Copyright (c) 2006 The University of Chicago, as Operator of Argonne
|
|
||||||
National Laboratory.
|
|
||||||
Copyright (c) 2006 Deutsches Elektronen-Synchrotron,
|
|
||||||
Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
|
|
||||||
Copyright (c) 2007 Control System Laboratory,
|
|
||||||
(COSYLAB) Ljubljana Slovenia
|
|
||||||
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
|
||||||
obtaining a copy of this software and associated documentation
|
|
||||||
files (the "Software"), to deal in the Software without
|
|
||||||
restriction, including without limitation the rights to use,
|
|
||||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the
|
|
||||||
Software is furnished to do so, subject to the following
|
|
||||||
conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
|
||||||
included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
||||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
||||||
OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
________________________________________________________________________
|
|
||||||
|
|
||||||
This software is in part copyrighted by the University of Chicago (UofC)
|
|
||||||
|
|
||||||
In no event shall UofC be liable to any party for direct, indirect,
|
|
||||||
special, incidental, or consequential damages arising out of the use of
|
|
||||||
this software, its documentation, or any derivatives thereof, even if
|
|
||||||
UofC has been advised of the possibility of such damage.
|
|
||||||
|
|
||||||
UofC specifically disclaims any warranties, including, but not limited
|
|
||||||
to, the implied warranties of merchantability, fitness for a particular
|
|
||||||
purpose, and non-infringement. This software is provided on an "as is"
|
|
||||||
basis, and UofC has no obligation to provide maintenance, support,
|
|
||||||
updates, enhancements, or modifications.
|
|
||||||
|
|
||||||
________________________________________________________________________
|
|
||||||
|
|
||||||
This software is in part copyrighted by the BERLINER SPEICHERRING
|
|
||||||
GESELLSCHAFT FUER SYNCHROTRONSTRAHLUNG M.B.H. (BESSY), BERLIN, GERMANY.
|
|
||||||
|
|
||||||
In no event shall BESSY be liable to any party for direct, indirect,
|
|
||||||
special, incidental, or consequential damages arising out of the use of
|
|
||||||
this software, its documentation, or any derivatives thereof, even if
|
|
||||||
BESSY has been advised of the possibility of such damage.
|
|
||||||
|
|
||||||
BESSY specifically disclaims any warranties, including, but not limited
|
|
||||||
to, the implied warranties of merchantability, fitness for a particular
|
|
||||||
purpose, and non-infringement. This software is provided on an "as is"
|
|
||||||
basis, and BESSY has no obligation to provide maintenance, support,
|
|
||||||
updates, enhancements, or modifications.
|
|
||||||
|
|
||||||
________________________________________________________________________
|
|
||||||
|
|
||||||
This software is in part copyrighted by the Deutsches Elektronen-Synchroton,
|
|
||||||
Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
|
|
||||||
|
|
||||||
In no event shall DESY be liable to any party for direct, indirect,
|
|
||||||
special, incidental, or consequential damages arising out of the use of
|
|
||||||
this software, its documentation, or any derivatives thereof, even if
|
|
||||||
DESY has been advised of the possibility of such damage.
|
|
||||||
|
|
||||||
DESY specifically disclaims any warranties, including, but not limited
|
|
||||||
to, the implied warranties of merchantability, fitness for a particular
|
|
||||||
purpose, and non-infringement. This software is provided on an "as is"
|
|
||||||
basis, and DESY has no obligation to provide maintenance, support,
|
|
||||||
updates, enhancements, or modifications.
|
|
||||||
________________________________________________________________________
|
|
@ -31,7 +31,7 @@ For example:
|
|||||||
Status
|
Status
|
||||||
------
|
------
|
||||||
|
|
||||||
* The API is for release 4.5.0-pre1
|
* The API is for EPICS Version 4 release 4.5.0
|
||||||
* Everything defined in pvaClient.h is ready but see below for remaining work.
|
* Everything defined in pvaClient.h is ready but see below for remaining work.
|
||||||
* Everything defined in pvaClientMultiChannel.h is ready but see below for remaining work.
|
* Everything defined in pvaClientMultiChannel.h is ready but see below for remaining work.
|
||||||
|
|
||||||
@ -47,5 +47,4 @@ pvaClientMultiChannel
|
|||||||
For release 4.5 support is available for multiDouble and NTMultiChannel.
|
For release 4.5 support is available for multiDouble and NTMultiChannel.
|
||||||
In the future additional support should be provided that at least includes NTScalarMultiChannel.
|
In the future additional support should be provided that at least includes NTScalarMultiChannel.
|
||||||
|
|
||||||
Testing with some channels not connected have not been done.
|
Testing with some channels not connected has not been done.
|
||||||
At least some testing with missing channels should be done before final release 4.5
|
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
<h1>EPICS pvaClientCPP</h1>
|
<h1>EPICS pvaClientCPP</h1>
|
||||||
<!-- Maturity: Working Draft or Request for Comments, or Recommendation, and date. -->
|
<!-- Maturity: Working Draft or Request for Comments, or Recommendation, and date. -->
|
||||||
<h2 class="nocount">EPICS V4 Working Group, Working Draft,
|
<h2 class="nocount">EPICS V4 Working Group, Working Draft,
|
||||||
03-August-2015</h2>
|
02-October-2015</h2>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>This version:</dt>
|
<dt>This version:</dt>
|
||||||
<dd><a
|
<dd><a
|
||||||
@ -36,11 +36,11 @@
|
|||||||
</a> </dd>
|
</a> </dd>
|
||||||
<dt>Latest version:</dt>
|
<dt>Latest version:</dt>
|
||||||
<dd><a
|
<dd><a
|
||||||
href="pvaClientCPP_20150803.html">pvaClientCPP_20150803.html
|
href="pvaClientCPP_20151002.html">pvaClientCPP_20151002.html
|
||||||
</a> </dd>
|
</a> </dd>
|
||||||
<dt>Previous version:</dt>
|
<dt>Previous version:</dt>
|
||||||
<dd><a
|
<dd><a
|
||||||
href="pvaClientCPP_20150626.html">pvaClientCPP_20150626.html
|
href="pvaClientCPP_20150803.html">pvaClientCPP_20150803.html
|
||||||
</a> </dd>
|
</a> </dd>
|
||||||
<dt>Editors:</dt>
|
<dt>Editors:</dt>
|
||||||
<dd>Marty Kraimer, BNL</dd>
|
<dd>Marty Kraimer, BNL</dd>
|
||||||
@ -174,6 +174,10 @@ and exampleDoubleArray.</p>
|
|||||||
<p>This is an example of using pvaClientMultiChannel,
|
<p>This is an example of using pvaClientMultiChannel,
|
||||||
pvaClientMultiGetDouble, pvaClientMultiPutDouble, and pvaClientMultiMonitorDouble.
|
pvaClientMultiGetDouble, pvaClientMultiPutDouble, and pvaClientMultiMonitorDouble.
|
||||||
</p>
|
</p>
|
||||||
|
<h2>examplePvaClientNTMulti</h2>
|
||||||
|
<p>This is an example of using pvaClientMultiChannel,
|
||||||
|
pvaClientNTMultiGet, pvaClientNTMultiPut, pvaClientNTMultiMonitor, and pvaClientNTMultiData.
|
||||||
|
</p>
|
||||||
<h2>helloWorldRPC</h2>
|
<h2>helloWorldRPC</h2>
|
||||||
<p>This is an example of issuing a channelRPC request.
|
<p>This is an example of issuing a channelRPC request.
|
||||||
It does <b>not</b> use pva.</p>
|
It does <b>not</b> use pva.</p>
|
||||||
|
186
documentation/pvaClientCPP_20151002.html
Normal file
186
documentation/pvaClientCPP_20151002.html
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
||||||
|
<title>EPICS pva</title>
|
||||||
|
<link rel="stylesheet" type="text/css"
|
||||||
|
href="http://epics-pvdata.sourceforge.net/base.css" />
|
||||||
|
<link rel="stylesheet" type="text/css"
|
||||||
|
href="http://epics-pvdata.sourceforge.net/epicsv4.css" />
|
||||||
|
<style type="text/css">
|
||||||
|
/*<![CDATA[*/
|
||||||
|
.about { margin-left: 3em; margin-right: 3em; font-size: .83em}
|
||||||
|
table { margin-left: auto; margin-right: auto }
|
||||||
|
.diagram { text-align: center; margin: 2.5em 0 }
|
||||||
|
body { margin-right: 10% }
|
||||||
|
/*]]>*/</style>
|
||||||
|
|
||||||
|
<!-- Script that generates the Table of Contents -->
|
||||||
|
<script type="text/javascript" src="http://epics-pvdata.sourceforge.net/script/tocgen.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="head">
|
||||||
|
<h1>EPICS pvaClientCPP</h1>
|
||||||
|
<!-- Maturity: Working Draft or Request for Comments, or Recommendation, and date. -->
|
||||||
|
<h2 class="nocount">EPICS V4 Working Group, Working Draft,
|
||||||
|
02-October-2015</h2>
|
||||||
|
<dl>
|
||||||
|
<dt>This version:</dt>
|
||||||
|
<dd><a
|
||||||
|
href="pvaClientCPP.html">pvaClientCPP.html
|
||||||
|
</a> </dd>
|
||||||
|
<dt>Latest version:</dt>
|
||||||
|
<dd><a
|
||||||
|
href="pvaClientCPP_20151002.html">pvaClientCPP_20151002.html
|
||||||
|
</a> </dd>
|
||||||
|
<dt>Previous version:</dt>
|
||||||
|
<dd><a
|
||||||
|
href="pvaClientCPP_20150803.html">pvaClientCPP_20150803.html
|
||||||
|
</a> </dd>
|
||||||
|
<dt>Editors:</dt>
|
||||||
|
<dd>Marty Kraimer, BNL</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h2 class="nocount">Abstract</h2>
|
||||||
|
|
||||||
|
<p>pvaClient is a software library that provides to an EPICS client programmer, a friendly
|
||||||
|
client side programming interface to the data of an EPICS based control system. It is intended
|
||||||
|
for such uses as rapid development of ad hoc programs by controls engineers, or to provide
|
||||||
|
scientists a way to directly develop analytical applications.</p>
|
||||||
|
|
||||||
|
<p>Specifically, pvaClient provides a synchronous interface for pvAccess, which is the
|
||||||
|
software support for high speed controls network communications used in EPICS version 4.
|
||||||
|
pvAccess provides a callback based interface, which can be hard to use.
|
||||||
|
pvaClient provides an interface that does not require callbacks even for monitors.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
pvaClientChannel provides many "convenience" methods to directly get and put
|
||||||
|
scalar and scalarArray data types.
|
||||||
|
Additional methods provide access to the full features of pvAccess.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
pvaClientMultiChannel provides access to data from multiple channels.
|
||||||
|
It can be used directly by a client or via pvaClientMultiDouble or pvaClientNTMultiChannel.
|
||||||
|
pvaClientMultiDouble allows the client to get and put data to multiple channels.
|
||||||
|
But each channel must have a value field that is a numeric scalar.
|
||||||
|
pvaClientNTMultiChannel allows the client to get and put data to multiple channels.
|
||||||
|
Each channel must have a value field.
|
||||||
|
The data for the channels is presented via normative type NTMultiChannel.
|
||||||
|
</p>
|
||||||
|
<!-- last para of Abstract is boilerplate reference to EPICS -->
|
||||||
|
<p>For more information about EPICS generally, please refer to the home page of the <a
|
||||||
|
href="http://www.aps.anl.gov/epics/">Experimental Physics and Industrial
|
||||||
|
Control System</a>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2 class="nocount">Status of this Document and of the pvaClient Software</h2>
|
||||||
|
|
||||||
|
<p>pvaClientCPP is ready for use.</p>
|
||||||
|
|
||||||
|
</div> <!-- head -->
|
||||||
|
|
||||||
|
<div id="toc">
|
||||||
|
<h2 class="nocount">Table of Contents</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Place what you would like in the Table of Contents, inside the contents div -->
|
||||||
|
<div id="contents" class="contents">
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<h2>Introduction</h2>
|
||||||
|
|
||||||
|
<p>pvaClient is a synchronous API for accessing PVData via PVAccess. It provides
|
||||||
|
an interface to many of the features provided by pvData and pvAccess.</p>
|
||||||
|
|
||||||
|
<p>This document describes the layout of the source files in this project.</p>
|
||||||
|
<p>
|
||||||
|
A user overview is available via
|
||||||
|
<a
|
||||||
|
href="./pvaClientOverview.html">pvaClientOverview.html
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Doxygen documentation is available at
|
||||||
|
<a
|
||||||
|
href="./html/index.html">doxygenDoc
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<h2>Example Database</h2>
|
||||||
|
<p>The examples require that the database provided by project pvaClientTestCPP
|
||||||
|
is running.
|
||||||
|
For example:</p>
|
||||||
|
<pre>
|
||||||
|
mrk> pwd
|
||||||
|
/home/epicsv4/pvaClientTestCPP/database/iocBoot/exampleDatabase
|
||||||
|
mrk> ../../bin/linux-x86_64/exampleDatabase st.cmd
|
||||||
|
</pre>
|
||||||
|
<h2>Examples</h2>
|
||||||
|
<p>Examples are in directory <b>example/src</b>.
|
||||||
|
An example of how to run them is:</p>
|
||||||
|
<pre>
|
||||||
|
mrk> pwd
|
||||||
|
/home/epicsv4/pvaClientCPP/example
|
||||||
|
mrk> bin/linux-x86_64/examplePvaClientGet
|
||||||
|
</pre>
|
||||||
|
<p>The following is a brief description of each example.
|
||||||
|
In order to understand each example it
|
||||||
|
helps to also look at the source for the example.</p>
|
||||||
|
<h2>examplePvaClientGet</h2>
|
||||||
|
<p>This has a number of examples:</p>
|
||||||
|
<dl>
|
||||||
|
<dt>exampleDouble</dt>
|
||||||
|
<dd>
|
||||||
|
This shows two methods for getting data from a channel that has a numeric
|
||||||
|
scalar value field.
|
||||||
|
</dd>
|
||||||
|
<dt>exampleDoubleArray</dt>
|
||||||
|
<dd>
|
||||||
|
This shows two methods for getting data from a channel that has a
|
||||||
|
double array value field.
|
||||||
|
</dd>
|
||||||
|
<dt>exampleCADouble</dt>
|
||||||
|
<dd>
|
||||||
|
This is like exampleDouble except it uses provider <b>ca</b>.
|
||||||
|
</dd>
|
||||||
|
<dt>exampleCADoubleArray</dt>
|
||||||
|
<dd>
|
||||||
|
This is like exampleDoubleArray except it uses provider <b>ca</b>.
|
||||||
|
</dd>
|
||||||
|
<dt>examplePowerSupply</dt>
|
||||||
|
<dd>
|
||||||
|
This is an example of getting data from a channel that does not
|
||||||
|
have a value field.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<h2>examplePvaClientMonitor</h2>
|
||||||
|
<p>This is an example of creating a monitor on a channel.
|
||||||
|
It monitors a scalar double field.
|
||||||
|
It also issues puts to the same channel so that it can make the monitors occur.
|
||||||
|
</p>
|
||||||
|
<h2>examplePvaClientPut</h2>
|
||||||
|
<p>This example gets and puts to channels exampleDouble
|
||||||
|
and exampleDoubleArray.</p>
|
||||||
|
<h2>examplePvaClientProcess</h2>
|
||||||
|
<p>This example makes a process request to channel exampleDouble.</p>
|
||||||
|
<h2>helloWorldPutGet</h2>
|
||||||
|
<p>This is an example of issuing a channelPutGet.</p>
|
||||||
|
<h2>examplePvaClientMultiDouble</h2>
|
||||||
|
<p>This is an example of using pvaClientMultiChannel,
|
||||||
|
pvaClientMultiGetDouble, pvaClientMultiPutDouble, and pvaClientMultiMonitorDouble.
|
||||||
|
</p>
|
||||||
|
<h2>examplePvaClientNTMulti</h2>
|
||||||
|
<p>This is an example of using pvaClientMultiChannel,
|
||||||
|
pvaClientNTMultiGet, pvaClientNTMultiPut, pvaClientNTMultiMonitor, and pvaClientNTMultiData.
|
||||||
|
</p>
|
||||||
|
<h2>helloWorldRPC</h2>
|
||||||
|
<p>This is an example of issuing a channelRPC request.
|
||||||
|
It does <b>not</b> use pva.</p>
|
||||||
|
</div> <!-- class="contents" -->
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -299,13 +299,28 @@ It has methods:</p>
|
|||||||
<p>This provides methods for connecting to multiple channels.
|
<p>This provides methods for connecting to multiple channels.
|
||||||
</p>
|
</p>
|
||||||
<h3>PvaClientMultiGetDouble</h3>
|
<h3>PvaClientMultiGetDouble</h3>
|
||||||
<p>This provides support for channelGet to multiple channels.
|
<p>This provides support for channelGet to multiple channels where each channel has a value field that is a numeric scalar.
|
||||||
</p>
|
</p>
|
||||||
<h3>PvaClientMultiPutDouble</h3>
|
<h3>PvaClientMultiPutDouble</h3>
|
||||||
<p>This provides support for channelPut to multiple channels.
|
<p>This provides support for channelPut to multiple channels where each channel has a value field that is a numeric scalar.
|
||||||
</p>
|
</p>
|
||||||
<h3>PvaClientMultiMonitorDouble</h3>
|
<h3>PvaClientMultiMonitorDouble</h3>
|
||||||
<p>This provides support for monitoring changes to multiple channels.
|
<p>This provides support for monitoring changes to multiple channels where each channel has a value field that is a numeric scalar.
|
||||||
|
</p>
|
||||||
|
<h3>PvaClientNTMultiGet</h3>
|
||||||
|
<p>This provides support for channelGet to multiple channels where each channel has a value field that has any valid type.
|
||||||
|
</p>
|
||||||
|
<h3>PvaClientNTMultiPut</h3>
|
||||||
|
<p>This provides support for channelPut to multiple channels where each channel has a value
|
||||||
|
field that has any valid type.
|
||||||
|
</p>
|
||||||
|
<h3>PvaClientNTMultiMonitor</h3>
|
||||||
|
<p>This provides support for monitoring changes to multiple channels where each channel has a
|
||||||
|
value field that has any valid type.
|
||||||
|
</p>
|
||||||
|
<h3>PvaClientNTMultiData</h3>
|
||||||
|
<p>This provides support for monitoring changes to multiple channels where each channel has a value field that has any valid type.
|
||||||
|
The client can get the data as normative type NTMultiChannel.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div> <!-- class="contents" -->
|
</div> <!-- class="contents" -->
|
||||||
|
Reference in New Issue
Block a user