docs: complete XML doc comments via fixdocs (2757 to 131 findings)
Add missing <returns>/<param>/<summary>/<typeparam> tags and clean up misused inheritdoc across 481 files so the documented API surface is complete. Documentation-only (zero code lines changed). The 131 remaining findings are inheritdoc-style warnings deliberately left to preserve hand-written implementation rationale (plan-decision notes, race-condition explanations).
This commit is contained in:
@@ -4,7 +4,7 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Tests;
|
||||
|
||||
internal class FakeFocasClient : IFocasClient
|
||||
{
|
||||
/// <summary>Gets a value indicating whether the client is connected.</summary>
|
||||
/// <inheritdoc />
|
||||
public bool IsConnected { get; private set; }
|
||||
/// <summary>Gets the count of connection attempts.</summary>
|
||||
public int ConnectCount { get; private set; }
|
||||
@@ -30,10 +30,7 @@ internal class FakeFocasClient : IFocasClient
|
||||
/// <summary>Gets the log of write operations.</summary>
|
||||
public List<(FocasAddress addr, FocasDataType type, object? value)> WriteLog { get; } = new();
|
||||
|
||||
/// <summary>Connects to a FOCAS host asynchronously.</summary>
|
||||
/// <param name="address">The FOCAS host address.</param>
|
||||
/// <param name="timeout">The connection timeout duration.</param>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task ConnectAsync(FocasHostAddress address, TimeSpan timeout, CancellationToken ct)
|
||||
{
|
||||
ConnectCount++;
|
||||
@@ -42,10 +39,7 @@ internal class FakeFocasClient : IFocasClient
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
/// <summary>Reads a value from a FOCAS address asynchronously.</summary>
|
||||
/// <param name="address">The FOCAS address to read from.</param>
|
||||
/// <param name="type">The data type of the value.</param>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<(object? value, uint status)> ReadAsync(
|
||||
FocasAddress address, FocasDataType type, CancellationToken ct)
|
||||
{
|
||||
@@ -56,11 +50,7 @@ internal class FakeFocasClient : IFocasClient
|
||||
return Task.FromResult((value, status));
|
||||
}
|
||||
|
||||
/// <summary>Writes a value to a FOCAS address asynchronously.</summary>
|
||||
/// <param name="address">The FOCAS address to write to.</param>
|
||||
/// <param name="type">The data type of the value.</param>
|
||||
/// <param name="value">The value to write.</param>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<uint> WriteAsync(
|
||||
FocasAddress address, FocasDataType type, object? value, CancellationToken ct)
|
||||
{
|
||||
@@ -71,15 +61,13 @@ internal class FakeFocasClient : IFocasClient
|
||||
return Task.FromResult(status);
|
||||
}
|
||||
|
||||
/// <summary>Probes the FOCAS connection asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<bool> ProbeAsync(CancellationToken ct) => Task.FromResult(ProbeResult);
|
||||
|
||||
/// <summary>Gets the list of active alarms.</summary>
|
||||
public List<FocasActiveAlarm> Alarms { get; } = [];
|
||||
|
||||
/// <summary>Reads active alarms asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<IReadOnlyList<FocasActiveAlarm>> ReadAlarmsAsync(CancellationToken ct) =>
|
||||
Task.FromResult<IReadOnlyList<FocasActiveAlarm>>([.. Alarms]);
|
||||
|
||||
@@ -93,20 +81,15 @@ internal class FakeFocasClient : IFocasClient
|
||||
/// <summary>Gets the dictionary of dynamic snapshots keyed by axis index.</summary>
|
||||
public Dictionary<int, FocasDynamicSnapshot> DynamicByAxis { get; } = [];
|
||||
|
||||
/// <summary>Gets system information asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<FocasSysInfo> GetSysInfoAsync(CancellationToken ct) => Task.FromResult(SysInfo);
|
||||
/// <summary>Gets axis names asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<IReadOnlyList<FocasAxisName>> GetAxisNamesAsync(CancellationToken ct) =>
|
||||
Task.FromResult<IReadOnlyList<FocasAxisName>>([.. AxisNames]);
|
||||
/// <summary>Gets spindle names asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<IReadOnlyList<FocasSpindleName>> GetSpindleNamesAsync(CancellationToken ct) =>
|
||||
Task.FromResult<IReadOnlyList<FocasSpindleName>>([.. SpindleNames]);
|
||||
/// <summary>Reads dynamic data for an axis asynchronously.</summary>
|
||||
/// <param name="axisIndex">The zero-based axis index.</param>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<FocasDynamicSnapshot> ReadDynamicAsync(int axisIndex, CancellationToken ct)
|
||||
{
|
||||
if (!DynamicByAxis.TryGetValue(axisIndex, out var snap))
|
||||
@@ -116,16 +99,13 @@ internal class FakeFocasClient : IFocasClient
|
||||
|
||||
/// <summary>Gets or sets the program information.</summary>
|
||||
public FocasProgramInfo ProgramInfo { get; set; } = new("O0001", 1, 0, 1);
|
||||
/// <summary>Gets program information asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<FocasProgramInfo> GetProgramInfoAsync(CancellationToken ct) =>
|
||||
Task.FromResult(ProgramInfo);
|
||||
|
||||
/// <summary>Gets the dictionary of timers keyed by timer kind.</summary>
|
||||
public Dictionary<FocasTimerKind, FocasTimer> Timers { get; } = [];
|
||||
/// <summary>Gets timer data asynchronously.</summary>
|
||||
/// <param name="kind">The timer kind to retrieve.</param>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<FocasTimer> GetTimerAsync(FocasTimerKind kind, CancellationToken ct)
|
||||
{
|
||||
if (!Timers.TryGetValue(kind, out var t))
|
||||
@@ -135,8 +115,7 @@ internal class FakeFocasClient : IFocasClient
|
||||
|
||||
/// <summary>Gets the list of servo loads.</summary>
|
||||
public List<FocasServoLoad> ServoLoads { get; } = [];
|
||||
/// <summary>Gets servo loads asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<IReadOnlyList<FocasServoLoad>> GetServoLoadsAsync(CancellationToken ct) =>
|
||||
Task.FromResult<IReadOnlyList<FocasServoLoad>>([.. ServoLoads]);
|
||||
|
||||
@@ -144,12 +123,10 @@ internal class FakeFocasClient : IFocasClient
|
||||
public List<int> SpindleLoads { get; } = [];
|
||||
/// <summary>Gets the list of spindle maximum RPMs.</summary>
|
||||
public List<int> SpindleMaxRpms { get; } = [];
|
||||
/// <summary>Gets spindle loads asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<IReadOnlyList<int>> GetSpindleLoadsAsync(CancellationToken ct) =>
|
||||
Task.FromResult<IReadOnlyList<int>>([.. SpindleLoads]);
|
||||
/// <summary>Gets spindle maximum RPMs asynchronously.</summary>
|
||||
/// <param name="ct">The cancellation token.</param>
|
||||
/// <inheritdoc />
|
||||
public virtual Task<IReadOnlyList<int>> GetSpindleMaxRpmsAsync(CancellationToken ct) =>
|
||||
Task.FromResult<IReadOnlyList<int>>([.. SpindleMaxRpms]);
|
||||
|
||||
@@ -169,7 +146,7 @@ internal sealed class FakeFocasClientFactory : IFocasClientFactory
|
||||
/// <summary>Gets or sets a customization function for creating clients.</summary>
|
||||
public Func<FakeFocasClient>? Customise { get; set; }
|
||||
|
||||
/// <summary>Creates a fake FOCAS client.</summary>
|
||||
/// <inheritdoc />
|
||||
public IFocasClient Create()
|
||||
{
|
||||
var c = Customise?.Invoke() ?? new FakeFocasClient();
|
||||
|
||||
Reference in New Issue
Block a user