From 409986c69d403fda3811b738923892a38e6812ef Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Thu, 12 Oct 2000 14:49:08 +0000 Subject: [PATCH] for 3.14.0alpha1 --- RELEASE_NOTES.html | 1452 ++------------------------------------------ 1 file changed, 36 insertions(+), 1416 deletions(-) diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html index 694ec8cb9..33b08e0fb 100644 --- a/RELEASE_NOTES.html +++ b/RELEASE_NOTES.html @@ -2,1434 +2,54 @@ - - EPICS Release baseR3.13.0.beta12 + <meta name="GENERATOR" content="Mozilla/4.72 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]"> + <title>EPICS Release baseR3.14

-EPICS Release baseR3.13.1

- -

-November 20, 1998

- -

-Changes since 3.13.1

-dbStaticLib -

The DTYP field is always written. The NoRun version now keeps record -instances keeps all records of each type in alphabetical order. -

breakpoint tables -

Tables names were previously forced to be alphanumeric. This restriction -is removed. -

dbNotify -

If  dbPutNotify called dbProcess and dbProcess returned an error -the notify completion callback was called twice. This bug is fixed. -

drvBB232 -

This support was defining storage twice. A bug in the current gcc compiler -supplied with tornado does not properl;y compile such code. The extra definitions -are removed. -

aiRecord and aoRecord -

eoff was not being reinitialized when conversion related fields were -dynamically modified. -

mbbiDirectRecord -

When just the record's severity changed, only monitors on the VAL fields -were posted, no monitors on the single bit fields. -
  -

-Changes between beta12 and 3.13.1

-iocLogClient -

If either of the environment variables EPICS_IOC_LOG_PORT or EPICS_IOC_LOG_INET -are not defined then iocLogDisable is set true, i.e. logging is disabled. -Also in the epics base distribution EPICS_IOC_LOG_FILE_NAME and EPICS_IOC_LOG_INET -are set to null. -

dbCaGetTimeStamp -

This is a new routine for database channel access links. -

drvTS -

The routine TSsetClockFromUnix was made global. Calling it forces a -resynchronization with a host time server. This is useful to -
force a master timing ioc to resynchronize. -

Several bugs were fixed. Previously async clients did not sync properly -with a master timing ioc. Also if an async client syncing with a unix/ntp -server got out of sync by > 1 sec then it could get out of sync by 1 to -20 seconds for an indeterminate period of time. -

task_params.h -

Task priorities were changed so that no epics task  has higher -priority than netTask. Definitions for IOEVENTSCAN and TIMESTAMP were removed. -

histogram record -

Added new field PREC for display of double and float fields ULIM, LLIM, -SDEL, SVAL, SGNL, and WDTH. Added unsigned long fields HOPR and LOPR for -display of VAL array counts.  Changed SDEL field from SPC_NOMOD to -SPC_RESET to allow start and stop of the watch dog timer. -

Sequencer -

The lex definitions have been changed so that definitions like -

#define ERRVALUE  9.90E+09
- -


are accepted. -

Initial values for static variables are now honored. Previously the -syntax was permitted but the initial value was ignored. Note that -initial values will give a compilation error if the "recursive" option -is used because the assignments are within the body of a struct {} definition; -it seemed worthwhile supporting the syntax for the non-recursive case. -

devMbbiDirectSoftRaw, devMbbiSoftRaw, devMbboDirectSoftRaw, devMbboSoftRaw -
  -

SHFT was made a prompt field and also modifiable.  The -VAL field of mbboDirectRecord is now modifiable. -

If the fields NOBT and SHFT are given values then this device support -will honor the MASK and SHFT fields just like hardware device support. -To keep compatibilty with old databases, if NOBT is 0 during init_record, -mask is set to the value 0xffffffff. Thus old databases will act like previously -unless -the nobt field was set to a non-zero value. -

calcoutRecord -

No longer calls dbScanLock until interruptAccept is true. -

breakpoint tables -

Entering negative values failed. This bug is fixed. -

dbl("<record type>","<output file>","<field list>") -

The vxWorks console command dbl now allows an additional argument, which -is a list of field names. -

For example -

iocexample> dbl "ai",0,"DESC SCAN" -
mrk:aiExample,"Analog input","Passive" -
mrk:aiExample1,"Analog input No. 1","Passive" -
mrk:aiExample2,"Analog input No. 2","Passive" -
mrk:aiExample3,"Analog input No. 3","Passive" -
  -

-June 15, 1998

-All major functionality that will be in R3.13 is now in place. It has been -build on solaris, sunos, HPUX, alpha, SG, and winXX. This release is still -called a beta release but will become 3.13.1 as soon as it has been used -on a few production systems (bug fixes will be made if necessary) -

The Application Developer's Guide is a major revision of the 3.12 edition. -The latest version is for beta12 base release.  It is available in -pdf (adobe acrobat reader) and in postscript. The pdf format is nice for -online viewing and postscript for generating a hard copy. -

LANL has a revision of the Record Reference Manual available. See the -LANL EPICS documentation. -

The document "EPICS -IOC Applications: Building and Source/Release Control" provides guidlines -for developing applications with 3.13. -

-Changes between beta11 and beta12

- -

-IOC Applications: Building

-The following explains changes that need to be made to existing applications -that followed the EPICS -IOC Applications: Building and Source/Release Control. guidelines. -See the new version of this manual for details. -

Before switching applications to beta12 it is STRONGLY recommended -that you execute: -

-
cd <top>
-gnumake clean uninstall
-
- -

-Changes to <top>/config:

-  -
-CONFIG_APP
- -
-Remove the following lines:
- -
-
-
ifndef T_A
-T_A = $(HOST_ARCH)
-endif #ifndef T_A
-
-
- -
-RELEASE
- -
-If desired add a definition for TEMPLATE_TOP
- -
-RULES_TOP RULES.Db RULES.ioc RULES.iocBoot
- -
-These no longer exists in base.  Replace your version with the version -from:
- -
-
-
<base>/templates/makeBaseApp/top/config
-
-
- -
-RULES_TOP
- -
-Remove the rules for creating soft  links.
- -
-makeDbDepends.pl, makeIocCdCommands.pl, replaceVAR.pl
- -
-Copy the versions from  <base>/templates/makeBaseApp/top/config
- -
-makeSoftLinks
- -
-Remove this file
- -
  -

-Changes to xxxApp/src

-Move the following definitions from Makefile.Vx to Makefile.Host: -
-
USER_DBDFLAGS
-RECTYPES
-DBDEXPAND
-DBDNAME
-MENUS
-
- -

-Changes to xxxApp/Db

-Rules for DBFROMTEMPLATE and INDDBFROMTEMPLATE no longer exist. See the -new documentation of makeBaseApp for details of what the make rules are -for databases. -

-Changes to iocBoot and iocBoot/iocxxx

-iocBoot no longer needs a generated nfs.cmd file -

iocBoot/iocxxx no longer contains soft links. Instead the following -is done: +EPICS Release base 3.14.0alpha1 +This is the first release of 3.14. The primary purpose of this release +is supporting iocCore on platforms besides vxWorks. +

iocCore is now supported on the following platforms:

+A new version of the Application Developers Guide is available. See +

http://www.aps.anl.gov/epics/modules/base/R3-14.php +

This page has links for the App Dev Guide and also a link to learn more +about RTEMS. In the Application Developer's Guide read Chapter 2, which +describes the new eatures for 3.14. +

It must be emphasized that this is an alpha release. +

-

-aoRecord

-This did not work properly if DOL  is a channel access link that fails. -

-Semaphores

-Most locking semaphores have been changed from semBCreate to semMCreate -with the options : -
SEM_DELETE_SAFE|SEM_INVERSION_SAFE|SEM_Q_PRIORITY -

A performance test showed that executing -

