From fee5accff25b870adc2772dee3e848f682e6d0f5 Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Fri, 4 Sep 2015 12:00:00 +0200 Subject: [PATCH 1/5] jenkins: set dependency versions --- jenkins/cloudbees_build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jenkins/cloudbees_build b/jenkins/cloudbees_build index 479e629..a389eb5 100644 --- a/jenkins/cloudbees_build +++ b/jenkins/cloudbees_build @@ -18,10 +18,10 @@ BASE=${1:-${DEFAULT_BASE}} USE_MB=${2:-"MB_NO"} # Dependent module branches (empty = master) -PVCOMMON_BRANCH="" -PVDATA_BRANCH="" -PVACCESS_BRANCH="" -NORMATIVETYPES_BRANCH="" +PVCOMMON_BRANCH="Release-4.1-" +PVDATA_BRANCH="Release-5.0-" +PVACCESS_BRANCH="Release-4.1-" +NORMATIVETYPES_BRANCH="Release-5.0-" ########################################### # Fetch and unpack dependencies From d1c2ab145cbbee4c7e62dd7a7fe7e95a63bcc17c Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Mon, 14 Sep 2015 16:25:54 +0200 Subject: [PATCH 2/5] jenkins: adapt doc script to new CloudBees jenkins doc job --- jenkins/cloudbees_doc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/jenkins/cloudbees_doc b/jenkins/cloudbees_doc index f0b81f8..68fd2d0 100644 --- a/jenkins/cloudbees_doc +++ b/jenkins/cloudbees_doc @@ -10,11 +10,10 @@ # All rights reserved. Use is subject to license terms. ########################################### -# Determine EPICS Base version +# Set EPICS Base version and upload target -DEFAULT_BASE=3.14.12.5 - -BASE=${1:-${DEFAULT_BASE}} +BASE=3.15.2 +PUBLISH=${1:-DONT} ########################################### # Fetch and unpack dependencies @@ -43,4 +42,10 @@ doxygen ########################################### # Publish -rsync -aqP --delete -e ssh documentation epics-jenkins@web.sourceforge.net:/home/project-web/epics-pvdata/htdocs/docbuild/pvaClientCPP/tip +if [ "${PUBLISH}" != "DONT" ]; then + # Upload explicit dummy to ensure target directory exists + echo "Created by CloudBees Jenkins upload job. Should be deleted as part of the job." > DUMMY + rsync -q -e ssh DUMMY epics-jenkins@web.sourceforge.net:/home/project-web/epics-pvdata/htdocs/docbuild/pvaClientCPP/${PUBLISH}/DUMMY + + rsync -aqP --delete -e ssh documentation epics-jenkins@web.sourceforge.net:/home/project-web/epics-pvdata/htdocs/docbuild/pvaClientCPP/${PUBLISH}/ +fi From 0306bd9fc7eef5955f1e2e7b19c6e8ee5401df7a Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Mon, 28 Sep 2015 15:03:25 +0200 Subject: [PATCH 3/5] jenkins: fix CloudBees doc job --- jenkins/cloudbees_doc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkins/cloudbees_doc b/jenkins/cloudbees_doc index 68fd2d0..3e1d230 100644 --- a/jenkins/cloudbees_doc +++ b/jenkins/cloudbees_doc @@ -45,7 +45,7 @@ doxygen if [ "${PUBLISH}" != "DONT" ]; then # Upload explicit dummy to ensure target directory exists echo "Created by CloudBees Jenkins upload job. Should be deleted as part of the job." > DUMMY - rsync -q -e ssh DUMMY epics-jenkins@web.sourceforge.net:/home/project-web/epics-pvdata/htdocs/docbuild/pvaClientCPP/${PUBLISH}/DUMMY + rsync -q -e ssh DUMMY epics-jenkins@web.sourceforge.net:/home/project-web/epics-pvdata/htdocs/docbuild/pvaClientCPP/${PUBLISH}/ rsync -aqP --delete -e ssh documentation epics-jenkins@web.sourceforge.net:/home/project-web/epics-pvdata/htdocs/docbuild/pvaClientCPP/${PUBLISH}/ fi From e0557f04dd509ad21b17f8a6335705f9bf231cf9 Mon Sep 17 00:00:00 2001 From: mrkraimer Date: Fri, 2 Oct 2015 08:47:29 -0400 Subject: [PATCH 4/5] update documentation --- LICENSE.txt | 78 ---------- README.md | 5 +- documentation/pvaClientCPP.html | 10 +- documentation/pvaClientCPP_20151002.html | 186 +++++++++++++++++++++++ documentation/pvaClientOverview.html | 21 ++- 5 files changed, 213 insertions(+), 87 deletions(-) delete mode 100644 LICENSE.txt create mode 100644 documentation/pvaClientCPP_20151002.html diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 3f43ff2..0000000 --- a/LICENSE.txt +++ /dev/null @@ -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. -________________________________________________________________________ diff --git a/README.md b/README.md index fbbc9ed..068c7d2 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ For example: 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 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. In the future additional support should be provided that at least includes NTScalarMultiChannel. -Testing with some channels not connected have not been done. -At least some testing with missing channels should be done before final release 4.5 +Testing with some channels not connected has not been done. diff --git a/documentation/pvaClientCPP.html b/documentation/pvaClientCPP.html index 10eb3b5..dabc299 100644 --- a/documentation/pvaClientCPP.html +++ b/documentation/pvaClientCPP.html @@ -28,7 +28,7 @@

