epicsdev
epicsdev is a Python framework designed for rapidly developing EPICS PVAccess servers utilizing the p4p library.
Device Process Variables (PVs) are defined using a highly compact format:
[name, description, initial_value, attributes]
Device-specific logic resides within a small, well-structured Python file following a predictable pattern. Given an instrument programming manual, an LLM assistant (such as GitHub Copilot) can easily leverage this pattern to spin up initial support for new hardware in under an hour.
Key Features
- Built-in Services: Out-of-the-box support for autosave/restore, IocStats, heartbeat monitoring, and PV-put logging.
- Rapid Prototyping: Simple, declarative tuple structure for PV definitions.
- LLM-Friendly: Highly predictable boilerplate that allows AI code assistants to write drivers effortlessly.
- OPI Integration: Automated operator interface generation for Phoebus.
Getting Started
1. Generate a PVAccess Server
Follow the Detailed Server Generation Guide to bootstrap a functional PVAccess server supporting your instrument's core functions.
2. Generate an OPI Display
You can automatically create an Operator Interface (OPI) layout using phoebusgen. See the OPI Generation Instructions for details.
3. Quick Test (Simulation Mode)
To see the framework in action without physical hardware, you can launch a simulated multi-channel waveform generator, which can be useful for stress-testing of EPICS installations. The following command generates 100 noisy waveforms (1,000 points each) alongside 300 scalar parameters:
python -m epicsdev.multiadc -C 100 -n 1000
Other examples to run: single waveform generator and multi-peak image generator
python -m epicsdev.epicsdev
python -m epicsdev.imagegen
List of fully functional PVAccess servers, developed using epicsdev
Power Supplies
Oscilloscopes
- Keysight (Agilent) DSO-X series
- Rigol DHO series
- Tektronix MSO and DPO series
- LeCroy WaveRunner series
Signal Generators
Data Acquisition instruments
Magnetometers
Simulation Utilities
Metadata
Release files for epicsdev 3.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| epicsdev-3.3.3.tar.gz | 23.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| epicsdev-3.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.1 kB
Release files / epicsdev-3.3.3.tar.gz
| Download URL | epicsdev-3.3.3.tar.gz |
|---|---|
| Size | 23.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e93b7486aeea0afb618cc85d4163374c8f2ec724692272a596190497853cc89a
|
|
BLAKE2b-256 checksum How to use checksums |
ef47e3e3cdc4a5ab98472fc0688660a86ea12b1967cfb893643b29b1bfea2d74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.1
|
Release files / epicsdev-3.3.3-py3-none-any.whl
| Download URL | epicsdev-3.3.3-py3-none-any.whl |
|---|---|
| Size | 23.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5cd94d3dc58a14dab8396e867682de7f7be14bb4996083de567f96cff431b37
|
|
BLAKE2b-256 checksum How to use checksums |
f92086c252032021062fdd2cb25d83abf2808ace5e14421f5d13af74644d1d0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.1
|