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); } }
/// <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; }
/// <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<ObjectType, ParentType>"/> 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) { }
/// <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; }
/// <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(); }