EPICS Release base 3.14.0beta2

Aug 01 2002

Changes since beta1


Field UDF now has a promptgroup. This allows users to set UDF false via DCTs.


errlog no longer contains an atexit that calls errlogFlush. This did not work on all operating systems. cantProceed, iocsh, and ca_task_exit all call errlogFlush. Other applications may also have to call if before terminating.


mbboRecord now implements method cvt_dbaddr for the VAL field. If no state vales or state strings are defined then it sets field_type and dbr_field_type to DBF_USHORT.

timeStamp changes

Changes have been made to:

epicsTime.h now has the definitions:

#define epicsTimeEventBestTime -1
#define epicsTimeEventDeviceTime -2

These are values for the TSE field of dbCommon.

If the TSEL field refers to the TIME field of a record then recGblGetTimeStamp sets TIME equal to the time it gets from the record the TSEL references. This works for both database and channel access links. In this case field TSE is not used.


aiRecord and aoRecord: Setting eoff=egul

Instead of init_record executing code like

    if ((pai->linr == menuConvertLINEAR) && pdset->special_linconv) {
        pai->eoff = pai->egul;

It now executes:

    if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
        pai->eoff = pai->egul;

aoRecord has a similar change

This was done so that old device support which does not implement special_linconv still works.

CA puts to disabled record

If a CA client issues a put to a disabled record then, when the record is ena bled, database puts to the record will not make the record process until a CA pu t is again issued. This is fixed.

TPRO - trace processing

If dbProcess is called recursively by different tasks, it did not properly handle TPRO. Consider the following database:

record(ao,"mrkao") {
    field(OUT,"mrkai CA")
record(ai,"mrkai") {

If a channel access put is sent to mrkao, no message is issued when mrkai is processed.

This is now fixed.


If in your st.cmd file you issue the command.


And set the TSE field of any record to a non zero value, then a crash will occur when recGblGetTimeStamp is called.

This is now fixed.


nsev not sevr must be checked to decide if dbPutLink should be called.


Whenever a connection is made, a request to retrieve the control, display, and alarm linits and the precision and units is automatically issued. Previously this was only done if dbCaGetAttributes was called. This it is no longer necessary to call dbCaGetAttributes.


This now returns a non zero value if the result is nan (not a number).

Record Name Length

The size of the name field has been expanded from 29 to 61, i.e. record names can now have 60 characters.


initialProcess is now called before interruptAccept. This means that initial processing will be done before periodically scanned and I/O Inter scanned records start processing.


Casts have been removed that suppressed valuable error messages


All existing manipulations of UDF in process() are removed and udf is set FALSE when the raw value is successfully read.


In do_sel udf is not set false at the beginning. If selm has an invalid value recGblSetSevr(psel,SOFT_ALARM,MAJOR_ALARM) is called.

cdCommands file

Fixed a bug and revised the use of the IOCS_APPL_TOP setting in an application's /configure/CONFIG file (which specifies the path to as seen by the IOC) to apply the same modifications to all paths output in the cdCommands file.


All routines with Recdes of Fielddes in their name are obsolete and removed. A new routine dbDumpField replaces dbDumpFldDes.

Changes since alpha2

All changes for release 3.13.5 that also apply to 3.14 have been made.

devAiSoftRaw and devAoSoftRaw

A new state is defined for the LINR field. The name is "SLOPE", which allows any device type to be used with manual settings of the EOFF and ESLO fields. With this setting, the device support's special_linconv() routine is only called when LINR=LINEAR.

The RTEMS TFTP remote filesystem driver now supports a limited form of the chdir() system call. One restriction is that all pathnames passed to chdir() must end in a / character, so IOC shell commands to change directories must be given as

cd ../db/

EPICS Release base 3.14.0alpha2

Since the alpha1 release some major changes were made to the build system, to some of the libCom facilities, and to the iocsh facilities.

The unbundled version of the sequencer has been build and tested with this release. You must obtain a version of the sequencer that has been built against alpha2.

A verion of the HPlanGpib support has been built and tested with this release. Again you must obtain a version that builds with alpha2.

A new update to the Application Developer's Guide is available for this release.

Build changes

Converting alpha1 applications to alpha2

Build modifications in alpha2 require the following changes to existing R3.14 applications.


GNU compiler builds are now determined by the value of EPICS_HOST_ARCH and are no longer specified in CONFIG_SITE.  All references to the ANSI (ACC/GCC) and CPLUSPLUS (CCC/G++) macros have been removed.


Most of the library routines and files starting with the prefix osi have been changed to start with epics. Several also had major changes to their user interface. See the latest version of the Application Developer's Guide for details.

EPICS Release base 3.14.0alpha1 Notes

This is the first release of 3.14. This is the first release that supports iocCore on platforms besides vxWorks.

iocCore is now supported on the following platforms:

A new version of the Application Developers Guide is available. The following gives links to the new Application Developer's Guide and to RTEMS information.


Most of the Application Developer's Guide has only minor changes. The following are new.

It must be emphasized that this is an alpha release.

Building Applications