-
    semTake(sem,WAIT_FOREVER);
-    semGive(bsem);
-
-in a 25MHZ mv167 took  (4.4 ,7.8) microseonds when (semBCreate,semMCreate) -was used. The extra options as well as allowing a task to lock recursively -are worth the difference in performance. -

-Task Priorities

-The priority of the channel access client for database links was changed -from 100 to 68, which makes it lower than all scan tasks but higher than -the sequencer or any channel access tasks. -

-cvtDoubleToString

-This was changed to print numbers with precision<=8 and magnitude <1e16 -in fixed format with up to 3 digits after the decimal point. As an example -if PREC=1 and a number is 363000000.1 previously it was convetred to -

363000000 -

Now it is converted to -

363000000.1 -

All you RF folks can cheer. -

-Access Security

-Previously it was possible to crash an IOC if access security was restarted -after iocInit. This is now fixed. Two major changes were made. -
    -
  1. -asCaTask is no longer deleted and restarted. Instead it just clears all -channels and than adds the new channels
  2. - -
  3. -The locking mechanism was changed and made more roibust and easier to understand.
  4. - -
  5. -Fixed bug that caused asRegisterClientCallback to fail on UNIX.
  6. - -
  7. -asLib_lex.l changed to allow more characters(like dbLoadxxx)
  8. - -
  9. -Fixed bug that could cause deadlock when an ASG field is changed at run -time.
  10. -
-Access Security now supports macro substitutions. A new vxWorks shell command -is: -
  - -See the Application developer's Guide for details about access security. -

-tsdefs.h and tsSubr.c

-tsTextToStamp and tsTimeTextToStamp no longer modify the pointer or the -string referenced by pText. -

The nextField routines used by tsSubr were moved inside tsSubr.c  -and made static routines. -

-drvTS

-Checked for Y2K complience. It turns out it was even ok when NTP time overflows -in 2036. However it was modified so that no overflows should occur while -converting between NTP, UNIX, and EPICS epochs. In addition the conversion -of fractions of a second to nanaoseconds was changed and formatting was -changed so that interesting code does not run off right side of page. Hopefully -EPICS base is now fine for Y2K. In fact it should be fine (as far as time -is converned) until the Unix epoch overflows a 32 unsigned integer in the -year 2106. -
  -

-nextFieldSubr.c

-Removed from base. -

-vxWorks

-Base now builds with either vxWorks 5.2 or vxWorks 5.3. The default is -to build vxWorks 5.3. In CONFIG_COMMON a new definition "VX_IS_TORNADO -= 1" is present. If this statemant is commented out then vxWorks 5.2 is -assumed. -

-makeBaseApp

-Only the perl version is now supported. Due to encouragement from Rozelle -Wright (LANL) and the developers at BESSY, makeBaseApp now uses template -files instead of being one huge ugly perl script.  Ralph Lange (BESSY) -made major changes to makeBaseApp. It supports two sets of templates provided -with base (simple and example) as well as templates stored elsewhere. Thus -each site can add new sets of template files. -

See the new WWW documentation on Application Source Release for details -

-dbStaticLib

-The include path now supports the unix convention that an empty directory -name means the current directory. Thus the following are OK -
-I nnn::mmm    # Current directory is between nnn and mmm
--I :nnn        # Current directory is first
--I nnn:        # Current directory is last
-The lex grammer was changed so that quoted strings can contain any ascii -character except a quote. A quote itself can be given as the escape sequence -\". This same change was made to dbLoadRecords and dbLoadTemplates. -

For all fields in a .db file, a non null string is considered as not -the default. -

For winNT the path seperator is a ; -

Field attributes (psuedo fields) are now supported. In particular RTYP -(record type) and VERS (version) are now supported. In addition a new request -type DBR_CLASS is supported. See Application Developer's guide for details. -

-Runtime database access

- - - -

-base.dbd

- - - -

-initHooks

