Phase 3 PR 67 -- OPC UA Client IReadable + IWritable #66
Reference in New Issue
Block a user
Delete Branch "phase-3-pr67-opcua-client-read-write"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds
IReadable+IWritabletoOpcUaClientDriver, routing through the session's non-obsoleteReadAsync(...)/WriteAsync(...)overloads (all sync + BeginXxx/EndXxx variants are[Obsolete]in SDK 1.5.378). Serializes on the sharedGate.NodeId parsing: full references use the standard OPC UA serialized form —
ns=2;s=Demo.Counter,i=2253,ns=4;g=…,ns=3;b=….TryParseNodeIdgoes throughNodeId.Parsewith the session'sMessageContextso server-negotiated namespace URIs are honoured. Malformed →BadNodeIdInvalid(0x80330000) without a wire round-trip.Cascading quality per
driver-specs.md§8: upstreamStatusCode,SourceTimestamp,ServerTimestampall pass through verbatim. Bad codes stay Bad (not translated toBadInternalError) so downstream clients can distinguish upstream-source-down from local-driver-failure. Wire-level exceptions fan outBadCommunicationErroracross the batch.Name collision: SDK's
Opc.Ua.WriteRequestclashes withCore.Abstractions.WriteRequest; method signature uses the fully-qualified local type.Validation
dotnet build: 0 errorsScope
Wire-level round-trip tests (against a live in-process server fixture) are deferred — the existing
Serverproject is a candidate host but scaffolding that takes its own PR. ITagDiscovery / ISubscribable / IHostConnectivityProbe land in PRs 68-69.Test plan