Auto: abcip-4.3 — diagnostic / system tags as browseable variables

Closes #240
This commit is contained in:
Joseph Doherty
2026-04-26 02:55:56 -04:00
parent 9c108cd00a
commit 901a5b9b21
10 changed files with 915 additions and 10 deletions

View File

@@ -28,9 +28,11 @@ public sealed class AbCipDriverDiscoveryTests
builder.Folders.ShouldContain(f => f.BrowseName == "AbCip");
builder.Folders.ShouldContain(f => f.BrowseName == "ab://10.0.0.5/1,0" && f.DisplayName == "Line1-PLC");
builder.Variables.Count.ShouldBe(2);
builder.Variables.Single(v => v.BrowseName == "Speed").Info.SecurityClass.ShouldBe(SecurityClassification.Operate);
builder.Variables.Single(v => v.BrowseName == "Temperature").Info.SecurityClass.ShouldBe(SecurityClassification.ViewOnly);
// PR abcip-4.3 — exclude the synthetic _System/ folder vars from the count.
var userVars = builder.Variables.Where(v => !v.Info.FullName.StartsWith("_System/")).ToList();
userVars.Count.ShouldBe(2);
userVars.Single(v => v.BrowseName == "Speed").Info.SecurityClass.ShouldBe(SecurityClassification.Operate);
userVars.Single(v => v.BrowseName == "Temperature").Info.SecurityClass.ShouldBe(SecurityClassification.ViewOnly);
}
[Fact]
@@ -67,7 +69,10 @@ public sealed class AbCipDriverDiscoveryTests
await drv.DiscoverAsync(builder, CancellationToken.None);
builder.Variables.Select(v => v.BrowseName).ShouldBe(["UserTag"]);
builder.Variables
.Where(v => !v.Info.FullName.StartsWith("_System/"))
.Select(v => v.BrowseName)
.ShouldBe(["UserTag"]);
}
[Fact]
@@ -83,7 +88,7 @@ public sealed class AbCipDriverDiscoveryTests
await drv.DiscoverAsync(builder, CancellationToken.None);
builder.Variables.ShouldBeEmpty();
builder.Variables.Where(v => !v.Info.FullName.StartsWith("_System/")).ShouldBeEmpty();
}
[Fact]
@@ -126,7 +131,10 @@ public sealed class AbCipDriverDiscoveryTests
await drv.DiscoverAsync(builder, CancellationToken.None);
builder.Variables.Select(v => v.Info.FullName).ShouldBe(["KeepMe"]);
builder.Variables
.Where(v => !v.Info.FullName.StartsWith("_System/"))
.Select(v => v.Info.FullName)
.ShouldBe(["KeepMe"]);
}
[Fact]
@@ -145,7 +153,10 @@ public sealed class AbCipDriverDiscoveryTests
await drv.DiscoverAsync(builder, CancellationToken.None);
builder.Variables.Single().Info.SecurityClass.ShouldBe(SecurityClassification.ViewOnly);
builder.Variables
.Where(v => !v.Info.FullName.StartsWith("_System/"))
.Single()
.Info.SecurityClass.ShouldBe(SecurityClassification.ViewOnly);
}
[Fact]