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

It integrates following EPICS IOC services:

  • autoSave
  • iocStats
  • caputLog (work in progress)

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.2.tar.gz (143.8 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.2-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file epicsdev-3.1.2.tar.gz.

File metadata

  • Download URL: epicsdev-3.1.2.tar.gz
  • Upload date:
  • Size: 143.8 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.2.tar.gz
Algorithm Hash digest
SHA256 c5a521a00f5870a28df3822e45ab783af1e7b31b2460a0f51d646291339b482d
MD5 2944587cb0baef82b41729b617c76f2c
BLAKE2b-256 ff2c40ffd411d3fa8c3bd859fcd1f32d25e816096e1e52cd5d132bbb911b8193

See more details on using hashes here.

File details

Details for the file epicsdev-3.1.2-py3-none-any.whl.

File metadata

  • Download URL: epicsdev-3.1.2-py3-none-any.whl
  • Upload date:
  • Size: 14.7 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4d581d63f243221970ab537676cfce250378343b1a9f3014641e159f5a5f7736
MD5 7d29ee9da43a4e014f6e892dbeb0b3d0
BLAKE2b-256 727a5ae36e72ef4c1fb0efdf478f8630ed044933b7e64218cd3b703cc22a7f3a

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