-Changed to support initHookRegister. See Application Developer's Guide -for details. The 3.13.0beta11 version explains the new method. Note that -to use the new the startup file must contain the statement: - -If you have your own version of initHooks.c it should be changed to support -the new features. At a minumum the statement -
  - -must be changed to -
  -
    void initHooks( initHookState state)
- -

-menuAlarmStat.dbd

-The no alarm string changed from "" to "NO_ALARM" -

-Linear Conversion for ai and ao records:

-Before beginning it should be stated that the previous linear conversion -method is still valid. -

The following, which is designed by Benjamin Franksen at BESSY, is now -the recommended method: -

A new field EOFF exists.  The new linear conversion algorithm is -now -

-AVAL is the raw value adjusted by ASLO and AOFF. -

Thus device support should now compute ESLO and EOFF instead of ESLO -and ROFF. -

For example let an ADC be a 16 bits adc with raw values between -32767 -and 32767. -

-NOTES: - - -

-RISC architectures

-Some changes were made to build on RISC architectures. A new include and -source file (adjustment.h and adjustment.c) were created to aid this support. -We can thank Peregrine McGehee for this new support. -

-errlog

-This is a replacement for the old code that implemented errMessage, errPrintf, -and epicsPrintf. It provides for multiple system wide error loggers. The -existing iocLog has been modified to use the new code. The new code supports -the old calls and adds some new calls. See Application Developer's guide  -for details. -
  -

-devABSLCDCM

-Changed Scl to Slc wherever this occured. Added support for signed 16 bit -analog values. Stephanie Allison (SLAC) made these changes. -
  -

-devMpc

-Removed from base. -

-devVXStats

-Major rewrite of this routine. It computes the cpu usage via a low priority -taks rather than using spy. It reports file descriptor usage rather than -tcp connections (this is what is actually measures). The format of the -INP ,and OUT fields has changed since the previous version.  The new -device definitions are: - -The INP fields now have the form - -The OUT fields now have the form - -The source file has comments showing a sample database. -

-devSymb

-This has been drastically changed. Look at <base>/src/dev/symbDev/README -for details. -

-CA Client Library

-Problems where 3.13.beta11 clients were unable to connect to 3.11 and receive -the correct native type have been fixed. The CPU is now consumed more efficently -by CA tasks waiting in select() under vxWorks. The client lib now detects -an IOC reboot when that reboot is faster that EPICS_CA_CONN_TMO. CA now -runs better on systems without local interface query capabilities (currently -only cygwin32). -

-C++ Channel Access Server - CAS

-The constructor for class casPV no longer requires a reference to the server. -For backward compatibility a reference to the server may still be supplied, -but it will not be used. The C++ Portable Channel Access Server Library -now builds on VMS. A really bad bug was fixed in the example directory -server when clients use PV names with ".xxxx" (a field name) in them. -

-Global Data Descriptor Class - GDD (only used by the C++ CA server)

-A bug occurring when the primitive type was changed to/from aitSting and -the constructor/destructor member functions for class aitString were not -run has been fixed. A bug occurring when class GDD changed the bounds on -the destination GDD has been fixed. A smart pointer class for GDD was added. -This class automatically maintains the GDD's reference count so that the -GDD will not be deleted until the last smart pointer class pointing to -it is deleted. Moving this responsibility to a class will greatly reduce -the probability of making a mistake in application code. -

-WIN32 (PC) Port of EPICS

-Winsock II is now required. This allows CA to properly execute EPICS_CA_ADDR_LIST=YES. -Windows NT 4.0 comes with Winsock II. A properly functioning Winsock II -for Windows 95 can be obtained form http://www.microsoft.com/windows95/info/ws2.htm. -Beware of buggy versions of Win95 Winsock II that are sometimes installed -by 3rd party products. A static (no EPICS DLLs) build of EPICS on WIN32 -is now supported. The EPICS CA repeater is now automatically started under -WIN32 if it isnt running. At Ken Evans' request GUI programs will this -release _not_ allocate a console for messages from EPICS libraries unless -base is compiled with host optimisation turned off (HOST_OPT=NO). If you -would like to see messages from EPICS base libraries when using an optimised -build, then start GUI programs from a DOS window. -

