// recursively call the OPC namespace tree public bool RecurBrowse(TreeNode tnParent, int depth) { try { ArrayList lst; theSrv.Browse(OPCBROWSETYPE.OPC_BRANCH, out lst); if (lst == null) { return(true); } if (lst.Count < 1) { return(true); } foreach (string s in lst) { TreeNode tnNext = new TreeNode(s, 0, 1); theSrv.ChangeBrowsePosition(OPCBROWSEDIRECTION.OPC_BROWSE_DOWN, s); RecurBrowse(tnNext, depth + 1); theSrv.ChangeBrowsePosition(OPCBROWSEDIRECTION.OPC_BROWSE_UP, ""); tnParent.Nodes.Add(tnNext); } } catch (COMException /* eX */) { MessageBox.Show(this, "browse error!", "RecurBrowse", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); } return(true); }
/// <summary> /// recursively call the OPC namespace tree /// </summary> /// <param name="tnParent">tnParent</param> /// <param name="depth">depth</param> private void RecurBrowse(TreeNode <string> tnParent, int depth) { ArrayList lst; _theSrv.Browse(OPCBROWSETYPE.OPC_BRANCH, out lst); if (lst == null) { return; } if (lst.Count < 1) { return; } foreach (string s in lst) { TreeNode <string> tnNext = new TreeNode <string>(s); _theSrv.ChangeBrowsePosition(OPCBROWSEDIRECTION.OPC_BROWSE_DOWN, s); RecurBrowse(tnNext, depth + 1); _theSrv.ChangeBrowsePosition(OPCBROWSEDIRECTION.OPC_BROWSE_UP, ""); tnParent.AddChild(tnNext); } }
// recursively call the OPC namespace tree public bool RecurBrowse(TreeNode tnParent, int depth, string name = "") { try { ArrayList lst; string tempStr = ""; theSrv.Browse(OPCBROWSETYPE.OPC_BRANCH, out lst); if (lst == null) { return(true); } if (lst.Count < 1) { return(true); } foreach (string s in lst) { if (s == "192_168_1_211") { tempStr = s; } TreeNode tnNext = new TreeNode(s, 0, 1); theSrv.ChangeBrowsePosition(OPCBROWSEDIRECTION.OPC_BROWSE_DOWN, s); string tmpName = (name == ""?tnNext.Text:name + "." + tnNext.Text); RecurBrowse(tnNext, depth + 1, tmpName); if (tnParent.Text == "Root") { theSrv.ChangeBrowsePosition(OPCBROWSEDIRECTION.OPC_BROWSE_TO, ""); } else { theSrv.ChangeBrowsePosition(OPCBROWSEDIRECTION.OPC_BROWSE_TO, tnParent.Text); } if (tnNext.FirstNode == null) { string[] strTemp = new string[2]; strTemp[0] = tmpName; strTemp[1] = "1"; itemsValue.Add(strTemp); } //TreeNode previous = tnParent; tnParent.Nodes.Add(tnNext); } } catch (COMException eX) { Console.WriteLine(eX.ToString()); MessageBox.Show(this, "browse error!", "RecurBrowse", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); } return(true); }
private void RecursiveServerHierarchialBrowse(ref List <string> p_ItemIds) { ArrayList l_ItemList; _server.Browse(OpcBrowseType.OPC_LEAF, out l_ItemList); foreach (string l_ItemName in l_ItemList) { p_ItemIds.Add(_server.GetItemID(l_ItemName)); } ArrayList l_BranchList; _server.Browse(OpcBrowseType.OPC_BRANCH, out l_BranchList); foreach (string l_BranchName in l_BranchList) { _server.ChangeBrowsePosition(OpcBrowseDirection.OPC_BROWSE_DOWN, l_BranchName); RecursiveServerHierarchialBrowse(ref p_ItemIds); _server.ChangeBrowsePosition(OpcBrowseDirection.OPC_BROWSE_UP, ""); } }
public void TestBrowse01() { //testing -- OpcServer opcServer = new OpcServer(); Accessor opcServerAccessor = ReflectionAccessor.Wrap(opcServer); opcServerAccessor.SetField("ifServer", new OPCServerComClass()); opcServerAccessor.SetField("ifBrowse", ((IOPCBrowseServerAddressSpace)opcServerAccessor.GetField("ifServer"))); System.Collections.ArrayList arrList; //Test Procedure Call opcServer.Browse(global::OPCTrendLib.OPCDataInterface.OPCBROWSETYPE.OPC_BRANCH, out arrList); //Post Condition Check }