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')