Skip to content

NDArrayAddress on file plugins (e.g. NDFileTIFF) – can it take effect at runtime? #574

@kgofron

Description

@kgofron

Summary

When using a single file plugin instance (e.g. $(PREFIX):TIFF1) and changing NDArrayAddress at runtime (e.g. from 0 to 1, 2, or 3), the plugin continues to save the same NDArray stream as at startup. The saved files are identical regardless of the NDArrayAddress value after the change.

Current behaviour

  • File plugins (e.g. NDFileTIFF) appear to register for NDArray callbacks once at startup using the initial NDArrayAddress.
  • Changing TIFF1:NDArrayAddress later (via PV or caput) does not switch which stream the plugin receives; it keeps saving the stream it registered for at init.
  • So with one TIFF plugin, changing NDArrayAddress between 0, 1, 2, 3 still produces the same data (e.g. always address 0 if that was the value at startup).

Desired behaviour (or clarification)

  • Option A: When NDArrayAddress is written at runtime, the plugin re-registers (or re-subscribes) for NDArray callbacks on the new address so that subsequent arrays come from that address.
  • Option B: If re-registering at runtime is not supported by design, that should be documented (e.g. in the plugin or ADCore docs) so users know they must use separate plugin instances (e.g. TIFF1, TIFF2, TIFF3) with different NDArrayAddress set at startup to get different streams.

Environment

  • ADCore (version used: e.g. R3-14)
  • Driver: ADTimePix3 (NDArray addresses 0=PrvImg, 1=Img, 2=processed running sum, 3=processed sum-of-N)
  • Single NDFileTIFF instance (TIFF1); NDArrayAddress changed at runtime; same file content for addresses 0, 1, 2, 3.

Question

Is NDArrayAddress intended to be changeable at runtime so that one plugin instance can switch streams, or is it effectively “init only” and the recommended approach is one plugin instance per address?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions