[abcip] AbCip — Online tag-DB refresh trigger #350
Reference in New Issue
Block a user
Delete Branch "auto/abcip/2.5"
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
Online tag-DB refresh trigger via new
IDriverControlcapability interface.Core.Abstractions/IDriverControl.cs(new) — capability interface with singleRebrowseAsync(IAddressSpaceBuilder, CancellationToken)hook for operator-triggered symbol-table refresh.AbCipDriver— implementsIDriverControl.RebrowseAsyncclears the UDT template cache then re-runs the enumerator + builder fan-out. New_discoverySemaphore(SemaphoreSlim(1,1)) also serialisesDiscoverAsyncso two concurrent triggers don't race. Discovery body extracted to privateDiscoverCoreAsynchelper to keep the diff tight.Driver.AbCip.Cli— newrebrowseCLI subcommand (mirrors theprobeshape — same--gateway/--family/--timeout-msflags). Builds a transient driver, runsRebrowseAsyncagainst an in-memoryConsoleAddressSpaceBuilder, prints the discovered nodes.Test plan
dotnet build— Core.Abstractions, Driver.AbCip, Driver.AbCip.Cli — all clean (0 / 0)dotnet test tests/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Tests— 313 / 313 passed (4 new inAbCipRebrowseTests: two consecutiveRebrowseAsynccalls bump enumerator counts 1→2, discovered tags reach the supplied builder, template cache drops on rebrowse,AbCipDriveris assignable toIDriverControl)dotnet test tests/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Cli.Tests— 17 / 17dotnet test tests/ZB.MOM.WW.OtOpcUa.Core.Abstractions.Tests— 37 / 37🤖 Auto-generated by the Mode-B execution loop. Closes #233.
Closes #233