0.8 (WIP) Namespace Mapping, BINI option
Pre-releaseMapping of namespaces and configurable behavior at initialization (BINI) - Work-in-Progress
Release 0.8 adds two features:
- Configurable mapping of namespace index numbers between client (IOC) and server through their URI identifier.
Server namespaces have a unique URI identifier. Servers may shuffle the namespace index numbers (used in INP/OUT link configuration) between reboots. A new IOC shell command allows to map the index numbers used on the IOC to their URIs. Whenever a session is established, the IOC reads the server's namespace array, compares URIs, and uses the correct server-side index numbers in the communication. - Behavior at initialization (BINI) link option to control how the IOC acts when a session is established.
The standard EPICS PINI mechanism (processing records at initialization) does not work with the OPC UA support, as sessions may be established a long time after the IOC reboot. The new link optionbini=read|ignore|write
fills that gap, allowing to define the behavior of the record when an OPC UA session is established. Theread
choice (default) updates the record with the server value,ignore
doesn't update the record, andwrite
(for output records) writes the record value to the OPC UA server.
Release 0.8 also fixes a bug that was introduced with the batch mechanism in 0.7. This bug caused initial read requests to be dropped silently, leaving the records INVALID until the server was eventually sending an update after the variable changed.
Handling of the initial read requests has been improved in a way that avoids unnecessary additional load on the server.
The build system now supports statically linking the UA SDK libraries into a shared support library, removing the need to separately deploy and link the SDK.
Updating to release 0.8 is recommended for all users and use cases.
Please also see the list of issues closed in v0.8.0 and the changes since v0.7.0.
As always: please report any findings in the issue tracker