-EPICS Environment Variables that Include Host IP Addresses

-It is now possible to use DNS host names in addition to dotted IP addresses -in EPICS environment variables. All operating systems that have a DNS client -implementation should allow this. Currently only vxWorks does not, and -so if you would like to use real host names instead of dotted IP addresses -on vxWorks you must use the "hostAdd()" function to add host name / IP -address pairs from your system start-up script. For Example: hostAdd ("mercury_dirigible","100.20.30.40") -putenv ("EPICS_IOC_LOG_INET=mercury_dirigible") -

-GCC 2.8

-The host portions of EPICS now build correctly with GCC 2.8 -

-Changes between beta4 and beta11

- -

-Support for win95 and winNT

-Epics base now builds on windows platforms -

-GDD and Portable Channel Access Server

-The gdd library and the portable channel access server now build on all -platforms, except SGI and cygwin32, listed above. This also means that -C++ is supported on these platforms. -

-Application Developer's Guide

-The chapter "Building IOC Applications" is gone. It is replaced by the -document "EPICS IOC Applications, Building and Source/Release Control". -Other changes are minor. Following is a brief list: - -NOTE: The initHooks described in the appDevGuide is not in beta11. -In beta11 initHooks is the same as previous releases. The new version will -be in the next release. -
  -
  -

-Compiler warning messages:

-All of base except drv/old is now being built with - -Most warning messages have now been eliminated. The remaining messages -should not be removed without looking hard at code. -

-recSubArray

-get_control_double routine returned incorrect values for fields INDX and -NELM. -

-devAiStats

-This is now renamed devVXStats. The new device definitions are: -
device(ai,VME_IO,devAiVXStats,"VX stats")
-device(ao,VME_IO,devAoVXStats,"VX stats")
-Thus if an application has an old base.dbd and baseLIBOBJS including definitions -for this device support they must be modified. -

-SysMon device support

-This is removed from base. It is for APS designed and build VME create -system monitoring. The support code is available from APS if needed. NOTE: -In some beta releases baseLIBOBJS, had an include for devSysmon.o. Applications -using an old version of baseLIBOBJS will not build until this statement -is deleted. -

-dbToRecordtypeH

-The enums for menus had a comma after last item. -

-pulseTrainRecord

-recGblInitConstantLink for sgl was referencing wrong field. -

-gphLib

-This did not properly support multiple clients in multi-thread environment. -

-dbPvdLib

-Modified to be faster. -

-devMz8311

-Use maxCards from module_types.h instead of a #define -

-calcRecord

-Allow CALC to be 40 characters. Increase rpbuf from 184 to 200 -

-mbbiDirectRecord

-Add call to refresh_bits. -

-mbbxDirectRecord

-Bx becomes no prompt for mbbi and prompt for mbbo. It was the reverse before. -

-calcoutRecord

-A new record type that replaces old wait record. It is like a calc record -with an output and a delay. It makes the wait record obsolete. -

-dbAccess

-dbGetPdbAddrFromLink is a new routine. It returns NULL for all except LINK_DB -links, for which it returns the address of the associated DB_ADDR structure. -

-escape characters in database files

-dbLoadDatabase, dbLoadRecords, and dbLoadTemplate all allow the standard -C escape sequences in quoted strings. For example a string can contain: -"\x00 \27 \t" Thus these sequences pass though the lexical analyzer . -

-dbTranslateEscape

-A new routine in libCom. It is used to translate escape sequences. It is -defined in file epicsString.h. It typical place to use this is on parm -fields that contain escape sequences like "\x00 \27 \t". -

-Slow booting

-iocs with big databases were taking a long time to boot. It was discovered -that allocating and then freeing small amounts of memeory frequently resulted -in a VERY long memory free list. This is now fixed. -

