diff --git a/src/ScadaLink.Commons/Types/DataConnections/OpcUaEndpointConfig.cs b/src/ScadaLink.Commons/Types/DataConnections/OpcUaEndpointConfig.cs new file mode 100644 index 0000000..06f6f63 --- /dev/null +++ b/src/ScadaLink.Commons/Types/DataConnections/OpcUaEndpointConfig.cs @@ -0,0 +1,24 @@ +namespace ScadaLink.Commons.Types.DataConnections; + +public sealed class OpcUaEndpointConfig +{ + // Connection + public string EndpointUrl { get; set; } = ""; + public OpcUaSecurityMode SecurityMode { get; set; } = OpcUaSecurityMode.None; + public bool AutoAcceptUntrustedCerts { get; set; } = true; + + // Timing + public int SessionTimeoutMs { get; set; } = 60000; + public int OperationTimeoutMs { get; set; } = 15000; + + // Subscription + public int PublishingIntervalMs { get; set; } = 1000; + public int SamplingIntervalMs { get; set; } = 1000; + public int QueueSize { get; set; } = 10; + public int KeepAliveCount { get; set; } = 10; + public int LifetimeCount { get; set; } = 30; + public int MaxNotificationsPerPublish { get; set; } = 100; + + // Heartbeat (optional) + public OpcUaHeartbeatConfig? Heartbeat { get; set; } +} diff --git a/src/ScadaLink.Commons/Types/DataConnections/OpcUaHeartbeatConfig.cs b/src/ScadaLink.Commons/Types/DataConnections/OpcUaHeartbeatConfig.cs new file mode 100644 index 0000000..1882a11 --- /dev/null +++ b/src/ScadaLink.Commons/Types/DataConnections/OpcUaHeartbeatConfig.cs @@ -0,0 +1,7 @@ +namespace ScadaLink.Commons.Types.DataConnections; + +public sealed class OpcUaHeartbeatConfig +{ + public string TagPath { get; set; } = ""; + public int MaxSilenceSeconds { get; set; } = 30; +} diff --git a/src/ScadaLink.Commons/Types/DataConnections/OpcUaSecurityMode.cs b/src/ScadaLink.Commons/Types/DataConnections/OpcUaSecurityMode.cs new file mode 100644 index 0000000..8bec937 --- /dev/null +++ b/src/ScadaLink.Commons/Types/DataConnections/OpcUaSecurityMode.cs @@ -0,0 +1,8 @@ +namespace ScadaLink.Commons.Types.DataConnections; + +public enum OpcUaSecurityMode +{ + None, + Sign, + SignAndEncrypt +} diff --git a/src/ScadaLink.Commons/Types/Flattening/ValidationResult.cs b/src/ScadaLink.Commons/Types/Flattening/ValidationResult.cs index 34997b4..1465801 100644 --- a/src/ScadaLink.Commons/Types/Flattening/ValidationResult.cs +++ b/src/ScadaLink.Commons/Types/Flattening/ValidationResult.cs @@ -61,5 +61,6 @@ public enum ValidationCategory TriggerOperandType, OnTriggerScriptNotFound, CrossCallViolation, - MissingMetadata + MissingMetadata, + ConnectionConfig }