Skip to main content

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>

Screenshot

AI-Assisted Device Support Development

epicsdev is structured to enable automated server generation using AI tools such as GitHub Copilot.

Workflow Example

  1. Create a new GitHub repository.

  2. 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>.
    
  3. Within ~20–40 minutes, the AI can generate a pull request.

  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

epicsdev-3.1.1.tar.gz (143.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

epicsdev-3.1.1-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

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

Hashes for epicsdev-3.1.1.tar.gz
Algorithm Hash digest
SHA256 a49b3be9fffbd711cf457afbd64131ec07757c65d8fbde0fc6febbcd88b3fcd6
MD5 d3ca3631fd365a08b2cc6941a8733a11
BLAKE2b-256 94ebe1c70bdc435eb6315a13bd758bcdde73832bea23b51029e359ffffcb93df

See more details on using hashes here.

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

Hashes for epicsdev-3.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f601ce1f424f260ec0dddbedb08820946887333e7412c59cb97954f7d487f09
MD5 c01d2e013f917f908827aeb3131f804f
BLAKE2b-256 4dc8e7e0bc816a0735944bf52e99bb9accaf77f89d33eead523d9cf29f54db65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page