feat(cli): add enable/disable condition commands (H4 client path)

This commit is contained in:
Joseph Doherty
2026-06-19 01:48:21 -04:00
parent eb328e5761
commit 88d5ba45bf
10 changed files with 488 additions and 0 deletions
@@ -135,6 +135,32 @@ public interface IOpcUaClientService : IDisposable
/// </returns>
Task<StatusCode> ShelveAlarmAsync(string conditionNodeId, ShelveKind kind, double shelvingTimeSeconds = 0, CancellationToken ct = default);
/// <summary>
/// Enables an alarm condition by invoking the OPC UA Part 9 ConditionType <c>Enable</c> method
/// (the H4 client-driven path). The method takes no input arguments.
/// </summary>
/// <param name="conditionNodeId">The condition node associated with the alarm being enabled.</param>
/// <param name="ct">The cancellation token that aborts the enable request.</param>
/// <returns>
/// <see cref="StatusCodes.Good"/> on success, or the server's bad <see cref="StatusCode"/>
/// (from the underlying <see cref="ServiceResultException"/>) when the enable call
/// returns a bad result. Other transport-level failures still surface as exceptions.
/// </returns>
Task<StatusCode> EnableAsync(string conditionNodeId, CancellationToken ct = default);
/// <summary>
/// Disables an alarm condition by invoking the OPC UA Part 9 ConditionType <c>Disable</c> method
/// (the H4 client-driven path). The method takes no input arguments.
/// </summary>
/// <param name="conditionNodeId">The condition node associated with the alarm being disabled.</param>
/// <param name="ct">The cancellation token that aborts the disable request.</param>
/// <returns>
/// <see cref="StatusCodes.Good"/> on success, or the server's bad <see cref="StatusCode"/>
/// (from the underlying <see cref="ServiceResultException"/>) when the disable call
/// returns a bad result. Other transport-level failures still surface as exceptions.
/// </returns>
Task<StatusCode> DisableAsync(string conditionNodeId, CancellationToken ct = default);
/// <summary>
/// Reads raw historical samples for a historized node.
/// </summary>