Esempio n. 1
0
        public void InitDevice(IO_SERVER server, IO_COMMUNICATION communication, IO_DEVICE device)
        {
            Device        = device;
            Server        = server;
            Communication = communication;
            SeriesIndex   = -1;
            InitSeires();
            InitListView();

            if (Device != null)
            {
                //获取读取实时值
                IOCenterManager.QueryFormManager.ReadRealDevice(this.Server, this.Communication, this.Device);
                TreeNode[] finders = this.hsComboBox.TreeView.Nodes.Find(Device.IO_DEVICE_ID, true);
                if (finders.Length > 0)
                {
                    IoDeviceTreeNode node = finders[0] as IoDeviceTreeNode;
                    this.hsComboBox.ShowItem(node);
                }
                realtimer.Interval = Device.IO_DEVICE_UPDATECYCLE * 1000;
            }


            if (Device != null)
            {
                realtimer.Interval = this.Device.IO_DEVICE_UPDATECYCLE * 1000;
                realtimer.Tick    += Realtimer_Tick;
                realtimer.Start();
            }
        }
Esempio n. 2
0
        //主动下置命令

        private void btSend_Click(object sender, EventArgs e)
        {
            if (this.IOTreeView.SelectedNode == null)
            {
                FrmDialog.ShowDialog(this, "请在IO树中选择设备节点");
                return;
            }
            if (this.IOTreeView.SelectedNode is IoDeviceTreeNode)
            {
                IoDeviceTreeNode        deviceNode            = this.IOTreeView.SelectedNode as IoDeviceTreeNode;
                IoCommunicationTreeNode communicationTreeNode = this.IOTreeView.SelectedNode.Parent as IoCommunicationTreeNode;
                IoServerTreeNode        serverNode            = this.IOTreeView.SelectedNode.Parent.Parent as IoServerTreeNode;
                if (serverNode.ClientEndPoint == null)
                {
                    FrmDialog.ShowDialog(this, "采集站终端未上线");
                    return;
                }
                SendCommandForm sendCommandForm = new SendCommandForm();
                sendCommandForm.InitCommand(serverNode.Server, communicationTreeNode.Communication, deviceNode.Device);
                if (sendCommandForm.ShowDialog(this) == DialogResult.OK)
                {
                }
            }
            else
            {
                FrmDialog.ShowDialog(this, "请在IO树中选择设备节点");
                return;
            }
        }
Esempio n. 3
0
 private void 实时数据ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (ioTree.SelectedNode != null && ioTree.SelectedNode is IoDeviceTreeNode)
     {
         IoDeviceTreeNode Node = ioTree.SelectedNode as IoDeviceTreeNode;
         this.mediator.RealQueryWorkForm.InitDevice(Node.Server, Node.Communication, Node.Device);
     }
 }
Esempio n. 4
0
        public async void LoadTreeProject()
        {
            if (this.hsComboBox.TreeView.Nodes.Count <= 0)
            {
                await Task.Run(() =>
                {
                    this.BeginInvoke(new EventHandler(delegate {
                        try
                        {
                            this.hsComboBox.TreeView.Nodes.Clear();

                            int num                     = IOCenterManager.IOProject.Servers.Count + IOCenterManager.IOProject.Communications.Count + IOCenterManager.IOProject.Devices.Count;
                            TreeNode mainNode           = new TreeNode();
                            mainNode.ImageIndex         = 0;
                            mainNode.SelectedImageIndex = 0;
                            mainNode.Text               = PubConstant.Product;

                            ///加载采集站
                            for (int i = 0; i < IOCenterManager.IOProject.Servers.Count; i++)
                            {
                                IoServerTreeNode serverNode = new IoServerTreeNode();
                                serverNode.Server           = IOCenterManager.IOProject.Servers[i];
                                serverNode.InitNode();
                                List <Scada.Model.IO_COMMUNICATION> serverComms = IOCenterManager.IOProject.Communications.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID);
                                for (int c = 0; c < serverComms.Count; c++)//通道
                                {
                                    IoCommunicationTreeNode commNode = new IoCommunicationTreeNode();
                                    commNode.Communication           = serverComms[c];
                                    commNode.Server = IOCenterManager.IOProject.Servers[i];
                                    commNode.InitNode();
                                    List <Scada.Model.IO_DEVICE> commDevices = IOCenterManager.IOProject.Devices.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID);
                                    for (int d = 0; d < commDevices.Count; d++)//设备
                                    {
                                        IoDeviceTreeNode deviceNode = new IoDeviceTreeNode();
                                        deviceNode.Device           = commDevices[d];
                                        deviceNode.Server           = IOCenterManager.IOProject.Servers[i];
                                        deviceNode.Communication    = serverComms[c];
                                        //挂载右键菜单

                                        deviceNode.InitNode();
                                        commNode.Nodes.Add(deviceNode);
                                    }

                                    serverNode.Nodes.Add(commNode);
                                }

                                mainNode.Nodes.Add(serverNode);
                            }
                            mainNode.Expand();
                            this.hsComboBox.TreeView.Nodes.Add(mainNode);
                        }
                        catch
                        {
                        }
                    }));
                });
            }
        }
