ezcaIDL User's Guide

Version 3.0

Mark Rivers
Center for Advanced Radiation Sources
University of Chicago
rivers@cars.uchicago.edu
September 27, 2001

Table of Contents

Overview

ezcaIDL is a library of routines for IDL and PV-WAVE which provides an interface to EPICS Channel Access through the EZCA and EzcaScan libraries.

PV-WAVE and IDL are closely related packages which are described as Data Visualization Tools. They consist of a general purpose interpreted language with very good graphics routines. Although not described as tools for data collection and control applications, their rapid prototyping capabilities and sophisticated graphics make them a nice environment for these applications. Both also provide easy to use widget toolkits for quickly developing GUI applications.

Although there is nearly a one-for-one match between the routines in ezcaIDL and the EZCA and EzcaScan libraries, the syntax of the IDL routines is not the same as the syntax of the corresponding EZCA and EzcaScan routines. The reason for this is that IDL is more "object oriented" and relieves the programmer of much of the detailed bookkeeping required of the C programmer. Thus for example, the IDL routine caGet() returns, by default, a value which has the native data type and element count of the process variable. This is not true of the corresponding C routine ezcaGet(), which requires the user to specify the data type and number of elements to be returned.

Release notes

Version 3.0 28-Sep-2001 

This was a signficant rewrite.

Procedures and Functions

PV-WAVE and IDL are similar to FORTRAN in that they have two types of routines, procedures and functions. Procedure are similar to FORTRAN subroutines: they do not return a value. Functions, as in C or FORTRAN, return a value. ezcaIDL uses functions for all EZCA routines which return either status or data. Procedures are used for routines which return void, i.e. neither data nor status. Procedure and function names are not case sensitive. Of course, the names of channel access process variables are case sensitive and must be specified correctly.

List of Routines by Functional Group

ezcaIDL consists of the following routines, grouped by functionality: