finish hg to git; state that no longer supported
This commit is contained in:
12
.gitignore
vendored
Normal file
12
.gitignore
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
bin/
|
||||||
|
lib/
|
||||||
|
doc/
|
||||||
|
include/
|
||||||
|
db/
|
||||||
|
dbd/
|
||||||
|
documentation/html
|
||||||
|
documentation/*.tag
|
||||||
|
envPaths
|
||||||
|
configure/*.local
|
||||||
|
!configure/ExampleRELEASE.local
|
||||||
|
**/O.*
|
8
.hgflow
8
.hgflow
@ -1,8 +0,0 @@
|
|||||||
[branchname]
|
|
||||||
master = master
|
|
||||||
develop = default
|
|
||||||
feature = feature/
|
|
||||||
release = release/
|
|
||||||
hotfix = hotfix/
|
|
||||||
support = support/
|
|
||||||
|
|
11
.hgignore
11
.hgignore
@ -1,11 +0,0 @@
|
|||||||
^QtC-
|
|
||||||
bin/
|
|
||||||
lib/
|
|
||||||
doc/
|
|
||||||
include/
|
|
||||||
db/
|
|
||||||
dbd/
|
|
||||||
documentation/html
|
|
||||||
envPaths
|
|
||||||
configure/.*\.local
|
|
||||||
/O\..*
|
|
@ -1,3 +1,7 @@
|
|||||||
|
THIS MODULE IS NO LONGER SUPPORTED.
|
||||||
|
It's functionality has been moved to pvAccessCPP and renamed fro EasyPVA to Pva.
|
||||||
|
|
||||||
|
|
||||||
To build do the following:
|
To build do the following:
|
||||||
|
|
||||||
cd configure
|
cd configure
|
||||||
|
@ -36,16 +36,21 @@
|
|||||||
</a> </dd>
|
</a> </dd>
|
||||||
<dt>Latest version:</dt>
|
<dt>Latest version:</dt>
|
||||||
<dd><a
|
<dd><a
|
||||||
href="easyPVA_20150325.html">easyPVA_20150325.html</a>
|
href="easyPVA_20150609.html">easyPVA_20150609.html</a>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>Previous version:</dt>
|
<dt>Previous version:</dt>
|
||||||
<dd>none</dd>
|
<dd><a
|
||||||
|
href="easyPVA_20150325.html">easyPVA_20150325.html</a>
|
||||||
|
</dd>
|
||||||
<dt>Editors:</dt>
|
<dt>Editors:</dt>
|
||||||
<dd>Marty Kraimer, BNL</dd>
|
<dd>Marty Kraimer, BNL</dd>
|
||||||
<dd>Matej Sekoranja, Cosylab</dd>
|
<dd>Matej Sekoranja, Cosylab</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<h2 class="nocount">Abstract</h2>
|
<h2 class="nocount">Abstract</h2>
|
||||||
|
<p><b>NO LONGER SUPPPORTED:</b>
|
||||||
|
The functionality has been moved to pvAccessCPP and EasyPva renamed to Pva.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>EasyPVA (Easy PVAccess) is a software library that provides to an EPICS client programmer, a friendly
|
<p>EasyPVA (Easy PVAccess) 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
|
client side programming interface to the data of an EPICS based control system. It is intended
|
||||||
|
222
documentation/easyPVA_20150609.html
Normal file
222
documentation/easyPVA_20150609.html
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
<?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 easyPVA</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 easyPVA</h1>
|
||||||
|
<!-- Maturity: Working Draft or Request for Comments, or Recommendation, and date. -->
|
||||||
|
<h2 class="nocount">EPICS V4 Working Group, Working Draft,
|
||||||
|
25-Mar-2015</h2>
|
||||||
|
<dl>
|
||||||
|
<dt>This version:</dt>
|
||||||
|
<dd><a
|
||||||
|
href="easyPVA.html">easyPVA.html
|
||||||
|
</a> </dd>
|
||||||
|
<dt>Latest version:</dt>
|
||||||
|
<dd><a
|
||||||
|
href="easyPVA_20150609.html">easyPVA_20150609.html</a>
|
||||||
|
</dd>
|
||||||
|
<dt>Previous version:</dt>
|
||||||
|
<dd><a
|
||||||
|
href="easyPVA_20150325.html">easyPVA_20150325.html</a>
|
||||||
|
</dd>
|
||||||
|
<dt>Editors:</dt>
|
||||||
|
<dd>Marty Kraimer, BNL</dd>
|
||||||
|
<dd>Matej Sekoranja, Cosylab</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h2 class="nocount">Abstract</h2>
|
||||||
|
<p><b>NO LONGER SUPPPORTED:</b>
|
||||||
|
The functionality has been moved to pvAccessCPP and EasyPva renamed to Pva.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>EasyPVA (Easy PVAccess) 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, easyPVA provides an easy 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.
|
||||||
|
EasyPVA provides an interface that does not require callbacks even for monitors.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
EasyChannel 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>
|
||||||
|
EasyMultiChannel provides access to data from multiple channels.
|
||||||
|
It can be used directly by a client or via EasyMultiDouble or EasyNTMultiChannel.
|
||||||
|
EasyMultiDouble allows the client to get and put data to multiple channels.
|
||||||
|
But each channel must have a value field that is a numeric scalar.
|
||||||
|
EasyNTMultiChannel 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 EasyPVA Software</h2>
|
||||||
|
|
||||||
|
<p>EasyPVACPP 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>EasyPVA 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="./overview.html">overview.html
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Doxygen documentation is available at
|
||||||
|
<a
|
||||||
|
href="./html/index.html">doxygenDoc
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<h2>Building</h2>
|
||||||
|
<p>After obtaining the source:</p>
|
||||||
|
<pre>
|
||||||
|
cd configure
|
||||||
|
cp ExampleRELEASE.local RELEASE.local
|
||||||
|
</pre>
|
||||||
|
<p>Edit <b>RELEASE.local</b> so that all path names are correct for you environment.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Then:</p>
|
||||||
|
<pre>
|
||||||
|
cd ..
|
||||||
|
make
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h2>Example and Test Database</h2>
|
||||||
|
<p>The examples and tests require that an example pvAccess server is runnimg.
|
||||||
|
This distribution has a file <b>exampleDatabaseEasyPVA.zip</b>.
|
||||||
|
When unzipped this is used to create an example IOC database.
|
||||||
|
The database has the record used by the examples are tests that come with easyPVAJava.
|
||||||
|
It uses pvDatabaseCPP to build the database.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
After unzipping the file:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
cd configure
|
||||||
|
cp ExampleRELEASE.local RELEASE.local
|
||||||
|
edit RELEASE.local
|
||||||
|
cd ..
|
||||||
|
make
|
||||||
|
cd iocBoot/exampleDatabase
|
||||||
|
../../bin/<arch:>/exampleDatabase st.cmd
|
||||||
|
</pre>
|
||||||
|
<h2>Testing</h2>
|
||||||
|
<p>The tests will fail unless the example database is running.</p>
|
||||||
|
<p>Once it is running:</p>
|
||||||
|
<pre>
|
||||||
|
make runtests
|
||||||
|
</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/hg/easyPVACPP/example
|
||||||
|
mrk> bin/linux-x86_64/exampleEasyGet
|
||||||
|
</pre>
|
||||||
|
<p>The following is a brief description of each example.
|
||||||
|
In order to understand each example it
|
||||||
|
helps to also bee loooking at the source for the example.</p>
|
||||||
|
<h2>exampleEasyGet</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>exampleEasyMonitor</h2>
|
||||||
|
<p>This is an example of creating a monitor on a channel.
|
||||||
|
It monitors a channel that models a powerSupply, i. e. it is not a "standard" record.
|
||||||
|
It does not have a value field.
|
||||||
|
</p>
|
||||||
|
<p>After starting the example a change can be made to the powerSupply by issuing:</p>
|
||||||
|
<pre>
|
||||||
|
pvput -r "power.value,voltage.value" examplePowerSupply 6 6
|
||||||
|
</pre>
|
||||||
|
<h2>exampleEasyPut</h2>
|
||||||
|
<p>This example gets and puts to channel exampleDouble.</p>
|
||||||
|
<h2>exampleEasyProcess</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>exampleEasyMultiDouble</h2>
|
||||||
|
<p>This is an example of issuing gets and puts to multiple channels where each
|
||||||
|
channel has a numeric scalar value field.</p>
|
||||||
|
<h2>exampleEasyNTMultiChannel</h2>
|
||||||
|
<p>This is an example of using NDMultiChannel to obtain data from multiple channels.
|
||||||
|
</p>
|
||||||
|
<h2>helloWorldRPC</h2>
|
||||||
|
<p>This is an example of issuing a channelRPC request.
|
||||||
|
It does <b>not</b> use easyPVA.</p>
|
||||||
|
</div> <!-- class="contents" -->
|
||||||
|
</body>
|
||||||
|
</html>
|
Reference in New Issue
Block a user