- Capitalize Rugnux as a proper noun throughout the prose; the command stays lowercase `rugnux` in code font. RUGNUX_OVERVIEW.md is retitled "What Rugnux does". - ACKNOWLEDGEMENT.md cites the raw-data repositories only: dataset counts and DOI prefixes moved out (EXTERNAL_TEST_DATA.md owns them), the ESRF data portal gains its citation (Dimper et al. 2019), and MXRDR remains name + link - it has no canonical citation paper. - RUGNUX_FORMATS.md: the CCD formats (marCCD, SMV) are supported as-is with very limited scope, and per-panel XFEL data is not read. - Fix wrong facts a reader would act on: nonexistent `make jfjoch` targets, invalid udev rules, PUSH sockets documented as PULL, swapped writer width/height, underload semantics, the transposed pixel-mask numpy example (the server checks width and height separately), the Durin/Neggia mask-bit table, FPGA threshold register addresses and the mailbox bit field, the I2C core's document number (PG090), an inverted MODEL_FIT_SIGMA formula, a self-inconsistent worked report example, and 11 cross-page anchors whose slugs carry MyST section numbers. - Unify CC1/2 spelling in prose; math notation and report keys unchanged. - Sweep grammar, typos and editing residue across the FPGA, deployment, streaming and analysis pages, including historical CHANGELOG typos. - rugnux_cli.cpp: the -S usage/error examples pair 96 with P43212; 92 names a different group. - Root THIRD_PARTY_NOTICES.md: scope the GPL-compatibility claim (CUDA EULA) and the vendored-table intro (traccc); the docs copy regenerates via update_version.sh. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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 <prefix>.poni and <prefix>.json). 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 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.