void loadPoints(List <string> parentPath, ItemCollection nodes) { Task.Run(() => { try { gatewayClient.EnumDevicePoint(this.Device.Address, parentPath, (info) => { this._container.Dispatcher.Invoke(() => { if (nodes[0] is LoadingTreeItem) { nodes.Clear(); } TreeViewItem node = new TreeViewItem(); node.Header = info.Name; if (info.IsFolder) { LoadingTreeItem loadingNode = new LoadingTreeItem(); loadingNode.Header = "正在加载..."; node.Items.Add(loadingNode); var path = new List <string>(parentPath); path.Add(info.Name); node.Tag = path; node.Expanded += Node_Expanded; } else { node.Tag = info.Path; node.PreviewMouseDown += Point_MouseDown; } nodes.Add(node); }); }); if (nodes[0] is LoadingTreeItem) { this._container.Dispatcher.Invoke(() => { nodes.Clear(); }); } } catch (Exception ex) { this._container.Dispatcher.Invoke(() => { MessageBox.Show(MainWindow.Instance, ex.Message); }); } }); }
public void EnumDevicePointTest() { var server = new SunRizOpcDriver.OpcDriverServer(588); server.Start(); SunRizDriver.SunRizDriverClient client = new SunRizDriver.SunRizDriverClient("127.0.0.1", 588); List <string> parentPath = new List <string>(); parentPath.Add("Simulation Items"); parentPath.Add("Random"); client.EnumDevicePoint("127.0.0.1|Matrikon.OPC.Simulation.1", parentPath, (point) => { Debug.WriteLine($"path:{point.Path} name:{point.Name} isfolder:{point.IsFolder}"); }); server.Stop(); }