Skip to content

Local NI-VISA backend: SRQ + AssertTrigger parity #18

Description

@ShortArrow

Context

ADR 0041
implemented Service Request (SRQ) and AssertTrigger on the
HiSlip and VXI-11 backends in v0.1.0, but the Local NI-VISA
backend
lacks them.

CHANGELOG.md → Known limitations:

Local backend SRQ / AssertTrigger deferred (ADR 0041) — HiSlip /
VXI-11 backends are at parity; Local needs IVI.NET reflection
follow-up.

Why deferred

The Local backend talks to NI-VISA via IVI.NET (Ivi.Visa.dll),
which exposes SRQ events through IMessageSession.ServiceRequest +=.
Wiring this up requires:

  • Resolving the right interface (depends on the IVI.NET version
    the user has installed; Ivi.Visa.IMessageSession may have
    diverged across versions)
  • Mapping the SRQ event into the same IIviBackend callback
    shape the HiSlip / VXI-11 backends already use
  • Handling the async / synchronization-context lifetime
    correctly (SRQ event fires on a callback thread, not the
    user's thread)

Acceptance

  • IIviBackend.WaitForSrqAsync works on Local NI-VISA backend
    identically to HiSlip / VXI-11.
  • IIviBackend.AssertTriggerAsync triggers *TRG on Local.
  • Architecture test confirms all backends implement the SRQ /
    trigger members.
  • ADR 0041 updated in place: remove "Local deferred" caveat.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:backendClient backends (Local NI-VISA / HiSLIP / VXI-11 / SOCKET / Fake / Replay)enhancementNew feature or requestpriority:mediumImproves UX/security but not blocking

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions