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.
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:
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:
the user has installed;
Ivi.Visa.IMessageSessionmay havediverged across versions)
IIviBackendcallbackshape the HiSlip / VXI-11 backends already use
correctly (SRQ event fires on a callback thread, not the
user's thread)
Acceptance
IIviBackend.WaitForSrqAsyncworks on Local NI-VISA backendidentically to HiSlip / VXI-11.
IIviBackend.AssertTriggerAsynctriggers*TRGon Local.trigger members.