internal OPCSessionServer(OPCCliConfiguration.ServersRow server, OpcDa::BrowseFilters filters, OPCEnvironment node) :
     base(server.Name, null, node)
 {
     LastEception = null;
     try
     {
         m_Menu = new ContextMenuServer(this);
         Opc.URL url = new Opc.URL(server.URL);
         if (server.GetConnectDataRows().Length > 0)
         {
             m_ConnectData = server.GetConnectDataRows()[0].GetConnectData();
         }
         m_Spcification = new Opc.Specification()
         {
             ID = server.PreferedSpecyficationID, Description = server.PreferedSpecyficationDsc
         };
         Tag = (Server)Factory.GetServerForURL(url, m_Spcification);
         server.GetOptions(this);
         foreach (OPCCliConfiguration.SubscriptionsRow rw in server.GetSubscriptionsRows())
         {
             new SubscriptionTreeNodeSession(rw, this);
         }
         State = state.disconnectd;
     }
     catch (Exception ex) { ReportException(ex); }
 }
Esempio n. 2
0
        /// <summary>
        /// Displays all servers that support the specified specification.
        /// </summary>
        /// <param name="discovery">The discovery.</param>
        /// <param name="specification">The specification.</param>
        /// <param name="filters">The filters.</param>
        /// <param name="SelectContextMenuIsEnabled">if set to <c>true</c> context menu: select is enabled.</param>
        public void ShowAllServers(Opc.IDiscovery discovery, Opc.Specification specification, OpcDa::BrowseFilters filters, bool SelectContextMenuIsEnabled)
        {
            if (discovery == null)
            {
                throw new ArgumentNullException("Discovery cannot be null");
            }
            this.Cursor = Cursors.AppStarting;
            Clear();
            this.m_SelectContextMenuIsEnabled = SelectContextMenuIsEnabled;
            m_discovery = discovery;
            OpcDa::BrowseFilters m_filters = (filters == null) ? new OpcDa::BrowseFilters() : filters;
            //My computer
            ComputerTreeNodes m_localServers = new Computer(this, "localhost", m_filters, specification);

            m_BrowseTV.Nodes.Add(m_localServers);
            m_BrowseTV.SelectedNode = m_localServers;
            m_localServers.Browse(true);
            m_localServers.Expand();
            //Network
            NetworkTreeNode m_localNetwork = new Network(this, "Local Network", m_filters, specification);

            m_BrowseTV.Nodes.Add(m_localNetwork);
            m_BrowseTV.SelectedNode = m_localNetwork;
            m_localNetwork.Browse(true);
            m_localNetwork.Expand();
            this.Cursor = Cursors.Default;
        }
Esempio n. 3
0
        /// <summary>
        /// Creates a server object for the specified URL.
        /// </summary>
        public static global::Opc.Server GetServerForURL(Opc.URL url, Opc.Specification preferedspecification)
        {
            if (url == null)
            {
                throw new ArgumentNullException("url");
            }

            global::Opc.Server server = null;

            // create an unconnected server object for XML based servers.
            if (url.Scheme == Opc.UrlScheme.HTTP)
            {
                throw new NotImplementedException("TODO - reoved dependency on OpcXml assembly.");
                //server = new Server( new OpcXml.Factory(), url, preferedspecification );
            }

            // create an unconnected server object for COM based servers.
            else
            {
                // DA
                if (url.Scheme == Opc.UrlScheme.DA)
                {
                    server = new Server(new OpcCom.Factory(), url, preferedspecification);
                }

                // AE
                else if (url.Scheme == Opc.UrlScheme.AE)
                {
                    server = new global::Opc.Ae.Server(new OpcCom.Factory(), url, preferedspecification);
                }

                // HDA
                else if (url.Scheme == Opc.UrlScheme.HDA)
                {
                    server = new global::Opc.Hda.Server(new OpcCom.Factory(), url, preferedspecification);
                }

                // DX
                else if (url.Scheme == Opc.UrlScheme.DX)
                {
                    server = new global::Opc.Dx.Server(new OpcCom.Factory(), url, preferedspecification);
                }

#if (UA)
                // UA
                else if (url.Scheme == UrlScheme.UA_TCP || url.Scheme == UrlScheme.UA_HTTP)
                {
                    server = new Opc.Ua.Server(new OpcXml.Factory(), url, preferedspecification);
                }
#endif

                // Other specifications not supported yet.
                else
                {
                    throw new NotSupportedException(url.Scheme);
                }
            }

            return(server);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="OPCServerTreeNodes"/> class with the specified label text.
 /// </summary>
 /// <param name="server">The server to add.</param>
 /// <param name="view">The <see cref="TreeView"/> to add new object..</param>
 internal OPCSessionServer(Server server, OPCEnvironment node)
     : base(server.Name, server, node)
 {
     m_Menu         = new ContextMenuServer(this);
     m_Spcification = server.PreferedSpecyfication;
     LastEception   = null;
     if (server.IsConnected)
     {
         foreach (Subscription sbscrptn in server.Subscriptions)
         {
             new SubscriptionTreeNodeSession(sbscrptn.State, sbscrptn.Items, this);
         }
         State = state.connected;
     }
     else
     {
         State = state.disconnectd;
     }
     Expand();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConnectDataNode{ObjectType, ParentType}"/> class.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="obj">The obj.</param>
 /// <param name="filters">The filters.</param>
 /// <param name="specification">The preferred specification.</param>
 internal ConnectDataNode(string text, ObjectType obj, OpcDa::BrowseFilters filters, Opc.Specification specification)
     : base(text, obj, filters)
 {
     m_Spcification = specification;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DiscoveryNode&lt;ObjectType, ParentType&gt;"/> class.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="obj">The server to add.</param>
 /// <param name="filters">The filters.</param>
 /// <param name="specification">The specification.</param>
 internal DiscoveryNode(string text, ObjectType obj, OpcDa::BrowseFilters filters, Opc.Specification specification)
     : base(text, obj, filters, specification)
 {
 }
Esempio n. 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Network"/> class.
 /// </summary>
 /// <param name="parent">The parent.</param>
 /// <param name="computerName">Name of the computer.</param>
 /// <param name="filters">The filters.</param>
 /// <param name="specification">The specification.</param>
 internal Network
     (BrowseTreeCtrl parent, string computerName, OpcDa::BrowseFilters filters, Opc.Specification specification)
     : base(computerName, filters, specification)
 {
     m_Parent = parent;
 }
Esempio n. 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ComputerTreeNodes"/> class with the specified label text.
 /// </summary>
 /// <param name="computerName">Name of the computer.</param>
 /// <param name="filters">The filters.</param>
 /// <param name="specification">The specification.</param>
 internal ComputerTreeNodes(string computerName, OpcDa::BrowseFilters filters, Opc.Specification specification)
     : base(computerName, null, filters, specification)
 {
     AssignImageIndex();
     AddDummyNode();
 }