919 lines
35 KiB
HTML
Executable File
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>
|
|
"Multiknob" 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>
|