Installation

Requirements

  • Python >= 3.10

  • A running SMuRF rogue server (for hardware interaction)

Dependencies (installed automatically): numpy, scipy, matplotlib, seaborn, pyepics, pyyaml, Cython, schema, packaging.

Install

pip install pysmurf-slac
git clone https://github.com/slaclab/pysmurf.git
cd pysmurf && pip install .

For development: pip install -e .

Production systems use Docker containers from the GitHub Container Registry:

docker pull ghcr.io/slaclab/pysmurf-server-base:<TAG>
docker pull ghcr.io/slaclab/pysmurf-client:<TAG>

Start the server:

# By shelfmanager + slot:
docker run ghcr.io/slaclab/pysmurf-server-base:<TAG> -S <shelfmanager> -N <slot>

# By direct IP:
docker run ghcr.io/slaclab/pysmurf-server-base:<TAG> -a <FPGA_IP>

Note

Older releases may still be available on DockerHub under tidair/pysmurf-server and tidair/pysmurf-client.

See README.Docker.md for full container usage.

Offline Mode

For data analysis without hardware:

import pysmurf
S = pysmurf.SmurfControl(offline=True)
timestamps, phase, mask = S.read_stream_data('/path/to/data.dat')