- Add show/hide/positionable target crosshair (RPC), separate from bec_widgets' mouse crosshair
- Add zoom in/out/fit buttons; fix manual zoom/pan being wiped on every live-view re-enable
- Add reset_zoom() RPC method, called at start of x_ray_eye_align.py
- Style ROI outline blue/thinner (was near-white via compact_color default)
- Append the current BEC scan number to the Projection info-item,
e.g. "120 / 400 (S06650→S06770)", for direct comparison against
ptycho reconstruction filenames (which use the same S##### scan
number convention). Read from
primary.info[0].active_request_block.scan_number — already
available on the queue object, no new global var needed.
- Add tomo_start_scan_number to the progress payload, mirroring the
existing tomo_start_time pattern: a new tomo_progress key to be
written once by the scan loop when a tomogram begins. Producer side
(flomni.py) not yet implemented — falls back to showing only the
current scan number until then.
- New "Beamline states" draggable card (positioned just above
Contacts): lists every beamline state currently registered with
BEC, its live status (valid/invalid/warning/unknown), and whether
the scan interlock is watching it. Cross-references
bec.builtin_actors.scan_interlock.states_watched/.enabled against
each state's live status to flag which watched states are
currently mismatched (i.e. actually contributing to a queue lock),
vs. states that are invalid but not watched and therefore not
blocking anything (e.g. a simulated/test shutter).
This is a display-only diagnostic; the "blocked" experiment_status
itself is unchanged and still derived from the queue's own locks
(_read_queue_locks), not from beamline states directly.
- Add fmtScan() JS helper (S##### zero-padded formatting, matching
the existing ptycho filename convention) and renderBeamlineStates().
- Help panel updated to explain both additions.
Add docs/developer/editing_docs.md documenting the MyST/Sphinx conventions
for this site: page anatomy (cross-reference label + single H1), language-
tagged code fences, admonitions, cross-references, the {download} role for
non-image files, the {figure} directive, and how to add a page to a toctree.
Also covers local preview, the merge-then-RTD-build flow, and pitfalls
(broken refs are warnings, public visibility, placeholder consistency).
Turn the empty developer.md stub into a landing page with a toctree and a
card linking to the new guide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Migrate the SAXS data-analysis content into the RTD/Sphinx docs as
user/saxs/data_analysis.md, and turn the empty saxs.md stub into a
landing page linking to it.
Source: cSAXS documentation wiki, page "SAXS-data-analysis"
https://gitea.psi.ch/cSAXS/documentation/wiki/SAXS-data-analysis
(git@gitea.psi.ch:cSAXS/documentation.wiki.git, as of 408e535)
Converted Gitea-flavored Markdown to MyST: added cross-reference
labels, bash code fences, and {note} admonitions.
Also bundle the SAXS standards plate datasheet (SAXS_standards_plate.pdf),
previously at cSAXS/documentation/attachments/, linked via the MyST
{download} role so Sphinx copies it into the build.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>