Пример #1
0
        private void NodeTreeView_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            e.Node.Nodes.Clear();

            ReferenceDescriptionCollection referenceDescriptionCollection;
            ReferenceDescription           refDesc = (ReferenceDescription)e.Node.Tag;

            try
            {
                referenceDescriptionCollection = myClientHelperAPI.BrowseNode(refDesc);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
                return;
            }

            foreach (ReferenceDescription tempRefDesc in referenceDescriptionCollection)
            {
                if (tempRefDesc.ReferenceTypeId != ReferenceTypeIds.HasNotifier)
                {
                    e.Node.Nodes.Add(tempRefDesc.DisplayName.ToString()).Tag = tempRefDesc;
                }
            }
            foreach (TreeNode node in e.Node.Nodes)
            {
                node.Nodes.Add("");
            }
        }
Пример #2
0
        private ushort GetRfidNamespaceIndex()
        {
            ushort nameSpaceIndex = 0;

            ReferenceDescriptionCollection refDescCol = new ReferenceDescriptionCollection();

            refDescCol = myHelperApi.BrowseRoot();

            //Browse to variable "AutoIdModelVersion" (mandatory in AutoID) in RfidReaderDeviceType object to find out namespace
            foreach (ReferenceDescription refDescA in refDescCol)
            {
                if (refDescA.BrowseName.Name == "Objects")
                {
                    refDescCol = myHelperApi.BrowseNode(refDescA);
                    foreach (ReferenceDescription refDescB in refDescCol)
                    {
                        if (refDescB.BrowseName.Name == "DeviceSet")
                        {
                            refDescCol = myHelperApi.BrowseNode(refDescB);
                            foreach (ReferenceDescription refDescC in refDescCol)
                            {
                                if (refDescC.TypeDefinition == new ExpandedNodeId(RfidOpcUaForm.AutoID.ObjectTypes.RfidReaderDeviceType, (ushort)myHelperApi.GetNamespaceIndex(RfidOpcUaForm.AutoID.Namespaces.AutoID)))
                                {
                                    refDescCol = myHelperApi.BrowseNode(refDescC);
                                    foreach (ReferenceDescription refDescD in refDescCol)
                                    {
                                        if (refDescD.BrowseName.Name == "AutoIdModelVersion")
                                        {
                                            nameSpaceIndex = refDescD.NodeId.NamespaceIndex;
                                            break;
                                        }
                                    }
                                    break;
                                }
                            }
                            break;
                        }
                    }
                    break;
                }
            }

            return(nameSpaceIndex);
        }
Пример #3
0
 private void GetNodes(ReferenceDescriptionCollection refDes, NavModal parent)
 {
     //parent 上一层的modal
     for (int i = 0; i < refDes.Count; i++)
     {
         NavModal thisModal = new NavModal()
         {
             Id     = Guid.NewGuid().ToString(),
             Node   = new Node(refDes[i]),
             Parent = parent
         };
         parent.Children.Add(thisModal);
         if (refDes[i].NodeClass == NodeClass.Variable)
         {
             continue;
         }
         ReferenceDescriptionCollection collection = uAClient.BrowseNode(refDes[i]);
         if (collection.Count > 0)
         {
             GetNodes(collection, thisModal);
         }
     }
 }
Пример #4
0
        private void GetIDsAtConstruction()
        {
            ReferenceDescriptionCollection refDescCol      = new ReferenceDescriptionCollection();
            ReferenceDescriptionCollection foundRefDescCol = new ReferenceDescriptionCollection();

            refDescCol = myHelperApi.BrowseRoot();

            foreach (ReferenceDescription refDescA in refDescCol)
            {
                if (refDescA.BrowseName.Name == "Objects")
                {
                    refDescCol = myHelperApi.BrowseNode(refDescA);
                    foreach (ReferenceDescription refDescB in refDescCol)
                    {
                        if (refDescB.BrowseName.Name == "DeviceSet")
                        {
                            refDescCol = myHelperApi.BrowseNode(refDescB);
                            foreach (ReferenceDescription refDescC in refDescCol)
                            {
                                if (refDescC.TypeDefinition == new ExpandedNodeId(AutoID.ObjectTypes.RfidReaderDeviceType, (ushort)myHelperApi.GetNamespaceIndex(AutoID.Namespaces.AutoID)))
                                {
                                    foundRefDescCol.Add(refDescC);
                                }
                            }
                        }
                    }
                }
            }

            MethodIds methodIds;

            for (int i = 0; i < foundRefDescCol.Count; i++)
            {
                refDescCol = myHelperApi.BrowseNode(foundRefDescCol[i]);

                foreach (ReferenceDescription refDescD in refDescCol)
                {
                    if (refDescD.BrowseName.Name == "Scan")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.Scan;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "ScanStart")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.ScanStart;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "ScanStop")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.ScanStop;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "ReadTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.ReadTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "WriteTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.WriteTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "KillTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.KillTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "LockTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.LockTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "SetTagPassword")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.SetTagPw;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                }
            }
        }
