feat(dcl): bound per-tag seed ReadAsync with SeedReadTimeout (#232, DCL-027)

This commit is contained in:
Joseph Doherty
2026-06-19 01:35:40 -04:00
parent b432c788c3
commit 7c1d61647e
11 changed files with 36 additions and 9 deletions
@@ -14,6 +14,16 @@ public class DataConnectionOptions
/// <summary>Timeout for synchronous write operations to devices.</summary>
public TimeSpan WriteTimeout { get; set; } = TimeSpan.FromSeconds(30);
/// <summary>
/// DataConnectionLayer-027: per-tag timeout applied to each <see cref="IDataConnection.ReadAsync"/>
/// call on the initial-subscribe seed path (and reconnect re-seed). A hung device read would
/// otherwise delay <c>SubscribeCompleted</c> and its acknowledgement indefinitely. On timeout
/// the tag is treated the same as any other failed seed read — it stays in the pending set and
/// is retried up to <see cref="SeedReadMaxAttempts"/>, then left Uncertain until a change
/// notification arrives.
/// </summary>
public TimeSpan SeedReadTimeout { get; set; } = TimeSpan.FromSeconds(30);
/// <summary>
/// Minimum time a connection must stay up before it is considered stable.
/// If a connection drops before this threshold, it counts as an unstable