Phase 3 PR 73 -- OPC UA Client browse enrichment #72
Reference in New Issue
Block a user
Delete Branch "phase-3-pr73-opcua-client-browse-enrichment"
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
Two-pass discovery: pass 1 browses + collects
PendingVariabletuples (folders still register inline), pass 2 batch-readsDataType+ValueRank+UserAccessLevel+Historizingper variable in oneSession.ReadAsync, then registers each with accurateDriverAttributeInfo.Replaces the prior conservative
Int32 / ViewOnly / not-arrayplaceholders with real metadata:MapUpstreamDataType— Boolean, Int16/32/64, UInt16/32/64, Float32/Float64, String, DateTime/UtcTime; SByte+Byte widen to Int16; custom NodeIds fall back to String.MapAccessLevelToSecurityClass— readsAccessLevels.CurrentWritebit →OperateorViewOnly. UsesUserAccessLevel(post-ACL-filter) notAccessLevel.IsArrayfromValueRank(−1 = scalar).IsHistorizedfrom server flag — gates PR 76 history routing.Graceful degradation: individual attribute Bad → type default; wholesale enrichment failure → register every pending variable with fallback defaults. Browse never produces an empty address space when the first pass succeeded.
Validation
dotnet build: 0 errorsTest plan