asyn-database

Generate EPICS database record templates with asyn INST_IO links and matching drvInfoString values.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Writing EPICS database records for asyn drivers is error-prone because record fields must exactly match the driver’s registered parameter names (drvInfoString), the correct asyn DTYP types, and consistent readback/setpoint patterns.

Core Features & Use Cases

  • Correct INST_IO link construction: Build field(INP/OUT, "@asyn(portName, addr, timeout)drvInfoString") links with optional macro forms for reusable templates.
  • DTYP-to-record mapping guidance: Select the right "asyn*" DTYP for ai/ao, bi/bo, mbbi/mbbo, longin/longout, string/waveform, and array time series records.
  • Standard record patterns for reliable behavior: Apply common conventions like _RBV readback suffixes, SCAN = "I/O Intr" for readbacks, and PINI = "YES" for outputs to initialize driver-side parameters.

Quick Start

Use the asyn-database skill to generate a setpoint/output record and its corresponding _RBV readback record that share the same drvInfoString and use the appropriate asyn DTYP for your driver parameter type.

Frequently Asked Questions about asyn-database

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

FAQPage Schema
How do I format the INST_IO link in EPICS database records for asyn port drivers?

To format INST_IO links for asyn port drivers in EPICS database records, construct the INP or OUT field as `@asyn(portName, addr, timeout)drvInfoString`. This link formatting ensures correct communication with the driver using matching parameter names.

What asyn DTYP should I use for different EPICS record types like ai, bo, and waveform?

The asyn DTYP selection must align with your EPICS record type, using specific `asyn*` DTYP values for ai/ao, bi/bo, mbbi/mbbo, longin/longout, string, and waveform records. Matching the DTYP to the record ensures the driver parameter data exchanges correctly.

Why are my EPICS asyn readback records not updating when the driver parameter changes?

EPICS asyn readback records may not update if the SCAN field is not set to `I/O Intr`. Setting readback records with the `_RBV` suffix to scan via `I/O Intr` ensures they process automatically when the asyn driver detects a parameter change.

How do I create matching setpoint and readback EPICS records for an asyn driver parameter?

Create matching setpoint and readback EPICS records by generating an output record and a corresponding `_RBV` readback record that share the same drvInfoString. Apply `PINI = YES` to the output record to initialize the driver-side parameter on startup.

Can I use macros in the INST_IO link when generating reusable asyn EPICS database templates?

Yes, you can use optional macro forms within the INST_IO link construction when generating reusable asyn EPICS database templates. This allows the portName, address, and drvInfoString values to be parameterized for flexible deployment across different IOC instances.

What is the correct EPICS record setup for exchanging string and array waveform data with asyn drivers?

For exchanging string and array waveform data with asyn drivers, use the appropriate `asyn*` DTYP for string records via Octet/LSI/LSO and for array time series waveform records. This configuration ensures stable data exchange for complex parameter types.