Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

epicsdev_osc_moku

EPICS PVAccess server for Liquid Instruments Moku Oscilloscope, implemented with epicsdev and moku.instruments.

Overview

This server connects to a Moku device, acquires oscilloscope frames, and publishes waveform data and derived statistics as PVs.

Requirements

  • Python 3.11+
  • Network access to a Moku device
  • Python packages (installed via pyproject.toml):
    • epicsdev
    • p4p
    • moku
    • numpy

Installation

Install in editable mode from this folder:

pip install -e .

Run

Start the server:

python -m epicsdev_osc_moku -i <moku_ip> -d moku -x 0

This creates PV prefix:

<device><index>:

For example, with -d moku -x 0, PVs are under moku0:.

Command-line options

  • -i, --ip Moku IP address (default: 192.168.1.2)
  • -d, --device PV device prefix base (default: moku)
  • -x, --index PV device index (default: 0)
  • -m, --max-length maximum waveform points requested from Moku (default: 2048)
  • -f, --force-connect force ownership claim
  • -v, --verbose increase verbosity

Hosted PVs

Global PVs:

  • trigSource: Trigger source
  • trigLevel: Trigger level
  • timePerDiv: Horizontal scale
  • tAxis: Horizontal axis array

Per-channel PVs for channels 01..04:

  • c<n>Waveform: Waveform array
  • c<n>Mean: Mean of waveform
  • c<n>Min: Waveform minimum
  • c<n>Peak2Peak: Peak-to-peak amplitude
  • c<n>RMS: RMS of waveform

Additional utility PVs:

  • scopeIDN
  • acqCount

Notes

  • Trigger/timebase writes are applied to the instrument immediately.
  • Waveform statistics are computed from each acquired frame.
  • On exit, the server attempts to relinquish Moku ownership cleanly.

About

Experimental PVAccess Server for Moku Hardware Platform

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages