Skip to content

Commit 49742f4

Browse files
committed
Merge the pvData project in the epicsCore
2 parents 8be4348 + 73e1bca commit 49742f4

229 files changed

Lines changed: 34586 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pvDataJava/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target/

pvDataJava/.travis.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
sudo: required
2+
language: java
3+
jdk: oraclejdk8
4+
5+
script:
6+
- mvn clean verify
7+
8+
after_failure:
9+
- find ./ -type d -name "surefire-reports" -print0 | xargs -0 -I {} find {} -iname "*.txt" -type f | xargs cat
10+
- find . -type f -name "*.log" -print0 -exec cat {} \;

pvDataJava/LICENSE.txt

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
Copyright and License Terms
2+
---------------------------
3+
4+
Copyright (c) 2006-2016 Martin R. Kraimer
5+
Copyright (c) 2006-2016 UChicago Argonne LLC, as Operator of Argonne
6+
National Laboratory.
7+
Copyright (c) 2006 Deutsches Elektronen-Synchrotron,
8+
Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
9+
Copyright (c) 2007-2016 Control System Laboratory,
10+
(COSYLAB) Ljubljana Slovenia
11+
Copyright (c) 2010-2016 Brookhaven Science Associates, as Operator
12+
of Brookhaven National Laboratory
13+
Copyright (c) 2011-2016 Diamond Light Source Limited,
14+
(DLS) Didcot, United Kingdom
15+
16+
Permission is hereby granted, free of charge, to any person
17+
obtaining a copy of this software and associated documentation
18+
files (the "Software"), to deal in the Software without
19+
restriction, including without limitation the rights to use,
20+
copy, modify, merge, publish, distribute, sublicense, and/or sell
21+
copies of the Software, and to permit persons to whom the
22+
Software is furnished to do so, subject to the following
23+
conditions:
24+
25+
The above copyright notice and this permission notice shall be
26+
included in all copies or substantial portions of the Software.
27+
28+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
30+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
32+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
33+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
34+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
35+
OTHER DEALINGS IN THE SOFTWARE.
36+
37+
________________________________________________________________________
38+
39+
Additional Disclaimers
40+
----------------------
41+
42+
This software is copyright in part by these institutions:
43+
44+
* Brookhaven Science Associates, as Operator of Brookhaven
45+
National Laboratory, New York, USA
46+
* Control System Laboratory, Ljubljana, Slovenia
47+
* Deutsches Elektronen-Synchroton, Member of the Helmholtz
48+
Association, Hamburg, Germany
49+
* Diamond Light Source Limited, Didcot, United Kingdom
50+
* Helmholtz-Zentrum Berlin fuer Materialien und Energie m.b.H.,
51+
Berlin, Germany.
52+
* UChicage Argonne LLC, as Operator of Argonne National Laboratory,
53+
Illinois, USA
54+
55+
In no event shall these institutions be liable to any party for direct,
56+
indirect, special, incidental, or consequential damages arising out of
57+
the use of this software, its documentation, or any derivatives thereof,
58+
even if advised of the possibility of such damage.
59+
60+
These institutions specifically disclaim any warranties, including, but
61+
not limited to, the implied warranties of merchantability, fitness for a
62+
particular purpose, and non-infringement. This software is provided on
63+
an "as is" basis, and these institutions have no obligation to provide
64+
maintenance, support, updates, enhancements, or modifications.
65+

pvDataJava/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# pvDataJava [![Build Status](https://travis-ci.org/epics-base/pvDataJava.svg?branch=master)](https://travis-ci.org/epics-base/pvDataJava)

