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
@@ -23,6 +23,9 @@ public static class MitsubishiProfile
/// <summary>Value the smoke test writes then reads back.</summary>
public const short SmokeHoldingValue = 7890;
/// <summary>Builds Modbus driver options configured for the Mitsubishi profile.</summary>
/// <param name="host">The Modbus server hostname or IP address.</param>
/// <param name="port">The Modbus server port number.</param>
public static ModbusDriverOptions BuildOptions(string host, int port) => new()
{
Host = host,
@@ -19,6 +19,7 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.IntegrationTests.Mitsubishi;
[Trait("Device", "Mitsubishi")]
public sealed class MitsubishiQuirkTests(ModbusSimulatorFixture sim)
{
/// <summary>Verifies that Mitsubishi D0 register fingerprint reads the expected value 0x1234.</summary>
[Fact]
public async Task Mitsubishi_D0_fingerprint_reads_0x1234()
{
@@ -34,6 +35,7 @@ public sealed class MitsubishiQuirkTests(ModbusSimulatorFixture sim)
r[0].Value.ShouldBe((ushort)0x1234);
}
/// <summary>Verifies that Mitsubishi Float32 with CDAB word order decodes correctly to 1.5 from D100.</summary>
[Fact]
public async Task Mitsubishi_Float32_CDAB_decodes_1_5f_from_D100()
{
@@ -59,6 +61,7 @@ public sealed class MitsubishiQuirkTests(ModbusSimulatorFixture sim)
r[1].Value.ShouldNotBe(1.5f, "same wire with BigEndian must decode to a different value");
}
/// <summary>Verifies that Mitsubishi D registers store binary values, not BCD.</summary>
[Fact]
public async Task Mitsubishi_D10_is_binary_not_BCD()
{
@@ -77,6 +80,7 @@ public sealed class MitsubishiQuirkTests(ModbusSimulatorFixture sim)
r[0].Value.ShouldBe((short)1234, "MELSEC stores numeric D-register values in binary; 0x04D2 = 1234");
}
/// <summary>Verifies that reading a binary D register as BCD throws when the value contains non-decimal nibbles.</summary>
[Fact]
public async Task Mitsubishi_D10_as_BCD_throws_because_nibble_is_non_decimal()
{
@@ -97,6 +101,7 @@ public sealed class MitsubishiQuirkTests(ModbusSimulatorFixture sim)
r[0].StatusCode.ShouldNotBe(0u, "BCD decode of binary 0x04D2 must fail loudly because nibble D is non-BCD");
}
/// <summary>Verifies that Mitsubishi Q/L/iQ-R X inputs use hex addressing and X210 maps correctly.</summary>
[Fact]
public async Task Mitsubishi_QLiQR_X210_hex_maps_to_DI_528_reads_ON()
{
@@ -117,6 +122,7 @@ public sealed class MitsubishiQuirkTests(ModbusSimulatorFixture sim)
r[0].Value.ShouldBe(true);
}
/// <summary>Verifies that X input address mapping differs between Mitsubishi MELSEC families (Q vs FX).</summary>
[Fact]
public void Mitsubishi_family_trap_X20_differs_on_Q_vs_FX()
{
@@ -127,6 +133,7 @@ public sealed class MitsubishiQuirkTests(ModbusSimulatorFixture sim)
MelsecAddress.XInputToDiscrete("X20", MelsecFamily.F_iQF).ShouldBe((ushort)16);
}
/// <summary>Verifies that Mitsubishi M512 relay maps to coil address 512 and reads ON.</summary>
[Fact]
public async Task Mitsubishi_M512_maps_to_coil_512_reads_ON()
{
@@ -15,6 +15,7 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.IntegrationTests.Mitsubishi;
[Trait("Device", "Mitsubishi")]
public sealed class MitsubishiSmokeTests(ModbusSimulatorFixture sim)
{
/// <summary>Verifies end-to-end write and read of a Mitsubishi holding register via the Modbus driver.</summary>
[Fact]
public async Task Mitsubishi_roundtrip_write_then_read_of_holding_register()
{