Release 6.1.0 (Dec 2018)
- createFileLogger() from pv/logger.h
- 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 its own Github module.
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
- 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
- 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.
- 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 documentation on the Server API.
- Support in the 'ca' provider for new pvRequest options:
DBE record option to select CA events to monitor, containing any combination of the keywords
dbtype field option to represent data types returned by CA as an unsigned or 64-bit integer.
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 documentation on ChannelProvider API and Changes to ChannelProvider ownership rules.
- 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.
- use of the epics::pvAccess::ChannelRequester interface is optional
and may be omitted when calling createChannel().
Channel state change notifications are deliviered
to individual operations via epics::pvAccess::ChannelBaseRequester::channelDisconnect()
- Default implementions added for the following methods
- epics::pvAccess::Lockable::lock() and epics::pvAccess::Lockable::unlock() which do nothing.
- epics::pvAccess::Channel::getConnectionState() returns CONNECTED
- epics::pvAccess::Channel::isConnected() uses getConnectionState()
- epics::pvAccess::Channel::getField() which errors
- epics::pvAccess::Channel::getAccessRights() which returns rw
- Added epics::pvAccess::SimpleChannelProviderFactory template and
epics::pvAccess::ChannelProviderRegistry::add() avoids need for custom
- Added epics::pvAccess::MonitorElement::Ref iterator/smart-pointer
to ensure proper handling of calls Monitor::poll() and Monitor::release().
- epics::pvAccess::PipelineMonitor "internal" is collapsed into epics::pvAccess::Monitor.
PipelineMonitor becomes a typedef for Monitor.
- epics::pvAccess::RPCService is now a sub-class of epics::pvAccess::RPCServiceAsync
- pv/pvAccess.h now provides macros OVERRIDE and FINAL which conditionally expand to the c++11 keywords override and final.
- Deliver disconnect notifications to individual Operations (get/put/rpc/monitor/...) via
- New API for server creation via epics::pvAccess::ServerContext::create() allows direct specification
of configuration and ChannelProvider(s).
- Add epics::pvAccess::ServerContext::getCurrentConfig() to get actual configuration, eg. for use with a client.
- Classes from moved headers requester.h, destoryable.h, and monitor.h added to epics::pvAccess namespace.
Typedefs provided in epics::pvData namespace.
- Added Client API based on pvac::ClientProvider
- pv/pvaVersion.h defines VERSION_INT and PVACCESS_VERSION_INT
- epics::pvAccess::RPCClient may be directly constructed.
- epics::pvAccess::RPCServer allows epics::pvAccess::Configuration to be specified and access to ServerContext.
- Added epics::pvAccess::Configuration::keys() to iterate configuration parameters (excluding environment variables).
- Added epics::pvAccess::Destoryable::cleaner
- epics::pvAccess::GUID in favor of epics::pvAccess::ServerGUID due to win32 name conflict.
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.)