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
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:
@@ -182,6 +182,7 @@ public static class EquipmentNodeWalker
|
||||
/// any legacy row that slipped past the check constraint or any future driver that
|
||||
/// wants an opaque non-JSON reference.
|
||||
/// </remarks>
|
||||
/// <param name="tagConfig">The tag configuration JSON or string.</param>
|
||||
internal static string ExtractFullName(string tagConfig)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(tagConfig)) return tagConfig;
|
||||
|
||||
@@ -19,8 +19,10 @@ namespace ZB.MOM.WW.OtOpcUa.Core.OpcUa;
|
||||
/// </remarks>
|
||||
public class GenericDriverNodeManager(IDriver driver) : IDisposable
|
||||
{
|
||||
/// <summary>Gets the underlying driver instance.</summary>
|
||||
protected IDriver Driver { get; } = driver ?? throw new ArgumentNullException(nameof(driver));
|
||||
|
||||
/// <summary>Gets the driver instance identifier.</summary>
|
||||
public string DriverInstanceId => Driver.DriverInstanceId;
|
||||
|
||||
// Source tag (DriverAttributeInfo.FullName) → alarm-condition sink. Populated during
|
||||
@@ -45,6 +47,8 @@ public class GenericDriverNodeManager(IDriver driver) : IDisposable
|
||||
/// project's <c>OpcUaApplicationHost.PopulateAddressSpaces</c> wraps this call in a per-driver
|
||||
/// try/catch that logs + leaves the driver's subtree empty until a Reinitialize succeeds.
|
||||
/// </summary>
|
||||
/// <param name="builder">The address space builder to populate.</param>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
public async Task BuildAddressSpaceAsync(IAddressSpaceBuilder builder, CancellationToken ct)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(builder);
|
||||
@@ -79,6 +83,7 @@ public class GenericDriverNodeManager(IDriver driver) : IDisposable
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Disposes the node manager and cleans up alarm subscriptions.</summary>
|
||||
public void Dispose()
|
||||
{
|
||||
if (_disposed) return;
|
||||
@@ -106,12 +111,23 @@ public class GenericDriverNodeManager(IDriver driver) : IDisposable
|
||||
IAddressSpaceBuilder inner,
|
||||
ConcurrentDictionary<string, IAlarmConditionSink> sinks) : IAddressSpaceBuilder
|
||||
{
|
||||
/// <summary>Adds a folder to the address space.</summary>
|
||||
/// <param name="browseName">The browse name of the folder node.</param>
|
||||
/// <param name="displayName">The display name of the folder node.</param>
|
||||
public IAddressSpaceBuilder Folder(string browseName, string displayName)
|
||||
=> new CapturingBuilder(inner.Folder(browseName, displayName), sinks);
|
||||
|
||||
/// <summary>Adds a variable to the address space.</summary>
|
||||
/// <param name="browseName">The browse name of the variable node.</param>
|
||||
/// <param name="displayName">The display name of the variable node.</param>
|
||||
/// <param name="attributeInfo">Metadata describing the variable's data type and properties.</param>
|
||||
public IVariableHandle Variable(string browseName, string displayName, DriverAttributeInfo attributeInfo)
|
||||
=> new CapturingHandle(inner.Variable(browseName, displayName, attributeInfo), sinks);
|
||||
|
||||
/// <summary>Adds a property to the address space.</summary>
|
||||
/// <param name="browseName">The browse name of the property node.</param>
|
||||
/// <param name="dataType">The OPC UA data type of the property.</param>
|
||||
/// <param name="value">The initial value of the property, or null.</param>
|
||||
public void AddProperty(string browseName, DriverDataType dataType, object? value)
|
||||
=> inner.AddProperty(browseName, dataType, value);
|
||||
}
|
||||
@@ -120,8 +136,11 @@ public class GenericDriverNodeManager(IDriver driver) : IDisposable
|
||||
IVariableHandle inner,
|
||||
ConcurrentDictionary<string, IAlarmConditionSink> sinks) : IVariableHandle
|
||||
{
|
||||
/// <summary>Gets the full reference for the variable.</summary>
|
||||
public string FullReference => inner.FullReference;
|
||||
|
||||
/// <summary>Marks the variable as an alarm condition and registers its sink.</summary>
|
||||
/// <param name="info">Configuration for the alarm condition.</param>
|
||||
public IAlarmConditionSink MarkAsAlarmCondition(AlarmConditionInfo info)
|
||||
{
|
||||
var sink = inner.MarkAsAlarmCondition(info);
|
||||
|
||||
@@ -42,7 +42,9 @@ public static class IdentificationFolderBuilder
|
||||
"ManufacturerUri", "DeviceManualUri",
|
||||
};
|
||||
|
||||
/// <summary>True when the equipment row has at least one non-null Identification field.</summary>
|
||||
/// <summary>Checks whether the equipment row has at least one non-null Identification field.</summary>
|
||||
/// <param name="equipment">The equipment entity.</param>
|
||||
/// <returns>True if any Identification field is non-null; otherwise false.</returns>
|
||||
public static bool HasAnyFields(Equipment equipment)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(equipment);
|
||||
@@ -58,10 +60,12 @@ public static class IdentificationFolderBuilder
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Build the Identification sub-folder under <paramref name="equipmentBuilder"/>. No-op
|
||||
/// when every field is null. Returns the sub-folder builder (or null when no-op) so
|
||||
/// callers can attach additional nodes underneath if needed.
|
||||
/// Builds the Identification sub-folder under the given equipment builder. Returns the sub-folder builder
|
||||
/// (or null when no fields are present) so callers can attach additional nodes if needed.
|
||||
/// </summary>
|
||||
/// <param name="equipmentBuilder">The equipment address space builder.</param>
|
||||
/// <param name="equipment">The equipment entity with identification fields.</param>
|
||||
/// <returns>The sub-folder builder, or null if no fields are present.</returns>
|
||||
public static IAddressSpaceBuilder? Build(IAddressSpaceBuilder equipmentBuilder, Equipment equipment)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(equipmentBuilder);
|
||||
|
||||
Reference in New Issue
Block a user