Release 7.1.7 (December 2023)
- Changes
- Registering the PVA server with the IOC now sets the
PVAS_SERVER_PORT
variable in the environment.
Release 7.1.6 (September 2022)
- Changes to caProvider
- Bug fix related to enum values.
- More internal changes to improve performance when connecting tens of thousands of CA channels.
- Several minor internal improvements.
Release 7.1.5 (October 2021)
- Changes to caProvider
- Resolve issues with pv structures that don't have a value field
- Add NULL checks for handling unusual structures
- Speed up channel creation when using large numbers of channels
Release 7.1.4 (June 2021)
- Changes
- Adjust argument parsing with pvput (Jesus Vasquez).
Release 7.1.3 (Feb. 2021)
- Bug fixes
- Increase default TCP timeout to 40 seconds. Applies a 4/3 multiplier on $EPICS_PVA_CONN_TMO for compatibility.
- CA Provider implementation restructured to simplify, reduce duplication and fix issues #163 and #165.
- Changes
- Enable building of pvtools to all except vxWorks, RTEMS and iOS.
Release 7.1.2 (July 2020)
- Changes
- Destroyable::destroy() is optional
- Bug fixes
- SharedPV::post() handle bad_weak_ptr
Release 7.1.1 (May 2020)
- Changes
- Add 'pval' iocsh command to list names from all providers of the running server.
- Start protocol CID, SID, and IOID from different non-zero values.
- Bug fixes
- client: fix mixed up CID/SID in CMD_DESTROY_CHANNEL handler. Protocol decode error effecting all previous versions.
- pvput fix JSON mode regression
- Some error messages incorrectly showed "<IPA>" instead of an actual IP+port.
- pvcall handle NULL return
- pv* tools: '-V' shows dependency versions.
- client unconditionally clear existingBitSet
- no "invalid bit-set length" https://github.com/epics-base/pvAccessCPP/issues/158
Release 7.1.0 (Nov 2019)
- Incompatible changes
- Changes
- Change semantics of StaticProvider::close() wrt. closing SharedPV
- Invalid values in EPICS_PVAS_INTF_ADDR_LIST fails hard
- Change to side-effects of pvac::Monitor::cancel()
- Bug fixes
Release 7.0.0 (July 2019)
- Incompatible changes
- Removals
- pv/namedLockPattern.h
- createFileLogger() from pv/logger.h
- Fixes
- Implement idle timeout on TCP connections. Introduces minor protocol version 2. Connections between v2 peers send a CMD_ECHO message from client -> server. Either side will close the TCP connection if no message has been received within the past 30 seconds (by default). This can be configured with $EPICS_PVA_CONN_TMO .
- Changes
- The output of the 'pvasr' iocsh command has been expanded.
Release 6.1.2 (Apr 2019)
- Changes
- When available, use environment variable defaults from Base
- Relax state check in epics::pvAccess::MonitorFIFO::post() and tryPost() to allow post() while closed. Allows user code to avoid extra synchronization during shutdown (just call close() ). Synchronization between open() and post() on type change is still required.
Release 6.1.1 (Mar 2019)
- Fixes
- pvcall fix array args
- pvinfo show server IP
Release 6.1.0 (Nov 2018)
- Deprecations
- pv/namedLockPattern.h
- createFileLogger() from pv/logger.h
- Removals
- No longer install testServer, testGetPerformance, testMonitorPerformance, rpcServiceExample, rpcServiceAsyncExample, rpcWildServiceExample, rpcClientExample, and pipelineServiceExample. These will continue to be built, and may be found under testApp/O.* .
- The eget CLI utility has moved to https://github.com/epics-base/eget The new pvcall and existing pvget replace its role as a low level troubleshooting tool.
- Remove deprecated methods configure(), flush(), and poll() from ChannelProvider.
- Remove RPCClient::sendRequest()
- Remove RPCService::destroy() and dispose()
- Typedefs GUID, Service
- Fixes
- epics::pvAccess::pvAccessLog() add EPICS_PRINTF_STYLE()
- ioc: shutdown PVA server via epicsAtExit()
- fix 'pva' provider registration during static linking
- Various fixes related to shared_ptr loop breaking.
- Various crashes and deadlocks.
- PVA client context: avoid lock order violations
- Changes
- pvac::Monitor - shallow copy into Monitor::root
- pvget -m shows time and alarm if available (thanks to Andrew Starritt)
- PVA Server now handles pipeline=true automatically for all ChannelProviders. It is only necessary to implement epics::pvAccess::Monitor::reportRemoteQueueStatus() to receive notification of initial window size.
- Most locking issues in the 'ca' provider should now be resolved.
- Additions
- Add pvmonitor execuable as an alias for 'pvget -m'.
- Add new pvcall executable to make RPC calls with arguments encoded using the NTURI convention.
- pvput to NTEnum via. string now supported
- pvac::* add valid() method and boolean cast shorthand. Also reset() and operator<<(ostream, ...)
- Add pvac::GetEvent::valid to determine fields actually transfered during a Get operation.
- Add pvac::ClientProvider::name()
- Add epics::pvAccess::MonitorFIFO utility implementation of epics::pvAccess::Monitor
- Add pvas::StaticProvider, pvas::DynamicProvider, and pvas::SharedPV. See Server API
- Support in the 'ca' provider for new pvRequest options:
- New
DBE
record option to select CA events to monitor, containing any combination of the keywords VALUE
, ARCHIVE
, ALARM
and/or PROPERTY
.
- New
dbtype
field option to represent data types returned by CA as an unsigned or 64-bit integer.
- New
pvtype=pvString
field option to represent an array of chars from CA as a string.
Release 6.0.0 (Dec 2017)
- Incompatible changes
- Requires pvDataCPP >=7.0.0 due to headers moved from pvDataCPP into this module: requester.h, destoryable.h, and monitor.h
- Major changes to shared_ptr ownership rules for epics::pvAccess::ChannelProvider and associated classes. See
- Add new library pvAccessIOC for use with PVAClientRegister.dbd and PVAServerRegister.dbd. Necessary to avoid having pvAccess library depend on all IOC core libraries.
- Added new library pvAccessCA with "ca" provider. Main pvAccess library no longer depends on libca. Applications needing the "ca" provider must link against pvAccessCA and pvAccess. See examples/Makefile in the source tree. The headers associated with this library are: caChannel.h, caProvider.h, and caStatus.h
- A number of headers which were previously installed, but considered "private", are no longer installed.
- epics::pvAccess::ChannelProviderRegistry may no longer be sub-classed.
- Removed access to singleton registry via getChannelProviderRegistry() and registerChannelProviderFactory() in favor of epics::pvAccess::ChannelProviderRegistry::clients() and epics::pvAccess::ChannelProviderRegistry::servers(). The "pva" and "ca" providers are registered with the clients() singleton. epics::pvAccess::ServerContext() looks up names with the servers() singleton.
- Removed deprecated epics::pvAccess::Properties
- The data members of epics::pvAccess::MonitorElement become const, preventing these pointers from being re-targeted.
- Simplifications
- Additions
- Deprecations
Release 5.0.0 (July 2016)
- Remote channel destroy support
- Multiple network inteface support
- Local multicast (repetitor) reimplemented
- Monitor reconnect when channel type changes fix
- C++11 compilation fixes
- Added version to pvaTools
- Memory management improved
- pipeline: ackAny argument percentage support
- Monitor overrun memory issues fixed
- CA provider destruction fixed
- Replaced LGPL wildcard matcher with simplistic EPICS version
Release 4.1.2 (Oct 2015)
- Improved Jenkins build support
- Removed QtCreated IDE configuration files
- Use of getSubField<> instead of e.g. getDoubleField()
- CA support for pvget, pvput and pvinfo.
- vxWorks/RTEMS compiler warnings resolved.
- Transport shutdown improved.
- CA DBR status fix.
- Monitor queue handling improved.
- Fixed bad performance on 10Gbit or faster networks.
- Async RPC service.
Release 4.0.5 (Dec 2014)
(Starting point for release notes.)