diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b3be2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +bin/ +lib/ +doc/ +include/ +db/ +dbd/ +documentation/html +documentation/*.tag +envPaths +configure/*.local +!configure/ExampleRELEASE.local +**/O.* diff --git a/.hgflow b/.hgflow deleted file mode 100644 index 9a28791..0000000 --- a/.hgflow +++ /dev/null @@ -1,8 +0,0 @@ -[branchname] -master = master -develop = default -feature = feature/ -release = release/ -hotfix = hotfix/ -support = support/ - diff --git a/.hgignore b/.hgignore deleted file mode 100644 index 20e12e6..0000000 --- a/.hgignore +++ /dev/null @@ -1,11 +0,0 @@ -^QtC- -bin/ -lib/ -doc/ -include/ -db/ -dbd/ -documentation/html -envPaths -configure/.*\.local -/O\..* diff --git a/README.txt b/README.txt index e234c21..b4d961e 100644 --- a/README.txt +++ b/README.txt @@ -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: cd configure diff --git a/documentation/easyPVA.html b/documentation/easyPVA.html index 487937d..dec0657 100644 --- a/documentation/easyPVA.html +++ b/documentation/easyPVA.html @@ -36,16 +36,21 @@
Latest version:
easyPVA_20150325.html + href="easyPVA_20150609.html">easyPVA_20150609.html
Previous version:
-
none
+
easyPVA_20150325.html +
Editors:
Marty Kraimer, BNL
Matej Sekoranja, Cosylab

Abstract

+

NO LONGER SUPPPORTED: +The functionality has been moved to pvAccessCPP and EasyPva renamed to Pva. +

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 diff --git a/documentation/easyPVA_20150609.html b/documentation/easyPVA_20150609.html new file mode 100644 index 0000000..dec0657 --- /dev/null +++ b/documentation/easyPVA_20150609.html @@ -0,0 +1,222 @@ + + + + + + EPICS easyPVA + + + + + + + + + + + +

+

EPICS easyPVA

+ +

EPICS V4 Working Group, Working Draft, +25-Mar-2015

+
+
This version:
+
easyPVA.html +
+
Latest version:
+
easyPVA_20150609.html +
+
Previous version:
+
easyPVA_20150325.html +
+
Editors:
+
Marty Kraimer, BNL
+
Matej Sekoranja, Cosylab
+
+ +

Abstract

+

NO LONGER SUPPPORTED: +The functionality has been moved to pvAccessCPP and EasyPva renamed to Pva. +

+ +

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.

+ +

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. +

+

+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. +

+

+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. +

+ +

For more information about EPICS generally, please refer to the home page of the Experimental Physics and Industrial + Control System.

+ + + +

Status of this Document and of the EasyPVA Software

+ +

EasyPVACPP is ready for use.

+ +
+ +
+

Table of Contents

+
+ + +
+
+ +

Introduction

+ +

EasyPVA is a synchronous API for accessing PVData via PVAccess. It provides +an interface to many of the features provided by pvData and pvAccess.

+ +

This document describes the layout of the source files in this project.

+

+A user overview is available via +overview.html + +

+

+Doxygen documentation is available at +doxygenDoc + +

+

Building

+

After obtaining the source:

+
+cd configure
+cp ExampleRELEASE.local RELEASE.local
+
+

Edit RELEASE.local so that all path names are correct for you environment. +

+

+Then:

+
+cd ..
+make
+
+ +

Example and Test Database

+

The examples and tests require that an example pvAccess server is runnimg. +This distribution has a file exampleDatabaseEasyPVA.zip. +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. +

+

+After unzipping the file: +

+
+cd configure
+cp ExampleRELEASE.local RELEASE.local
+edit RELEASE.local
+cd ..
+make
+cd iocBoot/exampleDatabase
+../../bin/<arch:>/exampleDatabase st.cmd
+
+

Testing

+

The tests will fail unless the example database is running.

+

Once it is running:

+
+make runtests
+
+

Examples

+

Examples are in directory example/src. +An example of how to run them is:

+
+mrk> pwd
+/home/hg/easyPVACPP/example
+mrk> bin/linux-x86_64/exampleEasyGet 
+
+

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.

+

exampleEasyGet

+

This has a number of examples:

+
+
exampleDouble
+
+ This shows two methods for getting data from a channel that has a numeric + scalar value field. +
+
exampleDoubleArray
+
+ This shows two methods for getting data from a channel that has a + double array value field. +
+
exampleCADouble
+
+ This is like exampleDouble except it uses provider ca. +
+
exampleCADoubleArray
+
+ This is like exampleDoubleArray except it uses provider ca. +
+
examplePowerSupply
+
+ This is an example of getting data from a channel that does not + have a value field. +
+
+

exampleEasyMonitor

+

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. +

+

After starting the example a change can be made to the powerSupply by issuing:

+
+pvput -r "power.value,voltage.value" examplePowerSupply 6 6
+
+

exampleEasyPut

+

This example gets and puts to channel exampleDouble.

+

exampleEasyProcess

+

This example makes a process request to channel exampleDouble.

+

helloWorldPutGet

+

This is an example of issuing a channelPutGet.

+

exampleEasyMultiDouble

+

This is an example of issuing gets and puts to multiple channels where each +channel has a numeric scalar value field.

+

exampleEasyNTMultiChannel

+

This is an example of using NDMultiChannel to obtain data from multiple channels. +

+

helloWorldRPC

+

This is an example of issuing a channelRPC request. +It does not use easyPVA.

+
+ +