EPICS Release base 3.14.0beta2
MMM DD 2002
Changes since beta1
recGblGetTimeStamp
If TSE is -1 then recGblGetTimeStamp does not retrieve time. This allows device/driver support to set the time.
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
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")
field(TPRO,"1")
}
record(ai,"mrkai") {
field(TPRO,"1")
}
If a channel access put is sent to mrkao, no message is issued when mrkai
is processed.
This is now fixed.
TSconfigure
If in your st.cmd file you issue the command.
TSconfigure(0,0,0,0,0,0,1)
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.
calcoutRecord
nsev not sevr must be checked to decide if dbPutLink should be called.
dbCa
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.
calcPerform
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.
iocInit
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.
ellLib
Casts have been removed that suppressed valuable error messages
mbbiRecord
All existing manipulations of UDF in process() are removed and udf is set
FALSE when the raw value is successfully read.
selRecord
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.
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
- Operating system independant builds are now done in an O.Common
subdirectory and then installed instead of being performed directly in an
install directory.
- Build definition names (e.g. RECTYPES, MENUS, DBDNAME, and BPTS) have
been changed to specify the name of the file to be created and installed
instead of the source file name.
- All db and dbd related definitions and rules have been moved into
base/configure/RULES.Db file. The rules now allow multiple dbd files and
registerRecordDeviceDriver files to be created in a single Makefile.
- "gnumake depends" no longer depends on a complete buildInstall.
Converting alpha1 applications to alpha2
Build modifications in alpha2 require the following changes to existing R3.14
applications.
- Remove the now unused RULES files
./configure/RULES.Db
./configure/RULES.registerRecordDeviceDriver
- Delete the following line in ./configure/RULES
include $(TOP)/configure/RULES.registerRecordDeviceDriver
- In <top>/configure/Makefile change
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(T_A) $@ $(TOP)
to
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(EPICS_HOST_ARCH) $(T_A) $@
$(TOP)
and add the line
to the bottom of the Makefile.
- In all *App/*Db/Makefileschange
include $(TOP)/configure/RULES.Db
to
include $(TOP)/configure/RULES
- In all *App/src/Makefile files
change DBDNAME = <name>App to DBD += <name>
and remove the line
DBDEXPAND = <name>Include.dbd
NOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you
should make these same changes in that *Db dirctory.
- In all *App/src/Makefile Makefiles
change RECTYPES=<name>.h to DBDINC+=<name>
change MENUS=<name>.h to DBDINC+=<name>
change BPTS to DBD
change INSTALLDB to DB
change DBDINSTALL to DBD
- In all example *App/src/Makefile files change
example_SRCS_DEFAULT += registerRecordDeviceDriver.c
to
example_SRCS_DEFAULT += <name>_registerRecordDeviceDriver.cpp
where <name> is the base name of a <name>.dbd file which was
created from a <name>Include.dbd file and which will be loaded in a
st.cmd or stcmd.host script (e.g. example).
- In ./iocBoot/ioc<name>/st.cmd files change
dbLoadDatabase("dbd/exampleApp.dbd")
to
dbLoadDatabase("dbd/example.dbd")
- In <top>/iocBoot/ioc<name>/stcmd.host files change
dbLoadDatabase("../../dbd/exampleApp.dbd",0,0)
to
dbLoadDatabase("../../dbd/example.dbd",0,0)
EPICS_HOST_ARCH changes
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.
libCom
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:
- vxWorks
Tornado II is required.
An open source real time operating system. It has been tested on MVME167
and MC68360 processors. RTEMS also supports powerPC.
Has been tested on solaris 2.6 and solaris 8 with Sun workshop 6.0 (C++
5.2). Sun workshop 5.0 (C++ 5.0) will not compile this version of EPICS.
Has been tested on Redhat x86 platforms.
Testing has been done with visual C++ 6.0.
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.
http://www.aps.anl.gov/epics/modules/base/R3-14.php
Most of the Application Developer's Guide has only minor changes. The
following are new.
- Chapter 2 describes the new features for 3.14.
- Chapter 4 describes the build facility for 3.14
- Chapters 19 and 20 describe libCom, which was not previously
documented.
It must be emphasized that this is an alpha release.
- Please don't use it for existing operational systems
- Don't build your operational CA clients with it.
- The APIs for new components in libCom are still evolving so if you use
them be prepared for changes.
- HPUX - No support currently because we could not find good support for
multithreading.
Building Applications
- For new applications see Chapters 2 (New Features) and Chapter 4 (Build
Facility) of the Application Developer's Guide.
- For existing applications the old config rules are still supported.
Some changes, however, are needed. Documentation is being prepared and
will appear in these release notes sooon.