Ejemplo n.º 1
0
 /// <summary>
 /// Executes a specified void function for each GameObject in this GameObjectList.
 /// </summary>
 /// <param name="func">The function to execute.</param>
 public void ForEach(ListFunc func)
 {
     for (int i = children.Count - 1; i >= 0; --i)
     {
         func.Invoke(children[i]);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 被list报警调用
        /// </summary>
        /// <param name="listView"></param>
        public static void AlarmListView(S7Client client, ListView listView, int dbSum, int dbLength, int dbStartElement, int dbStartBit)
        {
            int result = client.DBRead(dbSum, 0, dbLength, ReadBuffer);//dbx30 从0读取 length98

            //调用报警文本
            AlarmTxt();
            //调用一次文本
            boolFirst = true;

            //添加报警文本
            for (int i = 0; i < listStr.Count; i++)
            {
                listFunc[i] = new ListFunc(1000 + i, DateTime.Now, listStr[i]);
            }
            //添加所有报警列表到list集合
            for (int i = 0; i < listStr.Count; i++)
            {
                list.Add(listFunc[i]);
            }

            bool boolResult;

            #region 遍历报警
            //遍历报警
            for (int i = dbStartBit; i < listStr.Count + dbStartBit; i++)
            {
                if (i <= 7)// //1000-1015--08报警数据1
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement, i);
                    //如果不包含当前项,则添加
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    //如果包含当前项则刷新
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]); //移除
                        listView.Items.Add(list[i - dbStartBit]);    //再添加
                        list[i - dbStartBit].Date = DateTime.Now;    //刷新时间
                    }
                }
                else if (i > 7 && i <= 15)
                {
                    //boolResult = S7.GetBitAt(ReadBuffer, 51, i - 8);
                    ////如果不包含当前项,则添加
                    //if (boolResult && !listView.Items.Contains(list[i]))
                    //{
                    //    listView.Items.Add(list[i]);
                    //}
                    ////如果包含当前项则刷新
                    //else if (boolResult && listView.Items.Contains(list[i]))
                    //{
                    //    listView.Items.Remove(list[i]);
                    //    listView.Items.Add(list[i]);
                    //    list[i].Date = DateTime.Now;//刷新时间
                    //}

                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 1, i - 8);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 15 && i <= 23)//1016-1031--08报警数据2
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 2, i - 16);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 23 && i <= 31)
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 3, i - 24);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 31 && i <= 39)//1032-1047--08报警数据3
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 4, i - 32);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 39 && i <= 47)
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 5, i - 40);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 47 && i <= 55)//1048-1063--08报警数据4
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 6, i - 48);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 55 && i <= 63)
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 7, i - 56);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 63 && i <= 71)//1064-1079--08报警数据5
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 8, i - 64);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 71 && i <= 79)
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 9, i - 72);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 79 && i <= 87)//1080-1095--08报警数据6
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 10, i - 80);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 87 && i <= 95)
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 11, i - 88);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 95 && i <= 103)//1096-1111--08报警数据7
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 12, i - 96);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }
                else if (i > 103 && i <= 111)
                {
                    boolResult = S7.GetBitAt(ReadBuffer, dbStartElement + 13, i - 104);
                    if (boolResult && !listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Add(list[i - dbStartBit]);
                    }
                    else if (boolResult && listView.Items.Contains(list[i - dbStartBit]))
                    {
                        listView.Items.Remove(list[i - dbStartBit]);
                        listView.Items.Add(list[i - dbStartBit]);
                        list[i - dbStartBit].Date = DateTime.Now;
                    }
                }



                else if (i > 111 && i <= 119)//1112-1127--12报警数据1
                {
                }
            }

            #endregion
        }