Esempio n. 5
0
 /// <summary>
 /// 刷新树状态
 /// </summary>
 public static void RefreshIOStatus(Scada.Model.IO_DEVICE device)
 {
     if (device == null)
     {
         return;
     }
     if (mediator.IOStatusForm.IsHandleCreated)
     {
         mediator.IOStatusForm.IoTreeStatus.BeginInvoke(new EventHandler(delegate
         {
             if (mediator.IOStatusForm.IoTreeStatus.Nodes.Find(device.IO_DEVICE_ID, true).Length > 0)
             {
                 IoDeviceTreeNode treeNode = (IoDeviceTreeNode)mediator.IOStatusForm.IoTreeStatus.Nodes.Find(device.IO_DEVICE_ID, true).First();
                 treeNode.ChangedStatus(device.IO_DEVICE_STATUS);
             }
         }));
     }
 }
Esempio n. 6
0
        private void IoTreeStatus_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Node is IoDeviceTreeNode)
            {
                try
                {
                    IoDeviceTreeNode devNode = e.Node as IoDeviceTreeNode;
                    this.mediator.IOMonitorForm.Device        = devNode.Device;
                    this.mediator.IOMonitorForm.Communication = devNode.Communication;

                    this.mediator.IOMonitorForm.ChangedBinds(devNode.Server, devNode.Communication, devNode.Device);
                    this.mediator.IOMonitorForm.SetIOValue(devNode.Server, devNode.Communication, devNode.Device);
                }
                catch (Exception ex)
                {
                    MonitorFormManager.DisplyException(ex);
                }
            }
        }
Esempio n. 7
0
        private void hsComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (hsComboBox.SelectedItem != null)
            {
                IoDeviceTreeNode node = hsComboBox.SelectedItem as IoDeviceTreeNode;
                //如果选择的还是同一个设备,就不做处理
                if (this.Device != node.Device)
                {
                    this.realtimer.Stop();
                    this.Server             = node.Server;
                    this.Communication      = node.Communication;
                    this.Device             = node.Device;
                    this.realtimer.Interval = this.Device.IO_DEVICE_UPDATECYCLE * 1000;



                    InitListView();
                    InitSeires();
                    this.realtimer.Start();
                }
            }
        }
Esempio n. 8
0
        public void LoadIOProject(TreeView tree)
        {
            if (tree.FindForm() != null)
            {
                if (tree.Parent.IsHandleCreated)
                {
                    tree.BeginInvoke(new EventHandler(delegate
                    {
                        try
                        {
                            tree.Nodes.Clear();

                            int num                     = IOCenterManager.IOProject.Servers.Count + IOCenterManager.IOProject.Communications.Count + IOCenterManager.IOProject.Devices.Count;
                            TreeNode mainNode           = new TreeNode();
                            mainNode.ImageIndex         = 0;
                            mainNode.SelectedImageIndex = 0;
                            mainNode.Text               = PubConstant.Product;
                            InitProgress(num);
                            ///加载采集站
                            for (int i = 0; i < IOCenterManager.IOProject.Servers.Count; i++)
                            {
                                IoServerTreeNode serverNode = new IoServerTreeNode();
                                serverNode.Server           = IOCenterManager.IOProject.Servers[i];
                                serverNode.InitNode();
                                List <Scada.Model.IO_COMMUNICATION> serverComms = IOCenterManager.IOProject.Communications.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID);
                                for (int c = 0; c < serverComms.Count; c++)//通道
                                {
                                    IoCommunicationTreeNode commNode = new IoCommunicationTreeNode();
                                    commNode.Communication           = serverComms[c];
                                    commNode.Server = IOCenterManager.IOProject.Servers[i];
                                    commNode.InitNode();
                                    List <Scada.Model.IO_DEVICE> commDevices = IOCenterManager.IOProject.Devices.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID);
                                    for (int d = 0; d < commDevices.Count; d++)//设备
                                    {
                                        IoDeviceTreeNode deviceNode = new IoDeviceTreeNode();
                                        deviceNode.Device           = commDevices[d];
                                        deviceNode.Server           = IOCenterManager.IOProject.Servers[i];
                                        deviceNode.Communication    = serverComms[c];
                                        //挂载右键菜单
                                        deviceNode.ContextMenuStrip = Mediator.IOTreeForm.contextMenuStrip;
                                        deviceNode.InitNode();
                                        commNode.Nodes.Add(deviceNode);
                                        SetProgress();
                                    }
                                    SetProgress();
                                    serverNode.Nodes.Add(commNode);
                                }

                                mainNode.Nodes.Add(serverNode);
                                SetProgress();
                            }
                            mainNode.ExpandAll();
                            tree.Nodes.Add(mainNode);

                            EndProgress();
                        }
                        catch (Exception exm)
                        {
                            DisplyException(exm);
                            FrmDialog.ShowDialog(MainForm, exm.Message);
                            EndProgress();
                        }
                    }));
                }
            }
            else
            {
                try
                {
                    tree.Nodes.Clear();

                    int      num      = IOCenterManager.IOProject.Servers.Count + IOCenterManager.IOProject.Communications.Count + IOCenterManager.IOProject.Devices.Count;
                    TreeNode mainNode = new TreeNode();
                    mainNode.ImageIndex         = 0;
                    mainNode.SelectedImageIndex = 0;
                    mainNode.Text = PubConstant.Product;
                    InitProgress(num);
                    ///加载采集站
                    for (int i = 0; i < IOCenterManager.IOProject.Servers.Count; i++)
                    {
                        IoServerTreeNode serverNode = new IoServerTreeNode();
                        serverNode.Server = IOCenterManager.IOProject.Servers[i];
                        serverNode.InitNode();
                        List <Scada.Model.IO_COMMUNICATION> serverComms = IOCenterManager.IOProject.Communications.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID);
                        for (int c = 0; c < serverComms.Count; c++)//通道
                        {
                            IoCommunicationTreeNode commNode = new IoCommunicationTreeNode();
                            commNode.Communication = serverComms[c];
                            commNode.Server        = IOCenterManager.IOProject.Servers[i];
                            commNode.InitNode();
                            List <Scada.Model.IO_DEVICE> commDevices = IOCenterManager.IOProject.Devices.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID);
                            for (int d = 0; d < commDevices.Count; d++)//设备
                            {
                                IoDeviceTreeNode deviceNode = new IoDeviceTreeNode();
                                deviceNode.Device        = commDevices[d];
                                deviceNode.Server        = IOCenterManager.IOProject.Servers[i];
                                deviceNode.Communication = serverComms[c];
                                //挂载右键菜单
                                deviceNode.ContextMenuStrip = Mediator.IOTreeForm.contextMenuStrip;
                                deviceNode.InitNode();
                                commNode.Nodes.Add(deviceNode);
                                SetProgress();
                            }
                            SetProgress();
                            serverNode.Nodes.Add(commNode);
                        }

                        mainNode.Nodes.Add(serverNode);
                        SetProgress();
                    }
                    mainNode.ExpandAll();
                    tree.Nodes.Add(mainNode);

                    EndProgress();
                }
                catch (Exception exm)
                {
                    DisplyException(exm);
                    FrmDialog.ShowDialog(MainForm, exm.Message);
                    EndProgress();
                }
            }
        }
