Home / 4.3.0
Name Modified Size InfoDownloads / Week
Parent folder
old 2013-10-22
README 2013-10-24 13.2 kB
EPICS-Java-4.3.0.tar.gz 2013-10-24 5.5 MB
EPICS-CPP-4.3.0.tar.gz 2013-10-22 5.5 MB
Totals: 4 Items   11.0 MB 0
EPICS V4 README

This README file describes the download files available for EPICS V4, and
includes all versions. 

EPICS V4 [1] is a software toolkit for developing advanced control
systems on top of EPICS [2], and fast service oriented architectures.

epics-pvdata is a SourceForge project for managing the development of
EPICS version 4. 

-----------------------------------------------------------------------------

Status: This is the 27-Aug-2013 version of the README. This version is as 
        previous version for EPICS V4.3.0, but adds the new RPC feature and
        some matters of formatting.

-----------------------------------------------------------------------------
Author: 28-Nov-2011 Greg White (GREG@SLAC.STANFORD.EDU) for EPICS V4 team [1]
Mod:
     22-Aug-2013, Greg White, Added 4.3.0.
     22-Jan-2013, Ralph Lange, moved pvaSrv out of pvIOCCPP.
     11-Jan-2013, Greg White, edited for BETA 2.
     13-Mar-2012, James Rowland, Added C++ release "Marchtest" for 
                  internal review only.
     20-Dec-2011, Greg White, for 1.0-BETA, Java and C++.
     11-Jan-2012, Greg White, for EPICSv4-Java-1.0-BETA.tar.gz
     08-Feb-2012, Greg White, for EPICSv4-Java-1.0-1-BETA.tar.gz
-----------------------------------------------------------------------------

VERSION 4.3.0
=============
As of 22-Aug-2013, the latest version of EPICS V4 is 4.3.0. 

SUMMARY
-------

4.3.0 concentrates on making it easy to work with the existing features of
EPICS V4, while using EPICS Base V3.14/15 IOCs as the control system
foundation. These include two new interfaces to Base IOC data, including
over Channel Access, enabling many options for configuring a high
performance and highly functional scientific instrument control environment.
Other features include an easy to use API, improved command line, examples,
and directory service.

For more information see FEATURE ADDITIONS AND MAJOR CHANGES SINCE LAST
RELEASE below.

See the document "Getting Started with EPICS V4,
http://epics-pvdata.sourceforge.net/gettingStarted.html

DISTRIBUTION FILES FOR THIS VERSION 
-----------------------------------

The file EPICS-Java-4.3.0.tar.gz [possibly suffixed -pre or rc] includes all
(and only) the Java implementation of EPICS V4.3.0. On Unix systems, the tar
file might be unpacked with the command:

  % tar xvfz EPICS-Java-4.3.0.tar.gz

The file EPICS-CPP-4.3.0.tar.gz [possibly suffixed -pre or rc] includes all
(and only) the C++ implementation of EPICS V4.3.0. On Unix systems, the tar
file might be unpacked with the command:

  % tar xvfz EPICS-CPP-4.3.0.tar.gz

You may also clone the Mercurial repos directly [22], using the tags for
4.3.0 as specified in RELEASE_VERSIONS [19].

MODULES COMPRISING VERSION
--------------------------

The exact modules and their versions, that comprise the EPICS V4.3.0
release, are defined in RELEASE_VERSIONS [19]. This includes the versions of
both the C++ and Java implementation. The distribution tars are in fact
generated automatically from the contents of [19].

C++ Module Summary:

pvAccessCPP      The EPICS V4 "wire protocol". Supports pvData [6] [7].
pvDataCPP        Support for high performance data interchange [8].
pvCommonCPP      Utility libraries.
pvIOCCPP         Deprecated. Only included in distribution for one part 
                 needed by pvaSrv (below). 
exampleCPP       Code examples, including use of pvData containers, RPC, 
                 demo servers. 
pvaSrv           An EPICS Base IOC plugin interfacing CA data to pvAccess. 

Java Module Summary:

pvAccessJava     The EPICS V4 "wire protocol". Supports pvData [6][7]. 
pvDataJava       Support for high performance data interchange [8].
easyPVA          A somewhat easier to use Java API for pvAccess. 
exampleJava      Code examples, including use of pvData containers, RPC, 
                 demo servers. 
directoryService EPICS V4 interface to classic EPICS Channel Finder [20].
caj              An all java implementation of the Channel Access protocol.
jca              A Java API and wrapper interface to the C++ implementation
                 of the Channel Access protocol.


FEATURE ADDITIONS AND MAJOR CHANGES SINCE LAST RELEASE
------------------------------------------------------
The release before 4.3.0 was called 2.0-BETA. 