-boRecord, mbboRecord

-init_record now initialized the RVAL field. -

-ProcessCallback

-Benjamin Franksen at BESSY reported a serious bug in the routine ProcessCallback -(not used in base). It has been fixed. -

-CALC fields

-postfix and calcPerform (used by calcRecord) have been changed so that -a 0 byte now ends the postfix expression. Also if postfix detects an illegal -expression it generates a 0 length postfix string. When calcPerform is -given a 0 length string it returns a error status. Thus calcRecord no longer -causes the IOC to crash if an illegal CALC fields is loaded. -

-Etc.

-Many other minor problems, bugs, etc. were fixed. -
-
-

-Notes for Release 3.13 of EPICS Base

- -
For Release 3.13 major changes have been made to EPICS base. The IOC -Application Developer's Guide has been extensively modified and now describes -release 3.13. If you are upgrading for a 3.12.xxx or earlier release you -must obtain and read the new App Dev Guide. -

In porting EPICS to multiple architectures, the previous method of using -utilities to convert the database definition files to a binary file (default.dctsdr) -caused problems. The problem is that the binary file is created on one -architecture and used on another. This has worked so far for sun4 and hp -hosts combined with motorola 68xxx processors. As support for more host -and more ioc architectures is developed problems are appearing. This paper -describes changes that solve the problems. -

Because the changes result in extensive changes to database access, -other changes are also made. The file syntax is changed. The internal database -structures are simplified and also changed to make it easier to support -runtime add/delete of record types and record instances. -

-Goals

- - - -

-Backward Compatibility

- - - -

-Incompatibilities

- - - -

-Overview of new database support

-EPICS defines a set of database file formats. In addition any of these -files can contain include statements. For each ioc, the application developer -will create a set of files specifying the record types, devices, and drivers -needed for that ioc. Normally a master file will be created which consists -of include statements that bring in record, device, and driver definitions. -Default configurations can be provided for new users or for particular -applications. -

Database configuration and utility tools access the database via the -static database access library. This library reads the files. It provides -routines for reading the information in the database and for creating and -modifying record instances. Database definition files can be read incrementally. -

Other database configuration tools (capfast, relational database systems, -object oriented databases, etc.) can also be used as long as they generate -record instances in the format described below. In this case, however, -it is still necessary to generate the other files because they are needed -by database access and for record and device support modules. -

Tools are provided that generate C code from the database files. Header -files are generated for menu and record type definitions. These header -files are used by record and device support. In addition the record type -definitions contain code which computes field offsets and sizes and record -sizes. This code is compiled by the same cross compiler that is used to -compile other ioc code. Thus cross platform compatibility is achieved. -

In order to initialize an ioc, all files needed by that ioc have to -be loaded. It is also necessary to load the record/device/driver support -modules. -

Everything is designed so that the following are possible: -

-An additional feature is that, for database configuration tools, record -instance numeric fields and menu fields are stored as character strings. -This solves the following problems. - -Another feature is is that it is now possible to distinguish link constants -with a value of 0 from links that have never been given a value. -

Other changes have been made while the opportunity was available. -

- -

-Database Definition File format

-Formats are defined for the following: - -See the Application Developer's Guide for details. -

The menu choices replace the existing global, record, and conversion -choices. The global and record choices are very similar and thus are easy -to combine. The method of handling the old conversion choices is described -below. That section also describes the breakpoint tables. -

The record type description format has been completely changed. It now -has a "real" syntax. It should be MUCH easier to generate new definitions. -

The device choice and driver support definitions are defined so that -it is easy to provide incremental definitions. -

The record instance format is an extension of the 3.12.beta13 and later -GDCT .db format. -

Path and include statements are supported. This provides a powerful -tool for combining definitions from many sources. The path is a unix style -path, i.e. a colon separated list of directory names. -

-default.dctsdr conversion tools

