Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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));
        }
Exemplo n.º 5
0
        /// <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));
        }