CDEV Home Page

CDEV (Common DEVice) is a C++ and Java framework for developing portable control applications.
More about CDEV

News: Oct.22, 2001

News: Nov 6, 2000

News: Jul 17, 2000

News: April 7, 2000

Version 1.7.2 of CDEV fixes some communication deficiencies that existed in previous versions. The most significant of these is the modification to the CDEV Generic Server code that greatly increases the speed of synchronous communications between a client and server. The rate of synchronous messages has been increased from less than 100 roundtrips/second to over 1600 roundtrips/second.

Quick Links:

Old news:


CDEV (Common DEVice) is a standard application programming interface (API) to one or more underlying packages, typically control system interfaces. It provides a generic abstraction of these various systems, plus a number of features not provided by most control systems.

An evolving standard...

CDEV has been proposed as a standard interface to accelerator control systems, and has been adopted as such by Jefferson Lab, is in use at BESSY (Berlin) and at BNL for both AGS and RHIC controls, and is being evaluated at a number of sites including SLAC and CERN. The Java implementation of CDEV (version 2) is being jointly developed with CERN.

CDEV was initially developed at Thomas Jefferson National Accelerator Facility (Jefferson Lab) in collaboration with the EPICS community, and is now freely available. We welcome all comments, suggestions, bug reports, and (especially) bug fixes. There are many planned enhancements, and we welcome volunteers to contribute to this project. See the release notes for a summary of planned features.


The C++ implementation is in 2 layers: the uppermost layer is used directly by applications, 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 optional loadable libraries, one per package. This is the layer which interfaces to the site specific control system.

The Java implementation currently connects to a C++ gateway included in the distribution, and is now being upgraded to also allow a site specific I/O service other than the gateway.

Interfaces currently exist for channel access (EPICS), RHIC and AGS (BNL) controls, CERN vacuum controls, plus a number of application specific servers (such at the Jlab accelerator model server, BPM server, and others). SLAC and CERN/PS have implemented partial interfaces to their control systems for evaluation purposes. Interfaces to other control systems are in development.

Jefferson Lab has also implemented a CDEV interface to CODA a physics data acquisition system, allowing a CDEV application to observe the accelerator, control the detector (slow controls), and control the data acquisition system through a single API.

For further information, see the ICALEPCS 95 invited talk by Jie Chen.

CDEV applications at Jefferson Lab

The controls group at Jefferson Lab has converted a number of EPICS applications to use CDEV (allowing them to communicate with non-EPICS servers). This list currently includes:
In addition, a number of new general purpose applications have been written: Finally, Jefferson Lab has written a number of accelerator specific applications using CDEV networking components: Jefferson Lab is currently the largest testbed for CDEV, with a control system of over 40,000 I/O points.

If you have CDEV applications you would like to advertise, please contact the page maintainer given below.

Obtaining CDEV


CDEV is available by anonymous ftp from in the directory pub/cdev/. Sources are available in tar format, and documentation may be fetched separately as postscript files. Files are named by version, and multiple versions may be available.

A TCL interface to CDEV is available from Johannes Van Zeijts at TCL-CDEV .

Download Java CDEV

Comments and requests to add web pointers to other CDEV sites to:
Chip Watson's home page