namespace ZB.MOM.WW.OtOpcUa.Host.Configuration
{
///
/// OPC UA server configuration. (SVC-003, OPC-001, OPC-012, OPC-013)
///
public class OpcUaConfiguration
{
///
/// Gets or sets the IP address or hostname the OPC UA server binds to.
/// Defaults to 0.0.0.0 (all interfaces). Set to a specific IP or hostname to restrict listening.
///
public string BindAddress { get; set; } = "0.0.0.0";
///
/// Gets or sets the TCP port on which the OPC UA server listens for client sessions.
///
public int Port { get; set; } = 4840;
///
/// Gets or sets the endpoint path appended to the host URI for the LMX OPC UA server.
///
public string EndpointPath { get; set; } = "/LmxOpcUa";
///
/// Gets or sets the server name presented to OPC UA clients and used in diagnostics.
///
public string ServerName { get; set; } = "LmxOpcUa";
///
/// Gets or sets the Galaxy name represented by the published OPC UA namespace.
///
public string GalaxyName { get; set; } = "ZB";
///
/// Gets or sets the explicit application URI for this server instance.
/// When , defaults to urn:{GalaxyName}:LmxOpcUa.
/// Must be set to a unique value per instance when redundancy is enabled.
///
public string? ApplicationUri { get; set; }
///
/// Gets or sets the maximum number of simultaneous OPC UA sessions accepted by the host.
///
public int MaxSessions { get; set; } = 100;
///
/// Gets or sets the session timeout, in minutes, before idle client sessions are closed.
///
public int SessionTimeoutMinutes { get; set; } = 30;
///
/// Gets or sets a value indicating whether alarm tracking is enabled.
/// When enabled, AlarmConditionState nodes are created for alarm attributes and InAlarm transitions are monitored.
///
public bool AlarmTrackingEnabled { get; set; } = false;
///
/// Gets or sets the template-based alarm object filter. When
/// is empty, all alarm-bearing objects are monitored (current behavior). When patterns are supplied, only
/// objects whose template derivation chain matches a pattern (and their descendants) have alarms monitored.
///
public AlarmFilterConfiguration AlarmFilter { get; set; } = new();
}
}