docs: backfill XML documentation across 756 files
v2-ci / build (push) Failing after 1m43s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped

Adds <summary>, <param>, <typeparam>, and <inheritdoc/> tags to public
members surfaced by commentchecker — resolves 5,847 of 5,869 issues
(99.6%) across three /fixdocs passes.
This commit is contained in:
Joseph Doherty
2026-05-28 08:10:17 -04:00
parent f9fc7dd2e1
commit 64e3fbe035
756 changed files with 9876 additions and 96 deletions
@@ -15,12 +15,18 @@ public static class S7DriverFactoryExtensions
{
public const string DriverTypeName = "S7";
/// <summary>Registers the S7 driver factory with the registry.</summary>
/// <param name="registry">The driver factory registry.</param>
public static void Register(DriverFactoryRegistry registry)
{
ArgumentNullException.ThrowIfNull(registry);
registry.Register(DriverTypeName, CreateInstance);
}
/// <summary>Creates a new S7 driver instance from configuration.</summary>
/// <param name="driverInstanceId">The unique identifier for the driver instance.</param>
/// <param name="driverConfigJson">The JSON configuration for the driver.</param>
/// <returns>A newly created S7 driver instance.</returns>
internal static S7Driver CreateInstance(string driverInstanceId, string driverConfigJson)
{
ArgumentException.ThrowIfNullOrWhiteSpace(driverInstanceId);
@@ -34,6 +40,9 @@ public static class S7DriverFactoryExtensions
/// / <see cref="S7Driver.ReinitializeAsync"/> so a config change delivered through the
/// <c>IDriver</c> contract is actually applied — see code-review finding Driver.S7-011.
/// </summary>
/// <param name="driverInstanceId">The unique identifier for the driver instance.</param>
/// <param name="driverConfigJson">The JSON configuration for the driver.</param>
/// <returns>Parsed S7 driver options.</returns>
internal static S7DriverOptions ParseOptions(string driverInstanceId, string driverConfigJson)
{
ArgumentException.ThrowIfNullOrWhiteSpace(driverInstanceId);
@@ -104,32 +113,52 @@ public static class S7DriverFactoryExtensions
AllowTrailingCommas = true,
};
/// <summary>Data transfer object for S7 driver configuration.</summary>
internal sealed class S7DriverConfigDto
{
/// <summary>Gets the PLC host address.</summary>
public string? Host { get; init; }
/// <summary>Gets the PLC port.</summary>
public int? Port { get; init; }
/// <summary>Gets the CPU type name.</summary>
public string? CpuType { get; init; }
/// <summary>Gets the rack number.</summary>
public short? Rack { get; init; }
/// <summary>Gets the slot number.</summary>
public short? Slot { get; init; }
/// <summary>Gets the connection timeout in milliseconds.</summary>
public int? TimeoutMs { get; init; }
/// <summary>Gets the list of tag definitions.</summary>
public List<S7TagDto>? Tags { get; init; }
/// <summary>Gets the probe configuration.</summary>
public S7ProbeDto? Probe { get; init; }
}
/// <summary>Data transfer object for S7 tag definition.</summary>
internal sealed class S7TagDto
{
/// <summary>Gets the tag name.</summary>
public string? Name { get; init; }
/// <summary>Gets the S7 address (e.g., DB1.DBD0).</summary>
public string? Address { get; init; }
/// <summary>Gets the data type name.</summary>
public string? DataType { get; init; }
/// <summary>Gets a value indicating whether the tag is writable.</summary>
public bool? Writable { get; init; }
/// <summary>Gets the string length for string types.</summary>
public int? StringLength { get; init; }
/// <summary>Gets a value indicating whether write is idempotent.</summary>
public bool? WriteIdempotent { get; init; }
}
/// <summary>Data transfer object for S7 probe configuration.</summary>
internal sealed class S7ProbeDto
{
/// <summary>Gets a value indicating whether probing is enabled.</summary>
public bool? Enabled { get; init; }
/// <summary>Gets the probe interval in milliseconds.</summary>
public int? IntervalMs { get; init; }
/// <summary>Gets the probe timeout in milliseconds.</summary>
public int? TimeoutMs { get; init; }
// Driver.S7-012: ProbeAddress removed from the configurable surface — the probe uses
// ReadStatusAsync (CPU status), not a tag-address read. Config documents that previously