feat(commons): OpcUaEndpointConfig POCOs + ConnectionConfig ValidationCategory

This commit is contained in:
Joseph Doherty
2026-05-12 00:35:27 -04:00
parent a9c4c2c655
commit b16606d97e
4 changed files with 41 additions and 1 deletions

View File

@@ -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; }
}

View File

@@ -0,0 +1,7 @@
namespace ScadaLink.Commons.Types.DataConnections;
public sealed class OpcUaHeartbeatConfig
{
public string TagPath { get; set; } = "";
public int MaxSilenceSeconds { get; set; } = 30;
}

View File

@@ -0,0 +1,8 @@
namespace ScadaLink.Commons.Types.DataConnections;
public enum OpcUaSecurityMode
{
None,
Sign,
SignAndEncrypt
}

View File

@@ -61,5 +61,6 @@ public enum ValidationCategory
TriggerOperandType,
OnTriggerScriptNotFound,
CrossCallViolation,
MissingMetadata
MissingMetadata,
ConnectionConfig
}