namespace ZB.MOM.WW.OtOpcUa.Driver.FOCAS; /// /// FOCAS driver configuration. One instance supports N CNC devices. Per plan decision #144 /// each device gets its own (DriverInstanceId, HostAddress) bulkhead key at the /// Phase 6.1 resilience layer. /// public sealed class FocasDriverOptions { public IReadOnlyList Devices { get; init; } = []; public IReadOnlyList Tags { get; init; } = []; public FocasProbeOptions Probe { get; init; } = new(); public TimeSpan Timeout { get; init; } = TimeSpan.FromSeconds(2); } public sealed record FocasDeviceOptions( string HostAddress, string? DeviceName = null); /// /// One FOCAS-backed OPC UA variable. is the canonical FOCAS /// address string that parses via — /// X0.0 / R100 / PARAM:1815/0 / MACRO:500. /// public sealed record FocasTagDefinition( string Name, string DeviceHostAddress, string Address, FocasDataType DataType, bool Writable = true, bool WriteIdempotent = false); public sealed class FocasProbeOptions { public bool Enabled { get; init; } = true; public TimeSpan Interval { get; init; } = TimeSpan.FromSeconds(5); public TimeSpan Timeout { get; init; } = TimeSpan.FromSeconds(2); }