Notes for IDL on VMS to access EPICS data at NSTX

The excerpt below is taken from Tom Gibney's handbook file (VMS_EPICS.MEM). 

1) For this VMS implementation the Channel Access server list is  hard-coded into the C shareable library.  For unix and Windows an environmental variable specifies the list. The only server included in this list at this time is the NSTX EPICS gateway. 

2) The EPICS PV names are case-sensitive.


 VMS_EPICS.MEM 20-Mar-2003
-------------

VMS access to EPICS works ok. The following IDL functions have
been implemented, emulating their description on web page:
http://www.aps.anl.gov/~cha/catcher/ezcaIDLRef.html

sts = caGet( pvname , dataBuf [,/STRING] [,MAX=maxCount] )
sts = caGetCountAndType( pvname , count , type )

Expected "sts" is zero.

The following functions still exist, but are superseded by "caGet":
epicsGetLong
epicsGetFloat
epicsGetString

The IDL functions are maintained in cvs: NSTX$:[UTIL.SOURCE.IDL_CVS.EPICS]

===========================================================

Examples:
IDL> sts=caGet()
Usage is: sts = caGet(pvname, dataBuf [,/STRING] [,MAX=n] )
Some example pvnames:
ck_currshotSEL (double !)
ck_DateTime_SI (string)
vm_plc31_ig205_CALC (double)
fw_echSts_MBBID (long)

IDL> sts=caGet('ck_currshotSEL',v) & help,v
V DOUBLE = 110301.00 ;Numeric Shotnumber
IDL> sts=caGet('ck_currshotSEL',v,/STR) & help,v
V STRING = '110301' ;String Shotnumber

IDL> sts=caGet('ck_DateTime_SI',v) & help,v
V STRING = '03/21/03 11:52:26'

IDL> sts=caGet('vm_plc31_ig205_CALC',v) & help,v
V DOUBLE = 1.4588143e-07

IDL> sts=caGet('fw_echSts_MBBID',v) & help,v
V LONG = 33

=============================================

The shared library which contains the EPICS functions is
SYS$SHARE:CAUTILSHR.EXE

This shared library provides C-language functions which can
be called by user-written code. Among these functions are:
ezcaGet
ezcaGetIEEE

Calling "ezcaGet" is described in the EPICS documentation. It returns
floating point values in the default VMS formats.
"ezcaGetIEEE" is just the same as "ezcaGet", but it returns floating
point values in IEEE format, as required by IDL.

=============================================

Building CAUTILSHR:
Refer to: NSTX$:[EPICS.EPICS_VMS_SOURCE]README.MEM

Source code is in NSTX$:[EPICS.EPICS_VMS_SOURCE...].

! 25-Jan-05 PR/PS The CA server address is hard-coded into the C
! shareable library:
KEES$ sea NSTX$:[EPICS.EPICS_VMS_SOURCE.CHANNEL_ACCESS]envdata.c epics_ca_addr
epicsShareDef READONLY ENV_PARAM EPICS_CA_ADDR_LIST = { "EPICS_CA_ADDR_LIST", "1
98.35.15.132" };
&EPICS_CA_ADDR_LIST,
 

 


Page edited 27JAN2005  by Paul Sichta [psichta@pppl.gov]