pvDataJava/documentation/README

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
Abs: Readme of pvDataJava - the Java implementation of pvData. pvData
3+
is a core module of EPICS V4.
4+
5+
-----------------------------------------------------------------------
6+
Auth: Marty Kraimer, grandfathered.
7+
Mod: Greg White, 3-Oct-2012
8+
9+
=======================================================================
10+
11+
1) Publishing pvDataJava.html
12+
13+
The following line publishes pvDataJava.html to the SourceForge web site,
14+
but bypasses the mercurial repo of pvDataJava.html (pvDataJava), so don't use this
15+
command. Instead use mercurial to pull, update, (make your change) and then
16+
commit your change. Then BNL's Jenkins CIS will notice the update, and publish
17+
to sourceforge for you.
18+
19+
scp pvDataJava.html <user>,epics-pvdata@web.sourceforge.net:htdocs/doc/pvDataJava
20+
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<h1>Release 6.0</h1>
2+
<p>The main changes since release 5.0 are:</p>
3+
<ul>
4+
<li>pvCopy now implements filter plugins.</li>
5+
<li>MonitorAlgorithm has been removed.</li>
6+
</ul>
7+
<h1>Release 5.0</h1>
8+
<p>The main changes since release 4.0 are:</p>
9+
<ul>
10+
<li>New template versions of Structure::getField</li>
11+
<li>Printing of structure and union arrays modified</li>
12+
<li>minStep field added to Control</li>
13+
<li>Changes to access specifiers in Display and PVDisplay</li>
14+
</ul>
15+
<h2>New template version of Structure::getField</h2>
16+
<p>A new template getField method has been added to Structure</p>
17+
<pre><code>&lt;T extends Field&gt;
18+
T getField(Class&lt;T&gt; c, String fieldName)
19+
</code></pre>
20+
<p>Can be used, for example, as follows:</p>
21+
<pre><code>Structure tsStruc = struc.getField(Structure.class, "timeStamp");
22+
</code></pre>
23+
<h2>Printing of structure and union arrays modified</h2>
24+
<p>The string representation of a structure array has been changed from:</p>
25+
<pre><code>structure[] structureArrayField
26+
structure[]
27+
structure
28+
long secondsPastEpoch
29+
int nanoseconds
30+
</code></pre>
31+
<p>to</p>
32+
<pre><code>structure[] structureArrayField
33+
structure[]
34+
long secondsPastEpoch
35+
int nanoseconds
36+
</code></pre>
37+
<p>This brings it in line with the pvData meta language. Similar changes have been made for unions.</p>
38+
<h2>minStep field added to Control</h2>
39+
<p>Support for the minStep field has been added to Control. This brings it in
40+
line with the C++ implementation and the Normative Types specification.</p>
41+
<p>getMinStep and setMinStep methods have been added to Control. Handling of
42+
minStep field added in PVControl.</p>
43+
<h2>Changes to access specifiers in Display and PVDisplay</h2>
44+
<p>The access specifiers of the methods in Display have been changed from
45+
default/package to public.</p>
46+
<p>The fields in the PVDisplayFactory class have been changed from public to
47+
private.</p>
48+
<h1>Release 4.0</h1>
49+
<p>The main changes since release 3.0.2 are:</p>
50+
<ul>
51+
<li>methods that change interface removed from PVField and PVStructure</li>
52+
<li>timeStamp and valueAlarm name changes</li>
53+
<li>union is new type.</li>
54+
<li>copy is new.</li>
55+
<li>monitorPlugin is new.</li>
56+
<li>PVField no longer extends Requester</li>
57+
</ul>
58+
<h2>methods removed from PVField and PVStructure</h2>
59+
<p>The following method was removed from PVField: rename.
60+
The following methods were removed from PVStrucure: appendPVField, appendPVFields, removePVField,
61+
replacePVField, getExtendsStructureName, and putExtendsStructureName.</p>
62+
<p>With these changes there should be no methods that can change the introspection interface
63+
of any data object after it is created.</p>
64+
<h2>timeStamp and valueAlarm name changes</h2>
65+
<p>In timeStamp nanoSeconds is changed to nanoseconds.</p>
66+
<p>In valueAlarm hystersis is changed to hysteresis</p>
67+
<h2>union is a new basic type.</h2>
68+
<p>There are two new basic types: union_t and unionArray.</p>
69+
<p>A union is like a structure that has a single subfield.
70+
There are two flavors:</p>
71+
<ul>
72+
<li><b>variant union</b> The field can have any type.</li>
73+
<li><b>union</b> The field can any of specified set of types.</li>
74+
</ul>
75+
<p>The field type can be dynamically changed.</p>
76+
<h2>copy</h2>
77+
<p>This consists of createRequest and pvCopy.
78+
createRequest was moved from pvAccess to here.
79+
pvCopy is moved from pvDatabaseCPP and now depends
80+
only on pvData, i. e. it no longer has any knowledge of PVRecord.</p>
81+
<h2>monitorPlugin</h2>
82+
<p>This is for is for use by code that implements pvAccess monitors.
83+
This is prototype and is subject to debate.</p>
84+
<h2>PVField</h2>
85+
<p>This no longer extends Requester of has method setRequester.
86+
Any code in pvDataJava that called pvField.message now throws an exception instead.
87+
This change was made so that the semantics now more closely follow pvDataCPP.</p>
88+
<h1>Release 3.0.2</h1>
89+
<p>This was the starting point for RELEASE_NOTES</p>
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
2+
Release 6.0
3+
===========
4+
5+
The main changes since release 5.0 are:
6+
7+
* pvCopy now implements filter plugins.
8+
* MonitorAlgorithm has been removed.
9+
10+
11+
12+
Release 5.0
13+
===========
14+
15+
The main changes since release 4.0 are:
16+
17+
* New template versions of Structure::getField
18+
* Printing of structure and union arrays modified
19+
* minStep field added to Control
20+
* Changes to access specifiers in Display and PVDisplay
21+
22+
New template version of Structure::getField
23+
--------------------------------------------
24+
25+
A new template getField method has been added to Structure
26+
27+
<T extends Field>
28+
T getField(Class<T> c, String fieldName)
29+
30+
Can be used, for example, as follows:
31+
32+
Structure tsStruc = struc.getField(Structure.class, "timeStamp");
33+
34+
35+
Printing of structure and union arrays modified
36+
-----------------------------------------------
37+
38+
The string representation of a structure array has been changed from:
39+
40+
structure[] structureArrayField
41+
structure[]
42+
structure
43+
long secondsPastEpoch
44+
int nanoseconds
45+
46+
to
47+
48+
structure[] structureArrayField
49+
structure[]
50+
long secondsPastEpoch
51+
int nanoseconds
52+
53+
This brings it in line with the pvData meta language. Similar changes have been made for unions.
54+
55+
56+
minStep field added to Control
57+
------------------------------
58+
59+
Support for the minStep field has been added to Control. This brings it in
60+
line with the C++ implementation and the Normative Types specification.
61+
62+
getMinStep and setMinStep methods have been added to Control. Handling of
63+
minStep field added in PVControl.
64+
65+
66+
Changes to access specifiers in Display and PVDisplay
67+
-----------------------------------------------------
68+
69+
The access specifiers of the methods in Display have been changed from
70+
default/package to public.
71+
72+
The fields in the PVDisplayFactory class have been changed from public to
73+
private.
74+
75+
76+
Release 4.0
77+
===========
78+
79+
The main changes since release 3.0.2 are:
80+
81+
* methods that change interface removed from PVField and PVStructure
82+
* timeStamp and valueAlarm name changes
83+
* union is new type.
84+
* copy is new.
85+
* monitorPlugin is new.
86+
* PVField no longer extends Requester
87+
88+
methods removed from PVField and PVStructure
89+
-----------------
90+
91+
The following method was removed from PVField: rename.
92+
The following methods were removed from PVStrucure: appendPVField, appendPVFields, removePVField,
93+
replacePVField, getExtendsStructureName, and putExtendsStructureName.
94+
95+
With these changes there should be no methods that can change the introspection interface
96+
of any data object after it is created.
97+
98+
99+
timeStamp and valueAlarm name changes
100+
--------------
101+
102+
In timeStamp nanoSeconds is changed to nanoseconds.
103+
104+
In valueAlarm hystersis is changed to hysteresis
105+
106+
107+
union is a new basic type.
108+
------------
109+
110+
There are two new basic types: union_t and unionArray.
111+
112+
A union is like a structure that has a single subfield.
113+
There are two flavors:
114+
115+
* <b>variant union</b> The field can have any type.
116+
* <b>union</b> The field can any of specified set of types.
117+
118+
The field type can be dynamically changed.
119+
120+
copy
121+
----
122+
123+
This consists of createRequest and pvCopy.
124+
createRequest was moved from pvAccess to here.
125+
pvCopy is moved from pvDatabaseCPP and now depends
126+
only on pvData, i. e. it no longer has any knowledge of PVRecord.
127+
128+
monitorPlugin
129+
-------------
130+
131+
This is for is for use by code that implements pvAccess monitors.
132+
This is prototype and is subject to debate.
133+
134+
PVField
135+
-------
136+
137+
This no longer extends Requester of has method setRequester.
138+
Any code in pvDataJava that called pvField.message now throws an exception instead.
139+
This change was made so that the semantics now more closely follow pvDataCPP.
140+
141+
Release 3.0.2
142+
==========
143+
This was the starting point for RELEASE_NOTES