-NOTES - -The following tools are provided: - -For all utilities the required database definition files are generated -from a dctsdr file from a previous epics release. A dctsdr file can be -specified or else the utilities can be run in a directory which contains -default.dctsdr (or a soft link with that name). sdr2recordtype also requires -the header file generated by a previous epics release. -

-Conversions - replacement for DBF_CVTCHOICE

-Let's briefly review database conversion, i.e. the LINR field for ai and -ao records. -

The allowed conversions are: -

    -
  1. -None
  2. - -
  3. -Linear
  4. - -
  5. -Breakpoint Tables
  6. -
-The main complication results from the breakpoint tables. Previously EPICS -handled breakpoint tables as follows: -

The user prepares files in one of two formats: The first is just a list -of "raw value, eng units value". The second format is a file with a header -line followed by a table of raw data values that represent data at equally -spaced engineering unit values. In either case the ascii data is converted -to an internal binary format containing breakpoint tables. This data is -part of default.dctsdr. -

Here is how breakpoint table are now handled. -

-One other comment needs to be made about conversions. The Allen Bradley -device support for the IXE module uses the LINR field in a non standard -way. This was a mistake but compatibility must be maintained. Thus menuConvert -contains a lot of choices used only by the IXE device support. -

-Converting existing applications

- -

-Database Configuration Tools

