Skip to content

Conversation

@MarkRivers
Copy link
Member

Implements code changes described in #79

and the Stream2 interface is used.
Previously 3-D NDArrays were created, with the third dimension being the
threshold index.  This does not work when the driver does not decompress
the data, because the arrays are individually compressed but a 3-D array
must be compressed as a unit.
The driver now only creates 2-D NDArrays, and creates new NDAttributes,
ThresholdName and ThresholdEnergy to identify which threshold an NDArray
contains.
The driver sends all thresholds on asyn address 0, and threshold N on
asyn address N (N=1 to number of enabled thresholds).
@domitto
Copy link
Collaborator

domitto commented Jan 7, 2026

Small but important detail: addr 1 is already in use by the Monitor interface in the current driver (see eigerDetector.cpp:L1849 —

doCallbacksGenericPointer(pImage, NDArrayData, 1);

Reusing it for threshold callbacks would collide with existing monitor consumers. We probably need to keep addr 1 reserved and offset the threshold addresses, or move the monitor stream elsewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants