EPICS pvaClientCPP

Release 4.8 - March 2021


pvaClient is a software library that provides, to an EPICS client programmer, a friendly client side programming interface to the data of an EPICS based control system. It is intended for such uses as rapid development of ad hoc programs by controls engineers, or to provide scientists a way to directly develop analytical applications.

Specifically, pvaClient provides a synchronous interface for pvAccess, which is the software support for high speed controls network communications used in EPICS version 4. pvAccess provides a callback based interface, which can be hard to use. pvaClient provides an interface that does not require callbacks even for monitors.

pvaClientChannel provides many "convenience" methods to directly get and put scalar and scalarArray data types. Additional methods provide access to the full features of pvAccess.

pvaClientMultiChannel provides access to data from multiple channels. It can be used directly by a client or via pvaClientMultiDouble or pvaClientNTMultiChannel. pvaClientMultiDouble allows the client to get and put data to multiple channels. But each channel must have a value field that is a numeric scalar. pvaClientNTMultiChannel allows the client to get and put data to multiple channels. Each channel must have a value field. The data for the channels is presented via normative type NTMultiChannel.

For more information about EPICS generally, please refer to the home page of the Experimental Physics and Industrial Control System.


Documentation for pvaClientCPP is available at: pvaClient

pvaClientCPP is one of the components of EPICS-7

This document is only a guide to help locate code and documentation related to pvaClientCPP

It is intended for developers that want to use pvaClientCPP.

Developer Guide

A guide for developers is available at developerGuide

This guide provides an overview of the components that are part of an EPICS V4 release. Some understanding of the components and how they are related is necessary in order to develop code that uses pvaClientCPP. In particular read everything related to pvaClient.


doxygen documentation is available at doxygen


Example code is available at exampleCPP

In particular look at exampleClient. It has many examples of using pvaClientCPP.