pvDataJava/documentation/TODO.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<h1>TODO</h1>
2+
<h2>org.epics.pvdata.util.*</h2>
3+
<p>Is this being used?
4+
If being used this document should talk about it.
5+
If not being used it should be deleted.</p>
6+
<h2>valueAlarm</h2>
7+
<p>normativeTypes.html describes valueAlarm only for a value field that has type
8+
double.
9+
The implementation also supports all the numeric scalar types.</p>
10+
<h2>convert</h2>
11+
<p>The array conversion methods must implement stride so that the stride argument of ChannelArray
12+
can be supported.</p>
13+
<h2>monitorPlugin</h2>
14+
<p>A debate is on-going about what semantics should be.</p>
15+
<h2>PVAuxInfo</h2>
16+
<p>This should go away.
17+
This can not be done until pvIOCJava is changed.</p>
18+
<h2>sharedData</h2>
19+
<p>The share data methods for arrays should go away.
20+
Copy On Write semantics for arrays should be implemented.</p>

pvDataJava/documentation/TODO.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
TODO
2+
===========
3+
4+
org.epics.pvdata.util.*
5+
------------
6+
7+
Is this being used?
8+
If being used this document should talk about it.
9+
If not being used it should be deleted.
10+
11+
valueAlarm
12+
----------
13+
14+
normativeTypes.html describes valueAlarm only for a value field that has type
15+
double.
16+
The implementation also supports all the numeric scalar types.
17+
18+
convert
19+
--------
20+
21+
The array conversion methods must implement stride so that the stride argument of ChannelArray
22+
can be supported.
23+
24+
25+
monitorPlugin
26+
-------------
27+
28+
A debate is on-going about what semantics should be.
29+
30+
PVAuxInfo
31+
---------
32+
33+
This should go away.
34+
This can not be done until pvIOCJava is changed.
35+
36+
sharedData
37+
---------
38+
39+
The share data methods for arrays should go away.
40+
Copy On Write semantics for arrays should be implemented.

0 commit comments

Comments
 (0)