Exemplo n.º 1
0
        private void OnTagsReported(object sender, TagsReportedEventArgs args)
        {
            TagsReportedDelegate del = new TagsReportedDelegate(updateListbox);

            this.Dispatcher.BeginInvoke(del, args.TagReport.Tags);

            foreach (Tag tag in args.TagReport.Tags)
            {
                int index      = 0;
                int roomNumber = 1;
                for (int i = 0; i < roomList.Count; i++)
                {
                    if (tag.ReaderIdentity.Equals(roomNameList[i][0]))
                    {
                        roomNumber = (int)roomList [i][1];
                    }
                }

                //get the index of tag in array1
                for (index = 0; index < array1.Count; index++)
                {
                    if (array1[index].getId().Equals(tag.Epc))
                    {
                        break;
                    }
                }
                if (roomNumber == 1)
                {
                    nowPos[index] = 1;
                }
                else if (roomNumber == 2)
                {
                    nowPos[index] = 2;
                }
                else if (roomNumber == 3)
                {
                    nowPos[index] = 3;
                }
                else if (roomNumber == 4)
                {
                    nowPos[index] = 4;
                }
                else
                {
                    nowPos[index] = 0;
                }
                //modify rssi
                if (GetTimeStamp().Equals(array1[index].getTime()))
                {
                    //if time stamp is eaqual
                    int listNowCount = array1[index].getNumList();
                    if (listNowCount < 3)
                    {
                        ArrayList rssiCondition = new ArrayList();
                        rssiCondition.Add(tag.PeakRssiInDbm);
                        rssiCondition.Add(tag.AntennaPortNumber);
                        rssiCondition.Add(roomNumber);
                        array1[index].addListElement(rssiCondition);
                    }
                }
                else
                {
                    ArrayList rssiCondition = new ArrayList();
                    rssiCondition.Add(tag.PeakRssiInDbm);
                    rssiCondition.Add(tag.AntennaPortNumber);
                    rssiCondition.Add(roomNumber);
                    array1[index].addListElement(rssiCondition);
                }

                array1[index].setTime(GetTimeStamp());
                int[] pos = calculatePos((PersonInformation)array1[index]);
                if (pos[0] != -1 && pos[1] != -1)
                {
                    ((Image)Imagelist[index]).SetValue(Grid.RowProperty, pos[0]);
                    ((Image)Imagelist[index]).SetValue(Grid.ColumnProperty, pos[1]);
                }
            }
        }
Exemplo n.º 2
0
        private void OnTagsReported(object sender, TagsReportedEventArgs e)
        {
            TagsReportedDelegate del = new  TagsReportedDelegate(UpdateTagsList);

            this.BeginInvoke(del, e.TagReport.Tags);
        }
Exemplo n.º 3
0
        /**
         * private void updateListbox(List<Tag> list)
         * {
         *  // Loop through each tag is the list and add it to the Listbox.
         *  foreach (var tag in list)
         *  {
         *       listTags.Items.Add("老人" + tag.getId() + "在" + tag.getRoomNumber() + "号房间" + "x:" + tag.getX() + "y:" + tag.getY());
         *  }
         * }
         **/

        public void OnTagsReported(object sender, TagsReportedEventArgs args)
        {
            TagsReportedDelegate del = new TagsReportedDelegate(updateListbox);

            this.Dispatcher.BeginInvoke(del, args.TagReport.Tags);
            foreach (Tag tag in args.TagReport.Tags)
            {
                for (int i = 0; i < untrackTagList.Count; i++)
                {
                    if (tag.Epc.Equals(untrackTagList[i].getId()))
                    {
                        int roomIndex = 0;
                        untrackTagList[i].setTagrssi(tag.PeakRssiInDbm, tag.AntennaPortNumber);
                        for (int p = 0; p < roomList.Count; p++)
                        {
                            if ((roomList[p].getReader1()).Equals(tag.ReaderIdentity) || (roomList[p].getReader2()).Equals(tag.ReaderIdentity))
                            {
                                untrackTagList [i].setRoomNumber(roomList[p].getRoomNumber());
                                roomIndex = roomList[p].getRoomNumber();
                            }
                            if (roomIndex == 1)
                            {
                                nowPos[i] = 1;
                            }
                            else if (roomIndex == 2)
                            {
                                nowPos[i] = 2;
                            }
                            else if (roomIndex == 3)
                            {
                                nowPos[i] = 3;
                            }
                            else if (roomIndex == 4)
                            {
                                nowPos[i] = 4;
                            }
                            else
                            {
                                nowPos[i] = 0;
                            }
                        }
                    }
                }
                for (int j = 0; j < roomList.Count; j++)
                {
                    for (int k = 0; k < roomList[j].getTagList().Count; k++)
                    {
                        if (tag.Epc.Equals(roomList[j].getTagList()[k].getId()))
                        {
                            roomList[k].setTag(referenceTagId[j], tag.PeakRssiInDbm, tag.AntennaPortNumber);
                        }
                    }
                }
            }
            calGetXandY(untrackTagList, referenceTagList);
            for (int i = 0; i < untrackTagList.Count; i++)
            {
                ((Image)Imagelist[i]).SetValue(Grid.RowProperty, (int)(untrackTagList[i].getX()) + roomList[i].getX());
                ((Image)Imagelist[i]).SetValue(Grid.ColumnProperty, 3 - (int)(untrackTagList[i].getY()) + roomList[i].getY());
            }
        }