Files
leonarski_fandClaude Opus 5 e77b96c4ce
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 6m23s
Build Packages / build:viewer-tgz:cpu (push) Successful in 15m35s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 9m35s
Build Packages / build:viewer-tgz:cuda (push) Successful in 16m37s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 5m51s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 13m14s
Build Packages / build:windows:nocuda (push) Successful in 16m7s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 4m10s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 4m20s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 3m20s
Build Packages / build:rpm (rocky8) (push) Failing after 4m1s
Build Packages / build:rpm (rocky9) (push) Failing after 4m8s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 4m12s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 3m39s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3m56s
Build Packages / Generate python client (push) Successful in 23s
Build Packages / Create release (push) Skipped
Build Packages / Build documentation (push) Successful in 1m15s
Build Packages / XDS test (neggia plugin) (push) Successful in 6m45s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m52s
Build Packages / XDS test (durin plugin) (push) Successful in 8m25s
Build Packages / build:windows:cuda (push) Successful in 22m32s
Build Packages / build:rugnux:windows (push) Successful in 16m11s
Build Packages / DIALS test (push) Successful in 19m44s
Build Packages / Unit tests (push) Successful in 1h26m42s
docs: the analysis mode, the grid-scan map and the raster mode reach the documentation
jfjoch_broker's own page did not mention the analysis mode at all, and its "example
with all fields" configuration was missing the three blocks that carry it. Both
fixed, with a table of what each mode runs and a note that rotation MX is not
offered online.

The viewer page did not mention the grid-scan map. The rugnux mode tables in
RUGNUX_ADVANCED.md and TOOLS.md were missing raster, and the advanced page was
missing mx_rotation and mx_stills; its --raster-max-crystals default was stale,
since an absent cap replaced 0 meaning "all".

The changelog entries this work added were pruned to the house rule - one line, what
changed, no rationale and no measurements - and the three that were missing were
added: the two per-image detection scores, the viewer map, and the ice_ring_ratio
rename with its accepted older spelling.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EFEJG6WBQv8th4UJFNe53N
2026-09-08 08:36:12 +02:00

3.2 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), calibration (detector geometry from a calibrant's powder rings, written as <prefix>.poni and <prefix>.json) or raster (score every image of a stored grid scan and report the crystals in it, written as <prefix>_raster_report.txt and <prefix>_raster.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, 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.