1. You can access Base IOC PV data over pvAccess. This gives the speed and
facilities of pvAccess to accesses of Base IOCs, and provides the basis for
coming work to allow data of a group of IOC channels to be get or set as a
single call through pvAccess. See pvaSrv.
   
2. PV value I/O can now be done over the Channel Access protocol using only
the pvAccess client. pvAccess contains Channel Access, as a "provider". This
is now available in both C++ and Java implementations of pvAccess. This is
useful if you want to do all your client side PV access (both Base IOC and
services, through a single client side, pvAccess). See pvAccess.

3. vxWorks is directly supported. That is, a pvaSrv module may be loaded
into a vxWorks IOC.
  
4. An easy to use API, "easyPVA", has been added.

5. The support for RPC PVs (PV value subject to arguments) has been much
simplified and extended. There is now a client side library for RPC as well
as the server side framework, and the server side is now very easy indeed.
These extentions have been made in both, C++ and Java.

6. C++ Examples. exampleCPP contains examples of coding both simple
(helloWorld) and more complex services (EPICS Archiver access).
 
7. Get lists of PVs in an IOC, or many other kinds of other system-wid
meta-data, all within the pvAccess protocol. This is provided by a new
simple pvAccess server instance called directoryService [20], that
interfaces to the EPICS Channel Finder [21].

Non-Functional changes for V4.3
-------------------------------
1. pvIOCjava is no longer distributed. It is intended that as of EPICS
4.3.0, control is done by IOCs running EPICS Base v3.14 or 15. pvIOCJava
is being re-worked to support host level high performance data
processing using the data flow model, for such applications as high
throughput image processing. It may re-emerge in the next release,
probably renamed pvProcessor.

2. The version numbering of the EPICS suite (now 4.3) has been seperated
from the version numbering of its composite modules. This allows for far
improved specificity for indicating backward and forward compatibility
through version numbers, and makes for far more streamlined packaging and
distribution. The packaging process is in fact now completely file driven,
so we could in theory package and distribute a new version of the suite in
minutes.
  
See instructions in "Getting Started with EPICS V4" [16]. This includes both
how to build the Java distribution from sources downloaded from the
Mercurial repositories at SourceForge, and the alternative of downloading
the tar.gz.

------------------------------------------------------------------------

VERSION 2.0-BETA  (aka V4.2) 
============================

[** NOTE: Version 2.0-BETA has been superceeded by versions above **]

SUMMARY
-------
The latest tagged release of both C++ and Java implementations of EPICS V4 are
in directories and tags named 2.0-BETA.

The C++ implementation of EPICS V4 is in 2.0-BETA/EPICSv4-2.0-BETA.tar.gz
The Java implementation of EPICS V4 is in
2.0-BETA/EPICSv4-Java-2.0-BETA.tar.gz "Marchtest" for internal review only.

See the document "Getting Started with EPICS V4," 
http://epics-pvdata.sourceforge.net/gettingStarted.html

FILES FOR EPICS V4 C++ IMPLEMENTATION 
-------------------------------------
The file EPICSv4-2.0-BETA.tar.gz includes all (and only) the C++
implementation of EPICS V4, plus a make system based on EPICS V3's
makefiles. This is available under folder 2.0-BETA/. Build instructions
and example usage are given in [16].


MINIMUM FILES FOR EPICS V4 JAVA IMPLEMENTATION 
----------------------------------------------
The file EPICSv4-Java-2.0-BETA.tar.gz includes all (and only) the Java
implementation of EPICS V4. On Unix systems, the tar file might be 
unpacked with the command:
  % tar xvfz EPICSv4-Java-2.0-BETA.tar.gz

Specifically the tar includes the following JAR files, plus the source 
for some examples (in examplesJava/) plus necessary XML files and scripts.

pvAccess-2.0-BETA.jar *    The EPICS V4 "wire protocol" [6] [7]
pvData-2.0-BETA.jar *      The EPICS V4 support for high 
                               performance data interchange [8]
pvIOC-2.0-BETA.jar *       The EPICS V4 Input/Output Processor 
                               (IOC). I.e. the server side [9] 
exampleJava/               Examples of use of EPICS V4 Remote Procedure Calling
                           (a PV that takes arguments). 

Note that, for the beta 2 distribution, pvService is not longer distributed
and is deprecated. It is not included in the beta 2 jars or tar file.

(*) The specific version number may change following modification of
this README. 

See instructions in "Getting Started with EPICS V4" [16]. This 
includes both how to build the Java distribution from sources downloaded
from the Mercurial repositories at SourceForge, and the alternative of 
downloading the tar.gz.

