@@ -84,7 +84,9 @@ public static class AbCipDriverFactoryExtensions
|
||||
Writable: m.Writable ?? true,
|
||||
WriteIdempotent: m.WriteIdempotent ?? false))]
|
||||
: null,
|
||||
SafetyTag: t.SafetyTag ?? false);
|
||||
SafetyTag: t.SafetyTag ?? false,
|
||||
// PR abcip-4.1 — per-tag scan rate override; null means "use subscription default".
|
||||
ScanRateMs: t.ScanRateMs);
|
||||
|
||||
private static T ParseEnum<T>(string? raw, string? tagName, string driverInstanceId, string field,
|
||||
T? fallback = null) where T : struct, Enum
|
||||
@@ -169,6 +171,15 @@ public static class AbCipDriverFactoryExtensions
|
||||
public bool? WriteIdempotent { get; init; }
|
||||
public List<AbCipMemberDto>? Members { get; init; }
|
||||
public bool? SafetyTag { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// PR abcip-4.1 — optional per-tag publish-rate override (in milliseconds). When
|
||||
/// present, the driver places this tag in its own <see cref="Core.Abstractions.PollGroupEngine"/>
|
||||
/// bucket so it ticks at <c>ScanRateMs</c> regardless of the subscription's default
|
||||
/// publishing interval. <c>null</c> uses the default — back-compat with deployments
|
||||
/// that don't set the knob. Mirrors Kepware's "scan classes" model.
|
||||
/// </summary>
|
||||
public int? ScanRateMs { get; init; }
|
||||
}
|
||||
|
||||
internal sealed class AbCipMemberDto
|
||||
|
||||
Reference in New Issue
Block a user