示例#1
0
        public void Update()
        {
            #region UpdateUI_IO

            /*查找界面上有多少IO,将数据list拆开分解后传入各IO模型界面类内部
             */
            foreach (var IO in IOGroup.Children)//界面全部刷新,全部遍历
            {
                if (IO is DO15)
                {
                    DO15 tIo = (DO15)IO;
                    foreach (var item in Tool.UIlist)
                    {
                        if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历
                        {
                            //数据锁
                            if (tIo.IsUpdate)//从数据更新到UI
                            {
                                tIo.UpdateInputData(item);
                            }
                            else
                            {
                                tIo.UpdateAll();//从UI更新到数据
                            }
                            break;
                        }
                    }
                }
                else if (IO is DO8R)
                {
                    DO8R tIo = (DO8R)IO;
                    foreach (var item in Tool.UIlist)
                    {
                        if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历
                        {
                            //数据锁
                            if (tIo.IsUpdate)//从数据更新到UI
                            {
                                tIo.UpdateInputData(item);
                            }
                            else//从UI更新到数据
                            {
                                tIo.UpdateAll();
                            }
                            break;
                        }
                    }
                }
                else if (IO is DI16)
                {
                    DI16 tIo = (DI16)IO;
                    foreach (var item in Tool.UIlist)
                    {
                        if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历
                        {
                            tIo.UpdateInputData(item);
                            break;
                        }
                    }
                }
                else if (IO is AO_4)
                {
                    AO_4 tIo = (AO_4)IO;
                    foreach (var item in Tool.UIlist)
                    {
                        if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历
                        {
                            tIo.UpdateInputData(item);
                            break;
                        }
                    }
                }
                else if (IO is AI8)
                {
                    AI8 tIo = (AI8)IO;
                    foreach (var item in Tool.UIlist)
                    {
                        if (item.m_nodeID == tIo.IOData.m_nodeID)//找到后就退出内层遍历
                        {
                            tIo.UpdateInputData(item);
                            break;
                        }
                    }
                }
                else if (IO is AI8C)
                {
                    AI8C tIo = (AI8C)IO;
                    foreach (var item in Tool.UIlist)
                    {
                        if (item.m_nodeID.ToString() == tIo.modelView.NodeID) //找到后就退出内层遍历
                        //不能再加上是否在线的标志,否则掉线后无法更新UI
                        {
                            //for (int i = 0; i < item.m_DataAI.Count; i++)
                            //{
                            //    item.m_DataAI[i] = T;
                            //}

                            tIo.UpdateInputData(item);
                            break;
                        }
                    }
                }
            }
            #endregion
        }