/// <summary> /// Does any initialization required before the address space can be used. /// </summary> /// <remarks> /// The externalReferences is an out parameter that allows the node manager to link to nodes /// in other node managers. For example, the 'Objects' node is managed by the CoreNodeManager and /// should have a reference to the root folder node(s) exposed by this node manager. /// </remarks> public override void CreateAddressSpace(IDictionary <NodeId, IList <IReference> > externalReferences) { lock (Lock) { base.CreateAddressSpace(externalReferences); NodeState root = FindPredefinedNode(new NodeId(Quickstarts.Views.Objects.Plant, NamespaceIndex), typeof(NodeState)); Quickstarts.Views.BoilerState boiler1 = new Quickstarts.Views.BoilerState(null); ParsedNodeId pnd1 = new ParsedNodeId() { NamespaceIndex = NamespaceIndex, RootId = "Boiler #1" }; boiler1.Create( SystemContext, pnd1.Construct(), new QualifiedName("Boiler #1", NamespaceIndex), null, true); boiler1.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, true, root.NodeId); root.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, false, boiler1.NodeId); AddPredefinedNode(SystemContext, boiler1); Quickstarts.Views.BoilerState boiler2 = new Quickstarts.Views.BoilerState(null); ParsedNodeId pnd2 = new ParsedNodeId() { NamespaceIndex = NamespaceIndex, RootId = "Boiler #2" }; boiler2.Create( SystemContext, pnd2.Construct(), new QualifiedName("Boiler #2", NamespaceIndex), null, true); boiler2.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, true, root.NodeId); root.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, false, boiler2.NodeId); AddPredefinedNode(SystemContext, boiler2); } }
/// <summary> /// Does any initialization required before the address space can be used. /// </summary> /// <remarks> /// The externalReferences is an out parameter that allows the node manager to link to nodes /// in other node managers. For example, the 'Objects' node is managed by the CoreNodeManager and /// should have a reference to the root folder node(s) exposed by this node manager. /// </remarks> public override void CreateAddressSpace(IDictionary<NodeId, IList<IReference>> externalReferences) { lock (Lock) { base.CreateAddressSpace(externalReferences); NodeState root = FindPredefinedNode(new NodeId(Quickstarts.Views.Objects.Plant, NamespaceIndex), typeof(NodeState)); Quickstarts.Views.BoilerState boiler1 = new Quickstarts.Views.BoilerState(null); ParsedNodeId pnd1 = new ParsedNodeId() { NamespaceIndex = NamespaceIndex, RootId = "Boiler #1" }; boiler1.Create( SystemContext, pnd1.Construct(), new QualifiedName("Boiler #1", NamespaceIndex), null, true); boiler1.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, true, root.NodeId); root.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, false, boiler1.NodeId); AddPredefinedNode(SystemContext, boiler1); Quickstarts.Views.BoilerState boiler2 = new Quickstarts.Views.BoilerState(null); ParsedNodeId pnd2 = new ParsedNodeId() { NamespaceIndex = NamespaceIndex, RootId = "Boiler #2" }; boiler2.Create( SystemContext, pnd2.Construct(), new QualifiedName("Boiler #2", NamespaceIndex), null, true); boiler2.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, true, root.NodeId); root.AddReference(Opc.Ua.ReferenceTypeIds.Organizes, false, boiler2.NodeId); AddPredefinedNode(SystemContext, boiler2); } }