The 1274-line page becomes a landing page (quick start, the page map, where it fits) plus seven pages a reader can answer one question from: installing, what rugnux reads, running it, integration with other programs, the results report, advanced usage, and powder calibration. Content is moved, not rewritten - only the connective sentences at each page top are new. Every internal anchor is remapped to its new page and every inbound link (DEPLOYMENT, TOOLS, HDF5, CPU_DATA_ANALYSIS) updated; the built site has zero Sphinx warnings and an anchor check over the rendered HTML finds no dead link. index.rst leads with the rugnux group, then acquisition, FPGA, reference and project. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EFEJG6WBQv8th4UJFNe53N
3.0 KiB
Tools
Besides the main services (jfjoch_broker,
jfjoch_writer, jfjoch_viewer), the repository ships a
number of command-line tools. Each prints its own usage when run with -h or without arguments.
Data analysis
rugnux
Offline CLI tool that runs the full crystallographic analysis pipeline (spot finding, indexing,
integration, scaling/merging) on a stored HDF5 dataset, producing a _process.h5 file and, when
merging, reflection files. Merging is on by default (--no-merge disables it). --mode picks what a
run does: mx (the above, the default), azint (only azimuthal integration, no spot
finding/indexing), scale (re-scale/merge the already-integrated reflections in a _process.h5
without re-integrating) or calibration (detector geometry from a calibrant's powder rings, written
as a .poni file). See rugnux.
rugnux installs on its own, as the rugnux package or as a standalone archive — see
Installing rugnux.
jfjoch_extract_hkl
Extracts reflections (HKL list) from a Jungfraujoch master file; can sum the same HKL across
neighbouring images and compare against an XDS INTEGRATE.HKL reference. A developer utility: it is
built from source but, like jfjoch_recompress, is not installed into any package.
FPGA / PCIe card management
jfjoch_pcie_status
Prints detailed status information about the card. Safe to run during data collection:
./jfjoch_pcie_status /dev/jfjoch0
jfjoch_pcie_net_cfg
Reads and modifies the network configuration of the card's interfaces:
jfjoch_pcie_net_cfg <device name>
Read configuration for all network interfaces of a device
jfjoch_pcie_net_cfg <device name> <if number>|fgen
Read configuration for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen ipv4 <IPv4 address>
Set IPv4 address for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen direct 0|1
Set direct mode for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen clear
Clear Ethernet counters for a particular network interface / internal frame generator
jfjoch_pcie_clear_net_counters
Resets the card's Ethernet, UDP and ICMP packet counters (which otherwise run from power-on):
./jfjoch_pcie_clear_net_counters /dev/jfjoch0
Testing, benchmarking and simulation
jfjoch_udp_simulator
UDP packet simulator used to test the Jungfraujoch FPGA receiver.
jfjoch_fpga_test
Exercises and benchmarks the FPGA data path and receiver. With -H it runs the high-level
synthesis C model on the CPU, so no FPGA device is required.
jfjoch_lite_perf_test
Performance test of the lite (CPU/GPU) analysis path — indexing, integration and optional file writing.
jfjoch_hdf5_test
Tests single-threaded HDF5 writer performance.
jfjoch_simplon_test
Minimal test client for a DECTRIS SIMPLON detector API.