- -
  • -DCT - Rather than making major changes to DCT, a TCL/TK replacement has -been written. The executable is named DCT313.
  • - -
  • -GDCT - A new version is provided that supports 3.13. The executable is -named GDCT313.
  • - -
  • -CAPFAST
  • - - - -

    -Application Source/Release Control

    -At the present time There are at least three Application Source/Release -Control Systems in active use. The old technique of having cat_ascii and -replace_ascii directories no longer work. In addition makesdr no longer -exists. The new system offers developers far more flexibility but it also -means that each Application Source/Release Control system has to be modified -to take advantage of the new capabilities. Again the changes in RULES and -makeBaseApp should make this task easier. -

    The document "EPICS -IOC Applications: Building and Source/Release Control" describes a -utility makeBaseApp which can be used for small applications. It also provides -guidlines that can be used for large applications. -

    -Locally developed Record/Device support

    - - - -

    -Record Instance Definitions

    - -

    -Convert to proper format

    -All record instances must be capable of being loaded into an ioc via dbLoadDatabase, -dbLoadRecords, or dbLoadTemplate. This is the same format that dbLoadRecords -and dbLoadTemplate used in 3.12 releases. Note that if any files contain -the statements: -
            database(x) { nowhere() {
    -        }
    -        }
    -
    -or
    -
    -        database(x) {
    -        }
    -These statements must be removed. They were in pre 3.12 releases. -

    -CONSTANT Links with value "0"

    -Release 3.13 is now capably of distingushing between a null link (a link -that is not given any value at all) and a constant link with the value -0. This cause problems for some old record instance files. For example -if a record instance is defined as: -
            record(fanout,name) {
    -                field(SELN,"1")
    -                field(SELL,"0")
    -        }
    -Such definitions can be fixed by either completly removing the link definition -or changing the value from "0" to "". -

    here is a complete list of record types and fields that may have this -problem: -

    -A good way to find these problems is to use grep. For example: -
            grep SELL */*.db
    -This assumes that you are in directory that contains subdirectorys containing -.db files. -

    -IOC Startup files

    -The command dbLoad is no longer supported. The new method is to issue one -or more dbLoadDatabase commands and any combination of dbLoadRecords and -dbLoadTemplate commands. -

    -Other Release Notes

    - -

    -IOC Test routines

    -Many changes have been made to the EPICS ioc test routines, i.e., routines -given to the vxWorks shell. Please read the chapter "IOC Test Facilities" -in the Application Developer's Guide for details. -

    -Changes to Record and Device Support

    - - - -

    -Make rules and config files

    -The config environment has been extensively changed. BASE now has its own -set of config files. Extensions will be able to use the base config files -(for the version of base it is built against) and add it's own definitions. -Changes to extensions will come at a future time. -

    -GNU C++ for base

    -It is now possible to compile 3.13 EPICS base with the gnu C and C++ compilers. -A C++ compiler that properly supports templates is required to build the -new ca server and the gdd library. -

    -log server

    -Thanks to William Lupton at KECK the log server will now (under the latest -EPICS 3.13) obtain a new directory for the log file in response to SIGHUP. -

    -CA repeater fix

    -Thanks to Kim Gillies, Bret Goodrich, and others at NOAO a problem has -been discovered and fixed in the 3.12 CA repeater under solaris. -

    -Portable CA server

    -A new CA server C++ class library is available. The server library is in -libcas.a. The API is described in casdef.h. Doc is in progress. An example -server tool can be found at base/src/cas/example. The server has been tested -under sunos4 and solaris. A multi-threaded version of the new server for -vxWorks is in progress. -

    -Macro Substitution Library

    -The macro substitution library discussed in tech-talk is now part of epics -base. Thus was contributed by Bill Lupton. The static database library -uses this library. dbLoadRecords and dvbLoadTemplate also use it. -

    -VXI Resource Manager fix

    -Thanks to Ric Claus of SLAC a bug has been isolated in the VXI resource -manager. -
    Symptom: correct slot isnt located when EPICS_VXI_LA_BASE is set to -something other than zero. -

    -Access Security

    -If asSetFile has been set in a startup file and access security initialization -fails, then iocInit returns -1 so that startup file does not finish. -

    -errPrintf

    -On Unix this now calls fprintf(stderr instead of printf -

    -iocLogClient.c

    -This now calls printf instead of epicsPrintf to prevent deadlocks. -

    -Native type for DBF_USHORT

    -Formerlly old database access, which does not have unsigned short called -the native type DBR_FLOAT. It now calls it DBF_LONG -

    -Allen Bradley Driver

    -Analog Output Block Transfers were being requested too frequently -

    If link_status command fails (3 times in succession) adapters are now -immediatly declared down. -

    For btRead and btWrite, The driver now enforces a timeout of 5 seconds -which is 1 second more than scanner itself enforces. This is so that if -scanner throws away a BT request it will still timeout. -

    For btRead and btWrite is is no longer permissible to issue a new btRead -or btWrite from tha callback routine. -

    The on line doc has the following two changes: -

    - -

    -vmic2534

    -Support has been added by LBL. It still needs to be ansified. -

    -New options for links

    - -
  • -FWDLINK
  • - -
    A forward link now works between IOCs but only if the field is PROC. -When recGblFwdLink is executed, a 1 is written. -
  • -OUTLINK new option CA (In addition to PP and NPP)
  • - -
    CA means always make it channel access link -
  • -INLINK new options CA CP CPP (In addition to PP and NPP)
  • - - -dbAccess (dbGetField dbPutField) make sure that link field strings are -not longer than 39 characters. They allow M for MS and N for NMS -

    -callback and scan task names

    -The task names have been changed to make them unique -

    -dbPutString

    -If the strlen of the new field is >= field_size an error is returned. -

    -event scanned records

    -Multiple priorities are now supported. -
    WARNING: Default PRIO is low thus old event scanned records may be -executed at a lower priority then previous release. -

    -Allen Bradley Stepper Motor Support (Ric Claus SLAC)

    -Support for the allen bradley stepper motor is available. See the APS EPICS -Hardware Support page for details. -

    -initHooks

    -INITHOOKafterCaLinkInit1 is replaced by INITHOOKafterCaLinkInit -
    INITHOOKafterCaLinkInit2 no longer exists - -

    -EPICS Base Release R3.14

    - -

    -IOC Log Server

    -The log server now finds the proper latest date in an old log file when it -restarts, and begins logging (overwriting old messages) just after the -newest message in the file. This causes the log server to overwrite only -the oldest message in the log file. Originally, the log server always started -at the end of of any preexisting log file when it restarted.