What problem does it solve?
It helps you write robust EPICS PV Access (PVA) client applications in C++ using pvxs, handling gets, puts, monitors, and RPC with correct typing and operation lifetimes.
Core Features & Use Cases
- Typed PV interactions with pvxs::Value: Build and manipulate PV value trees using TypeDef and normative types (NTScalar, NTEnum, NTTable, NTNDArray, NTURI).
- Get/Put/Monitor/RPC workflows: Perform synchronous and asynchronous operations with proper result handling and timeouts.
- Efficient updates via field selection and change tracking: Use marked fields so network operations transfer only what changed.
- Safe monitoring patterns: Subscribe to PV updates, enqueue work from the event callback, and drain updates using pop() with correct exception handling.
Quick Start
Use the pvxs-client skill to write a small C++ program that connects to a PV name from the command line and performs a GET, a PUT, and a continuously running MONITOR until SIGINT is received.