public static void BrowseChildren(IOpcDaBrowser browser, TreeNode node, string itemId = null, int indent = 0) { OpcDaBrowseElement[] elements = browser.GetElements(itemId); foreach (OpcDaBrowseElement element in elements) { if (!(element.ItemId.IndexOf('$') == 0)) { if (indent > 14) { continue; } if (IsItemsfilter(element.Name) || IsItemsfilter(element.ItemId)) { continue; } if (element.HasChildren) { TreeNode curNode = AddNode(node, element.Name, element.ItemId); if (curNode != null) { BrowseChildren(browser, curNode, element.ItemId, indent + 2); } } else { AddLeafNode(node, element.Name, element.ItemId); } } } }
public List <String> BrowseChildren(IOpcDaBrowser browser, string itemId = null, int indent = 0) { List <string> result = new List <string>(); // When itemId is null, root elements will be browsed. OpcDaBrowseElement[] elements = browser.GetElements(itemId); // Output elements. foreach (OpcDaBrowseElement element in elements) { if (!element.HasChildren) { //Console.WriteLine(element); OpcDaItemProperties[] ppts = browser.GetProperties(new [] { element.ItemId }, new OpcDaPropertiesQuery(true, new int[] { 1 })); OpcDaItemProperties ppt = (OpcDaItemProperties)ppts.GetValue(0); /* * Console.WriteLine(element.ItemId); * Console.WriteLine(ppt.Properties[0].DataType); */ /* * * 1 Item Canonical DataType (ItemId: #MonitorACLFile, DataType System.Int16, Value: , ErrorId: S_OK: Success code) * 2 Item Value (ItemId: #MonitorACLFile, DataType TitaniumAS.Opc.Client.Common.IllegalType, Value: , ErrorId: S_OK: Success code) * 3 Item Quality (ItemId: #MonitorACLFile, DataType System.Int16, Value: , ErrorId: S_OK: Success code) * 4 Item Timestamp (ItemId: #MonitorACLFile, DataType System.DateTime, Value: , ErrorId: S_OK: Success code) * 5 Item Access Rights (ItemId: #MonitorACLFile, DataType System.Int32, Value: , ErrorId: S_OK: Success code) * 6 this.server Scan Rate (ItemId: #MonitorACLFile, DataType System.Single, Value: , ErrorId: S_OK: Success code) * 7 Item EU Type (ItemId: #MonitorACLFile, DataType System.Int32, Value: , ErrorId: S_OK: Success code) * 8 Item EUInfo (ItemId: #MonitorACLFile, DataType System.String[], Value: , ErrorId: S_OK: Success code) */ /* * foreach(OpcDaItemProperty _prop in ppt.Properties) * { * Console.WriteLine(_prop); * } */ //element.ItemProperties.Properties.DataType; elemento mais tag datatype result.Add(element.ItemId + "," + tagTypeConvert((Int16)ppt.Properties[0].Value)); continue; } // Output children of the element. if (element.ItemId != "_Hints") { result.AddRange(BrowseChildren(browser, element.ItemId, indent + 2)); } } return(result); }
private static void BrowseChildren(IOpcDaBrowser browser, string itemId = null, int indent = 0) { // Browse elements. // When itemId is null, root elements will be browsed. OpcDaBrowseElement[] elements = browser.GetElements(itemId); // Output elements. foreach (OpcDaBrowseElement element in elements) { // Output the element. Console.Write(new String(' ', indent)); Console.WriteLine(element); // Skip elements without children. if (!element.HasChildren) continue; // Output children of the element. BrowseChildren(browser, element.ItemId, indent + 2); } }
private static void BrowseChildren(IOpcDaBrowser browser, string itemId = null, int indent = 0) { // Browse elements. // When itemId is null, root elements will be browsed. OpcDaBrowseElement[] elements = browser.GetElements(itemId); // Output elements. foreach (OpcDaBrowseElement element in elements) { // Output the element. Console.Write(new String(' ', indent)); Console.WriteLine(element); // Skip elements without children. if (!element.HasChildren) { continue; } // Output children of the element. BrowseChildren(browser, element.ItemId, indent + 2); } }
public static void BrowseChildren(string itemId, IOpcDaBrowser browser) { var opcElements = browser.GetElements(itemId); foreach (OpcDaBrowseElement opcBrowseElement in opcElements) { Debug.WriteLine(opcBrowseElement); foreach (OpcDaItemProperty opcDaItemProperty in opcBrowseElement.ItemProperties.Properties) { Debug.Indent(); Debug.WriteLine(opcDaItemProperty); Debug.Unindent(); } if (!opcBrowseElement.HasChildren) { continue; } Debug.Indent(); BrowseChildren(opcBrowseElement.ItemId, browser); Debug.Unindent(); } }