What problem does it solve?
This Skill helps you write reliable EPICS Channel Access (CA) client programs that can connect to PVs, read and write values, and receive monitor updates with correct callback and error handling.
Core Features & Use Cases
- Connection + channel management: Create channels with or without connection callbacks, query channel state, and handle connect/disconnect transitions safely.
- Synchronous and asynchronous I/O: Perform
ca_get/ca_array_get and ca_put/ca_array_put, including completion callbacks for async operations.
- Subscriptions (monitors): Create event-driven monitors using
ca_create_subscription with appropriate DBE event masks for value/alarm/property changes.
- DBR type correctness & safety: Use the right DBR codes/structures (value-only, status, time, graphic, control) and follow the rule that data is only valid after
ca_pend_io() completes.
- Production-grade pitfalls: Apply best practices for CA context lifecycle, buffered I/O flushing, and robust error/exception handling.
Quick Start
Ask the AI to generate a C example that connects to a given PV, performs a synchronous DBR_DOUBLE read safely using ca_pend_io(), then installs a subscription that prints new values on change.