pvxs-ioc

Configure a PVXS QSRV2 server in an EPICS IOC to expose records over PV Access.

1|1|Updated Apr 14, 2026
One-click install
npx skills add https://github.com/BCDA-APS/opencode-skills --skill pvxs-ioc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pvxs-ioc
Source: https://github.com/BCDA-APS/opencode-skills/tree/main/pvxs-ioc
Command: npx skills add https://github.com/BCDA-APS/opencode-skills --skill pvxs-ioc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

PVXS (QSRV2) makes it difficult to manually wire EPICS IOC records into a rich PV Access data model, especially when you want grouped structures, consistent metadata (NTTable/NTEnum/NTNDArray), and secure access. This Skill solves that by showing how to configure QSRV2 so an IOC automatically serves PV Access representations of your records, including advanced group mappings and PVA links.

Core Features & Use Cases

  • Single-PV mapping without custom servers: Serve every IOC database record automatically via PV Access using QSRV2.
  • Grouped PV structures (info tags and JSON): Build composite PV structures by merging mappings across multiple records using info(Q:group, ...) or dbLoadGroup() JSON syntax.
  • Strong write/subscribe control: Control what triggers updates, what is writable through group PVs, and the processing order using +trigger and +putorder, with atomicity support.
  • PVA link integration: Configure input/output PVA links (including proc and sevr options) to mirror values to/from remote PV Access endpoints.
  • Security and testing patterns: Apply .acf-based access controls and use the provided TestIOC pattern for validation.

Quick Start

Ask your AI to configure a PVXS QSRV2-enabled IOC that serves a single PV group as an NTTable using dbLoadGroup() and then verifies access security and correct subscription update behavior.

Frequently Asked Questions about pvxs-ioc

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I expose EPICS IOC records as PV Access structures?

You can expose EPICS IOC records as PV Access structures by configuring a PVXS QSRV2 server, which automatically serves single-PV mappings and grouped data models over the network without requiring a custom server implementation.

What is the best way to group multiple EPICS records into a single NTTable PV?

Grouping multiple EPICS records into an NTTable PV is best achieved using info(Q:group, ...) tags or dbLoadGroup() JSON syntax within your IOC, allowing composite structures with consistent metadata modeling.

Can I control write permissions and update triggers for PV Access group structures?

Yes, you can control write permissions and update triggers for PV Access group structures using +trigger, +putorder, and +atomic semantics, defining exactly what triggers updates and the processing order for writable group PVs.

Does EPICS support mirroring values to remote PV Access endpoints?

EPICS supports mirroring values to and from remote PV Access endpoints by configuring PVA input and output links, including proc and sevr options, for local record integration with remote clients.

When do I need to enable QSRV2 before running iocInit()?

You must enable QSRV2 and load all group definitions before calling iocInit() to ensure proper pvxsIoc.dbd registration and correct PV Access server initialization timing within the EPICS IOC shell.

How do I apply access security to PVXS group PVs in an EPICS IOC?

You can apply access security to PVXS group PVs by configuring .acf-based access controls within your EPICS IOC environment, ensuring secure and authenticated client interactions with your served structures.