Helper module for creating EPICS PVAccess servers using p4p
Project description
epicsdev
Helper module for building EPICS PVAccess servers using p4p.
epicsdev is designed for:
- Rapid PVAccess server development
- High-rate data simulation and stress testing
- GUI-based monitoring and control
- AI-assisted automatic device support generation
Installation
python -m pip install epicsdev
Quick Demo
Start the demo PVAccess server:
python -m epicsdev.epicsdev
Control & Visualization
Install optional GUI and plotting tools:
python -m pip install pypeto pvplot
Launch the control interface:
python -m pypeto -c config -f epicsdev
This provides:
- Device control panel
- Live waveform plots
- Real-time parameter monitoring
Multi-Channel Waveform Generator
epicsdev.multiadc generates high-throughput synthetic data for stress-testing EPICS systems.
Example
Generate:
- 10,000 noisy waveforms per second
- 100 points per waveform
- 40,000 scalar parameters per second
python -m epicsdev.multiadc -s 0.1 -c 10000 -n 100
Monitoring GUI
python -m pypeto -c config -f multiadc
The GUI includes:
- Control page
- Real-time waveform plots
The screenshots can be seen here: control page, plots.
Phoebus Display
An example Phoebus display is provided:
config/epicsdev.bob<br>
AI-Assisted Device Support Development
epicsdev is structured to enable automated server generation using AI tools such as GitHub Copilot.
Workflow Example
-
Create a new GitHub repository.
-
Provide an AI prompt such as:
Build device support for Tektronix MSO oscilloscopes using epicsdev_rigol_scope as a template and the programming manual available at <PDF link>. -
Within ~20–40 minutes, the AI can generate a pull request.
-
Review, test, make minor corrections if needed, then merge.
Real-World Example
Using this method, a server implementation for a Tektronix MSO oscilloscope was:
- ~99% correct on first generation
- Required only minor adjustments
Use Cases
- EPICS PVAccess server prototyping
- High-rate data simulation
- Control system stress testing
- Rapid instrument integration
- AI-driven device support generation
Requirements
- Python 3.8+
- p4p 4.2.2+
Optional:
- pypeto
- pvplot
- Phoebus (for .bob display files)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file epicsdev-3.1.1.tar.gz.
File metadata
- Download URL: epicsdev-3.1.1.tar.gz
- Upload date:
- Size: 143.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a49b3be9fffbd711cf457afbd64131ec07757c65d8fbde0fc6febbcd88b3fcd6
|
|
| MD5 |
d3ca3631fd365a08b2cc6941a8733a11
|
|
| BLAKE2b-256 |
94ebe1c70bdc435eb6315a13bd758bcdde73832bea23b51029e359ffffcb93df
|
File details
Details for the file epicsdev-3.1.1-py3-none-any.whl.
File metadata
- Download URL: epicsdev-3.1.1-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f601ce1f424f260ec0dddbedb08820946887333e7412c59cb97954f7d487f09
|
|
| MD5 |
c01d2e013f917f908827aeb3131f804f
|
|
| BLAKE2b-256 |
4dc8e7e0bc816a0735944bf52e99bb9accaf77f89d33eead523d9cf29f54db65
|