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);
                    });
                }
            });
        }
Пример #2
0
        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();
        }