Esempio n. 9
0
        public static void  LoadProject(TreeView tree)
        {
            AppendLogItem("正在加载采集站工程......");
            MonitorDataBaseModel.InitBaseModel();
            AppendLogItem("正在加载驱动信息......");
            IOMonitorManager.InitMonitor();
            AppendLogItem("正在加载IO树......");

            Task.Run(() =>
            {
                try
                {
                    if (tree.Parent.IsHandleCreated)
                    {
                        tree.BeginInvoke(new EventHandler(delegate
                        {
                            tree.Nodes.Clear();

                            int num = MonitorDataBaseModel.IOCommunications.Count * MonitorDataBaseModel.IODevices.Count;

                            InitProgress(num);


                            IoServerTreeNode serverNode = new IoServerTreeNode();
                            serverNode.Server           = MonitorDataBaseModel.IOServer;
                            serverNode.InitNode();
                            List <Scada.Model.IO_COMMUNICATION> serverComms = MonitorDataBaseModel.IOCommunications.FindAll(x => x.IO_SERVER_ID == MonitorDataBaseModel.IOServer.SERVER_ID);
                            for (int c = 0; c < serverComms.Count; c++)  //通道
                            {
                                IoCommunicationTreeNode commNode = new IoCommunicationTreeNode();
                                commNode.Communication           = serverComms[c];
                                commNode.Server = MonitorDataBaseModel.IOServer;
                                commNode.InitNode();
                                List <Scada.Model.IO_DEVICE> commDevices = MonitorDataBaseModel.IODevices.FindAll(x => x.IO_SERVER_ID == MonitorDataBaseModel.IOServer.SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID);
                                for (int d = 0; d < commDevices.Count; d++)  //设备
                                {
                                    IoDeviceTreeNode deviceNode = new IoDeviceTreeNode();
                                    deviceNode.Device           = commDevices[d];
                                    deviceNode.Server           = MonitorDataBaseModel.IOServer;
                                    deviceNode.Communication    = serverComms[c];
                                    deviceNode.InitNode();
                                    commNode.Nodes.Add(deviceNode);
                                    SetProgress();
                                }
                                SetProgress();
                                serverNode.Nodes.Add(commNode);
                            }


                            serverNode.Expand();

                            EndProgress();
                            tree.Nodes.Add(serverNode);
                        }));
                    }
                }
                catch (Exception exm)
                {
                    DisplyException(exm);
                    FrmDialog.ShowDialog(MainForm, exm.Message);
                    EndProgress();
                }
            });
        }