Esempio n. 1
0
        /// <summary>
        /// 刷新列表
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="args"></param>
        private void ShowTimer_Tick(Object obj, EventArgs args)
        {
            String       StrRouterName, StrRouterID, StrTagName, StrID;
            ListViewItem item = null;
            int          num  = CommonBoxOperation.GetCurAreaTagNum(StrAreaID);

            label4.Text = "人員當前總數:" + num;
            ArrayList MyArrayList = new ArrayList();
            Area      ar          = null;

            try{
                foreach (ListViewItem im in AreaTaglistView.Items)
                {
                    StrID = im.Name;
                    if (!CommonCollection.TagPacks.ContainsKey(StrID))
                    {
                        MyArrayList.Add(StrID);
                    }
                }
                //清除TagPacks中已经不存在的项
                for (int i = 0; i < MyArrayList.Count; i++)
                {
                    AreaTaglistView.Items.RemoveByKey(MyArrayList[i].ToString());
                }

                foreach (KeyValuePair <string, TagPack> tbk in CommonCollection.TagPacks)
                {
                    StrRouterID = tbk.Value.RD_New[0].ToString("X2") + tbk.Value.RD_New[1].ToString("X2");
                    //判断当前的Router是否在本区域中
                    Area CurArea = CommonBoxOperation.GetAreaFromRouterID(StrRouterID);
                    if (null == CurArea)
                    {
                        continue;
                    }
                    if (CurArea.ID[0] != MyArea.ID[0] || CurArea.ID[1] != MyArea.ID[1])
                    {
                        continue;
                    }
                    StrRouterName = CommonBoxOperation.GetRouterName(StrRouterID);
                    //判断当前Tag是否在当前的区域中
                    if (AreaTaglistView.Items.ContainsKey(tbk.Key))
                    {
                        item = null;
                        if (AreaTaglistView.Items.Count > 0)
                        {
                            item = AreaTaglistView.FindItemWithText(tbk.Key, false, 0);
                        }
                        else
                        {
                            continue;
                        }
                        if (null == item)
                        {
                            StrTagName = CommonBoxOperation.GetTagName(tbk.Key);
                            if (null == StrTagName)
                            {
                                continue;
                            }
                            item = AreaTaglistView.FindItemWithText(StrTagName, false, 0);
                        }
                        ar = CommonBoxOperation.GetRouterArea(StrRouterID);
                        if (ar == null)
                        {
                            continue;
                        }
                        if (!(ar.ID[0].ToString("X2") + ar.ID[1].ToString("X2")).Equals(StrAreaID))
                        {
                            continue;
                        }
                        if (null != item)
                        {
                            if (null == StrRouterName || "".Equals(StrRouterName))
                            {
                                item.SubItems[2].Text = StrRouterID;
                            }
                            else
                            {
                                item.SubItems[2].Text = StrRouterName;
                            }
                            item.SubItems[3].Text = tbk.Value.SigStren.ToString();
                            item.SubItems[4].Text = tbk.Value.Bat.ToString();
                            item.SubItems[5].Text = tbk.Value.ResTime.ToString();
                            item.SubItems[6].Text = tbk.Value.ReportTime.ToString();
                        }
                    }
                    else
                    {
                        ListViewItem Item = new ListViewItem();
                        Item.Name  = tbk.Key;//其中Name是指Tag的ID
                        Item.Text  = tbk.Key;
                        StrTagName = CommonBoxOperation.GetTagName(tbk.Key);
                        if (null == StrTagName)
                        {
                            Item.SubItems.Add("****");
                        }
                        else
                        {
                            Item.SubItems.Add(StrTagName);
                        }
                        if (null == StrRouterName || "".Equals(StrRouterName))
                        {
                            Item.SubItems.Add(StrRouterID);
                        }
                        else
                        {
                            Item.SubItems.Add(StrRouterName);
                        }
                        Item.SubItems.Add(tbk.Value.SigStren.ToString());
                        Item.SubItems.Add(tbk.Value.Bat.ToString());
                        Item.SubItems.Add(tbk.Value.ResTime.ToString());
                        Item.SubItems.Add(tbk.Value.ReportTime.ToString());
                        AreaTaglistView.Items.Add(Item);
                    }
                }
            }catch (Exception)
            {
            }
        }