Releases: aquenos/ChimeraTK-ControlSystemAdapter-EPICS
Release 1.2.0
This is a feature release that introduces new functions and some improvements.
New features in this release:
- The
ChimeraTK::Bool
andChimeraTK::Void
data types are now supported. (b3c43c5)
Improvements in this release:
- The code is now compatible with EPICS Base 7.0.6. (61be676).
- The initial value possibly set by the device side is no longer overwritten with an uninitialized value during the initialization of the control-system adapter. (8878421)
- A bug that would sometimes cause the first write operation of an output record to fail has been fixed. (93b2ab0)
- The initialization logic has been improved, so that when Autosave is used and the record’s
PINI
field is set toYES
orRUNNING
, the first write happens with the value restored by Autosave instead of the initial (typically zero) value provided by the device side. (ecb22a2)
Release 1.1.0
This is a compatibility release that includes changes that are need in order to make the control-system adapter work with ChimeraTK DeviceAccess version 3.0.
Please note that this version of the EPICS control system adapter is not compatible with ChimeraTK DeviceAccess versions prior to 3.0 and that older versions of the EPICS adapter (version 1.0.0 and below) are not compatible with ChimeraTK DeviceAccess 3.0 (or newer).
Release 1.0.0
This release contains a number of bugfixes and new features.
Features:
- Process variables of types
int64
anduint64
and are now supported by both the ControlSystemAdapter and the DeviceAccess backends. Such process variables can be used with all records that support numeric types except for theaai
andaao
record. - Support for the
int64in
andint64out
records has been added (when compiling against EPICS Base 3.16 or newer). Those record types are primarily useful for process variables of typesstd::int64_t
andstd::uint64_t
, but they can be used with other numeric types as well. - Process variables of type
string
are now supported by both the ControlSystemAdapter and the DeviceAccess backends. Such process variables can be used with theaai
, andaao
records as well as with the newly introducedlsi
,lso
,stringin
, andstringout
records. Please refer to the documentation for details. - Mutiple input records can now be created for the same process variable without losing value updates when using the ControlSystemAdapter backend. This includes records that are polled (instead of using the
I/O Intr
mode), but settingSCAN
toI/O Intr
is still strongly recommended for input records using the ControlSystemAdapter backend. - Bidirectional process variables are now directly supported by output records (when using the ControlSystemAdapter backend). This means that if such a process variable is changed by the application side, the record's value is updated to reflect the new value coming from the device. This behavior can selectively be disabled on a per-record basis. Please refer to the documentation for details.
- The ControlSystemAdapter backend now uses a new mechanism for receiving update notifications from the device. This mechanism is blocking, meaning that there is no need to periodically poll for changes any longer. For this reason, the update mechanism now has a smaller latency and is more efficient.
Bugfixes:
- The backend for DeviceAccess had a bug that caused the both the success and the error callback to be called when there was an I/O error. This lead to problems with record processing in case of an error.
- If an exception is thrown during record processing, the record is now marked with an
INVALID
severity and aREAD_ALARM
orWRITE_ALARM
where before only an error message would be printed to the console without marking the record as invalid. - The DeviceAccess backend incorrectly signaled that I/O operations had finished synchronously, even when working in asynchronous mode. This could cause problems with record processing when using the asynchronous mode.
- The DeviceAccess backend did not use version numbers (and thus time stamps) coming from DeviceAccess and created new version numbers instead. Now, the backend correctly passes the original version numbers to the record device support code.
- The initialization routines for output records now correctly clear the initial
INVALID
alarm when the record's value can be initialized successfully.
Changes breaking backwards compatibility:
- Due to the new notification mechanism, the syntax of the
chimeraTKConfigureApplication
IOC shell command has changed. This command now takes the application name as its single parameter, where before it would take the polling interval as a second parameter. - This release uses new APIs introduced in version 01.01.00 of ChimeraTK Device Access, so it will not compile against older versions of Device Access.
Release 0.3.0
- Change to build environment (new ChimeraTK-DeviceAccess version and name).
- Necessary update for the recent changes in DeviceAccess and the ControlSystemAdapter:
The TimeStamp class has been removed and its functionality is integrated into the VersionNumber class.
This release requires version 01.00.00 of the Control System Adapter core library.
Release 0.2.1
This release fixes a problem when compiling an IOC using the device support on Linux.
Before this release, the IOC had to explicitly link to the ChimeraTK Control System Adapter and Device Access libraries, now the library provided by this device support already includes dependencies on these two libraries.
Release 0.2.0
This release adds support for using ChimeraTK Device Access devices without having to explicitly write an application for the Control System Adapter.
As a side effect, the code that provides the bindings between ChimeraTK and EPICS has undergone a major overhaul, that also introduces a few changes when using this device support with a ChimeraTK Control System Adapter application:
- Multiple records may now refer to the same process variable.
- The application name specified in the
chimeraTKConfigureApplication
IOC shell command is now limited to ASCII letters, digits, and the underscore. - Process variable names must not contain the space or tab character.
- The
waveform
record is not supported any longer. Please use theaai
oraao
record instead.
Release 0.1.0
This is the first release of the EPICS-specific control-system adapter for ChimeraTK.
This release is intended for first experiments. It is not feature complete and it should not be considered production ready. Future versions might introduce changes that break both ABI and API compatibility.