EXAMPLES
--------
You can find examples in the various test/ subdirectories, and in
exampleJava [14] and exampleCPP directories.

FOR CONNECTING EPICS V4 to EPICS V3 IN C++
-------------------------------------------
See pvaSrv documentation [17], v3Channel section, for help
on connecting EPICS V3 records to EPICS V4.
 
FOR CONNECTING EPICS V4 to EPICS V3 IN JAVA
--------------------------------------------
The pvAccess server (part of pvAccess, above) allows an existing
Channel Access client to access a javaIOC database. The client allows
the javaIOC to communicate with a Version 3 server, i.e. a javaIOC
database can have links to records in a V3 IOC database. For these
functions you will need the following files:

These are available from the epics-pvdata SourceForge download site,
or you can get them from the references provided.

caj-1.1.8.jar        The native java Channel Access [5] library [3] 
jca-2.3.5.jar        The API for the Java code interaction with 
                     EPICS Channel Access [4]


USEFUL EXTERNAL SOFTWARE
------------------------
These are NOT available from the epics-pvdata SourceForge download
site.

1. oncrpc is an implementation of sun rpc which is required for VXI11
support. Find a JAR for it at
https://sourceforge.net/apps/trac/remotetea/wiki/WikiStart [10]. Our
pvIOC SNAPSHOT uses version 1.0.7.

2. For testing EPICS V4 it is very useful use the "SWTshell" GUI
application [11] that helps you interactively configure the EPICS V4
interface. For this you need to the swt.jar. To get it, you can eiher
install Eclipse and find swt*.jar in your eclipse install around
.../eclipse/plugins/org.eclipse.swt**.jar, or download it from
http://www.eclipse.org/swt/ [12].  See the EPICS V4 helloWorld example
service's runner script [13] for an example of including swt for Mac
OS Cocoa at runtime.

References
----------
[1] The EPICS V4 homepage, http://epics-pvdata.sourceforge.net
[2] EPICS homepage, http://www.aps.anl.gov/epics
[3] CAJ homepage, such as it is, http://epics-jca.sourceforge.net/caj/
[4] JCA homepage, http://epics-jca.sourceforge.net/jca/
[5] Channel Access Reference, 
http://www.aps.anl.gov/epics/base/R3-14/8-docs/CAref.html
[6] pvAccess Specification, 
http://epics-pvdata.sourceforge.net/pvAccess_Protocol_Specification.html
[7] pvAccess Java documentation,
 http://epics-pvdata.sourceforge.net/hgweb/pvAccessJava/raw-file/tip/documentation/pvAccessJava.html
[8] pvData Java documentation,
http://epics-pvdata.sourceforge.net/hgweb/pvDataJava/raw-file/tip/documentation/pvDataJava.html
[9] pvIOC Java documentation, 
http://epics-pvdata.sourceforge.net/hgweb/pvIOCJava/raw-file/tip/documentation/pvIOCJava.html
[10] RemoteTeo implementation of ONC/RPC, 
https://sourceforge.net/apps/trac/remotetea/wiki/WikiStart
[11] SWTShell for pvIOC, 
http://epics-pvdata.sourceforge.net/doc/pvIOCJava/swtshell.html
[12] SWT: Standard Widget Toolkit, http://www.eclipse.org/swt/
[13] helloWorld runtime setup script, 
http://epics-pvdata.sourceforge.net/hgweb/exampleJava/file/576e59c105e9/src/helloWorld/helloWorld_setup.bash
[14] exampleJava, examples of use of EPICS V4 java binding, 
http://epics-pvdata.sourceforge.net/hgweb/exampleJava/file/tip/src
[15] ChannelRPC facility javadoc in pvIOC, http://epics-pvdata.sourceforge.net/doc/pvIOCJava/rpcSupport.html
[16] Getting Started with EPICS V4, http://epics-pvdata.sourceforge.net/gettingStarted.html
[17] pvaSrv documentation, http://epics-pvdata.sourceforge.net/docbuild/pvaSrv/tip/documentation/pvaSrv.html
[18] exampleCPP, examples of use of EPICS V4 C++ binding, http://epics-pvdata.sourceforge.net/hgweb/exampleCPP/
[19] RELEASE_VERSIONS, http://sourceforge.net/p/epics-pvdata/pvDataWWW/ci/default/tree/scripts/RELEASE_VERSIONS
[20] EPICS V4 directoryService, http://www.epics2013.org/dms/EPICS2013/presentations/wednesday/Session_3/V4_Lange_ChannelFinder.pdf
[21] EPICS Channel Finder, http://channelfinder.sourceforge.net
[22] Mercurial Repos of EPICS V4, https://sourceforge.net/p/epics-pvdata/_list/hg
Source: README, updated 2013-10-24