EPICS pvaClientCPP

EPICS V4 Working Group, Working Draft, -03-August-2015

+02-October-2015
This version:
Latest version:
pvaClientCPP_20150803.html + href="pvaClientCPP_20151002.html">pvaClientCPP_20151002.html
Previous version:
pvaClientCPP_20150626.html + href="pvaClientCPP_20150803.html">pvaClientCPP_20150803.html
Editors:
Marty Kraimer, BNL
@@ -174,6 +174,10 @@ and exampleDoubleArray.

This is an example of using pvaClientMultiChannel, pvaClientMultiGetDouble, pvaClientMultiPutDouble, and pvaClientMultiMonitorDouble.

+

examplePvaClientNTMulti

+

This is an example of using pvaClientMultiChannel, +pvaClientNTMultiGet, pvaClientNTMultiPut, pvaClientNTMultiMonitor, and pvaClientNTMultiData. +

helloWorldRPC

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

diff --git a/documentation/pvaClientCPP_20151002.html b/documentation/pvaClientCPP_20151002.html new file mode 100644 index 0000000..dabc299 --- /dev/null +++ b/documentation/pvaClientCPP_20151002.html @@ -0,0 +1,186 @@ + + + + + + EPICS pva + + + + + + + + + + + +
+

EPICS pvaClientCPP

+ +

EPICS V4 Working Group, Working Draft, +02-October-2015

+
+
This version:
+
pvaClientCPP.html +
+
Latest version:
+
pvaClientCPP_20151002.html +
+
Previous version:
+
pvaClientCPP_20150803.html +
+
Editors:
+
Marty Kraimer, BNL
+
+ +

Abstract

+ +

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.

+ +

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

+

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

+

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

+ +

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 pvaClient Software

+ +

pvaClientCPP is ready for use.

+ +
+ +
+

Table of Contents

+
+ + +
+
+ +

Introduction

+ +

pvaClient 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 +pvaClientOverview.html + +

+

+Doxygen documentation is available at +doxygenDoc + +

+

Example Database

+

The examples require that the database provided by project pvaClientTestCPP +is running. +For example:

+
+mrk> pwd
+/home/epicsv4/pvaClientTestCPP/database/iocBoot/exampleDatabase
+mrk> ../../bin/linux-x86_64/exampleDatabase st.cmd 
+
+

Examples

+

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

+
+mrk> pwd
+/home/epicsv4/pvaClientCPP/example
+mrk> bin/linux-x86_64/examplePvaClientGet 
+
+

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.

+

examplePvaClientGet

+

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

examplePvaClientMonitor

+

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

+

examplePvaClientPut

+

This example gets and puts to channels exampleDouble +and exampleDoubleArray.

+

examplePvaClientProcess

+

This example makes a process request to channel exampleDouble.

+

helloWorldPutGet

+

This is an example of issuing a channelPutGet.

+

examplePvaClientMultiDouble

+

This is an example of using pvaClientMultiChannel, +pvaClientMultiGetDouble, pvaClientMultiPutDouble, and pvaClientMultiMonitorDouble. +

+

examplePvaClientNTMulti

+

This is an example of using pvaClientMultiChannel, +pvaClientNTMultiGet, pvaClientNTMultiPut, pvaClientNTMultiMonitor, and pvaClientNTMultiData. +

+

helloWorldRPC

+

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

+
+ + diff --git a/documentation/pvaClientOverview.html b/documentation/pvaClientOverview.html index 9b2cc01..a0b4921 100644 --- a/documentation/pvaClientOverview.html +++ b/documentation/pvaClientOverview.html @@ -299,13 +299,28 @@ It has methods:

This provides methods for connecting to multiple channels.

PvaClientMultiGetDouble

-

This provides support for channelGet to multiple channels. +

This provides support for channelGet to multiple channels where each channel has a value field that is a numeric scalar.

PvaClientMultiPutDouble

-

This provides support for channelPut to multiple channels. +

This provides support for channelPut to multiple channels where each channel has a value field that is a numeric scalar.

PvaClientMultiMonitorDouble

-

This provides support for monitoring changes to multiple channels. +

This provides support for monitoring changes to multiple channels where each channel has a value field that is a numeric scalar. +

+

PvaClientNTMultiGet

+

This provides support for channelGet to multiple channels where each channel has a value field that has any valid type. +

+

PvaClientNTMultiPut

+

This provides support for channelPut to multiple channels where each channel has a value +field that has any valid type. +

+

PvaClientNTMultiMonitor

+

This provides support for monitoring changes to multiple channels where each channel has a +value field that has any valid type. +

+

PvaClientNTMultiData

+

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.

From 51ed7d32a8142df13992e8436e6d3f567a9f16ec Mon Sep 17 00:00:00 2001 From: mrkraimer Date: Wed, 7 Oct 2015 10:26:08 -0400 Subject: [PATCH 5/5] add RELEASE_NOTES.md --- RELEASE_NOTES.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 RELEASE_NOTES.md diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md new file mode 100644 index 0000000..2f5544a --- /dev/null +++ b/RELEASE_NOTES.md @@ -0,0 +1,11 @@ +Release/4.1 +=========== + +This is for EPICS V4 release 4.5 + +pvaClient is a synchronous API for pvAccess. + + +This is the first release of pvaClientCPP. +It provides an API that is similar to pvaClientJava. +