/// <summary> /// Returns a list of servers that support the specified specification. /// </summary> /// <param name="specification">Unique identifier for one OPC specification.</param> /// <param name="discoveryServerUrl">The URL of the discovery server to be used.</param> /// <param name="identity">The user identity to use when discovering the servers.</param> /// <returns>Returns a list of found OPC servers.</returns> public static List <OpcServer> GetServers(OpcSpecification specification, string discoveryServerUrl, OpcUserIdentity identity) { List <OpcServer> serverList = new List <OpcServer>(); bool discovery = specification == OpcSpecification.OPC_AE_10 || (specification == OpcSpecification.OPC_DA_20 || specification == OpcSpecification.OPC_DA_30) || specification == OpcSpecification.OPC_HDA_10; if (discovery) { if (discovery_ == null || hostName_ != discoveryServerUrl) { discovery_?.Dispose(); hostName_ = discoveryServerUrl; discovery_ = new ServerEnumerator(); } OpcServer[] servers = discovery_.GetAvailableServers(specification); if (servers != null) { foreach (OpcServer server in servers) { serverList.Add(server); } } } return(serverList); }
/// <summary> /// Initializes an instance by providing OPC specification, OPC URL scheme and an URL string. /// </summary> /// <param name="specification">A description of an interface version defined by an OPC specification.</param> /// <param name="scheme">The scheme (protocol) for the URL</param> /// <param name="url">The URL of the OPC server.</param> public OpcUrl(OpcSpecification specification, string scheme, string url) { Specification = specification; HostName = "localhost"; Port = 0; Path = null; ParseUrl(url); Scheme = scheme; }
/// <summary> /// Returns a list of servers that support the specified specification. /// </summary> /// <param name="specification">Unique identifier for one OPC specification.</param> /// <param name="discoveryServerUrl">The URL of the discovery server to be used.</param> /// <param name="identity">The user identity to use when discovering the servers.</param> /// <returns>Returns a list of found OPC servers.</returns> public static List <OpcServer> GetServers(OpcSpecification specification, string discoveryServerUrl, OpcUserIdentity identity) { List <OpcServer> serverList = new List <OpcServer>(); bool dcomDiscovery = false; if (specification == OpcSpecification.OPC_AE_10) { dcomDiscovery = true; } if (specification == OpcSpecification.OPC_DA_20 || specification == OpcSpecification.OPC_DA_30) { dcomDiscovery = true; } if (specification == OpcSpecification.OPC_HDA_10) { dcomDiscovery = true; } if (specification == null) { return(serverList); } else if (dcomDiscovery) { if (_discovery == null || _hostName != discoveryServerUrl) { if (_discovery != null) { _discovery.Dispose(); } _hostName = discoveryServerUrl; _discovery = new Technosoftware.DaAeHdaClient.Com.ServerEnumerator(); } OpcServer[] servers = _discovery.GetAvailableServers(specification); if (servers != null) { foreach (OpcServer server in servers) { serverList.Add(server); } } } return(serverList); }
/// <summary> /// Returns a list of servers that support the specified specification. /// </summary> /// <param name="specification">Unique identifier for one OPC specification.</param> /// <param name="discoveryServerUrl">The URL of the discovery server to be used.</param> /// <returns>Returns a list of found OPC servers.</returns> public static List <OpcServer> GetServers(OpcSpecification specification, string discoveryServerUrl) { OpcUserIdentity identity = new OpcUserIdentity("", ""); return(GetServers(specification, discoveryServerUrl, identity)); }
/// <summary> /// Returns a list of servers that support the specified specification. /// </summary> /// <param name="specification">Unique identifier for one OPC specification.</param> /// <returns>Returns a list of found OPC servers.</returns> public static List <OpcServer> GetServers(OpcSpecification specification) { OpcUserIdentity identity = new OpcUserIdentity("", ""); return(GetServers(specification, null, identity)); }