What problem does it solve?
This skill helps you write correct, production-ready EPICS PV Access (PVA) client and server code in C++ so you can exchange structured data, perform atomic updates, and expose RPC services without reinventing the protocol plumbing.
Core Features & Use Cases
- Client operations with pvac::: Connect to PVs, issue blocking gets, perform fluent puts, and manage monitors reliably.
- Structured data with pvData: Define PVStructure types using FieldBuilder, access fields safely, and handle arrays with shared_vector for efficient transfers.
- Server-side SharedPV patterns: Implement mailbox/read-only PVs and handle custom put processing via SharedPV handlers.
- Normative Types and PVA patterns: Use epics::nt normative types (NTScalar, NTTable, NTNDArray, etc.) for standard layouts.
- QSRV group exposure via info(Q:group): Group IOC records into atomic PVA PV updates and configure triggers.
- Quick CLI parity: Use pvget/pvput/pvmonitor/pvinfo/pvlist/pvcall as practical development and debugging companions.
Quick Start
Use the epics-pva-client skill to generate a C++ PVAccess client that connects to a PVA PV, performs a get with selected fields, and prints the returned PVStructure.