Files
cdev-1.7.2n/doc/html/releaseNotes1_4.html
2022-12-13 12:44:04 +01:00

919 lines
35 KiB
HTML
Executable File

<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
<head>
<title>CDEV Documentation</title>
</head>
<body bgcolor="#E0E0FF">
<body>
<! *************************** TABLE OF CONTENTS ****************************!>
<br><hr><br>
<table width=100%>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top align=center>
<!*** Start CLASS-TOC-TITLE ***!><font size=+3><strong>
Table of Contents
<!*** Finish CLASS-TOC-TITLE ***!></p></strong></font>
</td></tr>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<table>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
1.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF1">Overview</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
2.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF2">Documentation</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
3.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF3">Installation</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
4.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF4">Changes from 1.1 Version</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
5.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF5">Changes from 1.3 Version</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
6.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF6">Problems and Restrictions (general)</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
7.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF7">Channel Access Service Features and Restrictions</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
8.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF8">Customizing for a New System</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
9.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF9">Planned Enhancements</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
10.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="releaseNotes1_4.html#TOCREF10">cdev Applications</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
</table>
</td></tr>
</table>
<! **************************** LIST OF FIGURES *****************************!>
<! ************************ FILE : ./releaseNotes1_4.mif *****************************!>
<br><hr><br>
<table width=100%>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<!*** Start TITLE ***!><font size=+8 color=Black><strong><em>
cdev 1.4 Release Notes
<!*** Finish TITLE ***!></p></strong></em></font>
</td></tr>
</table>
<br><hr><br>
<table width=100%>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
1.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF1">
Overview
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
The cdev (control device) C++ library is designed to provide a standard application
programming interface (API) to one or more underlying packages, typically control system
interfaces. The implementation is in 2 layers: the uppermost layer is used directly by an
application, and provides an abstraction of the underlying package as well as many general
purpose features. The second layer (service layer) provides the interface to one or more
underlying packages, and is implemented as loadable libraries.
</p>
cdev was initially developed at CEBAF with input from the EPICS collaboration, and is now
available for anyone to take and use or improve. We welcome all comments, suggestions, bug
reports, and (especially) bug fixes, including fixes for new platforms. There are many planned
enhancements, and would welcome volunteers to contribute to this project. See below for a
summary of new and planned features.
</p>
You may join a cdev discussion list by sending the message
</p>
subscribe cdev
</p>
to the address mailserv@cebaf.gov. (Send the message HELP to the same address for
information on how to use the mail server.) The cdev web page is
</p>
http://www.cebaf.gov/cdev/
</p>
cdev 1.4 is the third publically released version of cdev.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
2.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF2">
Documentation
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
The documentation for cdev includes the following:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<em>Introduction to cdev</em> -- this is an update of <em>The cdev User's Guide</em>, complete with more
examples. It covers all the basics, and is the best place to start.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<em>A cdev Tutorial</em> -- this document goes through how to use each of the classes in cdev,
including all public methods; extensive examples are given.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<em>cdev Reference Manual</em> -- documents each class in cdev in alphabetical order
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<em>cdev Administrator's Guide</em> -- this is for system administrators, and those intending to
port cdev to new platforms
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<em>Service Developer's Guide </em>-- this documents a couple of additional classes needed to
create a custom service, and goes through a lengthly example demoService.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<em>cdev C Binding</em> -- documents the C wrapper routines for cdev
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
</table>
<!*** Start BODY ***!><font size=+1 color=Black>
This documentation is also available on the web site.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
3.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF3">
Installation
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
Sources are available in compressed tar format, and contain makefiles to build the libraries and
utilities. These have been tested on the HP, SunOS, and SGI platforms to execute correctly, and
SLAC has ported this version to VAX/VMS. Fixes have also been incorporated from an earlier
port to IBM/AIX (at CERN). As configured, cdev will build support for the EPICS channel
access service.
</p>
The Makefiles have been extensively reworked since the 1.1 release, and should build
successfully on more platforms.
</p>
For further information, see the README file in the topmost directory, and the <em>cdev
Administrator's Guide</em> in the /doc sub-directory.
</p>
Support for site specific control systems must be added by the implementer. See the <em>Service
Developer's Guide</em> for help in getting started interfacing cdev to a new control system. In
addition, there are a number of example services included with this release.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
4.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF4">
Changes from 1.1 Version
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
A number of changes have been made to make the source code compile correctly on a larger
variety of compilers, including VAX C++ and g++. In addition, cdev now produces more error
and warning messages through its error logging routines. The following is a list of the more
visible feature changes:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
1.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The C binding is included in the release (previously released as an add-on to 1.1).
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
2.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The device definitions (ddl file) may now be stored and loaded in a binary format, which
is about 20 times faster to load compared to the ascii format. A new utility program,
cddl, compiles the ddl from ascii to binary. At run-time, the file format of the ddl file is
detected automatically so that either ascii or binary may be used.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
3.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Shared objects are now loaded from a subdirectory of the directory pointed to by
CDEVSHOBJ, where the subdirectory name is the name of the version of cdev against
which the application is running. This makes it possible to run different applications
against different versions of cdev. If the subdirectory does not contain the needed object,
it is loaded from CDEVSHOBJ as before.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
4.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
cdevFdChangedCallback added to cdevSystem, allowing an application to be notified
when file descriptors are opened or closed by cdev services.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
5.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
cdevData now supports a cast to char* as well as operator= overloading.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
6.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
cdevGroup now supports a deferred execution / re-execution mode: if a group is in this
mode, operations are remembered but not executed. Saved operations may later be
executed as a group, and re-executed without re-learning. Only asynchronous operations
are remembered.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
7.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
A few bugs in the channel access service have been fixed. Monitoring of status without
monitoring value now works correctly.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
8.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The cdev/src directory now contains an extensions sub-directory. Extensions include the
tcl interface, and the ACE (Adaptive Communication Environment) based client/server
package used for building new cdev servers and services capable of passing entire
cdevData objects over the network.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
9.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The cdev/examples directory now contains 2 additional example services, one
implementing compound cdev devices, and the other (demoService) is a trivial service
useful as a starting point for read/write services.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
5.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF5">
Changes from 1.3 Version
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
Several minor changes have been introduced to the system in order to improve performance for
existing operations.
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
1.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The <em>operator ==</em> and <em>operator !=</em> methods whave been added to the cdevData class.
These methods allow the caller to perform a deep comparison of the contents of two
cdevData objects.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
2.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
A <em>cdevTagTableCallback</em> class has been added to the cdevTagTable.h file. This class has
a pure virtual callback method that (when registered with the <em>cdevData</em> class) will
receive a callback each time a new tag is added to the cdev global tag table.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
3.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The <em>addTagCallback</em> method has been added to the <em>cdevData</em> class. This method is used
by the caller to install a <em>cdevTagTableCallback</em> object that will be executed each time a
new tag is added to the global tag table.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
4.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The <em>delTagCallback </em>method has been added to the <em>cdevData</em> class. This method
removes a <em>cdevTagTableCallback</em> object that was previously installed using the
<em>cdevData::addTagCallback</em> method.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
5.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The <em>readTagTable</em> method has been added to the<em> cdevData </em>class. This method allows
the caller to retrieve a list of integer tags and their corresponding character strings that
are stored in the global tag table.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
6.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
The <em>CDEVTAGTABLE </em>environment variable is used to indicate the location of a file
based list of tags that will be automatically loaded when a cdev application is started. If
the variable is not specified the application will attempt to load the list from <em>/usr/local/
lib/cdevTagTable</em>. If this file does not exist, then the default list of tags will be used.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
7.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Channel Access Service (caService) modified to call the callback function immediately
when a second monitor is installed on an channel that is already monitored.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
6.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF6">
Problems and Restrictions (general)
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
Restrictions:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
cdev is not yet thread safe, and may not be safe against instantiating more that one
cdevSystem object.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
7.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF7">
Channel Access Service Features and Restrictions
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
EPICS / Channel Access version 3.12 is recommended. The following comments from the 1.1
release still apply:
</p>
Major features:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
Supports synchronous and asynchronous send's.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
Fetches data in native type (type conversion done on client and not server).
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
Provides a default name service so that if a device is not defined, then an EPICS channel
access connection is attempted with the record name set equal to the device name, and
the field name set equal to the attribute name.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
</table>
<!*** Start BODY ***!><font size=+1 color=Black>
Restrictions:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
Only supports set/get/monitorOn/monitorOff verbs and the pv and readonly service data
tags. Support for arbitrary messages with default data has again been postponed.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
Discards all exception callbacks from channel access in this version.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
Channel access security is not supported in this release.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
sendCallback does not support the same timeout feature as send.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
caService fails if send is called from within a callback function (either asynchronous
methods are OK: sendNoBlock and sendCallback)
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
</table>
<!*** Start BODY ***!><font size=+1 color=Black>
Compilation options:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
_CA_SYNC_CONN = perform connections synchronously, waiting up to 4 seconds.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
_CDEV_DEBUG = print verbose messages
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
_EPICS_3_12 = if not defined, use 3.11 calls instead.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
8.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF8">
Customizing for a New System
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
To customize cdev for a new control system, a new cdev service must be written. Two services
are provided with the release: caService for EPICS channel access, and skService, a skeleton
service. The ca (channel access) service is a complex example of how to interact with a control
system which supports asychronous I/O. The skeleton service simply shows the minimal
interface a service must provide, and can be used as a starting point for building a new service.
A third example is contained in the Service Developer's Guide, and is intermediate in
complexity.
</p>
Still Planned:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
<img src="bullet.jpg">
<!*** Finish LISTBULLET1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
a simple service for which you need only provide synchronous read and write routines.
This will speed up integrating a simple synchronous RPC or memory image based
system.
<!*** Finish LISTBULLET1 ***!></p></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
9.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF9">
Planned Enhancements
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
There are many enhancements planned for cdev, and releases will probably come out every 3
months for a while. The following is a list of topics planned for summer of 1996. Work on all
of these topics is underway.
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
1.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Collection devices. Created dynamically or statically, each device would contain a list
of other devices. Messages would be repeated to all contained devices, and read results
would be collected together and returned to the caller as a vector. Implementation will
support passing the list down to the service instead of iterating in the cdev layer so that
list based services (such as SLAC's) can optimize performance.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
2.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Service + Server based upon passing cdevData objects between client and server. This
allows complex query/reply type operations. A prototype is already in operation at
CEBAF, although the protocol is likely to change somewhat.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
3.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Virtual device wrapper around the correlation measurement engine (see below).
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
</table>
<!*** Start BODY ***!><font size=+1 color=Black>
The following list has been put on the back burner, but still of interest:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
4.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
&quot;Multiknob&quot; devices. Write operations would be applied to a vector of devices with
weighting factors which may be constant, or a simple functional form, or derived by a
call to another process. Intended for tuning machines.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
5.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Indirect devices. The name of the actual device can be changed on the fly, and all
connections to the old device will be automatically dropped and new connections
established. Useful for changing generic displays from one device to another.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
6.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
tcl devices. Devices implemented as tcl scripts, which may call other cdev devices (or
anything else).
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
7.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Connection to an object oriented database.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
10.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF10">
cdev Applications
</a> <!*** Finish HEADING1 ***!></p></strong></font>
<!*** Start BODY ***!><font size=+1 color=Black>
The following applications are available as cdev extensions from CEBAF:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
1.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Correlation package, modeled after SLAC's correlation plot utility. Consists of a
correlation engine class library plus an application (XACT) which uses it.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
2.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Multiknob utility (like #4 above, with a GUI interface). This is based upon a prototype
of multiknob devices, and is configured by ascii files.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
</table>
<!*** Start BODY ***!><font size=+1 color=Black>
Finally, the following EPICS tools will be ported to cdev or re-written using cdev in the next
12 months (ports to be distributed with EPICS, not cdev, due to licensing constraints):
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
1.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Alarm Handler (specialized GUI tool). Porting now underway at APS.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
2.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
General operator interface (GUI), either dm or medm or both.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
3.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Archiver (new, to be distributed with cdev).
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
4.
<!*** Finish LISTNUMBER1 ***!></p></font>
</td>
<td valign=top>
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
Save / Restore tool (ditto).
<!*** Finish LISTNUMBER1 ***!></p></font>
</td></tr>
</table>
<!*** Start BODY ***!><font size=+1 color=Black>
Other applications will soon become available from other sites, and the most current
information will be available from the cdev web site, http://www.cebaf.gov/cdev.
</p>
<!*** Finish BODY ***!></p></font>
</td></tr>
</table>
</body>