Пример #5
0
        /// <summary>
        /// Call the Browse service of an UA server.
        /// </summary>
        /// <param name="parentNode">The node of the treeview to browse.</param>
        public int Browse(TreeNode parentNode)
        {
            NodeId             nodeToBrowse     = null;
            TreeNodeCollection parentCollection = null;

            // Check if we browse from root
            if (parentNode == null)
            {
                nodeToBrowse = new NodeId(Objects.RootFolder, 0);
                // Get all the tree nodes that are assigned to the control
                parentCollection = tvBrowseTree.Nodes;
            }
            else
            {
                // Get the data about the parent tree node
                ReferenceDescription parentRefDescription = (ReferenceDescription)parentNode.Tag;

                if (parentRefDescription == null)
                {
                    return(-1);
                }

                nodeToBrowse     = (NodeId)parentRefDescription.NodeId;
                parentCollection = parentNode.Nodes;
            }

            ReferenceDescriptionCollection browseResults;
            ReferenceDescription           refDesc;
            int  result = 0;
            bool bBrowse;

            // Set wait cursor.
            Cursor.Current = Cursors.WaitCursor;

            // Check if we want to browse on the server.
            if (m_RebrowseOnExpandNode)
            {
                bBrowse = true;
            }
            else if (parentNode == null)
            {
                bBrowse = true;
            }
            else if (parentNode.Checked)
            {
                bBrowse = false;
            }
            else
            {
                bBrowse = true;
            }

            // Delete children if required.
            if (bBrowse)
            {
                if (parentNode != null)
                {
                    parentNode.Nodes.Clear();
                }

                try
                {
                    // Call browse service.
                    refDesc        = new ReferenceDescription();
                    refDesc.NodeId = nodeToBrowse;
                    browseResults  = m_Server.BrowseNode(refDesc);

                    if (browseResults == null)
                    {
                        return(-1);
                    }

                    if (result == 0)
                    {
                        // Add children.
                        tvBrowseTree.BeginUpdate();

                        // Mark parent node as browsed.
                        if (parentNode != null)
                        {
                            parentNode.Checked = true;
                        }

                        foreach (ReferenceDescription refDescr in browseResults)
                        {
                            if (refDescr.ReferenceTypeId != ReferenceTypeIds.HasNotifier)
                            {
                                TreeNode node = new TreeNode();
                                node.Text = refDescr.BrowseName.Name.ToString();
                                node.Tag  = refDescr;
                                CustomizeTreeNode(ref node);

                                // Add dummy child.
                                TreeNode dummy = new TreeNode("dummy");
                                node.Nodes.Add(dummy);
                                parentCollection.Add(node);
                            }
                        }

                        // Sort the tree nodes of the particular node collection
                        this.SortTreeNode((parentNode == null) ? tvBrowseTree.Nodes : parentNode.Nodes);
                        tvBrowseTree.EndUpdate();

                        // Update status label.
                        OnUpdateStatusLabel("Browse succeeded.", true);
                    }
                    else
                    {
                        // Update status label.
                        OnUpdateStatusLabel("Browse failed. Error: " + result.ToString(), false);
                    }
                }
                catch (Exception e)
                {
                    result = -1;
                    // Update status label.
                    OnUpdateStatusLabel("An exception occured while browsing: " + e.Message, false);
                }
            }

            // Restore default cursor.
            Cursor.Current = Cursors.Default;

            return(result);
        }